@mirascript/mirascript 0.1.16 → 0.1.18

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 (115) hide show
  1. package/dist/{chunk-LU4ZKFF6.js → chunk-3BAOZ2P2.js} +203 -62
  2. package/dist/chunk-3BAOZ2P2.js.map +6 -0
  3. package/dist/{chunk-YZGL3D7L.js → chunk-5AEWM4W6.js} +41 -95
  4. package/dist/chunk-5AEWM4W6.js.map +6 -0
  5. package/dist/cli/execute.d.ts.map +1 -1
  6. package/dist/cli/index.js +11 -12
  7. package/dist/cli/index.js.map +1 -1
  8. package/dist/compiler/diagnostic.d.ts.map +1 -1
  9. package/dist/compiler/emit/sourcemap.d.ts.map +1 -1
  10. package/dist/compiler/worker.js +1 -1
  11. package/dist/helpers/convert/index.d.ts +5 -0
  12. package/dist/helpers/convert/index.d.ts.map +1 -0
  13. package/dist/helpers/convert/to-boolean.d.ts +4 -0
  14. package/dist/helpers/convert/to-boolean.d.ts.map +1 -0
  15. package/dist/helpers/convert/to-format.d.ts +4 -0
  16. package/dist/helpers/convert/to-format.d.ts.map +1 -0
  17. package/dist/helpers/convert/to-number.d.ts +4 -0
  18. package/dist/helpers/convert/to-number.d.ts.map +1 -0
  19. package/dist/helpers/convert/to-string.d.ts +6 -0
  20. package/dist/helpers/convert/to-string.d.ts.map +1 -0
  21. package/dist/helpers/serialize.d.ts.map +1 -1
  22. package/dist/index.js +2 -2
  23. package/dist/subtle.d.ts +2 -2
  24. package/dist/subtle.d.ts.map +1 -1
  25. package/dist/subtle.js +3 -5
  26. package/dist/vm/checkpoint.d.ts.map +1 -1
  27. package/dist/vm/helpers.d.ts.map +1 -1
  28. package/dist/vm/lib/global/bit.d.ts +7 -7
  29. package/dist/vm/lib/global/bit.d.ts.map +1 -1
  30. package/dist/vm/lib/global/debug.d.ts +17 -1
  31. package/dist/vm/lib/global/debug.d.ts.map +1 -1
  32. package/dist/vm/lib/global/json.d.ts +2 -2
  33. package/dist/vm/lib/global/json.d.ts.map +1 -1
  34. package/dist/vm/lib/global/math-additional.d.ts +1 -1
  35. package/dist/vm/lib/global/math-additional.d.ts.map +1 -1
  36. package/dist/vm/lib/global/math-arr.d.ts +5 -5
  37. package/dist/vm/lib/global/math-arr.d.ts.map +1 -1
  38. package/dist/vm/lib/global/math-unary.d.ts +26 -26
  39. package/dist/vm/lib/global/math-unary.d.ts.map +1 -1
  40. package/dist/vm/lib/global/math.d.ts +3 -3
  41. package/dist/vm/lib/global/math.d.ts.map +1 -1
  42. package/dist/vm/lib/global/sequence/all-any.d.ts +2 -2
  43. package/dist/vm/lib/global/sequence/all-any.d.ts.map +1 -1
  44. package/dist/vm/lib/global/sequence/entries.d.ts +3 -3
  45. package/dist/vm/lib/global/sequence/entries.d.ts.map +1 -1
  46. package/dist/vm/lib/global/sequence/find.d.ts +1 -1
  47. package/dist/vm/lib/global/sequence/find.d.ts.map +1 -1
  48. package/dist/vm/lib/global/sequence/flatten.d.ts +1 -1
  49. package/dist/vm/lib/global/sequence/flatten.d.ts.map +1 -1
  50. package/dist/vm/lib/global/sequence/len.d.ts +1 -1
  51. package/dist/vm/lib/global/sequence/len.d.ts.map +1 -1
  52. package/dist/vm/lib/global/sequence/map-filter.d.ts +3 -3
  53. package/dist/vm/lib/global/sequence/map-filter.d.ts.map +1 -1
  54. package/dist/vm/lib/global/sequence/repeat.d.ts +1 -1
  55. package/dist/vm/lib/global/sequence/repeat.d.ts.map +1 -1
  56. package/dist/vm/lib/global/sequence/reverse.d.ts +1 -1
  57. package/dist/vm/lib/global/sequence/reverse.d.ts.map +1 -1
  58. package/dist/vm/lib/global/sequence/sort.d.ts +2 -2
  59. package/dist/vm/lib/global/sequence/sort.d.ts.map +1 -1
  60. package/dist/vm/lib/global/sequence/with.d.ts +1 -1
  61. package/dist/vm/lib/global/sequence/with.d.ts.map +1 -1
  62. package/dist/vm/lib/global/sequence/zip.d.ts +1 -1
  63. package/dist/vm/lib/global/sequence/zip.d.ts.map +1 -1
  64. package/dist/vm/lib/global/string.d.ts +10 -10
  65. package/dist/vm/lib/global/string.d.ts.map +1 -1
  66. package/dist/vm/lib/global/time.d.ts +3 -3
  67. package/dist/vm/lib/global/time.d.ts.map +1 -1
  68. package/dist/vm/lib/global/to-primitive.d.ts +4 -4
  69. package/dist/vm/lib/global/to-primitive.d.ts.map +1 -1
  70. package/dist/vm/lib/helpers.d.ts +4 -2
  71. package/dist/vm/lib/helpers.d.ts.map +1 -1
  72. package/dist/vm/lib/index.d.ts +1 -1
  73. package/dist/vm/lib/index.d.ts.map +1 -1
  74. package/dist/vm/lib/mod/matrix.d.ts +13 -13
  75. package/dist/vm/lib/mod/matrix.d.ts.map +1 -1
  76. package/dist/vm/operations.d.ts.map +1 -1
  77. package/dist/vm/types/context.d.ts +3 -17
  78. package/dist/vm/types/context.d.ts.map +1 -1
  79. package/dist/vm/types/index.d.ts +1 -1
  80. package/dist/vm/types/index.d.ts.map +1 -1
  81. package/package.json +2 -2
  82. package/src/cli/execute.ts +10 -10
  83. package/src/compiler/diagnostic.ts +29 -11
  84. package/src/compiler/emit/globals.ts +1 -1
  85. package/src/compiler/emit/sourcemap.ts +8 -3
  86. package/src/helpers/convert/index.ts +4 -0
  87. package/src/helpers/convert/to-boolean.ts +12 -0
  88. package/src/helpers/convert/to-format.ts +37 -0
  89. package/src/helpers/convert/to-number.ts +35 -0
  90. package/src/helpers/convert/to-string.ts +55 -0
  91. package/src/helpers/serialize.ts +1 -0
  92. package/src/subtle.ts +2 -2
  93. package/src/vm/checkpoint.ts +19 -10
  94. package/src/vm/helpers.ts +1 -1
  95. package/src/vm/lib/global/debug.ts +84 -7
  96. package/src/vm/lib/global/json.ts +3 -4
  97. package/src/vm/lib/global/sequence/all-any.ts +1 -1
  98. package/src/vm/lib/global/sequence/find.ts +1 -1
  99. package/src/vm/lib/global/sequence/map-filter.ts +1 -1
  100. package/src/vm/lib/global/sequence/sort.ts +1 -1
  101. package/src/vm/lib/global/sequence/with.ts +1 -1
  102. package/src/vm/lib/global/time.ts +1 -1
  103. package/src/vm/lib/global/to-primitive.ts +1 -1
  104. package/src/vm/lib/helpers.ts +5 -4
  105. package/src/vm/lib/index.ts +4 -4
  106. package/src/vm/lib/mod/matrix.ts +1 -1
  107. package/src/vm/operations.ts +11 -12
  108. package/src/vm/types/context.ts +26 -38
  109. package/src/vm/types/extern.ts +1 -1
  110. package/src/vm/types/index.ts +1 -1
  111. package/dist/chunk-LU4ZKFF6.js.map +0 -6
  112. package/dist/chunk-YZGL3D7L.js.map +0 -6
  113. package/dist/helpers/convert.d.ts +0 -12
  114. package/dist/helpers/convert.d.ts.map +0 -1
  115. package/src/helpers/convert.ts +0 -128
