@mirascript/mirascript 0.1.33 → 0.1.35

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (71) hide show
  1. package/dist/{chunk-UM7PQV4L.js → chunk-C6YXWSTI.js} +205 -156
  2. package/dist/chunk-C6YXWSTI.js.map +6 -0
  3. package/dist/{chunk-BMSHG7ON.js → chunk-HGARNCSR.js} +2 -2
  4. package/dist/{chunk-NRUNNMNC.js → chunk-PYMZMMRB.js} +18 -20
  5. package/dist/chunk-PYMZMMRB.js.map +6 -0
  6. package/dist/{chunk-VZGKLLRC.js → chunk-SEZII6RI.js} +19 -7
  7. package/dist/chunk-SEZII6RI.js.map +6 -0
  8. package/dist/cli/index.js +4 -4
  9. package/dist/compiler/compile-fast.d.ts.map +1 -1
  10. package/dist/compiler/create-script.d.ts +1 -1
  11. package/dist/compiler/create-script.d.ts.map +1 -1
  12. package/dist/compiler/emit/constants.d.ts +1 -1
  13. package/dist/compiler/emit/constants.d.ts.map +1 -1
  14. package/dist/compiler/worker.js +1 -1
  15. package/dist/helpers/serialize.d.ts +5 -4
  16. package/dist/helpers/serialize.d.ts.map +1 -1
  17. package/dist/index.js +3 -3
  18. package/dist/subtle.js +3 -3
  19. package/dist/vm/lib/global/debug.d.ts +1 -1
  20. package/dist/vm/lib/global/debug.d.ts.map +1 -1
  21. package/dist/vm/lib/global/math-const.d.ts +6 -0
  22. package/dist/vm/lib/global/math-const.d.ts.map +1 -1
  23. package/dist/vm/lib/global/time.d.ts.map +1 -1
  24. package/dist/vm/lib/helpers.d.ts +1 -1
  25. package/dist/vm/lib/helpers.d.ts.map +1 -1
  26. package/dist/vm/operations/call.d.ts +7 -3
  27. package/dist/vm/operations/call.d.ts.map +1 -1
  28. package/dist/vm/operations/common.d.ts +2 -1
  29. package/dist/vm/operations/common.d.ts.map +1 -1
  30. package/dist/vm/operations/compound.d.ts +20 -10
  31. package/dist/vm/operations/compound.d.ts.map +1 -1
  32. package/dist/vm/operations/convert.d.ts +8 -4
  33. package/dist/vm/operations/convert.d.ts.map +1 -1
  34. package/dist/vm/operations/helpers.d.ts +8 -6
  35. package/dist/vm/operations/helpers.d.ts.map +1 -1
  36. package/dist/vm/operations/operator.d.ts +44 -22
  37. package/dist/vm/operations/operator.d.ts.map +1 -1
  38. package/dist/vm/operations/slice.d.ts +4 -2
  39. package/dist/vm/operations/slice.d.ts.map +1 -1
  40. package/dist/vm/operations/type-check.d.ts +14 -7
  41. package/dist/vm/operations/type-check.d.ts.map +1 -1
  42. package/dist/vm/types/boundary.d.ts +2 -0
  43. package/dist/vm/types/boundary.d.ts.map +1 -1
  44. package/dist/vm/types/extern.d.ts +7 -2
  45. package/dist/vm/types/extern.d.ts.map +1 -1
  46. package/dist/vm/types/function.d.ts +6 -0
  47. package/dist/vm/types/function.d.ts.map +1 -1
  48. package/package.json +4 -4
  49. package/src/compiler/compile-fast.ts +17 -20
  50. package/src/compiler/create-script.ts +1 -1
  51. package/src/compiler/emit/constants.ts +1 -1
  52. package/src/helpers/serialize.ts +22 -8
  53. package/src/vm/lib/global/debug.ts +1 -1
  54. package/src/vm/lib/global/math-const.ts +17 -0
  55. package/src/vm/lib/global/time.ts +6 -5
  56. package/src/vm/lib/helpers.ts +2 -1
  57. package/src/vm/operations/call.ts +30 -7
  58. package/src/vm/operations/common.ts +3 -2
  59. package/src/vm/operations/compound.ts +59 -32
  60. package/src/vm/operations/convert.ts +12 -8
  61. package/src/vm/operations/helpers.ts +14 -12
  62. package/src/vm/operations/operator.ts +66 -44
  63. package/src/vm/operations/slice.ts +6 -4
  64. package/src/vm/operations/type-check.ts +21 -14
  65. package/src/vm/types/boundary.ts +27 -11
  66. package/src/vm/types/extern.ts +3 -1
  67. package/src/vm/types/function.ts +4 -0
  68. package/dist/chunk-NRUNNMNC.js.map +0 -6
  69. package/dist/chunk-UM7PQV4L.js.map +0 -6
  70. package/dist/chunk-VZGKLLRC.js.map +0 -6
  71. /package/dist/{chunk-BMSHG7ON.js.map → chunk-HGARNCSR.js.map} +0 -0