@@ -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":"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"}
@@ -1,4 +1,4 @@
1
1
  import * as global from './global/index.js';
2
2
  import * as mods from './mod/index.js';
3
- export declare const lib: Readonly<Writable<typeof global> & Writable<typeof mods>>;
3
+ export declare const lib: Readonly<typeof global & typeof mods>;
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/vm/lib/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAC;AAC5C,OAAO,KAAK,IAAI,MAAM,gBAAgB,CAAC;AAcvC,eAAO,MAAM,GAAG,2DAA2D,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/vm/lib/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAC;AAC5C,OAAO,KAAK,IAAI,MAAM,gBAAgB,CAAC;AAcvC,eAAO,MAAM,GAAG,EAAE,QAAQ,CAAC,OAAO,MAAM,GAAG,OAAO,IAAI,CAA4D,CAAC"}
@@ -1,15 +1,15 @@
1
1
  import { type VmArray, type VmConst, type VmValue } from '../../types/index.js';
2
- export declare const size: ((matrix: VmValue | undefined) => [] | [number, number] | [number]) & import("../helpers.js").VmLibOption & Record<string, unknown>;
3
- export declare const transpose: ((matrix: VmValue | undefined) => string | number | boolean | import("../../types/index.js").VmRecord | VmArray | import("../../types/function.js").VmFunction | import("../../types/module.js").VmModule<Record<string, import("../../types/index.js").VmImmutable>> | import("../../types/extern.js").VmExtern<object> | null) & import("../helpers.js").VmLibOption & Record<string, unknown>;
4
- export declare const entrywise: ((a: VmValue | undefined, b: VmValue | undefined, f: VmValue | undefined) => VmConst) & import("../helpers.js").VmLibOption & Record<string, unknown>;
5
- export declare const add: ((a: VmValue | undefined, b: VmValue | undefined) => VmConst) & import("../helpers.js").VmLibOption & Record<string, unknown>;
6
- export declare const subtract: ((a: VmValue | undefined, b: VmValue | undefined) => VmConst) & import("../helpers.js").VmLibOption & Record<string, unknown>;
7
- export declare const entrywise_multiply: ((a: VmValue | undefined, b: VmValue | undefined) => VmConst) & import("../helpers.js").VmLibOption & Record<string, unknown>;
8
- export declare const entrywise_divide: ((a: VmValue | undefined, b: VmValue | undefined) => VmConst) & import("../helpers.js").VmLibOption & Record<string, unknown>;
9
- export declare const multiply: ((a: VmValue | undefined, b: VmValue | undefined) => VmConst) & import("../helpers.js").VmLibOption & Record<string, unknown>;
10
- export declare const invert: ((a: VmValue | undefined) => VmConst) & import("../helpers.js").VmLibOption & Record<string, unknown>;
11
- export declare const zeros: ((...size: readonly (VmValue | undefined)[]) => VmArray) & import("../helpers.js").VmLibOption & Record<string, unknown>;
12
- export declare const ones: ((...size: readonly (VmValue | undefined)[]) => VmArray) & import("../helpers.js").VmLibOption & Record<string, unknown>;
13
- export declare const identity: ((...size: readonly (VmValue | undefined)[]) => number[][]) & import("../helpers.js").VmLibOption & Record<string, unknown>;
14
- export declare const diagonal: ((x: VmValue | undefined, k?: VmValue | undefined) => VmConst[]) & import("../helpers.js").VmLibOption & Record<string, unknown>;
2
+ export declare const size: ((matrix: VmValue | undefined) => [] | [number, number] | [number]) & import("../helpers.js").VmLibOption & Record<never, never>;
3
+ export declare const transpose: ((matrix: VmValue | undefined) => string | number | boolean | import("../../types/index.js").VmRecord | VmArray | import("../../types/function.js").VmFunction | import("../../types/module.js").VmModule<Record<string, import("../../types/index.js").VmImmutable>> | import("../../types/extern.js").VmExtern<object> | null) & import("../helpers.js").VmLibOption & Record<never, never>;
4
+ export declare const entrywise: ((a: VmValue | undefined, b: VmValue | undefined, f: VmValue | undefined) => VmConst) & import("../helpers.js").VmLibOption & Record<never, never>;
5
+ export declare const add: ((a: VmValue | undefined, b: VmValue | undefined) => VmConst) & import("../helpers.js").VmLibOption & Record<never, never>;
6
+ export declare const subtract: ((a: VmValue | undefined, b: VmValue | undefined) => VmConst) & import("../helpers.js").VmLibOption & Record<never, never>;
7
+ export declare const entrywise_multiply: ((a: VmValue | undefined, b: VmValue | undefined) => VmConst) & import("../helpers.js").VmLibOption & Record<never, never>;
8
+ export declare const entrywise_divide: ((a: VmValue | undefined, b: VmValue | undefined) => VmConst) & import("../helpers.js").VmLibOption & Record<never, never>;
9
+ export declare const multiply: ((a: VmValue | undefined, b: VmValue | undefined) => VmConst) & import("../helpers.js").VmLibOption & Record<never, never>;
10
+ export declare const invert: ((a: VmValue | undefined) => VmConst) & import("../helpers.js").VmLibOption & Record<never, never>;
11
+ export declare const zeros: ((...size: readonly (VmValue | undefined)[]) => VmArray) & import("../helpers.js").VmLibOption & Record<never, never>;
12
+ export declare const ones: ((...size: readonly (VmValue | undefined)[]) => VmArray) & import("../helpers.js").VmLibOption & Record<never, never>;
13
+ export declare const identity: ((...size: readonly (VmValue | undefined)[]) => number[][]) & import("../helpers.js").VmLibOption & Record<never, never>;
14
+ export declare const diagonal: ((x: VmValue | undefined, k?: VmValue | undefined) => VmConst[]) & import("../helpers.js").VmLibOption & Record<never, never>;
15
15
  //# sourceMappingURL=matrix.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"matrix.d.ts","sourceRoot":"","sources":["../../../../src/vm/lib/mod/matrix.ts"],"names":[],"mappings":"AAIA,OAAO,EAAoC,KAAK,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAsClH,eAAO,MAAM,IAAI,qIAYhB,CAAC;AAEF,eAAO,MAAM,SAAS,kYA0BrB,CAAC;AA8HF,eAAO,MAAM,SAAS,uJAmBrB,CAAC;AAEF,eAAO,MAAM,GAAG,+HAaf,CAAC;AAEF,eAAO,MAAM,QAAQ,+HAapB,CAAC;AAEF,eAAO,MAAM,kBAAkB,+HAa9B,CAAC;AAEF,eAAO,MAAM,gBAAgB,+HAa5B,CAAC;AAEF,eAAO,MAAM,QAAQ,+HAiEpB,CAAC;AAEF,eAAO,MAAM,MAAM,uGAsHlB,CAAC;AAkBF,eAAO,MAAM,KAAK,0HAMhB,CAAC;AAEH,eAAO,MAAM,IAAI,0HAMf,CAAC;AAEH,eAAO,MAAM,QAAQ,6HA0BpB,CAAC;AAEF,eAAO,MAAM,QAAQ,kIA4CpB,CAAC"}
1
+ {"version":3,"file":"matrix.d.ts","sourceRoot":"","sources":["../../../../src/vm/lib/mod/matrix.ts"],"names":[],"mappings":"AAIA,OAAO,EAAoC,KAAK,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAsClH,eAAO,MAAM,IAAI,kIAYhB,CAAC;AAEF,eAAO,MAAM,SAAS,+XA0BrB,CAAC;AA8HF,eAAO,MAAM,SAAS,oJAmBrB,CAAC;AAEF,eAAO,MAAM,GAAG,4HAaf,CAAC;AAEF,eAAO,MAAM,QAAQ,4HAapB,CAAC;AAEF,eAAO,MAAM,kBAAkB,4HAa9B,CAAC;AAEF,eAAO,MAAM,gBAAgB,4HAa5B,CAAC;AAEF,eAAO,MAAM,QAAQ,4HAiEpB,CAAC;AAEF,eAAO,MAAM,MAAM,oGAsHlB,CAAC;AAkBF,eAAO,MAAM,KAAK,uHAMhB,CAAC;AAEH,eAAO,MAAM,IAAI,uHAMf,CAAC;AAEH,eAAO,MAAM,QAAQ,0HA0BpB,CAAC;AAEF,eAAO,MAAM,QAAQ,+HA4CpB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"operations.d.ts","sourceRoot":"","sources":["../../src/vm/operations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"operations.d.ts","sourceRoot":"","sources":["../../src/vm/operations.ts"],"names":[],"mappings":"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"}
@@ -1,25 +1,11 @@
1
1
  import { kVmContext } from '../../helpers/constants.js';