package/dist/subtle.js CHANGED
@@ -2,7 +2,7 @@ import {
2
2
  OpCode,
3
3
  analyzeGlobalReferences,
4
4
  isKeyword
5
- } from "./chunk-BMSHG7ON.js";
5
+ } from "./chunk-HGARNCSR.js";
6
6
  import {
7
7
  DefaultVmContext,
8
8
  convert_exports,
@@ -11,7 +11,7 @@ import {
11
11
  lib,
12
12
  operations_exports,
13
13
  wrapScript
14
- } from "./chunk-UM7PQV4L.js";
14
+ } from "./chunk-C6YXWSTI.js";
15
15
  import {
16
16
  DiagnosticCode,
17
17
  constants_exports,
@@ -29,7 +29,7 @@ import {
29
29
  serializeRecord,
30
30
  serializeRecordKey,
31
31
  serializeString
32
- } from "./chunk-VZGKLLRC.js";
32
+ } from "./chunk-SEZII6RI.js";
33
33
  export {
34
34
  DefaultVmContext,
35
35
  DiagnosticCode,
@@ -17,7 +17,7 @@ export declare const debug_print: ((...args: readonly (import("../../types/index
17
17
  serializer: typeof defaultSerializer;
18
18
  };
19
19
  export declare const panic: ((message: VmAny) => never) & import("../helpers.js").VmLibOption & {
20
- prefix: readonly string[];
20
+ prefix: readonly [prefix: string, ...additional: readonly string[]];
21
21
  serializer: typeof defaultSerializer;
22
22
  };
23
23
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"debug.d.ts","sourceRoot":"","sources":["../../../../src/vm/lib/global/debug.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAGlD,YAAY;AACZ,KAAK,eAAe;AAChB,cAAc;AACZ,EAAE;AACJ,qBAAqB;GACnB,IAAI,MAAM,EAAE,CAAC;AACnB;;;;;GAKG;AACH,iBAAS,iBAAiB,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,eAAe,GAAG,MAAM,GAAG,IAAI,CAE7E;AAcD,eAAO,MAAM,WAAW;YA2DU,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;;CAG5F,CAAC;AAEF,eAAO,MAAM,KAAK,aACJ,KAAK;YAiBe,SAAS,MAAM,EAAE;;CAGlD,CAAC"}
1
+ {"version":3,"file":"debug.d.ts","sourceRoot":"","sources":["../../../../src/vm/lib/global/debug.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAGlD,YAAY;AACZ,KAAK,eAAe;AAChB,cAAc;AACZ,EAAE;AACJ,qBAAqB;GACnB,IAAI,MAAM,EAAE,CAAC;AACnB;;;;;GAKG;AACH,iBAAS,iBAAiB,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,eAAe,GAAG,MAAM,GAAG,IAAI,CAE7E;AAcD,eAAO,MAAM,WAAW;YA2DU,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;;CAG5F,CAAC;AAEF,eAAO,MAAM,KAAK,aACJ,KAAK;YAiBe,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;;CAG5F,CAAC"}
@@ -4,6 +4,12 @@ export declare const PI: {
4
4
  export declare const E: {
5
5
  value: number;
6
6
  } & import("../helpers.js").VmLibOption & Record<never, never>;
7
+ export declare const pi: {
8
+ value: number;
9
+ } & import("../helpers.js").VmLibOption & Record<never, never>;
10
+ export declare const e: {
11
+ value: number;
12
+ } & import("../helpers.js").VmLibOption & Record<never, never>;
7
13
  export declare const SQRT1_2: {
8
14
  value: number;
9
15
  } & import("../helpers.js").VmLibOption & Record<never, never>;
@@ -1 +1 @@
1
- {"version":3,"file":"math-const.d.ts","sourceRoot":"","sources":["../../../../src/vm/lib/global/math-const.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,EAAE;;8DAGb,CAAC;AACH,eAAO,MAAM,CAAC;;8DAGZ,CAAC;AACH,eAAO,MAAM,OAAO;;8DAGlB,CAAC;AACH,eAAO,MAAM,KAAK;;8DAGhB,CAAC;AACH,eAAO,MAAM,GAAG;;8DAGd,CAAC;AACH,eAAO,MAAM,IAAI;;8DAGf,CAAC;AACH,eAAO,MAAM,KAAK;;8DAGhB,CAAC;AACH,eAAO,MAAM,MAAM;;8DAGjB,CAAC"}
1
+ {"version":3,"file":"math-const.d.ts","sourceRoot":"","sources":["../../../../src/vm/lib/global/math-const.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,EAAE;;8DAGb,CAAC;AACH,eAAO,MAAM,CAAC;;8DAGZ,CAAC;AACH,eAAO,MAAM,EAAE;;8DAOb,CAAC;AACH,eAAO,MAAM,CAAC;;8DAOZ,CAAC;AACH,eAAO,MAAM,OAAO;;8DAGlB,CAAC;AACH,eAAO,MAAM,KAAK;;8DAGhB,CAAC;AACH,eAAO,MAAM,GAAG;;8DAGd,CAAC;AACH,eAAO,MAAM,IAAI;;8DAGf,CAAC;AACH,eAAO,MAAM,KAAK;;8DAGhB,CAAC;AACH,eAAO,MAAM,MAAM;;8DAGjB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"time.d.ts","sourceRoot":"","sources":["../../../../src/vm/lib/global/time.ts"],"names":[],"mappings":"AAkCA,eAAO,MAAM,YAAY,mPAgBxB,CAAC;AAEF,eAAO,MAAM,WAAW,+SAsCvB,CAAC;AAEF,eAAO,MAAM,UAAU,mPAgBtB,CAAC"}
1
+ {"version":3,"file":"time.d.ts","sourceRoot":"","sources":["../../../../src/vm/lib/global/time.ts"],"names":[],"mappings":"AAkCA,eAAO,MAAM,YAAY,mPAgBxB,CAAC;AAEF,eAAO,MAAM,WAAW,+SAuCvB,CAAC;AAEF,eAAO,MAAM,UAAU,mPAgBtB,CAAC"}
@@ -46,7 +46,7 @@ export declare function map(data: VmConst,
46
46
  /** 返回 `undefined` 表示跳过该元素 */
47
47
  mapper: (value: VmConst, index: number | string | null, data: VmConst) => VmConst | undefined): VmConst;
48
48
  /** 库函数选项 */
49
- export type VmLibOption = Pick<VmFunctionOption, 'summary' | 'params' | 'paramsType' | 'returns' | 'returnsType' | 'examples' | 'injectCp'>;
49
+ export type VmLibOption = Pick<VmFunctionOption, 'summary' | 'params' | 'paramsType' | 'returns' | 'returnsType' | 'examples' | 'injectCp' | 'deprecated'>;
50
50
  /** 库函数 */
51
51
  export type VmLib<T extends VmFunctionLike | VmConst = VmFunctionLike> = (T extends VmFunctionLike ? T : {
52
52
  value: T;
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/vm/lib/helpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/vm/lib/helpers.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACR,QAAQ,EACR,UAAU,EACV,KAAK,EACL,OAAO,EACP,OAAO,EACP,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,cAAc,EACd,gBAAgB,EACnB,MAAM,mBAAmB,CAAC;AAG3B,WAAW;AACX,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,GAAG,CAAC,MAAM,KAAK,CAAC,GAAG,KAAK,CAGnF;AACD,WAAW;AACX,KAAK,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;AACzC,WAAW;AACX,wBAAgB,aAAa,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAQtD;AAED,gBAAgB;AAChB,wBAAgB,wBAAwB,CACpC,IAAI,EAAE,UAAU,EAChB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,KAAK,GAAG,CAAC,MAAM,KAAK,CAAC,GACjC,KAAK,CAEP;AACD,gBAAgB;AAChB,wBAAgB,yBAAyB,CACrC,IAAI,EAAE,UAAU,EAChB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,KAAK,GAAG,CAAC,MAAM,KAAK,CAAC,GACjC,KAAK,CAEP;AAED,aAAa;AACb,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,GAAG,CAAC,MAAM,KAAK,CAAC,GAAG,KAAK,CAGpG;AAED,eAAe;AACf,wBAAgB,QAAQ,CAAC,KAAK,CAAC,CAAC,GAAG,OAAO,EACtC,IAAI,EAAE,UAAU,EAChB,KAAK,EAAE,CAAC,GAAG,SAAS,EACpB,SAAS,EAAE,KAAK,GAAG,CAAC,MAAM,KAAK,CAAC,GACjC,OAAO,CAAC,KAAK,IAAI,CAAC,CAIpB;AAED,iBAAiB;AACjB,wBAAgB,YAAY,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,GAAG,MAAM,CAOnE;AACD,iBAAiB;AACjB,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAYlG;AACD,iBAAiB;AACjB,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CASnG;AACD,iBAAiB;AACjB,wBAAgB,aAAa,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,GAAG,MAAM,CAWpE;AAED,kBAAkB;AAClB,wBAAgB,aAAa,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAOrE;AAED,kBAAkB;AAClB,wBAAgB,YAAY,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,GAAG,MAAM,CAOnE;AAED,cAAc;AACd,wBAAgB,WAAW,CACvB,IAAI,EAAE,UAAU,EAChB,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,KAAK,GAAG,CAAC,MAAM,KAAK,CAAC,GACjC,OAAO,CAAC,KAAK,IAAI,OAAO,CAK1B;AAED,cAAc;AACd,wBAAgB,YAAY,CACxB,IAAI,EAAE,UAAU,EAChB,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,KAAK,GAAG,CAAC,MAAM,KAAK,CAAC,GACjC,OAAO,CAAC,KAAK,IAAI,QAAQ,CAK3B;AAED,iBAAiB;AACjB,wBAAgB,mBAAmB,CAC/B,IAAI,EAAE,UAAU,EAChB,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,KAAK,GAAG,CAAC,MAAM,KAAK,CAAC,GACjC,OAAO,CAAC,KAAK,IAAI,OAAO,GAAG,QAAQ,CAKrC;AAED,gBAAgB;AAChB,wBAAgB,cAAc,CAC1B,IAAI,EAAE,UAAU,EAChB,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,KAAK,GAAG,CAAC,MAAM,KAAK,CAAC,GACjC,OAAO,CAAC,KAAK,IAAI,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAK3D;AAED,cAAc;AACd,wBAAgB,WAAW,CACvB,IAAI,EAAE,UAAU,EAChB,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,KAAK,GAAG,CAAC,MAAM,KAAK,CAAC,GACjC,OAAO,CAAC,KAAK,IAAI,OAAO,CAK1B;AAED,aAAa;AACb,wBAAgB,cAAc,CAC1B,IAAI,EAAE,UAAU,EAChB,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,KAAK,GAAG,CAAC,MAAM,KAAK,CAAC,GACjC,OAAO,CAAC,KAAK,IAAI,UAAU,GAAG,QAAQ,CAKxC;AAED,sCAAsC;AACtC,wBAAgB,UAAU,CAAC,IAAI,EAAE,SAAS,KAAK,EAAE,GAAG,MAAM,EAAE,CAY3D;AAED,eAAe;AACf,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAS/D;AAED,aAAa;AACb,wBAAgB,GAAG,CACf,IAAI,EAAE,OAAO;AACb,6BAA6B;AAC7B,MAAM,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,EAAE,IAAI,EAAE,OAAO,KAAK,OAAO,GAAG,SAAS,GAC9F,OAAO,CAwBT;AAED,YAAY;AACZ,MAAM,MAAM,WAAW,GAAG,IAAI,CAC1B,gBAAgB,EAChB,SAAS,GAAG,QAAQ,GAAG,YAAY,GAAG,SAAS,GAAG,aAAa,GAAG,UAAU,GAAG,UAAU,GAAG,YAAY,CAC3G,CAAC;AACF,UAAU;AACV,MAAM,MAAM,KAAK,CAAC,CAAC,SAAS,cAAc,GAAG,OAAO,GAAG,cAAc,IAAI,CAAC,CAAC,SAAS,cAAc,GAAG,CAAC,GAAG;IAAE,KAAK,EAAE,CAAC,CAAA;CAAE,CAAC,GAClH,WAAW,CAAC;AAEhB,YAAY;AACZ,wBAAgB,KAAK,CACjB,KAAK,CAAC,CAAC,SAAS,cAAc,GAAG,OAAO,EACxC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,EAC1D,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAc7D"}
@@ -1,5 +1,9 @@
1
- import type { VmAny, VmArray, VmValue } from '../types/index.js';
2
- export declare const $Call: (func: VmValue, args: readonly VmAny[]) => VmValue;
1
+ import type { VmExtern, VmFunction, VmAny, VmArray, VmValue } from '../types/index.js';
2
+ /** 调用返回类型 */
3
+ type CallReturn<T extends VmValue> = T extends VmFunction<infer F> ? F extends (...args: readonly VmAny[]) => infer R ? R extends void | undefined ? null : R : VmValue : T extends VmExtern<infer E> ? E extends (...args: readonly VmAny[]) => infer R ? R extends void | undefined ? null : R extends VmValue ? R : R extends object ? VmExtern<R> : VmValue : VmValue : VmValue;
4
+ /** 调用函数 */
5
+ export declare function $Call<T extends VmValue, A extends readonly VmValue[]>(func: T, args: A): CallReturn<T>;
3
6
  /** 过滤剩余参数数组 */
4
- export declare const $VArgs: (varags: VmAny[]) => VmArray;
7
+ export declare function $VArgs(varags: VmAny[]): VmArray;
8
+ export {};
5
9
  //# sourceMappingURL=call.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"call.d.ts","sourceRoot":"","sources":["../../../src/vm/operations/call.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAGjE,eAAO,MAAM,KAAK,GAAI,MAAM,OAAO,EAAE,MAAM,SAAS,KAAK,EAAE,KAAG,OAW7D,CAAC;AAEF,eAAe;AACf,eAAO,MAAM,MAAM,GAAI,QAAQ,KAAK,EAAE,KAAG,OAQxC,CAAC"}
1
+ {"version":3,"file":"call.d.ts","sourceRoot":"","sources":["../../../src/vm/operations/call.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAGvF,aAAa;AACb,KAAK,UAAU,CAAC,CAAC,SAAS,OAAO,IAC7B,CAAC,SAAS,UAAU,CAAC,MAAM,CAAC,CAAC,GACvB,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,SAAS,KAAK,EAAE,KAAK,MAAM,CAAC,GAE5C,CAAC,SAAS,IAAI,GAAG,SAAS,GACtB,IAAI,GACJ,CAAC,GACL,OAAO,GACX,CAAC,SAAS,QAAQ,CAAC,MAAM,CAAC,CAAC,GACzB,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,SAAS,KAAK,EAAE,KAAK,MAAM,CAAC,GAE5C,CAAC,SAAS,IAAI,GAAG,SAAS,GACtB,IAAI,GACJ,CAAC,SAAS,OAAO,GACf,CAAC,GACD,CAAC,SAAS,MAAM,GACd,QAAQ,CAAC,CAAC,CAAC,GACX,OAAO,GACf,OAAO,GACX,OAAO,CAAC;AAEpB,WAAW;AACX,wBAAgB,KAAK,CAAC,CAAC,SAAS,OAAO,EAAE,CAAC,SAAS,SAAS,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAWtG;AAED,eAAe;AACf,wBAAgB,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,CAQ/C"}
@@ -1,3 +1,4 @@
1
1
  import type { VmAny, VmValue } from '../types/index.js';
2
- export declare const $AssertInit: (value: VmAny) => asserts value is VmValue;
2
+ /** 断言值已初始化 */
3
+ export declare function $AssertInit(value: VmAny): asserts value is VmValue;
3
4
  //# sourceMappingURL=common.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../src/vm/operations/common.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAExD,eAAO,MAAM,WAAW,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC,KAAK,IAAI,OAE5D,CAAC"}
1
+ {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../src/vm/operations/common.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAExD,cAAc;AACd,wBAAgB,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,OAAO,CAElE"}
@@ -1,12 +1,22 @@
1
1
  import type { VmAny, VmRecord, VmValue, VmConst } from '../types/index.js';
2
- export declare const $In: (value: VmAny, iterable: VmAny) => boolean;
3
- export declare const $Length: (value: VmAny) => number;
4
- export declare const $Omit: (value: VmAny, omitted: ReadonlyArray<number | string>) => VmRecord;
5
- export declare const $Pick: (value: VmAny, picked: ReadonlyArray<number | string>) => VmRecord;
6
- export declare const $Has: (obj: VmAny, key: VmAny) => boolean;
7
- export declare const $Get: (obj: VmAny, key: VmAny) => VmValue;
8
- export declare const $Set: (obj: VmAny, key: VmAny, value: VmAny) => void;
9
- export declare const $Iterable: (value: VmAny) => Iterable<VmValue | undefined>;
10
- export declare const $RecordSpread: (record: VmAny) => VmRecord | null;
11
- export declare const $ArraySpread: (array: VmAny) => Iterable<VmConst | undefined>;
2
+ /** 检查值是否在可迭代对象中 */
3
+ export declare function $In(value: VmAny, iterable: VmAny): boolean;
4
+ /** 获取值的长度 */
5
+ export declare function $Length(value: VmAny): number;
6
+ /** 删除记录中的指定字段 */
7
+ export declare function $Omit(value: VmAny, omitted: ReadonlyArray<number | string>): VmRecord;
8
+ /** 选择记录中的指定字段 */
9
+ export declare function $Pick(value: VmAny, picked: ReadonlyArray<number | string>): VmRecord;
10
+ /** 检查是否拥有字段 */
11
+ export declare function $Has(obj: VmAny, key: VmAny): boolean;
12
+ /** 获取字段 */
13
+ export declare function $Get(obj: VmAny, key: VmAny): VmValue;
14
+ /** 设置字段 */
15
+ export declare function $Set(obj: VmAny, key: VmAny, value: VmAny): void;
16
+ /** 获取可迭代对象 */
17
+ export declare function $Iterable(value: VmAny): Iterable<VmValue | undefined>;
18
+ /** 展开记录 */
19
+ export declare function $RecordSpread(record: VmAny): VmRecord | null;
20
+ /** 展开数组 */
21
+ export declare function $ArraySpread(array: VmAny): Iterable<VmConst | undefined>;
12
22
  //# sourceMappingURL=compound.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"compound.d.ts","sourceRoot":"","sources":["../../../src/vm/operations/compound.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAQ3E,eAAO,MAAM,GAAG,GAAI,OAAO,KAAK,EAAE,UAAU,KAAK,KAAG,OAoBnD,CAAC;AACF,eAAO,MAAM,OAAO,GAAI,OAAO,KAAK,KAAG,MAOtC,CAAC;AACF,eAAO,MAAM,KAAK,GAAI,OAAO,KAAK,EAAE,SAAS,aAAa,CAAC,MAAM,GAAG,MAAM,CAAC,KAAG,QAa7E,CAAC;AACF,eAAO,MAAM,KAAK,GAAI,OAAO,KAAK,EAAE,QAAQ,aAAa,CAAC,MAAM,GAAG,MAAM,CAAC,KAAG,QAW5E,CAAC;AACF,eAAO,MAAM,IAAI,GAAI,KAAK,KAAK,EAAE,KAAK,KAAK,KAAG,OAM7C,CAAC;AACF,eAAO,MAAM,IAAI,GAAI,KAAK,KAAK,EAAE,KAAK,KAAK,KAAG,OAa7C,CAAC;AACF,eAAO,MAAM,IAAI,GAAI,KAAK,KAAK,EAAE,KAAK,KAAK,EAAE,OAAO,KAAK,KAAG,IAO3D,CAAC;AACF,eAAO,MAAM,SAAS,GAAI,OAAO,KAAK,KAAG,QAAQ,CAAC,OAAO,GAAG,SAAS,CAMpE,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,QAAQ,KAAK,KAAG,QAAQ,GAAG,IAwBxD,CAAC;AAEF,eAAO,MAAM,YAAY,GAAI,OAAO,KAAK,KAAG,QAAQ,CAAC,OAAO,GAAG,SAAS,CAiBvE,CAAC"}
1
+ {"version":3,"file":"compound.d.ts","sourceRoot":"","sources":["../../../src/vm/operations/compound.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAQ3E,mBAAmB;AACnB,wBAAgB,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,GAAG,OAAO,CAoB1D;AAED,aAAa;AACb,wBAAgB,OAAO,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAO5C;AAED,iBAAiB;AACjB,wBAAgB,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,aAAa,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG,QAAQ,CAarF;AAED,iBAAiB;AACjB,wBAAgB,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG,QAAQ,CAWpF;AACD,eAAe;AACf,wBAAgB,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,GAAG,OAAO,CAMpD;AACD,WAAW;AACX,wBAAgB,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,GAAG,OAAO,CAuBpD;AACD,WAAW;AACX,wBAAgB,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI,CAO/D;AACD,cAAc;AACd,wBAAgB,SAAS,CAAC,KAAK,EAAE,KAAK,GAAG,QAAQ,CAAC,OAAO,GAAG,SAAS,CAAC,CAMrE;AACD,WAAW;AACX,wBAAgB,aAAa,CAAC,MAAM,EAAE,KAAK,GAAG,QAAQ,GAAG,IAAI,CAwB5D;AAED,WAAW;AACX,wBAAgB,YAAY,CAAC,KAAK,EAAE,KAAK,GAAG,QAAQ,CAAC,OAAO,GAAG,SAAS,CAAC,CAqBxE"}
@@ -1,6 +1,10 @@
1
1
  import type { VmAny } from '../types/index.js';
2
- export declare const $ToBoolean: (value: VmAny) => boolean;
3
- export declare const $ToString: (value: VmAny) => string;
4
- export declare const $ToNumber: (value: VmAny) => number;
5
- export declare const $Format: (value: VmAny, format: string | null) => string;
2
+ /** 转换为布尔值 */
3
+ export declare function $ToBoolean(value: VmAny): boolean;
4
+ /** 转换为字符串 */
5
+ export declare function $ToString(value: VmAny): string;
6
+ /** 转换为数字 */
7
+ export declare function $ToNumber(value: VmAny): number;
8
+ /** 格式化值 */
9
+ export declare function $Format(value: VmAny, format: string | null): string;
6
10
  //# sourceMappingURL=convert.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"convert.d.ts","sourceRoot":"","sources":["../../../src/vm/operations/convert.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAG/C,eAAO,MAAM,UAAU,GAAI,OAAO,KAAK,KAAG,OAIzC,CAAC;AACF,eAAO,MAAM,SAAS,GAAI,OAAO,KAAK,KAAG,MAIxC,CAAC;AACF,eAAO,MAAM,SAAS,GAAI,OAAO,KAAK,KAAG,MAIxC,CAAC;AACF,eAAO,MAAM,OAAO,GAAI,OAAO,KAAK,EAAE,QAAQ,MAAM,GAAG,IAAI,KAAG,MAG7D,CAAC"}
1
+ {"version":3,"file":"convert.d.ts","sourceRoot":"","sources":["../../../src/vm/operations/convert.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAG/C,aAAa;AACb,wBAAgB,UAAU,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAIhD;AACD,aAAa;AACb,wBAAgB,SAAS,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAI9C;AACD,YAAY;AACZ,wBAAgB,SAAS,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAI9C;AACD,WAAW;AACX,wBAAgB,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAGnE"}
@@ -3,15 +3,17 @@ import { type VmContext } from '../types/context.js';
3
3
  import type { VmConst, VmAny, VmArray, VmValue } from '../types/index.js';
4
4
  import { VmFunction } from '../types/function.js';
5
5
  /** 构造 record | array 元素 */
6
- export declare const $El: (value: VmAny) => VmConst;
6
+ export declare function $El(value: VmAny): VmConst;
7
7
  /** 构造 record 可选元素 */
8
- export declare const $ElOpt: (key: string, value: VmAny) => VmConst;
8
+ export declare function $ElOpt(key: string, value: VmAny): VmConst;
9
9
  /** 构造函数和函数表达式 */
10
- export declare const $Fn: (name: string | null | undefined, fn: VmFunctionLike) => VmFunction;
10
+ export declare function $Fn<T extends VmFunctionLike>(name: string | null | undefined, fn: T): VmFunction<T>;
11
11
  /** 读取闭包上值 */
12
- export declare const $Upvalue: (value: VmAny) => VmValue;
13
- export declare const $ArrayRange: (start: VmAny, end: VmAny) => VmArray;
14
- export declare const $ArrayRangeExclusive: (start: VmAny, end: VmAny) => VmArray;
12
+ export declare function $Upvalue(value: VmAny): VmValue;
13
+ /** 构造范围数组 */
14
+ export declare function $ArrayRange(start: VmAny, end: VmAny): VmArray;
15
+ /** 构造范围数组(不包含结束值) */
16
+ export declare function $ArrayRangeExclusive(start: VmAny, end: VmAny): VmArray;
15
17
  /** 默认执行上下文 */
16
18
  export declare function $GlobalFallback(): VmContext;
17
19
  //# sourceMappingURL=helpers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/vm/operations/helpers.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAoB,KAAK,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACvE,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC1E,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAIlD,2BAA2B;AAC3B,eAAO,MAAM,GAAG,GAAI,OAAO,KAAK,KAAG,OAIlC,CAAC;AAGF,qBAAqB;AACrB,eAAO,MAAM,MAAM,GAAI,KAAK,MAAM,EAAE,OAAO,KAAK,KAAG,OAIlD,CAAC;AAEF,iBAAiB;AACjB,eAAO,MAAM,GAAG,GAAI,MAAM,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,IAAI,cAAc,KAAG,UAGzE,CAAC;AAEF,aAAa;AACb,eAAO,MAAM,QAAQ,GAAI,OAAO,KAAK,KAAG,OAGvC,CAAC;AAUF,eAAO,MAAM,WAAW,GAAI,OAAO,KAAK,EAAE,KAAK,KAAK,KAAG,OAUtD,CAAC;AACF,eAAO,MAAM,oBAAoB,GAAI,OAAO,KAAK,EAAE,KAAK,KAAK,KAAG,OAU/D,CAAC;AAEF,cAAc;AACd,wBAAgB,eAAe,IAAI,SAAS,CAE3C"}
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/vm/operations/helpers.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAoB,KAAK,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACvE,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC1E,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAIlD,2BAA2B;AAC3B,wBAAgB,GAAG,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAIzC;AAGD,qBAAqB;AACrB,wBAAgB,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAIzD;AAED,iBAAiB;AACjB,wBAAgB,GAAG,CAAC,CAAC,SAAS,cAAc,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,EAAE,EAAE,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAGnG;AAED,aAAa;AACb,wBAAgB,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAG9C;AAUD,aAAa;AACb,wBAAgB,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,GAAG,OAAO,CAU7D;AACD,qBAAqB;AACrB,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,GAAG,OAAO,CAUtE;AAED,cAAc;AACd,wBAAgB,eAAe,IAAI,SAAS,CAE3C"}
@@ -1,24 +1,46 @@
1
1
  import type { VmAny } from '../types/index.js';
2
- export declare const $Concat: (...args: readonly string[]) => string;
3
- export declare const $Pos: (a: VmAny) => number;
4
- export declare const $Neg: (a: VmAny) => number;
5
- export declare const $Not: (a: VmAny) => boolean;
6
- export declare const $Add: (a: VmAny, b: VmAny) => number;
7
- export declare const $Sub: (a: VmAny, b: VmAny) => number;
8
- export declare const $Mul: (a: VmAny, b: VmAny) => number;
9
- export declare const $Div: (a: VmAny, b: VmAny) => number;
10
- export declare const $Mod: (a: VmAny, b: VmAny) => number;
11
- export declare const $Pow: (a: VmAny, b: VmAny) => number;
12
- export declare const $And: (a: VmAny, b: VmAny) => boolean;
13
- export declare const $Or: (a: VmAny, b: VmAny) => boolean;
14
- export declare const $Gt: (a: VmAny, b: VmAny) => boolean;
15
- export declare const $Gte: (a: VmAny, b: VmAny) => boolean;
16
- export declare const $Lt: (a: VmAny, b: VmAny) => boolean;
17
- export declare const $Lte: (a: VmAny, b: VmAny) => boolean;
18
- export declare const $Eq: (a: VmAny, b: VmAny) => boolean;
19
- export declare const $Neq: (a: VmAny, b: VmAny) => boolean;
20
- export declare const $Aeq: (a: VmAny, b: VmAny) => boolean;
21
- export declare const $Naeq: (a: VmAny, b: VmAny) => boolean;
22
- export declare const $Same: (a: VmAny, b: VmAny) => boolean;
23
- export declare const $Nsame: (a: VmAny, b: VmAny) => boolean;
2
+ /** 字符串连接 */
3
+ export declare function $Concat(...args: readonly string[]): string;
4
+ /** 正号 */
5
+ export declare function $Pos(a: VmAny): number;
6
+ /** 负号 */
7
+ export declare function $Neg(a: VmAny): number;
8
+ /** */
9
+ export declare function $Not(a: VmAny): boolean;
10
+ /** 加法 */
11
+ export declare function $Add(a: VmAny, b: VmAny): number;
12
+ /** 减法 */
13
+ export declare function $Sub(a: VmAny, b: VmAny): number;
14
+ /** 乘法 */
15
+ export declare function $Mul(a: VmAny, b: VmAny): number;
16
+ /** 除法 */
17
+ export declare function $Div(a: VmAny, b: VmAny): number;
18
+ /** 取模 */
19
+ export declare function $Mod(a: VmAny, b: VmAny): number;
20
+ /** 乘方 */
21
+ export declare function $Pow(a: VmAny, b: VmAny): number;
22
+ /** */
23
+ export declare function $And(a: VmAny, b: VmAny): boolean;
24
+ /** 或 */
25
+ export declare function $Or(a: VmAny, b: VmAny): boolean;
26
+ /** 大于 */
27
+ export declare function $Gt(a: VmAny, b: VmAny): boolean;
28
+ /** 大于等于 */
29
+ export declare function $Gte(a: VmAny, b: VmAny): boolean;
30
+ /** 小于 */
31
+ export declare function $Lt(a: VmAny, b: VmAny): boolean;
32
+ /** 小于等于 */
33
+ export declare function $Lte(a: VmAny, b: VmAny): boolean;
34
+ /** 等于 */
35
+ export declare function $Eq(a: VmAny, b: VmAny): boolean;
36
+ /** 不等于 */
37
+ export declare function $Neq(a: VmAny, b: VmAny): boolean;
38
+ /** 近似等于 */
39
+ export declare function $Aeq(a: VmAny, b: VmAny): boolean;
40
+ /** 不近似等于 */
41
+ export declare function $Naeq(a: VmAny, b: VmAny): boolean;
42
+ /** 全等于 */
43
+ export declare function $Same(a: VmAny, b: VmAny): boolean;
44
+ /** 不全等于 */
45
+ export declare function $Nsame(a: VmAny, b: VmAny): boolean;
24
46
  //# sourceMappingURL=operator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"operator.d.ts","sourceRoot":"","sources":["../../../src/vm/operations/operator.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAM/C,eAAO,MAAM,OAAO,GAAI,GAAG,MAAM,SAAS,MAAM,EAAE,KAAG,MAEpD,CAAC;AAGF,eAAO,MAAM,IAAI,GAAI,GAAG,KAAK,KAAG,MAE/B,CAAC;AACF,eAAO,MAAM,IAAI,GAAI,GAAG,KAAK,KAAG,MAE/B,CAAC;AACF,eAAO,MAAM,IAAI,GAAI,GAAG,KAAK,KAAG,OAE/B,CAAC;AAGF,eAAO,MAAM,IAAI,GAAI,GAAG,KAAK,EAAE,GAAG,KAAK,KAAG,MAEzC,CAAC;AACF,eAAO,MAAM,IAAI,GAAI,GAAG,KAAK,EAAE,GAAG,KAAK,KAAG,MAEzC,CAAC;AACF,eAAO,MAAM,IAAI,GAAI,GAAG,KAAK,EAAE,GAAG,KAAK,KAAG,MAEzC,CAAC;AACF,eAAO,MAAM,IAAI,GAAI,GAAG,KAAK,EAAE,GAAG,KAAK,KAAG,MAEzC,CAAC;AACF,eAAO,MAAM,IAAI,GAAI,GAAG,KAAK,EAAE,GAAG,KAAK,KAAG,MAEzC,CAAC;AACF,eAAO,MAAM,IAAI,GAAI,GAAG,KAAK,EAAE,GAAG,KAAK,KAAG,MAEzC,CAAC;AAGF,eAAO,MAAM,IAAI,GAAI,GAAG,KAAK,EAAE,GAAG,KAAK,KAAG,OAEzC,CAAC;AACF,eAAO,MAAM,GAAG,GAAI,GAAG,KAAK,EAAE,GAAG,KAAK,KAAG,OAExC,CAAC;AAGF,eAAO,MAAM,GAAG,GAAI,GAAG,KAAK,EAAE,GAAG,KAAK,KAAG,OAMxC,CAAC;AACF,eAAO,MAAM,IAAI,GAAI,GAAG,KAAK,EAAE,GAAG,KAAK,KAAG,OAMzC,CAAC;AACF,eAAO,MAAM,GAAG,GAAI,GAAG,KAAK,EAAE,GAAG,KAAK,KAAG,OAMxC,CAAC;AACF,eAAO,MAAM,IAAI,GAAI,GAAG,KAAK,EAAE,GAAG,KAAK,KAAG,OAMzC,CAAC;AAGF,eAAO,MAAM,GAAG,GAAI,GAAG,KAAK,EAAE,GAAG,KAAK,KAAG,OAMxC,CAAC;AACF,eAAO,MAAM,IAAI,GAAI,GAAG,KAAK,EAAE,GAAG,KAAK,KAAG,OAEzC,CAAC;AAGF,eAAO,MAAM,IAAI,GAAI,GAAG,KAAK,EAAE,GAAG,KAAK,KAAG,OAwBzC,CAAC;AACF,eAAO,MAAM,KAAK,GAAI,GAAG,KAAK,EAAE,GAAG,KAAK,KAAG,OAE1C,CAAC;AAEF,eAAO,MAAM,KAAK,GAAI,GAAG,KAAK,EAAE,GAAG,KAAK,KAAG,OAI1C,CAAC;AACF,eAAO,MAAM,MAAM,GAAI,GAAG,KAAK,EAAE,GAAG,KAAK,KAAG,OAE3C,CAAC"}
1
+ {"version":3,"file":"operator.d.ts","sourceRoot":"","sources":["../../../src/vm/operations/operator.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAM/C,YAAY;AACZ,wBAAgB,OAAO,CAAC,GAAG,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,CAE1D;AAGD,SAAS;AACT,wBAAgB,IAAI,CAAC,CAAC,EAAE,KAAK,GAAG,MAAM,CAErC;AACD,SAAS;AACT,wBAAgB,IAAI,CAAC,CAAC,EAAE,KAAK,GAAG,MAAM,CAErC;AACD,QAAQ;AACR,wBAAgB,IAAI,CAAC,CAAC,EAAE,KAAK,GAAG,OAAO,CAEtC;AAGD,SAAS;AACT,wBAAgB,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,GAAG,MAAM,CAE/C;AACD,SAAS;AACT,wBAAgB,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,GAAG,MAAM,CAE/C;AACD,SAAS;AACT,wBAAgB,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,GAAG,MAAM,CAE/C;AACD,SAAS;AACT,wBAAgB,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,GAAG,MAAM,CAE/C;AACD,SAAS;AACT,wBAAgB,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,GAAG,MAAM,CAE/C;AACD,SAAS;AACT,wBAAgB,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,GAAG,MAAM,CAE/C;AAGD,QAAQ;AACR,wBAAgB,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,GAAG,OAAO,CAEhD;AACD,QAAQ;AACR,wBAAgB,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,GAAG,OAAO,CAE/C;AAGD,SAAS;AACT,wBAAgB,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,GAAG,OAAO,CAM/C;AACD,WAAW;AACX,wBAAgB,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,GAAG,OAAO,CAMhD;AACD,SAAS;AACT,wBAAgB,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,GAAG,OAAO,CAM/C;AACD,WAAW;AACX,wBAAgB,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,GAAG,OAAO,CAMhD;AAGD,SAAS;AACT,wBAAgB,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,GAAG,OAAO,CAM/C;AACD,UAAU;AACV,wBAAgB,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,GAAG,OAAO,CAEhD;AAGD,WAAW;AACX,wBAAgB,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,GAAG,OAAO,CAwBhD;AACD,YAAY;AACZ,wBAAgB,KAAK,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,GAAG,OAAO,CAEjD;AAED,UAAU;AACV,wBAAgB,KAAK,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,GAAG,OAAO,CAIjD;AACD,WAAW;AACX,wBAAgB,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,GAAG,OAAO,CAElD"}
@@ -1,4 +1,6 @@
1
1
  import type { VmAny, VmArray } from '../types/index.js';
2
- export declare const $Slice: (value: VmAny, start: VmAny, end: VmAny) => VmArray;
3
- export declare const $SliceExclusive: (value: VmAny, start: VmAny, end: VmAny) => VmArray;
2
+ /** 获取数组切片 */
3
+ export declare function $Slice(value: VmAny, start: VmAny, end: VmAny): VmArray;
4
+ /** 获取数组切片(不包含结束位置) */
5
+ export declare function $SliceExclusive(value: VmAny, start: VmAny, end: VmAny): VmArray;
4
6
  //# sourceMappingURL=slice.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"slice.d.ts","sourceRoot":"","sources":["../../../src/vm/operations/slice.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAuBxD,eAAO,MAAM,MAAM,GAAI,OAAO,KAAK,EAAE,OAAO,KAAK,EAAE,KAAK,KAAK,KAAG,OAM/D,CAAC;AACF,eAAO,MAAM,eAAe,GAAI,OAAO,KAAK,EAAE,OAAO,KAAK,EAAE,KAAK,KAAK,KAAG,OAMxE,CAAC"}
1
+ {"version":3,"file":"slice.d.ts","sourceRoot":"","sources":["../../../src/vm/operations/slice.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAuBxD,aAAa;AACb,wBAAgB,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,GAAG,OAAO,CAMtE;AACD,sBAAsB;AACtB,wBAAgB,eAAe,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,GAAG,OAAO,CAM/E"}
@@ -1,9 +1,16 @@
1
1
  import type { TypeName, VmAny, VmArray, VmRecord, VmValue } from '../types/index.js';
2
- export declare const $Type: (value: VmAny) => TypeName;
3
- export declare const $IsBoolean: (value: VmAny) => value is boolean;
4
- export declare const $IsNumber: (value: VmAny) => value is number;
5
- export declare const $IsString: (value: VmAny) => value is string;
6
- export declare const $IsRecord: (value: VmAny) => value is VmRecord;
7
- export declare const $IsArray: (value: VmAny) => value is VmArray;
8
- export declare const $AssertNonNil: (value: VmAny) => asserts value is NonNullable<VmValue>;
2
+ /** 获取值的类型名称 */
3
+ export declare function $Type(value: VmAny): TypeName;
4
+ /** 判断值是否为布尔值 */
5
+ export declare function $IsBoolean(value: VmAny): value is boolean;
6
+ /** 判断值是否为数字 */
7
+ export declare function $IsNumber(value: VmAny): value is number;
8
+ /** 判断值是否为字符串 */
9
+ export declare function $IsString(value: VmAny): value is string;
10
+ /** 判断值是否为记录 */
11
+ export declare function $IsRecord(value: VmAny): value is VmRecord;
12
+ /** 判断值是否为数组 */
13
+ export declare function $IsArray(value: VmAny): value is VmArray;
14
+ /** 断言值非 nil */
15
+ export declare function $AssertNonNil(value: VmAny): asserts value is NonNullable<VmValue>;
9
16
  //# sourceMappingURL=type-check.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"type-check.d.ts","sourceRoot":"","sources":["../../../src/vm/operations/type-check.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAGrF,eAAO,MAAM,KAAK,GAAI,OAAO,KAAK,KAAG,QAOpC,CAAC;AACF,eAAO,MAAM,UAAU,GAAI,OAAO,KAAK,KAAG,KAAK,IAAI,OAGlD,CAAC;AACF,eAAO,MAAM,SAAS,GAAI,OAAO,KAAK,KAAG,KAAK,IAAI,MAGjD,CAAC;AACF,eAAO,MAAM,SAAS,GAAI,OAAO,KAAK,KAAG,KAAK,IAAI,MAGjD,CAAC;AACF,eAAO,MAAM,SAAS,GAAI,OAAO,KAAK,KAAG,KAAK,IAAI,QAGjD,CAAC;AACF,eAAO,MAAM,QAAQ,GAAI,OAAO,KAAK,KAAG,KAAK,IAAI,OAGhD,CAAC;AACF,eAAO,MAAM,aAAa,GAAI,OAAO,KAAK,KAAG,QAAQ,KAAK,IAAI,WAAW,CAAC,OAAO,CAIhF,CAAC"}
1
+ {"version":3,"file":"type-check.d.ts","sourceRoot":"","sources":["../../../src/vm/operations/type-check.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAGrF,eAAe;AACf,wBAAgB,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG,QAAQ,CAO5C;AACD,gBAAgB;AAChB,wBAAgB,UAAU,CAAC,KAAK,EAAE,KAAK,GAAG,KAAK,IAAI,OAAO,CAGzD;AACD,eAAe;AACf,wBAAgB,SAAS,CAAC,KAAK,EAAE,KAAK,GAAG,KAAK,IAAI,MAAM,CAGvD;AACD,gBAAgB;AAChB,wBAAgB,SAAS,CAAC,KAAK,EAAE,KAAK,GAAG,KAAK,IAAI,MAAM,CAGvD;AACD,eAAe;AACf,wBAAgB,SAAS,CAAC,KAAK,EAAE,KAAK,GAAG,KAAK,IAAI,QAAQ,CAGzD;AACD,eAAe;AACf,wBAAgB,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,KAAK,IAAI,OAAO,CAGvD;AACD,eAAe;AACf,wBAAgB,aAAa,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,WAAW,CAAC,OAAO,CAAC,CAIjF"}
@@ -5,6 +5,8 @@ export declare function toVmFunctionProxy<T extends VmFunctionLike>(fn: VmFuncti
5
5
  /** 解开 Mirascript 函数在宿主语言运行的代理 */
6
6
  export declare function fromVmFunctionProxy<T extends VmFunctionLike>(fn: T): VmFunction<T> | null;
7
7
  /** 将宿主语言的值包装为 Mirascript 类型 */
8
+ export declare function wrapToVmConst(value: unknown, assumeVmValue?: ((obj: object) => obj is Exclude<VmConst, VmPrimitive>) | null): VmConst;
9
+ /** 将宿主语言的值包装为 Mirascript 类型 */
8
10
  export declare function wrapToVmValue(value: unknown, thisArg?: unknown, assumeVmValue?: ((obj: object) => obj is Exclude<VmConst, VmPrimitive>) | null): VmValue;
9
11
  /** 取消宿主语言的值的 Mirascript 包装 */
10
12
  export declare function unwrapFromVmValue(value: VmAny, bindThisArg?: boolean): unknown;
@@ -1 +1 @@
1
- {"version":3,"file":"boundary.d.ts","sourceRoot":"","sources":["../../../src/vm/types/boundary.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEhE,OAAO,KAAK,EAAE,KAAK,EAAE,OAAO,EAAY,WAAW,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAGjF,iCAAiC;AACjC,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,cAAc,EAAE,EAAE,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAmBhF;AAED,iCAAiC;AACjC,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,cAAc,EAAE,EAAE,EAAE,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,CAOzF;AAED,+BAA+B;AAC/B,wBAAgB,aAAa,CACzB,KAAK,EAAE,OAAO,EACd,OAAO,GAAE,OAAc,EACvB,aAAa,GAAE,CAAC,CAAC,GAAG,EAAE,MAAM,KAAK,GAAG,IAAI,OAAO,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,GAAG,IAAW,GACrF,OAAO,CA0BT;AAYD,+BAA+B;AAC/B,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,KAAK,EAAE,WAAW,UAAO,GAAG,OAAO,CAY3E"}
1
+ {"version":3,"file":"boundary.d.ts","sourceRoot":"","sources":["../../../src/vm/types/boundary.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEhE,OAAO,KAAK,EAAE,KAAK,EAAE,OAAO,EAAY,WAAW,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAGjF,iCAAiC;AACjC,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,cAAc,EAAE,EAAE,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAmBhF;AAED,iCAAiC;AACjC,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,cAAc,EAAE,EAAE,EAAE,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,CAOzF;AAED,+BAA+B;AAC/B,wBAAgB,aAAa,CACzB,KAAK,EAAE,OAAO,EACd,aAAa,GAAE,CAAC,CAAC,GAAG,EAAE,MAAM,KAAK,GAAG,IAAI,OAAO,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,GAAG,IAAW,GACrF,OAAO,CAsBT;AACD,+BAA+B;AAC/B,wBAAgB,aAAa,CACzB,KAAK,EAAE,OAAO,EACd,OAAO,GAAE,OAAc,EACvB,aAAa,GAAE,CAAC,CAAC,GAAG,EAAE,MAAM,KAAK,GAAG,IAAI,OAAO,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,GAAG,IAAW,GACrF,OAAO,CAeT;AAYD,+BAA+B;AAC/B,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,KAAK,EAAE,WAAW,UAAO,GAAG,OAAO,CAY3E"}
@@ -2,12 +2,17 @@ import type { TypeName, VmAny, VmConst, VmPrimitive, VmValue } from './index.js'
2
2
  import { VmWrapper } from './wrapper.js';
3
3
  /** 包装 Mirascript `extern` 类型的对象 */
4
4
  export declare class VmExtern<const T extends object = object> extends VmWrapper<T> {
5
+ /** 当 {@link value} 是函数时,绑定的 this 参数 */
5
6
  readonly thisArg: ThisParameterType<T> | null;
6
- constructor(value: T, thisArg?: ThisParameterType<T> | null);
7
+ constructor(
8
+ /** 包装值 */
9
+ value: T,
10
+ /** 当 {@link value} 是函数时,绑定的 this 参数 */
11
+ thisArg?: ThisParameterType<T> | null);
7
12
  /** Check if the object has a property */
8
13
  protected access(key: string, read: boolean): boolean;
9
14
  /** 决定是否对属性进行包装 */
10
- protected assumeVmValue(value: object, key: keyof T | undefined): value is Exclude<VmConst, VmPrimitive>;
15
+ assumeVmValue(value: object, key: keyof T | undefined): value is Exclude<VmConst, VmPrimitive>;
11
16
  /** @inheritdoc */
12
17
  has(key: string): boolean;
13
18
  /** @inheritdoc */
@@ -1 +1 @@
1
- {"version":3,"file":"extern.d.ts","sourceRoot":"","sources":["../../../src/vm/types/extern.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACjF,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAwBzC,mCAAmC;AACnC,qBAAa,QAAQ,CAAC,KAAK,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,CAAE,SAAQ,SAAS,CAAC,CAAC,CAAC;IAGnE,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAAG,IAAI;gBAD7C,KAAK,EAAE,CAAC,EACC,OAAO,GAAE,iBAAiB,CAAC,CAAC,CAAC,GAAG,IAAW;IAKxD,yCAAyC;IACzC,SAAS,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO;IAiBrD,kBAAkB;IAClB,SAAS,CAAC,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,SAAS,GAAG,KAAK,IAAI,OAAO,CAAC,OAAO,EAAE,WAAW,CAAC;IAIxG,kBAAkB;IACT,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAGlC,kBAAkB;IACT,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,KAAK;IAMhC,mCAAmC;IACnC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO;IAMzC,wBAAwB;IACxB,IAAI,CAAC,IAAI,EAAE,SAAS,OAAO,EAAE,GAAG,KAAK;IAerC,kBAAkB;IACT,IAAI,CAAC,oBAAoB,UAAQ,GAAG,MAAM,EAAE;IAqBrD,kBAAkB;IACT,IAAI,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO;IAIpC,kBAAkB;IAClB,WAAW,IAAI,IAAI,IAAI,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IAGnD,kBAAkB;IACT,QAAQ,CAAC,SAAS,EAAE,OAAO,GAAG,MAAM;IAiB7C,kBAAkB;IAClB,IAAa,IAAI,IAAI,QAAQ,CAE5B;IACD,kBAAkB;IAClB,IAAa,GAAG,IAAI,MAAM,CA6BzB;CACJ"}
1
+ {"version":3,"file":"extern.d.ts","sourceRoot":"","sources":["../../../src/vm/types/extern.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACjF,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAwBzC,mCAAmC;AACnC,qBAAa,QAAQ,CAAC,KAAK,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,CAAE,SAAQ,SAAS,CAAC,CAAC,CAAC;IAInE,uCAAuC;IACvC,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAAG,IAAI;;IAH7C,UAAU;IACV,KAAK,EAAE,CAAC;IACR,uCAAuC;IAC9B,OAAO,GAAE,iBAAiB,CAAC,CAAC,CAAC,GAAG,IAAW;IAKxD,yCAAyC;IACzC,SAAS,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO;IAiBrD,kBAAkB;IAClB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,SAAS,GAAG,KAAK,IAAI,OAAO,CAAC,OAAO,EAAE,WAAW,CAAC;IAI9F,kBAAkB;IACT,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAGlC,kBAAkB;IACT,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,KAAK;IAMhC,mCAAmC;IACnC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO;IAMzC,wBAAwB;IACxB,IAAI,CAAC,IAAI,EAAE,SAAS,OAAO,EAAE,GAAG,KAAK;IAerC,kBAAkB;IACT,IAAI,CAAC,oBAAoB,UAAQ,GAAG,MAAM,EAAE;IAqBrD,kBAAkB;IACT,IAAI,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO;IAIpC,kBAAkB;IAClB,WAAW,IAAI,IAAI,IAAI,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IAGnD,kBAAkB;IACT,QAAQ,CAAC,SAAS,EAAE,OAAO,GAAG,MAAM;IAiB7C,kBAAkB;IAClB,IAAa,IAAI,IAAI,QAAQ,CAE5B;IACD,kBAAkB;IAClB,IAAa,GAAG,IAAI,MAAM,CA6BzB;CACJ"}
@@ -1,3 +1,4 @@
1
+ import type { DiagnosticCode } from '@mirascript/constants';
1
2
  import { kVmFunction } from '../../helpers/constants.js';
2
3
  import type { VmAny, VmValue } from './index.js';
3
4
  /**
@@ -30,6 +31,11 @@ export interface VmFunctionInfo {
30
31
  readonly examples?: string[];
31
32
  /** 如果添加了包装,返回原函数 */
32
33
  readonly original?: VmFunctionLike;
34
+ /** 标记为弃用 */
35
+ readonly deprecated?: {
36
+ use?: string;
37
+ message: DiagnosticCode;
38
+ };
33
39
  }
34
40
  /** Mirascript 函数创建选项 */
35
41
  export type VmFunctionOption = Partial<Omit<VmFunctionInfo, 'original'> & {
@@ -1 +1 @@
1
- {"version":3,"file":"function.d.ts","sourceRoot":"","sources":["../../../src/vm/types/function.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAA8B,MAAM,4BAA4B,CAAC;AACrF,OAAO,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAIjD;;;;GAIG;AAEH,MAAM,MAAM,cAAc,GAAG,CAAC,GAAG,IAAI,EAAE,aAAa,CAAC,OAAO,GAAG,SAAS,CAAC,KAAK,KAAK,GAAG,IAAI,CAAC;AAE3F,oBAAoB;AACpB,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,cAAc,GAAG,cAAc,IAAI,CAAC,GAAG;IAAE,QAAQ,CAAC,CAAC,WAAW,CAAC,EAAE,cAAc,CAAA;CAAE,CAAC;AAEnH,sBAAsB;AACtB,MAAM,WAAW,cAAc;IAC3B,WAAW;IACX,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,aAAa;IACb,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,YAAY;IACZ,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY;IACZ,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,YAAY;IACZ,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7C,YAAY;IACZ,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY;IACZ,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,YAAY;IACZ,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,oBAAoB;IACpB,QAAQ,CAAC,QAAQ,CAAC,EAAE,cAAc,CAAC;CACtC;AAED,wBAAwB;AACxB,MAAM,MAAM,gBAAgB,GAAG,OAAO,CAClC,IAAI,CAAC,cAAc,EAAE,UAAU,CAAC,GAAG;IAC/B,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;CAC9B,CACJ,CAAC;AAEF,uBAAuB;AACvB,wBAAgB,UAAU,CAAC,CAAC,SAAS,cAAc,EAAE,EAAE,EAAE,CAAC,EAAE,MAAM,GAAE,gBAAqB,GAAG,UAAU,CAAC,CAAC,CAAC,CAqCxG"}
1
+ {"version":3,"file":"function.d.ts","sourceRoot":"","sources":["../../../src/vm/types/function.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE5D,OAAO,EAAE,WAAW,EAA8B,MAAM,4BAA4B,CAAC;AACrF,OAAO,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAIjD;;;;GAIG;AAEH,MAAM,MAAM,cAAc,GAAG,CAAC,GAAG,IAAI,EAAE,aAAa,CAAC,OAAO,GAAG,SAAS,CAAC,KAAK,KAAK,GAAG,IAAI,CAAC;AAE3F,oBAAoB;AACpB,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,cAAc,GAAG,cAAc,IAAI,CAAC,GAAG;IAAE,QAAQ,CAAC,CAAC,WAAW,CAAC,EAAE,cAAc,CAAA;CAAE,CAAC;AAEnH,sBAAsB;AACtB,MAAM,WAAW,cAAc;IAC3B,WAAW;IACX,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,aAAa;IACb,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,YAAY;IACZ,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY;IACZ,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,YAAY;IACZ,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7C,YAAY;IACZ,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY;IACZ,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,YAAY;IACZ,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,oBAAoB;IACpB,QAAQ,CAAC,QAAQ,CAAC,EAAE,cAAc,CAAC;IACnC,YAAY;IACZ,QAAQ,CAAC,UAAU,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,cAAc,CAAA;KAAE,CAAC;CACnE;AAED,wBAAwB;AACxB,MAAM,MAAM,gBAAgB,GAAG,OAAO,CAClC,IAAI,CAAC,cAAc,EAAE,UAAU,CAAC,GAAG;IAC/B,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;CAC9B,CACJ,CAAC;AAEF,uBAAuB;AACvB,wBAAgB,UAAU,CAAC,CAAC,SAAS,cAAc,EAAE,EAAE,EAAE,CAAC,EAAE,MAAM,GAAE,gBAAqB,GAAG,UAAU,CAAC,CAAC,CAAC,CAsCxG"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mirascript/mirascript",
3
- "version": "0.1.33",
3
+ "version": "0.1.35",
4
4
  "author": "CloudPSS",
5
5
  "license": "MIT",
6
6
  "description": "An expression based scripting language.",
@@ -36,11 +36,11 @@
36
36
  "commander": "^14.0.2",
37
37
  "source-map-js": "^1.2.1",
38
38
  "supports-color": "^10.2.2",
39
- "@mirascript/bindings": "~0.1.33",
40
- "@mirascript/constants": "~0.1.33"
39
+ "@mirascript/bindings": "~0.1.35",
40
+ "@mirascript/constants": "~0.1.35"
41
41
  },
42
42
  "devDependencies": {
43
- "@types/node": "^25.0.3",
43
+ "@types/node": "^25.0.6",
44
44
  "@types/sinon": "^21.0.0",
45
45
  "ava": "^6.4.1",
46
46
  "c8": "^10.1.3",
@@ -1,8 +1,7 @@
1
1
  import { isKeyword } from '@mirascript/constants';
2
- import { wrapScript, type VmScript } from './create-script.js';
2
+ import { wrapScript, type VmScript, type VmScriptLike } from './create-script.js';
3
3
  import type { TranspileOptions } from './types.js';
4
4
  import { $GlobalFallback } from '../vm/operations/index.js';
5
- import type { VmContext, VmValue } from '../vm/index.js';
6
5
  import { defineProperty, isFinite } from '../helpers/utils.js';
7
6
 
8
7
  const REG_NUMBER_FULL = /^(?:[+-])?\d+(?:\.\d+)?(?:[eE][+-]?\d+)?$/;
@@ -82,11 +81,11 @@ function nil(): () => null {
82
81
  }
83
82
 
84
83
  /** 构造返回全局变量的函数 */
85
- function globalVariable(id: string): (global: VmContext | undefined) => VmValue {
86
- const f = (global = $GlobalFallback()): VmValue => global.get(id);
84
+ function globalVariable(id: string): VmScriptLike {
85
+ const f: VmScriptLike = (global) => (global ?? $GlobalFallback()).get(id);
87
86
  defineProperty(f, 'toString', {
88
87
  value: () => {
89
- return `(global = $GlobalFallback()) => global.get(${JSON.stringify(id)});`;
88
+ return `(global) => (global ?? $GlobalFallback()).get(${JSON.stringify(id)});`;
90
89
  },
91
90
  writable: false,
92
91
  enumerable: false,
@@ -98,27 +97,26 @@ function globalVariable(id: string): (global: VmContext | undefined) => VmValue
98
97
  /**
99
98
  * 对短代码进行编译
100
99
  */
101
- function compileScriptFast(code: string, options: TranspileOptions): VmScript | undefined {
100
+ function compileScriptFast(code: string): VmScript | undefined {
102
101
  if (code.length > FAST_SCRIPT_MAX_LEN) return undefined; // 超过长度限制,直接返回 undefined
103
- const mode = options.input_mode ?? 'Script';
104
102
  const trimmedCode = code.trim();
105
103
  if (!trimmedCode) {
106
- return wrapScript(code, mode, nil());
104
+ return wrapScript(code, 'Script', nil());
107
105
  }
108
106
  switch (trimmedCode) {
109
107
  case 'nil':
110
- return wrapScript(code, mode, nil());
108
+ return wrapScript(code, 'Script', nil());
111
109
  case 'true':
112
- return wrapScript(code, mode, constantBoolean(true));
110
+ return wrapScript(code, 'Script', constantBoolean(true));
113
111
  case 'false':
114
- return wrapScript(code, mode, constantBoolean(false));
112
+ return wrapScript(code, 'Script', constantBoolean(false));
115
113
  case 'nan':
116
- return wrapScript(code, mode, nan());
114
+ return wrapScript(code, 'Script', nan());
117
115
  case 'inf':
118
116
  case '+inf':
119
- return wrapScript(code, mode, posInf());
117
+ return wrapScript(code, 'Script', posInf());
120
118
  case '-inf':
121
- return wrapScript(code, mode, negInf());
119
+ return wrapScript(code, 'Script', negInf());
122
120
  }
123
121
  if (REG_IDENTIFIER_FAST.test(trimmedCode)) {
124
122
  // 直接返回标识符
@@ -126,13 +124,13 @@ function compileScriptFast(code: string, options: TranspileOptions): VmScript |
126
124
  if (isKeyword(id)) {
127
125
  return undefined; // 关键字不处理
128
126
  }
129
- return wrapScript(code, mode, globalVariable(id));
127
+ return wrapScript(code, 'Script', globalVariable(id));
130
128
  }
131
129
  if (REG_NUMBER_FULL.test(trimmedCode)) {
132
130
  const num = Number(trimmedCode);
133
131
  if (!isFinite(num)) return undefined;
134
132
  // 直接返回数字
135
- return wrapScript(code, mode, constantFiniteNumber(num));
133
+ return wrapScript(code, 'Script', constantFiniteNumber(num));
136
134
  }
137
135
  return undefined;
138
136
  }
@@ -142,13 +140,12 @@ const FAST_TEMPLATE_MAX_LEN = 1024;
142
140
  /**
143
141
  * 对短代码进行编译
144
142
  */
145
- function compileTemplateFast(code: string, options: TranspileOptions): VmScript | undefined {
143
+ function compileTemplateFast(code: string): VmScript | undefined {
146
144
  if (code.length > FAST_TEMPLATE_MAX_LEN) return undefined; // 超过长度限制,直接返回 undefined
147
145
 
148
146
  if (!code.includes('$')) {
149
- const mode = options.input_mode ?? 'Template';
150
147
  // 不包含插值的模板
151
- return wrapScript(code, mode, constantString(code));
148
+ return wrapScript(code, 'Template', constantString(code));
152
149
  }
153
150
  return undefined;
154
151
  }
@@ -158,5 +155,5 @@ function compileTemplateFast(code: string, options: TranspileOptions): VmScript
158
155
  */
159
156
  export function compileFast(code: string, options: TranspileOptions): VmScript | undefined {
160
157
  if (options.sourceMap) return undefined; // 不支持源映射
161
- return (options.input_mode === 'Template' ? compileTemplateFast : compileScriptFast)(code, options);
158
+ return (options.input_mode === 'Template' ? compileTemplateFast : compileScriptFast)(code);
162
159
  }
@@ -5,7 +5,7 @@ import type { VmValue, VmContext } from '../vm/types/index.js';
5
5
  import type { InputMode, ScriptInput } from './types.js';
6
6
 
7
7
  /** Mirascript 脚本 */
8
- export type VmScriptLike = (global?: VmContext) => VmValue;
8
+ export type VmScriptLike = (global?: VmContext | null) => VmValue;
9
9
 
10
10
  /** Mirascript 脚本 */
11
11
  export type VmScript = VmScriptLike & {
@@ -1 +1 @@
1
- export const SCRIPT_PREFIX = `((global = $GlobalFallback()) => { try { $CpEnter();`;
1
+ export const SCRIPT_PREFIX = `((global) => { global ??= $GlobalFallback(); try { $CpEnter();`;