2
- import type { lib } from '../lib/index.js';
3
- import type { VmAny, VmImmutable, VmValue, VmFunctionLike, VmModule } from './index.js';
4
- import { VmFunction } from './function.js';
5
- /** 全局导入的标准库值 */
6
- type ToLibValue<V> = V extends VmFunctionLike ? VmFunction<V> : V extends Record<string, VmImmutable | VmFunctionLike> ? ToLibModule<V> : V;
7
- /** 全局导入的标准库值 */
8
- type ToLibModule<V extends Record<string, VmImmutable | VmFunctionLike>> = VmModule<{
9
- [key in keyof V]: ToLibValue<V[key]>;
10
- }>;
11
- /** 全局导入的标准库 */
12
- type VmContextBase = {
13
- [key in keyof typeof lib]: ToLibValue<(typeof lib)[key]>;
14
- };
15
- /** MiraScript 执行上下文的基础,仅包含标准库 */
16
- export type VmSharedContext = VmContextBase & Record<string, VmImmutable>;
2
+ import type { VmAny, VmImmutable, VmValue } from './index.js';
17
3
  /** MiraScript 执行上下文 */
18
4
  export interface VmContext {
19
5
  /** 内部标识符 */
20
6
  readonly [kVmContext]: true;
21
7
  /** 枚举所有 key,仅在 LSP 中使用 */
22
- keys(): Iterable<string>;
8
+ keys(): readonly string[];
23
9
  /** 描述值,返回 MarkDown 文本,仅在 LSP 中使用 */
24
10
  describe?(key: string): string | undefined;
25
11
  /**
@@ -34,7 +20,7 @@ export interface VmContext {
34
20
  export type VmContextRecord = Record<string, VmValue>;
35
21
  /** MiraScript 执行上下文 */
36
22
  export type VmContextRecordLoose = Record<string, VmValue | undefined>;
37
- export declare const VmSharedContext: VmSharedContext;
23
+ export declare const VM_SHARED_CONTEXT: Record<string, VmImmutable>;
38
24
  /** 定义在所有 MiraScript 执行上下文中共享的全局变量 */
39
25
  export declare function defineVmContextValue(name: string, value: VmImmutable | ((...args: VmAny[]) => VmAny), override?: boolean): void;
40
26
  /** 无后备的实现 */
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/vm/types/context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/vm/types/context.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAK9D,uBAAuB;AACvB,MAAM,WAAW,SAAS;IACtB,YAAY;IACZ,QAAQ,CAAC,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC;IAC5B,0BAA0B;IAC1B,IAAI,IAAI,SAAS,MAAM,EAAE,CAAC;IAC1B,oCAAoC;IACpC,QAAQ,CAAC,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IAC3C;;;OAGG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IAC1B,oCAAoC;IACpC,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CAC7B;AACD,uBAAuB;AACvB,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AACtD,uBAAuB;AACvB,MAAM,MAAM,oBAAoB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,GAAG,SAAS,CAAC,CAAC;AACvE,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAgB,CAAC;AAS3E,qCAAqC;AACrC,wBAAgB,oBAAoB,CAChC,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,WAAW,GAAG,CAAC,CAAC,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,KAAK,CAAC,EAClD,QAAQ,UAAQ,GACjB,IAAI,CAaN;AAED,aAAa;AACb,eAAO,MAAM,gBAAgB,EAAE,SAiB7B,CAAC;AA0DH,eAAe;AACf,KAAK,yBAAyB,GAAG,SAAS;IACtC,QAAQ,CAAC,EAAE,oBAAoB,GAAG,IAAI,GAAG,SAAS;IAClD,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,GAAG,SAAS;IACzD,SAAS,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC,GAAG,IAAI,GAAG,SAAS;CACvE,CAAC;AACF,kBAAkB;AAClB,KAAK,0BAA0B,GAAG,SAAS;IACvC,MAAM,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,GAAG,SAAS;IAC5C,UAAU,CAAC,EAAE,CAAC,MAAM,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,GAAG,SAAS;IACxD,SAAS,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC,GAAG,IAAI,GAAG,SAAS;CACvE,CAAC;AAEF,qBAAqB;AACrB,wBAAgB,eAAe,CAAC,GAAG,IAAI,EAAE,yBAAyB,GAAG,0BAA0B,GAAG,SAAS,CAwB1G"}
@@ -51,7 +51,7 @@ export interface VmValueMap {
51
51
  }
52
52
  export { isVmAny, isVmArray, isVmArrayLikeRecord, isVmArrayLikeRecordByEntires, isVmArrayLikeRecordByKeys, isVmCallable, isVmConst, isVmContext, isVmExtern, isVmFunction, isVmImmutable, isVmModule, isVmPrimitive, isVmRecord, isVmScript, isVmValue, isVmWrapper, getVmFunctionInfo, } from '../../helpers/types.js';
53
53
  export { wrapToVmValue, unwrapFromVmValue } from './boundary.js';
54
- export { type VmContext, type VmSharedContext, defineVmContextValue, createVmContext } from './context.js';
54
+ export { type VmContext, defineVmContextValue, createVmContext } from './context.js';
55
55
  export { VmExtern } from './extern.js';
56
56
  export { VmFunction, type VmFunctionInfo, type VmFunctionLike, type VmFunctionOption } from './function.js';
57
57
  export { VmModule } from './module.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/vm/types/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C,WAAW;AACX,MAAM,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC;AAExC,6BAA6B;AAC7B,MAAM,MAAM,eAAe,GAAG,SAAS,CAAC;AACxC,qBAAqB;AACrB,MAAM,MAAM,WAAW,GAAG,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAC3D;;;GAGG;AACH,MAAM,MAAM,OAAO,GAAG,aAAa,CAAC,OAAO,GAAG,SAAS,CAAC,CAAC;AACzD;;;;GAIG;AACH,MAAM,MAAM,QAAQ,GAAG;IACnB,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;CAC/C,CAAC;AACF,2BAA2B;AAC3B,MAAM,MAAM,OAAO,GAAG,WAAW,GAAG,QAAQ,GAAG,OAAO,CAAC;AACvD,2BAA2B;AAC3B,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,UAAU,GAAG,QAAQ,CAAC;AAC1D,0BAA0B;AAC1B,MAAM,MAAM,OAAO,GAAG,WAAW,GAAG,QAAQ,CAAC;AAC7C,kCAAkC;AAClC,MAAM,MAAM,KAAK,GAAG,OAAO,GAAG,eAAe,CAAC;AAE9C,aAAa;AACb,MAAM,WAAW,UAAU;IACvB,SAAS;IACT,GAAG,EAAE,IAAI,CAAC;IACV,UAAU;IACV,MAAM,EAAE,MAAM,CAAC;IACf,SAAS;IACT,MAAM,EAAE,MAAM,CAAC;IACf,UAAU;IACV,OAAO,EAAE,OAAO,CAAC;IACjB,oBAAoB;IACpB,MAAM,EAAE,QAAQ,CAAC;IACjB,oBAAoB;IACpB,KAAK,EAAE,OAAO,CAAC;IACf,oBAAoB;IACpB,QAAQ,EAAE,UAAU,CAAC;IACrB,aAAa;IACb,MAAM,EAAE,QAAQ,CAAC;IACjB,oBAAoB;IACpB,MAAM,EAAE,QAAQ,CAAC;CACpB;AAED,OAAO,EACH,OAAO,EACP,SAAS,EACT,mBAAmB,EACnB,4BAA4B,EAC5B,yBAAyB,EACzB,YAAY,EACZ,SAAS,EACT,WAAW,EACX,UAAU,EACV,YAAY,EACZ,aAAa,EACb,UAAU,EACV,aAAa,EACb,UAAU,EACV,UAAU,EACV,SAAS,EACT,WAAW,EACX,iBAAiB,GACpB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAEjE,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,eAAe,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC3G,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,KAAK,cAAc,EAAE,KAAK,cAAc,EAAE,KAAK,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAC5G,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/vm/types/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C,WAAW;AACX,MAAM,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC;AAExC,6BAA6B;AAC7B,MAAM,MAAM,eAAe,GAAG,SAAS,CAAC;AACxC,qBAAqB;AACrB,MAAM,MAAM,WAAW,GAAG,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAC3D;;;GAGG;AACH,MAAM,MAAM,OAAO,GAAG,aAAa,CAAC,OAAO,GAAG,SAAS,CAAC,CAAC;AACzD;;;;GAIG;AACH,MAAM,MAAM,QAAQ,GAAG;IACnB,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;CAC/C,CAAC;AACF,2BAA2B;AAC3B,MAAM,MAAM,OAAO,GAAG,WAAW,GAAG,QAAQ,GAAG,OAAO,CAAC;AACvD,2BAA2B;AAC3B,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,UAAU,GAAG,QAAQ,CAAC;AAC1D,0BAA0B;AAC1B,MAAM,MAAM,OAAO,GAAG,WAAW,GAAG,QAAQ,CAAC;AAC7C,kCAAkC;AAClC,MAAM,MAAM,KAAK,GAAG,OAAO,GAAG,eAAe,CAAC;AAE9C,aAAa;AACb,MAAM,WAAW,UAAU;IACvB,SAAS;IACT,GAAG,EAAE,IAAI,CAAC;IACV,UAAU;IACV,MAAM,EAAE,MAAM,CAAC;IACf,SAAS;IACT,MAAM,EAAE,MAAM,CAAC;IACf,UAAU;IACV,OAAO,EAAE,OAAO,CAAC;IACjB,oBAAoB;IACpB,MAAM,EAAE,QAAQ,CAAC;IACjB,oBAAoB;IACpB,KAAK,EAAE,OAAO,CAAC;IACf,oBAAoB;IACpB,QAAQ,EAAE,UAAU,CAAC;IACrB,aAAa;IACb,MAAM,EAAE,QAAQ,CAAC;IACjB,oBAAoB;IACpB,MAAM,EAAE,QAAQ,CAAC;CACpB;AAED,OAAO,EACH,OAAO,EACP,SAAS,EACT,mBAAmB,EACnB,4BAA4B,EAC5B,yBAAyB,EACzB,YAAY,EACZ,SAAS,EACT,WAAW,EACX,UAAU,EACV,YAAY,EACZ,aAAa,EACb,UAAU,EACV,aAAa,EACb,UAAU,EACV,UAAU,EACV,SAAS,EACT,WAAW,EACX,iBAAiB,GACpB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAEjE,OAAO,EAAE,KAAK,SAAS,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACrF,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,KAAK,cAAc,EAAE,KAAK,cAAc,EAAE,KAAK,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAC5G,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mirascript/mirascript",
3
- "version": "0.1.16",
3
+ "version": "0.1.18",
4
4
  "author": "CloudPSS",
5
5
  "license": "MIT",
6
6
  "description": "An expression based scripting language.",
@@ -36,7 +36,7 @@
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.16"
39
+ "@mirascript/bindings": "~0.1.18"
40
40
  },
41
41
  "devDependencies": {
42
42
  "@types/node": "^24.10.1",
@@ -2,10 +2,17 @@
2
2
  import styles from 'ansi-styles';
3
3
  import supportsColor from 'supports-color';
4
4
  import { compile } from '../index.js';
5
- import { createVmContext, VmFunction, type VmValue } from '../vm/index.js';
6
- import { debug_print } from '../vm/lib/global/debug.js';
5
+ import { createVmContext, type VmValue } from '../vm/index.js';
6
+ import { debug_print, panic } from '../vm/lib/global/debug.js';
7
7
  import { print } from './print.js';
8
8
 
9
+ panic.serializer = debug_print.serializer = (arg, format) => {
10
+ if (format === '%o' || format === '%O' || !format) {
11
+ return print(arg);
12
+ }
13
+ return null;
14
+ };
15
+
9
16
  /** 执行脚本 */
10
17
  export async function execute(
11
18
  script: string,
@@ -15,14 +22,7 @@ export async function execute(
15
22
  ): Promise<void> {
16
23
  try {
17
24
  const f = await compile(script, { input_mode: template ? 'Template' : 'Script', sourceMap: true, fileName });
18
- const r = f(
19
- createVmContext({
20
- debug_print: VmFunction((...values) => {
21
- console.log(...debug_print.prefix, ...values.map((v) => (typeof v == 'string' ? v : print(v))));
22
- }, debug_print),
23
- ...variables,
24
- }),
25
- );
25
+ const r = f(createVmContext(variables));
26
26
  if (template) {
27
27
  console.log(r);
28
28
  } else {
@@ -8,11 +8,12 @@ export { DiagnosticCode };
8
8
  const diagnosticMessages = new Map<DiagnosticCode, string | null>();
9
9
  /** 获取 {@link DiagnosticCode} 对应的消息 */
10
10
  export function getDiagnosticMessage(code: DiagnosticCode): string | null {
11
- if (!isSafeInteger(code) || code < 0 || code >= 0xffff) {
11
+ if (code < 0 || code >= 0xffff || !isSafeInteger(code)) {
12
12
  throw new RangeError(`Invalid DiagnosticCode: ${code}`);
13
13
  }
14
- if (diagnosticMessages.has(code)) {
15
- return diagnosticMessages.get(code) || null;
14
+ const cached = diagnosticMessages.get(code);
15
+ if (cached !== undefined) {
16
+ return cached;
16
17
  }
17
18
  const mod = getModule();
18
19
  const msg = mod.getDiagnosticMessage(code);
@@ -83,6 +84,23 @@ interface ParsedDiagnostics {
83
84
  sourcemaps: IRange[];
84
85
  }
85
86
 
87
+ const {
88
+ ErrorStart,
89
+ ErrorEnd,
90
+ WarningStart,
91
+ WarningEnd,
92
+ InfoStart,
93
+ InfoEnd,
94
+ HintStart,
95
+ HintEnd,
96
+ TagStart,
97
+ TagEnd,
98
+ ReferenceStart,
99
+ ReferenceEnd,
100
+ TagRefStart,
101
+ TagRefEnd,
102
+ SourceMap,
103
+ } = DiagnosticCode;
86
104
  /** 分析诊断信息,{@link diagnostic_position_encoding} 不能设为 `None` */
87
105
  export function parseDiagnostics(
88
106
  source: ScriptInput,
@@ -122,17 +140,17 @@ export function parseDiagnostics(
122
140
  for (let i = 0; i < parsed.length; i++) {
123
141
  const diagnostic = parsed[i]!;
124
142
  const { code } = diagnostic;
125
- if (code > DiagnosticCode.ErrorStart && code < DiagnosticCode.ErrorEnd) {
143
+ if (code > ErrorStart && code < ErrorEnd) {
126
144
  _errors.push(diagnostic);
127
- } else if (code > DiagnosticCode.WarningStart && code < DiagnosticCode.WarningEnd) {
145
+ } else if (code > WarningStart && code < WarningEnd) {
128
146
  _warnings.push(diagnostic);
129
- } else if (code > DiagnosticCode.InfoStart && code < DiagnosticCode.InfoEnd) {
147
+ } else if (code > InfoStart && code < InfoEnd) {
130
148
  _infos.push(diagnostic);
131
- } else if (code > DiagnosticCode.HintStart && code < DiagnosticCode.HintEnd) {
149
+ } else if (code > HintStart && code < HintEnd) {
132
150
  _hints.push(diagnostic);
133
- } else if (code > DiagnosticCode.TagStart && code < DiagnosticCode.TagEnd) {
151
+ } else if (code > TagStart && code < TagEnd) {
134
152
  _tags.push(diagnostic);
135
- } else if (code === DiagnosticCode.SourceMap) {
153
+ } else if (code === SourceMap) {
136
154
  _sourcemaps.push(diagnostic.range);
137
155
  continue;
138
156
  } else {
@@ -143,11 +161,11 @@ export function parseDiagnostics(
143
161
  while (i + 1 < parsed.length) {
144
162
  const ref = parsed[i + 1]!;
145
163
  let isRef = false;
146
- if (ref.code > DiagnosticCode.TagRefStart && ref.code < DiagnosticCode.TagRefEnd) {
164
+ if (ref.code > TagRefStart && ref.code < TagRefEnd) {
147
165
  isRef = true;
148
166
  _tagsReferences.push(ref);
149
167
  }
150
- if (ref.code > DiagnosticCode.ReferenceStart && ref.code < DiagnosticCode.ReferenceEnd) {
168
+ if (ref.code > ReferenceStart && ref.code < ReferenceEnd) {
151
169
  isRef = true;
152
170
  _references.push(ref);
153
171
  }
@@ -1,4 +1,4 @@
1
- import { toString } from '../../helpers/convert.js';
1
+ import { toString } from '../../helpers/convert/to-string.js';
2
2
  import { toJsLiteral } from './consts.js';
3
3
  import type { Emitter } from './index.js';
4
4
 
@@ -5,9 +5,14 @@ import { GLOBAL_HINT, SCRIPT_PREFIX } from './constants.js';
5
5
  import type { GlobalMap } from './globals.js';
6
6
 
7
7
  const ORIGIN = `mira://MiraScript/`;
8
- const PREFIX = '//# ';
9
- const SOURCE_URL = `${PREFIX}sourceURL`;
10
- const SOURCE_MAPPING_URL = `${PREFIX}sourceMappingURL`;
8
+ const { SOURCE_URL, SOURCE_MAPPING_URL } = ((source, mapping, url) => {
9
+ // 避免被识别为当前文件的源映射
10
+ const prefix = '//# ';
11
+ return {
12
+ SOURCE_URL: prefix.concat(source, url),
13
+ SOURCE_MAPPING_URL: prefix.concat(source, mapping, url),
14
+ };
15
+ })(`source`, `Mapping`, `URL`);
11
16
  // 前两行固定为:
12
17
  // (function anonymous($Add,$Aeq, ...
13
18
  // ) {
@@ -0,0 +1,4 @@
1
+ export { toNumber } from './to-number.js';
2
+ export { toString } from './to-string.js';
3
+ export { toFormat } from './to-format.js';
4
+ export { toBoolean } from './to-boolean.js';
@@ -0,0 +1,12 @@
1
+ import type { VmAny } from '../../vm/index.js';
2
+ import { VmError } from '../error.js';
3
+ import { display } from '../serialize.js';
4
+
5
+ /** 转换为 boolean */
6
+ export function toBoolean<F = undefined>(value: VmAny, fallback?: F): boolean | Exclude<F, undefined> {
7
+ if (typeof value === 'boolean') return value;
8
+ if (fallback === undefined) {
9
+ throw new VmError(`Failed to convert value to boolean: ${display(value)}`, false);
10
+ }
11
+ return fallback as Exclude<F, undefined>;
12
+ }
@@ -0,0 +1,37 @@
1
+ import type { VmAny } from '../../vm/index.js';
2
+ import { isFinite } from '../utils.js';
3
+ import { toString } from './to-string.js';
4
+
5
+ /** 渲染数字 */
6
+ function formatNumber(value: number): string {
7
+ if (!isFinite(value)) return toString(value, undefined as never);
8
+ if (value === 0) return '0';
9
+ const s = value.toString();
10
+ let ps;
11
+ const abs = Math.abs(value);
12
+ if (abs >= 1000 || abs < 0.001) {
13
+ const ps1 = value.toExponential();
14
+ const ps2 = value.toExponential(5);
15
+ ps = ps1.length < ps2.length ? ps1 : ps2;
16
+ } else {
17
+ ps = value.toPrecision(6);
18
+ }
19
+ return ps.length < s.length ? ps : s;
20
+ }
21
+
22
+ /** 格式化为 string */
23
+ export function toFormat(value: VmAny, format: string | null | undefined): string {
24
+ const f = format == null ? '' : format.trim();
25
+
26
+ if (typeof value == 'number') {
27
+ if (/^\.\d+$/.test(f)) {
28
+ let digits = Math.trunc(Number(f.slice(1)));
29
+ if (!(digits <= 100)) digits = 100;
30
+ return value.toFixed(digits);
31
+ } else {
32
+ return formatNumber(value);
33
+ }
34
+ }
35
+
36
+ return toString(value, undefined as never);
37
+ }
@@ -0,0 +1,35 @@
1
+ import type { VmAny } from '../../vm/index.js';
2
+ import { VmError } from '../error.js';
3
+ import { display } from '../serialize.js';
4
+ import { isNaN } from '../utils.js';
5
+ const { POSITIVE_INFINITY, NEGATIVE_INFINITY } = Number;
6
+
7
+ /** 转换为 number */
8
+ export function toNumber<F = undefined>(value: VmAny, fallback?: F): number | Exclude<F, undefined> {
9
+ if (typeof value === 'number') {
10
+ return value;
11
+ }
12
+ if (typeof value == 'boolean') {
13
+ return value ? 1 : 0;
14
+ }
15
+ if (typeof value == 'string') {
16
+ value = value.trim();
17
+ if (value !== '') {
18
+ if (value === 'inf' || value === '+inf' || value === 'Infinity' || value === '+Infinity') {
19
+ return POSITIVE_INFINITY;
20
+ }
21
+ if (value === '-inf' || value === '-Infinity') {
22
+ return NEGATIVE_INFINITY;
23
+ }
24
+ if (value === 'nan' || value === 'NaN') {
25
+ return Number.NaN;
26
+ }
27
+ const num = Number(value);
28
+ if (!isNaN(num)) return num;
29
+ }
30
+ }
31
+ if (fallback === undefined) {
32
+ throw new VmError(`Failed to convert value to number: ${display(value)}`, Number.NaN);
33
+ }
34
+ return fallback as Exclude<F, undefined>;
35
+ }
@@ -0,0 +1,55 @@
1
+ import type { VmAny, VmRecord } from '../../vm/index.js';
2
+ import { isVmArray, isVmWrapper } from '../types.js';
3
+ import { VmError } from '../error.js';
4
+ import { display, displayFunction } from '../serialize.js';
5
+ import { keys, isNaN } from '../utils.js';
6
+
7
+ /** 转换为 string */
8
+ function numberToString(value: number): string {
9
+ if (isNaN(value)) return 'nan';
10
+ if (value === Infinity) return 'inf';
11
+ if (value === -Infinity) return '-inf';
12
+ return String(value);
13
+ }
14
+
15
+ /** 转换为 string */
16
+ export function innerToString(value: VmAny, useBraces: boolean): string {
17
+ if (value == null) return 'nil';
18
+ if (typeof value == 'number') return numberToString(value);
19
+ if (typeof value == 'string' || typeof value == 'boolean') return String(value);
20
+ if (typeof value == 'function') return displayFunction(value);
21
+ if (isVmWrapper(value)) return value.toString(useBraces);
22
+ if (isVmArray(value)) {
23
+ const strings: string[] = [];
24
+ for (const item of value) {
25
+ strings.push(innerToString(item, true));
26
+ }
27
+ // 在 join 过程中会自动把 null/undefined 和 empty slot 转为 ''
28
+ // 与 innerToString 行为不一致
29
+ const results = strings.join(', ');
30
+ if (!useBraces) return results;
31
+ return `[${results}]`;
32
+ } else {
33
+ const entries = keys(value satisfies VmRecord)
34
+ .map((key) => `${key}: ${innerToString(value[key], true)}`)
35
+ .join(', ');
36
+ if (!useBraces) return entries;
37
+ return `(${entries})`;
38
+ }
39
+ }
40
+
41
+ /** 转换为 string */
42
+ export function toString<F = undefined>(value: VmAny, fallback?: F): string | Exclude<F, undefined> {
43
+ if (typeof value === 'string') return value;
44
+ if (value == null) return '';
45
+ try {
46
+ return innerToString(value, false);
47
+ } catch (ex) {
48
+ if (fallback === undefined) {
49
+ const e = new VmError(`Failed to convert value to string: ${display(value)}`, '');
50
+ e.cause = ex;
51
+ throw e;
52
+ }
53
+ return fallback as Exclude<F, undefined>;
54
+ }
55
+ }
@@ -310,6 +310,7 @@ export function displayFunction(value: VmFunction): string {
310
310
  try {
311
311
  const name = getVmFunctionInfo(value)?.fullName;
312
312
  return name ? `<function ${name}>` : `<function>`;
313
+ /* c8 ignore next 3 */
313
314
  } catch {
314
315
  return `<function>`;
315
316
  }
package/src/subtle.ts CHANGED
@@ -1,8 +1,8 @@
1
1
  import { getModule } from '@mirascript/bindings';
2
2
 
3
3
  export * as constants from './helpers/constants.js';
4
- export * as convert from './helpers/convert.js';
5
- export { VmSharedContext, DefaultVmContext } from './vm/types/context.js';
4
+ export * as convert from './helpers/convert/index.js';
5
+ export { DefaultVmContext } from './vm/types/context.js';
6
6
  export * as operations from './vm/operations.js';
7
7
  export {
8
8
  display as serializeForDisplay,
@@ -1,13 +1,22 @@
1
+ import { isNaN } from '../helpers/utils.js';
2
+ // 不使用 performance.now(),精度够即可,且性能开销更小
3
+ const { now } = Date;
4
+ const TIME_ORIGIN = now() - 1000 * 3600 * 24; // 减去一天,防止系统时间被调整到过去时出问题
5
+ const timestamp = () => now() - TIME_ORIGIN;
6
+
1
7
  const MAX_DEPTH = 128;
8
+ const CP_UNSET = -1;
9
+ /** Default timeout in milliseconds */
10
+ const CP_DEFAULT_TIMEOUT = 100;
2
11
 
3
12
  let cpDepth = 0;
4
- let cp = Number.NaN;
5
- let cpTimeout = 100; // Default timeout in milliseconds
13
+ let cp = CP_UNSET;
14
+ let cpTimeout = CP_DEFAULT_TIMEOUT;
6
15
  /** 检查点 */
7
16
  export function Cp(): void {
8
- if (!cp) {
9
- cp = Date.now();
10
- } else if (Date.now() - cp > cpTimeout) {
17
+ if (cp === CP_UNSET) {
18
+ cp = timestamp();
19
+ } else if (timestamp() - cp > cpTimeout) {
11
20
  throw new RangeError('Execution timeout');
12
21
  }
13
22
  }
@@ -15,7 +24,7 @@ export function Cp(): void {
15
24
  export function CpEnter(): void {
16
25
  cpDepth++;
17
26
  if (cpDepth <= 1) {
18
- cp = Date.now();
27
+ cp = timestamp();
19
28
  cpDepth = 1;
20
29
  } else if (cpDepth > MAX_DEPTH) {
21
30
  throw new RangeError('Maximum call depth exceeded');
@@ -27,16 +36,16 @@ export function CpEnter(): void {
27
36
  export function CpExit(): void {
28
37
  cpDepth--;
29
38
  if (cpDepth < 1) {
30
- cp = Number.NaN;
39
+ cp = CP_UNSET;
31
40
  cpDepth = 0;
32
41
  } else {
33
42
  Cp();
34
43
  }
35
44
  }
36
45
  /** 设置检查点超时时间 */
37
- export function configCheckpoint(timeout = 100): void {
38
- if (typeof timeout !== 'number' || timeout <= 0 || Number.isNaN(timeout)) {
46
+ export function configCheckpoint(timeout = CP_DEFAULT_TIMEOUT): void {
47
+ if (typeof timeout !== 'number' || timeout <= 0 || isNaN(timeout)) {
39
48
  throw new RangeError('Invalid timeout value');
40
49
  }
41
- cpTimeout = timeout;
50
+ cpTimeout = Math.ceil(timeout);
42
51
  }
package/src/vm/helpers.ts CHANGED
@@ -30,7 +30,7 @@ export const ElementOpt = (key: string, value: VmAny): VmConst => {
30
30
  return { [key]: value };
31
31
  };
32
32
 
33
- export const Function = (fn: VmFunctionLike, name = VM_FUNCTION_ANONYMOUS_NAME): VmFunction => {
33
+ export const Function = (fn: VmFunctionLike, name: string = VM_FUNCTION_ANONYMOUS_NAME): VmFunction => {
34
34
  defineProperty(fn, 'name', { value: name });
35
35
  return VmFunction(fn, { isLib: false, injectCp: false });
36
36
  };