@mirascript/mirascript 0.1.74 → 0.1.78

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 (75) hide show
  1. package/dist/{chunk-VI74OKFU.js → chunk-BITOQYYQ.js} +99 -89
  2. package/dist/chunk-BITOQYYQ.js.map +6 -0
  3. package/dist/{chunk-GONOUVUN.js → chunk-VNQQF2W7.js} +143 -58
  4. package/dist/chunk-VNQQF2W7.js.map +6 -0
  5. package/dist/compiler/emit/index.d.ts.map +1 -1
  6. package/dist/compiler/emit-script.d.ts.map +1 -1
  7. package/dist/compiler/worker.js +1 -1
  8. package/dist/helpers/convert/to-number.d.ts.map +1 -1
  9. package/dist/helpers/convert/to-string.d.ts +2 -0
  10. package/dist/helpers/convert/to-string.d.ts.map +1 -1
  11. package/dist/helpers/error.d.ts +1 -0
  12. package/dist/helpers/error.d.ts.map +1 -1
  13. package/dist/helpers/serialize.d.ts.map +1 -1
  14. package/dist/helpers/utils.d.ts +9 -0
  15. package/dist/helpers/utils.d.ts.map +1 -1
  16. package/dist/index.js +3 -3
  17. package/dist/index.js.map +1 -1
  18. package/dist/subtle.js +2 -2
  19. package/dist/vm/lib/global/debug.d.ts.map +1 -1
  20. package/dist/vm/lib/global/json.d.ts +3 -2
  21. package/dist/vm/lib/global/json.d.ts.map +1 -1
  22. package/dist/vm/lib/global/math/index.d.ts +2 -2
  23. package/dist/vm/lib/global/math/index.d.ts.map +1 -1
  24. package/dist/vm/lib/global/math/{gamma.d.ts → tgamma.d.ts} +1 -1
  25. package/dist/vm/lib/global/math/tgamma.d.ts.map +1 -0
  26. package/dist/vm/lib/global/math/{round.d.ts → to-int.d.ts} +1 -1
  27. package/dist/vm/lib/global/math/to-int.d.ts.map +1 -0
  28. package/dist/vm/lib/global/sequence/entries.d.ts +1 -1
  29. package/dist/vm/lib/global/sequence/entries.d.ts.map +1 -1
  30. package/dist/vm/lib/global/sequence/fold.d.ts +3 -0
  31. package/dist/vm/lib/global/sequence/fold.d.ts.map +1 -0
  32. package/dist/vm/lib/global/sequence/group.d.ts +3 -0
  33. package/dist/vm/lib/global/sequence/group.d.ts.map +1 -0
  34. package/dist/vm/lib/global/sequence/index.d.ts +2 -0
  35. package/dist/vm/lib/global/sequence/index.d.ts.map +1 -1
  36. package/dist/vm/lib/global/sequence/new.d.ts.map +1 -1
  37. package/dist/vm/lib/global/sequence/with.d.ts.map +1 -1
  38. package/dist/vm/lib/global/sequence/zip.d.ts +2 -2
  39. package/dist/vm/lib/global/sequence/zip.d.ts.map +1 -1
  40. package/dist/vm/lib/helpers.d.ts +2 -2
  41. package/dist/vm/lib/helpers.d.ts.map +1 -1
  42. package/dist/vm/operations/array-range.d.ts.map +1 -1
  43. package/dist/vm/operations/compound.d.ts.map +1 -1
  44. package/package.json +5 -5
  45. package/src/compiler/compile-fast.ts +1 -1
  46. package/src/compiler/emit/index.ts +0 -6
  47. package/src/compiler/emit-script.ts +1 -0
  48. package/src/helpers/convert/to-number.ts +5 -10
  49. package/src/helpers/convert/to-string.ts +3 -2
  50. package/src/helpers/error.ts +3 -1
  51. package/src/helpers/serialize.ts +4 -9
  52. package/src/helpers/types.ts +1 -1
  53. package/src/helpers/utils.ts +27 -0
  54. package/src/vm/lib/global/debug.ts +4 -8
  55. package/src/vm/lib/global/json.ts +21 -9
  56. package/src/vm/lib/global/math/index.ts +2 -2
  57. package/src/vm/lib/global/math/{gamma.ts → tgamma.ts} +8 -14
  58. package/src/vm/lib/global/sequence/entries.ts +6 -1
  59. package/src/vm/lib/global/sequence/fold.ts +30 -0
  60. package/src/vm/lib/global/sequence/group.ts +37 -0
  61. package/src/vm/lib/global/sequence/index.ts +2 -0
  62. package/src/vm/lib/global/sequence/map-filter.ts +2 -2
  63. package/src/vm/lib/global/sequence/new.ts +8 -2
  64. package/src/vm/lib/global/sequence/with.ts +7 -6
  65. package/src/vm/lib/global/sequence/zip.ts +21 -10
  66. package/src/vm/lib/helpers.ts +6 -6
  67. package/src/vm/lib/mod/matrix.ts +2 -2
  68. package/src/vm/operations/array-range.ts +10 -6
  69. package/src/vm/operations/compound.ts +13 -6
  70. package/src/vm/types/extern.ts +1 -1
  71. package/dist/chunk-GONOUVUN.js.map +0 -6
  72. package/dist/chunk-VI74OKFU.js.map +0 -6
  73. package/dist/vm/lib/global/math/gamma.d.ts.map +0 -1
  74. package/dist/vm/lib/global/math/round.d.ts.map +0 -1
  75. /package/src/vm/lib/global/math/{round.ts → to-int.ts} +0 -0
@@ -3,7 +3,7 @@ import {
3
3
  emit,
4
4
  generateBytecode,
5
5
  parseDiagnostics
6
- } from "../chunk-VI74OKFU.js";
6
+ } from "../chunk-BITOQYYQ.js";
7
7
 
8
8
  // src/compiler/worker.ts
9
9
  import { expose, WorkerResult } from "@cloudpss/worker/pool";
@@ -1 +1 @@
1
- {"version":3,"file":"to-number.d.ts","sourceRoot":"","sources":["../../../src/helpers/convert/to-number.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AA2D/C,iBAAiB;AACjB,wBAAgB,QAAQ,CAAC,CAAC,GAAG,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,EAAE,CAAC,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC,EAAE,SAAS,CAAC,CAWlG"}
1
+ {"version":3,"file":"to-number.d.ts","sourceRoot":"","sources":["../../../src/helpers/convert/to-number.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAsD/C,iBAAiB;AACjB,wBAAgB,QAAQ,CAAC,CAAC,GAAG,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,EAAE,CAAC,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC,EAAE,SAAS,CAAC,CAWlG"}
@@ -1,5 +1,7 @@
1
1
  import type { VmAny } from '../../vm/index.js';
2
2
  /** 转换为 string */
3
+ export declare function numberToString(value: number, minusZero: boolean): string;
4
+ /** 转换为 string */
3
5
  export declare function innerToString(value: VmAny, useBraces: boolean): string;
4
6
  /** 转换为 string */
5
7
  export declare function toString<F = undefined>(value: VmAny, fallback?: F): string | Exclude<F, undefined>;
@@ -1 +1 @@
1
- {"version":3,"file":"to-string.d.ts","sourceRoot":"","sources":["../../../src/helpers/convert/to-string.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAY,MAAM,mBAAmB,CAAC;AAczD,iBAAiB;AACjB,wBAAgB,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,GAAG,MAAM,CAuBtE;AAED,iBAAiB;AACjB,wBAAgB,QAAQ,CAAC,CAAC,GAAG,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,EAAE,CAAC,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC,EAAE,SAAS,CAAC,CAalG"}
1
+ {"version":3,"file":"to-string.d.ts","sourceRoot":"","sources":["../../../src/helpers/convert/to-string.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAY,MAAM,mBAAmB,CAAC;AAMzD,iBAAiB;AACjB,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,GAAG,MAAM,CAMxE;AAED,iBAAiB;AACjB,wBAAgB,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,GAAG,MAAM,CAuBtE;AAED,iBAAiB;AACjB,wBAAgB,QAAQ,CAAC,CAAC,GAAG,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,EAAE,CAAC,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC,EAAE,SAAS,CAAC,CAalG"}
@@ -5,6 +5,7 @@ import type { VmAny } from '../vm/types/index.js';
5
5
  export declare class VmError extends Error {
6
6
  readonly recovered: VmAny;
7
7
  constructor(message: string, recovered: VmAny);
8
+ readonly name = "VmError";
8
9
  /** 从其他错误构造 */
9
10
  static from(prefix: string, error: unknown, recovered: VmAny): VmError;
10
11
  }
@@ -1 +1 @@
1
- {"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../../src/helpers/error.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAElD;;GAEG;AACH,qBAAa,OAAQ,SAAQ,KAAK;IAG1B,QAAQ,CAAC,SAAS,EAAE,KAAK;gBADzB,OAAO,EAAE,MAAM,EACN,SAAS,EAAE,KAAK;IAM7B,cAAc;IACd,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,GAAG,OAAO;CAkBzE"}
1
+ {"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../../src/helpers/error.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAElD;;GAEG;AACH,qBAAa,OAAQ,SAAQ,KAAK;IAI1B,QAAQ,CAAC,SAAS,EAAE,KAAK;gBAFzB,OAAO,EAAE,MAAM,EAEN,SAAS,EAAE,KAAK;IAK7B,SAAkB,IAAI,aAAa;IAEnC,cAAc;IACd,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,GAAG,OAAO;CAkBzE"}
@@ -1 +1 @@
1
- {"version":3,"file":"serialize.d.ts","sourceRoot":"","sources":["../../src/helpers/serialize.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"serialize.d.ts","sourceRoot":"","sources":["../../src/helpers/serialize.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import type { VmConst, VmRecord } from '../vm/index.js';
1
2
  export declare const isArray: (arg: any) => arg is unknown[];
2
3
  export declare const isFinite: (number: unknown) => boolean, isNaN: (number: unknown) => boolean, isInteger: (number: unknown) => boolean, isSafeInteger: (number: unknown) => boolean, NotNumber: number, PositiveInfinity: number, NegativeInfinity: number;
3
4
  export declare const hasOwn: <Obj extends object, Key extends PropertyKey>(o: Obj, v: Key) => o is Obj & (string extends Key ? {} : number extends Key ? {} : symbol extends Key ? {} : Key extends PropertyKey ? { [key in Key]: unknown; } : {}), keys: {
@@ -42,4 +43,12 @@ export declare const keysLength: (o: object) => number;
42
43
  * Determines whether an object has an enumerable property with the specified name.
43
44
  */
44
45
  export declare const hasOwnEnumerable: (o: object, v: PropertyKey) => boolean;
46
+ /**
47
+ * Set property on an vm record.
48
+ */
49
+ export declare const setRecord: (obj: Record<string, VmConst | undefined>, key: string, value: VmConst | undefined) => void;
50
+ /**
51
+ * Get property from an vm record.
52
+ */
53
+ export declare const getRecord: (obj: VmRecord, key: string) => VmConst | undefined;
45
54
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/helpers/utils.ts"],"names":[],"mappings":"AAAA,eAAO,MAAQ,OAAO,gCAAU,CAAC;AACjC,eAAO,MACH,QAAQ,gCACR,KAAK,gCACL,SAAS,gCACT,aAAa,gCACR,SAAS,UACK,gBAAgB,UAChB,gBAAgB,QAC7B,CAAC;AACX,eAAO,MAAQ,MAAM,yNAAE,IAAI;;;GAAE,MAAM;;;;GAAE,OAAO;;;;GAAE,MAAM;;;;;;;;;;;;;GAAE,WAAW,2FAAE,cAAc;;;;+BAAE,mBAAmB,uBAAE,MAAM;;;;;;CACpG,CAAC;AACX,eAAO,MAAQ,KAAK,wBAAE,cAAc,+BAAY,CAAC;AAGjD,eAAe;AACf,eAAO,MAAM,UAAU,MAEa,MAAM,KAAK,MACA,CAAC;AAEhD;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAGxB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/helpers/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAExD,eAAO,MAAQ,OAAO,gCAAU,CAAC;AACjC,eAAO,MACH,QAAQ,gCACR,KAAK,gCACL,SAAS,gCACT,aAAa,gCACR,SAAS,UACK,gBAAgB,UAChB,gBAAgB,QAC7B,CAAC;AACX,eAAO,MAAQ,MAAM,yNAAE,IAAI;;;GAAE,MAAM;;;;GAAE,OAAO;;;;GAAE,MAAM;;;;;;;;;;;;;GAAE,WAAW,2FAAE,cAAc;;;;+BAAE,mBAAmB,uBAAE,MAAM;;;;;;CACpG,CAAC;AACX,eAAO,MAAQ,KAAK,wBAAE,cAAc,+BAAY,CAAC;AAGjD,eAAe;AACf,eAAO,MAAM,UAAU,MAEa,MAAM,KAAK,MACA,CAAC;AAEhD;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAGxB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC;AAG5C;;GAEG;AACH,eAAO,MAAM,SAAS,GAAI,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,GAAG,SAAS,CAAC,EAAE,KAAK,MAAM,EAAE,OAAO,OAAO,GAAG,SAAS,KAAG,IAW7G,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,SAAS,GAAI,KAAK,QAAQ,EAAE,KAAK,MAAM,KAAG,OAAO,GAAG,SAGhE,CAAC"}
package/dist/index.js CHANGED
@@ -12,7 +12,7 @@ import {
12
12
  unwrapFromVmValue,
13
13
  wrapScript,
14
14
  wrapToVmValue
15
- } from "./chunk-GONOUVUN.js";
15
+ } from "./chunk-VNQQF2W7.js";
16
16
  import {
17
17
  VmError,
18
18
  defineProperty,
@@ -39,7 +39,7 @@ import {
39
39
  isVmValue,
40
40
  isVmWrapper,
41
41
  serialize
42
- } from "./chunk-VI74OKFU.js";
42
+ } from "./chunk-BITOQYYQ.js";
43
43
 
44
44
  // src/compiler/compile-fast.ts
45
45
  import { isKeyword } from "@mirascript/constants";
@@ -47,7 +47,7 @@ var REG_NUMBER_FULL = /^(?:[+-])?\d+(?:\.\d+)?(?:[eE][+-]?\d+)?$/;
47
47
  var REG_IDENTIFIER_FAST = /^(?:\$+|@+|[A-Za-z])[a-zA-Z0-9_]*$/;
48
48
  var FAST_SCRIPT_MAX_LEN = 32;
49
49
  function safeStringify(value) {
50
- return JSON.stringify(value).replaceAll(/[<>&\u2028\u2029/]/gu, (c) => {
50
+ return JSON.stringify(value).replaceAll(/[<>&\u{2028}\u{2029}/]/gu, (c) => {
51
51
  return String.raw`\u${c.codePointAt(0)?.toString(16).padStart(4, "0")}`;
52
52
  });
53
53
  }
package/dist/index.js.map CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/compiler/compile-fast.ts", "../src/compiler/worker-manager.ts", "../src/compiler/index.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": []
6
6
  }
package/dist/subtle.js CHANGED
@@ -6,7 +6,7 @@ import {
6
6
  lib,
7
7
  operations_exports,
8
8
  wrapScript
9
- } from "./chunk-GONOUVUN.js";
9
+ } from "./chunk-VNQQF2W7.js";
10
10
  import {
11
11
  DiagnosticCode,
12
12
  constants_exports,
@@ -26,7 +26,7 @@ import {
26
26
  serializeRecord,
27
27
  serializeRecordKey,
28
28
  serializeString
29
- } from "./chunk-VI74OKFU.js";
29
+ } from "./chunk-BITOQYYQ.js";
30
30
 
31
31
  // src/subtle.ts
32
32
  import { OpCode, isKeyword } from "@mirascript/constants";
@@ -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;AAOnB,YAAY;AACZ,UAAU,YAAY;IAClB,cAAc;IACd,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7B,2CAA2C;IAC3C,MAAM,EAAE,SAAS,KAAK,EAAE,CAAC;IACzB,qCAAqC;IACrC,OAAO,EAAE,SAAS,eAAe,EAAE,CAAC;CACvC;AAgJD,aAAa;AACb,KAAK,YAAY,GAAG;IAChB,eAAe;IACf,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC;IACrE;;;;;OAKG;IACH,UAAU,EAAE,CAAC,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,eAAe,KAAK,MAAM,GAAG,IAAI,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;IAC7G,kEAAkE;IAClE,MAAM,EAAE,CAAC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,SAAS,KAAK,EAAE,KAAK,YAAY,CAAC;IACrE,0CAA0C;IAC1C,SAAS,EAAE,CAAC,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,KAAK,OAAO,EAAE,GAAG,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC;IAC5F,mBAAmB;IACnB,MAAM,EAAE,CAAC,IAAI,EAAE,YAAY,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;CAC5D,CAAC;AAQF,eAAO,MAAM,WAAW,gJAcvB,CAAC;AAEF,eAAO,MAAM,KAAK,aACJ,KAAK,gEAclB,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;AAOnB,YAAY;AACZ,UAAU,YAAY;IAClB,cAAc;IACd,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7B,2CAA2C;IAC3C,MAAM,EAAE,SAAS,KAAK,EAAE,CAAC;IACzB,qCAAqC;IACrC,OAAO,EAAE,SAAS,eAAe,EAAE,CAAC;CACvC;AA4ID,aAAa;AACb,KAAK,YAAY,GAAG;IAChB,eAAe;IACf,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC;IACrE;;;;;OAKG;IACH,UAAU,EAAE,CAAC,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,eAAe,KAAK,MAAM,GAAG,IAAI,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;IAC7G,kEAAkE;IAClE,MAAM,EAAE,CAAC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,SAAS,KAAK,EAAE,KAAK,YAAY,CAAC;IACrE,0CAA0C;IAC1C,SAAS,EAAE,CAAC,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,KAAK,OAAO,EAAE,GAAG,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC;IAC5F,mBAAmB;IACnB,MAAM,EAAE,CAAC,IAAI,EAAE,YAAY,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;CAC5D,CAAC;AAQF,eAAO,MAAM,WAAW,gJAcvB,CAAC;AAEF,eAAO,MAAM,KAAK,aACJ,KAAK,gEAclB,CAAC"}
@@ -1,3 +1,4 @@
1
- export declare const to_json: ((data: import("../../types/index.js").VmValue | undefined) => string | null) & import("../helpers.js").VmLibOption & Record<never, never>;
2
- export declare const from_json: ((json: import("../../types/index.js").VmValue | undefined, fallback: import("../../types/index.js").VmValue | undefined) => string | number | boolean | import("../../types/index.js").VmRecord | import("../../types/index.js").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>;
1
+ import { type VmValue } from '../../types/index.js';
2
+ export declare const to_json: ((data: VmValue | undefined) => string | null | undefined) & import("../helpers.js").VmLibOption & Record<never, never>;
3
+ export declare const from_json: ((json: VmValue | undefined, fallback: VmValue | undefined) => string | number | boolean | import("../../types/index.js").VmRecord | import("../../types/index.js").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>;
3
4
  //# sourceMappingURL=json.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"json.d.ts","sourceRoot":"","sources":["../../../../src/vm/lib/global/json.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,OAAO,4IAmBnB,CAAC;AAEF,eAAO,MAAM,SAAS,yfAmBrB,CAAC"}
1
+ {"version":3,"file":"json.d.ts","sourceRoot":"","sources":["../../../../src/vm/lib/global/json.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0B,KAAK,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAI5E,eAAO,MAAM,OAAO,yHA+BnB,CAAC;AAEF,eAAO,MAAM,SAAS,2bAmBrB,CAAC"}
@@ -4,6 +4,6 @@ export declare const random: (() => number) & import("../../helpers.js").VmLibOp
4
4
  export * from './arr.js';
5
5
  export * from './const.js';
6
6
  export * from './unary.js';
7
- export * from './round.js';
8
- export { gamma, factorial } from './gamma.js';
7
+ export * from './to-int.js';
8
+ export { gamma, factorial } from './tgamma.js';
9
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/vm/lib/global/math/index.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,KAAK,sLAOhB,CAAC;AACH,eAAO,MAAM,GAAG,sLAOd,CAAC;AACH,eAAO,MAAM,MAAM,gFAIjB,CAAC;AAEH,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/vm/lib/global/math/index.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,KAAK,sLAOhB,CAAC;AACH,eAAO,MAAM,GAAG,sLAOd,CAAC;AACH,eAAO,MAAM,MAAM,gFAIjB,CAAC;AAEH,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC"}
@@ -1,3 +1,3 @@
1
1
  export declare const gamma: ((x: import("../../../index.js").VmValue | undefined) => number) & import("../../helpers.js").VmLibOption & Record<never, never>;
2
2
  export declare const factorial: ((x: import("../../../index.js").VmValue | undefined) => number) & import("../../helpers.js").VmLibOption & Record<never, never>;
3
- //# sourceMappingURL=gamma.d.ts.map
3
+ //# sourceMappingURL=tgamma.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tgamma.d.ts","sourceRoot":"","sources":["../../../../../src/vm/lib/global/math/tgamma.ts"],"names":[],"mappings":"AAqMA,eAAO,MAAM,KAAK,kIAWjB,CAAC;AAgBF,eAAO,MAAM,SAAS,2DACb,MAAM,iEAWd,CAAC"}
@@ -3,4 +3,4 @@ export declare const trunc: ((x: VmAny, n: VmAny) => number) & import("../../hel
3
3
  export declare const floor: ((x: VmAny, n: VmAny) => number) & import("../../helpers.js").VmLibOption & Record<never, never>;
4
4
  export declare const ceil: ((x: VmAny, n: VmAny) => number) & import("../../helpers.js").VmLibOption & Record<never, never>;
5
5
  export declare const round: ((x: VmAny, n: VmAny) => number) & import("../../helpers.js").VmLibOption & Record<never, never>;
6
- //# sourceMappingURL=round.d.ts.map
6
+ //# sourceMappingURL=to-int.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"to-int.d.ts","sourceRoot":"","sources":["../../../../../src/vm/lib/global/math/to-int.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAc/C,eAAO,MAAM,KAAK,OAV4B,KAAK,KAAK,KAAK,KAAK,MAAM,iEAiBtE,CAAC;AACH,eAAO,MAAM,KAAK,OAlB4B,KAAK,KAAK,KAAK,KAAK,MAAM,iEAyBtE,CAAC;AACH,eAAO,MAAM,IAAI,OA1B6B,KAAK,KAAK,KAAK,KAAK,MAAM,iEAiCtE,CAAC;AAGH,eAAO,MAAM,KAAK,OApC4B,KAAK,KAAK,KAAK,KAAK,MAAM,iEAsDvE,CAAC"}
@@ -6,6 +6,6 @@ export declare const entries: ((data: import("../../../types/index.js").VmValue
6
6
  1: VmConst;
7
7
  }[] | {
8
8
  0: string;
9
- 1: string | number | boolean | import("../../../types/index.js").VmRecord | import("../../../types/index.js").VmArray | null;
9
+ 1: VmConst;
10
10
  }[]) & import("../../helpers.js").VmLibOption & Record<never, never>;
11
11
  //# sourceMappingURL=entries.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"entries.d.ts","sourceRoot":"","sources":["../../../../../src/vm/lib/global/sequence/entries.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,KAAK,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAI9E,eAAO,MAAM,IAAI,wJAwBhB,CAAC;AAEF,eAAO,MAAM,MAAM,8KAgBlB,CAAC;AAEF,eAAO,MAAM,OAAO;OAIc,MAAM;OAAK,OAAO;;;;oEAenD,CAAC"}
1
+ {"version":3,"file":"entries.d.ts","sourceRoot":"","sources":["../../../../../src/vm/lib/global/sequence/entries.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,KAAK,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAI9E,eAAO,MAAM,IAAI,wJAwBhB,CAAC;AAEF,eAAO,MAAM,MAAM,8KAgBlB,CAAC;AAEF,eAAO,MAAM,OAAO;OAIc,MAAM;OAAK,OAAO;;OAOlB,MAAM;OAAK,OAAO;oEAanD,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { VmValue } from '../../../types/index.js';
2
+ export declare const fold: ((data: VmValue | undefined, initial: VmValue | undefined, f: VmValue | undefined) => VmValue) & import("../../helpers.js").VmLibOption & Record<never, never>;
3
+ //# sourceMappingURL=fold.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fold.d.ts","sourceRoot":"","sources":["../../../../../src/vm/lib/global/sequence/fold.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAGvD,eAAO,MAAM,IAAI,gKAyBhB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { VmConst } from '../../../types/index.js';
2
+ export declare const group_by: ((data: import("../../../types/index.js").VmValue | undefined, key: import("../../../types/index.js").VmValue | undefined) => Record<string, VmConst[]>) & import("../../helpers.js").VmLibOption & Record<never, never>;
3
+ //# sourceMappingURL=group.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"group.d.ts","sourceRoot":"","sources":["../../../../../src/vm/lib/global/sequence/group.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAGvD,eAAO,MAAM,QAAQ,0NA8BpB,CAAC"}
@@ -11,4 +11,6 @@ export * from './sort.js';
11
11
  export * from './unique.js';
12
12
  export * from './repeat.js';
13
13
  export * from './new.js';
14
+ export * from './fold.js';
15
+ export * from './group.js';
14
16
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/vm/lib/global/sequence/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/vm/lib/global/sequence/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"new.d.ts","sourceRoot":"","sources":["../../../../../src/vm/lib/global/sequence/new.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAW,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAO1E,eAAO,MAAM,UAAU,sIACA,QAAQ,iEAyB9B,CAAC;AAEF,eAAO,MAAM,SAAS,wIACG,OAAO,iEAkB/B,CAAC"}
1
+ {"version":3,"file":"new.d.ts","sourceRoot":"","sources":["../../../../../src/vm/lib/global/sequence/new.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAW,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAa1E,eAAO,MAAM,UAAU,sIACA,QAAQ,iEAyB9B,CAAC;AAEF,eAAO,MAAM,SAAS,wIACG,OAAO,iEAkB/B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"with.d.ts","sourceRoot":"","sources":["../../../../../src/vm/lib/global/sequence/with.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,OAAO,EAAW,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAwEzE,QAAA,MAAM,KAAK,4LA2DV,CAAC;AACF,OAAO,EAAE,KAAK,IAAI,MAAM,EAAE,CAAC"}
1
+ {"version":3,"file":"with.d.ts","sourceRoot":"","sources":["../../../../../src/vm/lib/global/sequence/with.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,OAAO,EAAW,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAyEzE,QAAA,MAAM,KAAK,4LA2DV,CAAC;AACF,OAAO,EAAE,KAAK,IAAI,MAAM,EAAE,CAAC"}
@@ -1,3 +1,3 @@
1
- import { type VmConst } from '../../../types/index.js';
2
- export declare const zip: ((data: import("../../../types/index.js").VmValue | undefined) => Record<string | number, VmConst>[]) & import("../../helpers.js").VmLibOption & Record<never, never>;
1
+ import { type VmArray, type VmRecord } from '../../../types/index.js';
2
+ export declare const zip: ((data: import("../../../types/index.js").VmValue | undefined) => (VmRecord | VmArray)[]) & import("../../helpers.js").VmLibOption & Record<never, never>;
3
3
  //# sourceMappingURL=zip.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"zip.d.ts","sourceRoot":"","sources":["../../../../../src/vm/lib/global/sequence/zip.ts"],"names":[],"mappings":"AAEA,OAAO,EAAa,KAAK,OAAO,EAAgB,MAAM,yBAAyB,CAAC;AAIhF,eAAO,MAAM,GAAG,uKAgCf,CAAC"}
1
+ {"version":3,"file":"zip.d.ts","sourceRoot":"","sources":["../../../../../src/vm/lib/global/sequence/zip.ts"],"names":[],"mappings":"AAGA,OAAO,EAA2B,KAAK,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAI/F,eAAO,MAAM,GAAG,2JA0Cf,CAAC"}
@@ -42,9 +42,9 @@ export declare function getNumbers(args: readonly VmAny[]): number[];
42
42
  /** 将值转为数组长度 */
43
43
  export declare function arrayLen(len: number | null | undefined): number;
44
44
  /** 应用映射函数 */
45
- export declare function map(data: VmConst,
45
+ export declare function iterate<T extends VmConst>(data: T,
46
46
  /** 返回 `undefined` 表示跳过该元素 */
47
- mapper: (value: VmConst, index: number | string | null, data: VmConst) => VmConst | undefined): VmConst;
47
+ mapper: (value: VmConst, index: number | string | null, data: T) => VmConst | undefined): VmConst;
48
48
  /** 库函数选项 */
49
49
  export type VmLibOption = Pick<VmFunctionOption, 'summary' | 'params' | 'returns' | 'examples' | 'deprecated'>;
50
50
  /** 库函数 */
@@ -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 +1 @@
1
- {"version":3,"file":"array-range.d.ts","sourceRoot":"","sources":["../../../src/vm/operations/array-range.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAWxD,aAAa;AACb,eAAO,MAAM,WAAW,GAAI,OAAO,KAAK,EAAE,KAAK,KAAK,KAAG,OAUtD,CAAC;AACF,qBAAqB;AACrB,eAAO,MAAM,oBAAoB,GAAI,OAAO,KAAK,EAAE,KAAK,KAAK,KAAG,OAU/D,CAAC"}
1
+ {"version":3,"file":"array-range.d.ts","sourceRoot":"","sources":["../../../src/vm/operations/array-range.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAWxD,aAAa;AACb,eAAO,MAAM,WAAW,GAAI,OAAO,KAAK,EAAE,KAAK,KAAK,KAAG,OAYtD,CAAC;AACF,qBAAqB;AACrB,eAAO,MAAM,oBAAoB,GAAI,OAAO,KAAK,EAAE,KAAK,KAAK,KAAG,OAY/D,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"compound.d.ts","sourceRoot":"","sources":["../../../src/vm/operations/compound.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAS3E,mBAAmB;AACnB,eAAO,MAAM,GAAG,GAAI,OAAO,KAAK,EAAE,UAAU,KAAK,KAAG,OAoBnD,CAAC;AAEF,aAAa;AACb,eAAO,MAAM,OAAO,GAAI,OAAO,KAAK,KAAG,MAOtC,CAAC;AAEF,iBAAiB;AACjB,eAAO,MAAM,KAAK,GAAI,OAAO,KAAK,EAAE,SAAS,aAAa,CAAC,MAAM,GAAG,MAAM,CAAC,KAAG,QAa7E,CAAC;AAEF,iBAAiB;AACjB,eAAO,MAAM,KAAK,GAAI,OAAO,KAAK,EAAE,QAAQ,aAAa,CAAC,MAAM,GAAG,MAAM,CAAC,KAAG,QAW5E,CAAC;AACF,eAAe;AACf,eAAO,MAAM,IAAI,GAAI,KAAK,KAAK,EAAE,KAAK,KAAK,KAAG,OAM7C,CAAC;AAEF,WAAW;AACX,eAAO,MAAM,IAAI,GAAI,KAAK,KAAK,EAAE,KAAK,KAAK,KAAG,OAuB7C,CAAC;AACF,WAAW;AACX,eAAO,MAAM,IAAI,GAAI,KAAK,KAAK,EAAE,KAAK,KAAK,EAAE,OAAO,KAAK,KAAG,IAM3D,CAAC;AACF,cAAc;AACd,eAAO,MAAM,SAAS,GAAI,OAAO,KAAK,KAAG,QAAQ,CAAC,OAAO,GAAG,SAAS,CAMpE,CAAC;AACF,WAAW;AACX,eAAO,MAAM,aAAa,GAAI,QAAQ,KAAK,KAAG,QAAQ,GAAG,IAuBxD,CAAC;AAEF,WAAW;AACX,eAAO,MAAM,YAAY,GAAI,OAAO,KAAK,KAAG,QAAQ,CAAC,OAAO,GAAG,SAAS,CAqBvE,CAAC"}
1
+ {"version":3,"file":"compound.d.ts","sourceRoot":"","sources":["../../../src/vm/operations/compound.ts"],"names":[],"mappings":"AAuBA,OAAO,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAS3E,mBAAmB;AACnB,eAAO,MAAM,GAAG,GAAI,OAAO,KAAK,EAAE,UAAU,KAAK,KAAG,OAoBnD,CAAC;AAEF,aAAa;AACb,eAAO,MAAM,OAAO,GAAI,OAAO,KAAK,KAAG,MAOtC,CAAC;AAEF,iBAAiB;AACjB,eAAO,MAAM,KAAK,GAAI,OAAO,KAAK,EAAE,SAAS,aAAa,CAAC,MAAM,GAAG,MAAM,CAAC,KAAG,QAY7E,CAAC;AAEF,iBAAiB;AACjB,eAAO,MAAM,KAAK,GAAI,OAAO,KAAK,EAAE,QAAQ,aAAa,CAAC,MAAM,GAAG,MAAM,CAAC,KAAG,QAW5E,CAAC;AACF,eAAe;AACf,eAAO,MAAM,IAAI,GAAI,KAAK,KAAK,EAAE,KAAK,KAAK,KAAG,OAM7C,CAAC;AAEF,WAAW;AACX,eAAO,MAAM,IAAI,GAAI,KAAK,KAAK,EAAE,KAAK,KAAK,KAAG,OAsB7C,CAAC;AACF,WAAW;AACX,eAAO,MAAM,IAAI,GAAI,KAAK,KAAK,EAAE,KAAK,KAAK,EAAE,OAAO,KAAK,KAAG,IAM3D,CAAC;AACF,cAAc;AACd,eAAO,MAAM,SAAS,GAAI,OAAO,KAAK,KAAG,QAAQ,CAAC,OAAO,GAAG,SAAS,CAMpE,CAAC;AACF,WAAW;AACX,eAAO,MAAM,aAAa,GAAI,QAAQ,KAAK,KAAG,QAAQ,GAAG,IAuBxD,CAAC;AAEF,WAAW;AACX,eAAO,MAAM,YAAY,GAAI,OAAO,KAAK,KAAG,QAAQ,CAAC,OAAO,GAAG,SAAS,CAqBvE,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mirascript/mirascript",
3
- "version": "0.1.74",
3
+ "version": "0.1.78",
4
4
  "author": "CloudPSS",
5
5
  "license": "MIT",
6
6
  "description": "An expression based scripting language.",
@@ -41,15 +41,15 @@
41
41
  "dependencies": {
42
42
  "@cloudpss/worker": "^0.1.11",
43
43
  "source-map-js": "^1.2.1",
44
- "supports-color": "^10.2.2",
45
- "@mirascript/bindings": "~0.1.74",
46
- "@mirascript/constants": "~0.1.74"
44
+ "supports-color": "^11.0.0",
45
+ "@mirascript/bindings": "~0.1.78",
46
+ "@mirascript/constants": "~0.1.78"
47
47
  },
48
48
  "devDependencies": {
49
49
  "@types/node": "^26.1.1",
50
50
  "ava": "^8.0.1",
51
51
  "c8": "^12.0.0",
52
- "tinybench": "^6.0.2",
52
+ "tinybench": "^6.1.2",
53
53
  "type-fest": "^5.8.0"
54
54
  },
55
55
  "scripts": {
@@ -20,7 +20,7 @@ const FAST_SCRIPT_MAX_LEN = 32;
20
20
 
21
21
  /** 生成安全的 JS 字符串 */
22
22
  function safeStringify(value: string): string {
23
- return JSON.stringify(value).replaceAll(/[<>&\u2028\u2029/]/gu, (c) => {
23
+ return JSON.stringify(value).replaceAll(/[<>&\u{2028}\u{2029}/]/gu, (c) => {
24
24
  return String.raw`\u${c.codePointAt(0)?.toString(16).padStart(4, '0')}`;
25
25
  });
26
26
  }
@@ -174,12 +174,6 @@ export class Emitter {
174
174
  this.codeLines.push(body);
175
175
  break;
176
176
  }
177
- if (opcode === OpCode.ElIf) {
178
- this.codeOffset++;
179
- const body = this.ident(-1) + `} else `;
180
- this.codeLines.push(body);
181
- return this.readCode();
182
- }
183
177
  this.readCode();
184
178
  }
185
179
  return this.readBlockEnd(OpCode.IfEnd);
@@ -8,6 +8,7 @@ import { DiagnosticCode, formatDiagnostics, parseDiagnostics } from './diagnosti
8
8
  export class CompileError extends Error {
9
9
  constructor(
10
10
  source: ScriptInput,
11
+ // eslint-disable-next-line unicorn/custom-error-definition
11
12
  diagnostics: Uint32Array,
12
13
  readonly fileName: string | undefined,
13
14
  ) {
@@ -1,34 +1,29 @@
1
1
  import type { VmAny } from '../../vm/index.js';
2
2
  import { VmError } from '../error.js';
3
3
  import { display } from '../serialize.js';
4
- import { isNaN, NegativeInfinity, NotNumber, PositiveInfinity } from '../utils.js';
4
+ import { NegativeInfinity, NotNumber, PositiveInfinity } from '../utils.js';
5
5
 
6
6
  /** 将字符串转换为数字 */
7
7
  function parseNumericLiteral(value: string): number | null {
8
- if (value === '') return null;
9
8
  const ch0 = value.charAt(0);
10
9
  if (ch0 < '0' || ch0 > '9') {
11
10
  return null;
12
11
  }
13
12
  // 二进制
14
13
  if (/^0[bB][01]+$/.test(value)) {
15
- const num = Number.parseInt(value.slice(2), 2);
16
- return isNaN(num) ? null : num;
14
+ return Number.parseInt(value.slice(2), 2);
17
15
  }
18
16
  // 八进制
19
17
  if (/^0[oO][0-7]+$/.test(value)) {
20
- const num = Number.parseInt(value.slice(2), 8);
21
- return isNaN(num) ? null : num;
18
+ return Number.parseInt(value.slice(2), 8);
22
19
  }
23
20
  // 十六进制
24
21
  if (/^0[xX][0-9a-fA-F]+$/.test(value)) {
25
- const num = Number.parseInt(value.slice(2), 16);
26
- return isNaN(num) ? null : num;
22
+ return Number.parseInt(value.slice(2), 16);
27
23
  }
28
24
  // 十进制/科学计数法
29
25
  if (/^[0-9]+(\.[0-9]+)?([eE][+-]?[0-9]+)?$/.test(value)) {
30
- const num = Number.parseFloat(value);
31
- return isNaN(num) ? null : num;
26
+ return Number.parseFloat(value);
32
27
  }
33
28
  return null;
34
29
  }
@@ -5,17 +5,18 @@ import { display, displayFunction } from '../serialize.js';
5
5
  import { keys, isNaN } from '../utils.js';
6
6
 
7
7
  /** 转换为 string */
8
- function numberToString(value: number): string {
8
+ export function numberToString(value: number, minusZero: boolean): string {
9
9
  if (isNaN(value)) return 'nan';
10
10
  if (value === Infinity) return 'inf';
11
11
  if (value === -Infinity) return '-inf';
12
+ if (minusZero && value === 0 && 1 / value < 0) return '-0';
12
13
  return String(value);
13
14
  }
14
15
 
15
16
  /** 转换为 string */
16
17
  export function innerToString(value: VmAny, useBraces: boolean): string {
17
18
  if (value == null) return 'nil';
18
- if (typeof value == 'number') return numberToString(value);
19
+ if (typeof value == 'number') return numberToString(value, false);
19
20
  if (typeof value == 'string' || typeof value == 'boolean') return String(value);
20
21
  if (typeof value == 'function') return displayFunction(value);
21
22
  if (isVmWrapper(value)) return value.toString(useBraces);
@@ -6,12 +6,14 @@ import type { VmAny } from '../vm/types/index.js';
6
6
  export class VmError extends Error {
7
7
  constructor(
8
8
  message: string,
9
+ // eslint-disable-next-line unicorn/custom-error-definition
9
10
  readonly recovered: VmAny,
10
11
  ) {
11
12
  super(message);
12
- this.name = 'VmError';
13
13
  }
14
14
 
15
+ override readonly name = 'VmError';
16
+
15
17
  /** 从其他错误构造 */
16
18
  static from(prefix: string, error: unknown, recovered: VmAny): VmError {
17
19
  if (prefix) {
@@ -1,6 +1,6 @@
1
1
  import { REG_IDENTIFIER_FULL, REG_ORDINAL_FULL } from '@mirascript/constants';
2
2
  import type { VmArray, VmExtern, VmFunction, VmModule, VmAny, VmRecord } from '../vm/index.js';
3
- import { entries, hasOwn, isFinite, isNaN } from '../helpers/utils.js';
3
+ import { entries, hasOwn } from '../helpers/utils.js';
4
4
  import {
5
5
  getVmFunctionInfo,
6
6
  isVmArray,
@@ -10,6 +10,7 @@ import {
10
10
  isVmModule,
11
11
  isVmRecord,
12
12
  } from './types.js';
13
+ import { numberToString } from './convert/to-string.js';
13
14
 
14
15
  /** 序列化 nil 值 */
15
16
  export function serializeNil(): string {
@@ -23,13 +24,7 @@ export function serializeBoolean(value: boolean): string {
23
24
 
24
25
  /** 序列化数字 */
25
26
  export function serializeNumber(value: number): string {
26
- if (isNaN(value)) return 'nan';
27
- if (!isFinite(value)) return value < 0 ? '-inf' : 'inf';
28
- if (value === 0) {
29
- if (1 / value < 0) return '-0';
30
- return '0';
31
- }
32
- return String(value);
27
+ return numberToString(value, true);
33
28
  }
34
29
 
35
30
  /**
@@ -177,7 +172,7 @@ const { valueOf } = Object.prototype;
177
172
  function customValueOf(value: VmRecord): VmAny | undefined {
178
173
  // eslint-disable-next-line @typescript-eslint/unbound-method
179
174
  const thisValueOf = value.valueOf;
180
- if (typeof thisValueOf != 'function' || thisValueOf === valueOf) {
175
+ if (typeof thisValueOf !== 'function' || thisValueOf === valueOf) {
181
176
  return undefined;
182
177
  }
183
178
  const customValue = thisValueOf.call(value) as VmAny | undefined;
@@ -86,7 +86,7 @@ export function isVmArray(value: VmAny): value is VmArray {
86
86
 
87
87
  /** 检查值是否为 Mirascript 记录 */
88
88
  export function isVmRecord(value: VmAny): value is VmRecord {
89
- if (value == null || typeof value !== 'object') return false;
89
+ if (value == null || typeof value != 'object') return false;
90
90
  if (isVmWrapper(value)) return false;
91
91
  if (isVmArray(value)) return false;
92
92
  value satisfies VmRecord;
@@ -1,3 +1,5 @@
1
+ import type { VmConst, VmRecord } from '../vm/index.js';
2
+
1
3
  export const { isArray } = Array;
2
4
  export const {
3
5
  isFinite,
@@ -26,3 +28,28 @@ export const hasOwnEnumerable = Function.call.bind(
26
28
  // eslint-disable-next-line @typescript-eslint/unbound-method
27
29
  Object.prototype.propertyIsEnumerable,
28
30
  ) as (o: object, v: PropertyKey) => boolean;
31
+
32
+ const SPECIAL_KEYS = new Set(getOwnPropertyNames(Object.prototype));
33
+ /**
34
+ * Set property on an vm record.
35
+ */
36
+ export const setRecord = (obj: Record<string, VmConst | undefined>, key: string, value: VmConst | undefined): void => {
37
+ if (!SPECIAL_KEYS.has(key)) {
38
+ obj[key] = value ?? null;
39
+ } else {
40
+ Object.defineProperty(obj, key, {
41
+ value: value ?? null,
42
+ configurable: true,
43
+ writable: true,
44
+ enumerable: true,
45
+ });
46
+ }
47
+ };
48
+
49
+ /**
50
+ * Get property from an vm record.
51
+ */
52
+ export const getRecord = (obj: VmRecord, key: string): VmConst | undefined => {
53
+ if (!hasOwnEnumerable(obj, key)) return undefined;
54
+ return obj[key] ?? null;
55
+ };
@@ -33,7 +33,7 @@ function serializeValue(
33
33
  format: SerializeFormat,
34
34
  ): string | null | PromiseLike<string> {
35
35
  const { serializer } = options;
36
- if (serializer == null || serializer === defaultSerializer) {
36
+ if (serializer === defaultSerializer || serializer === null) {
37
37
  return defaultSerializer(arg, format);
38
38
  }
39
39
  try {
@@ -113,11 +113,7 @@ const printParser: PrintOptions['parser'] = function (args) {
113
113
  templates.push(i < values.length - 1 ? ' ' : '');
114
114
  }
115
115
  }
116
- return {
117
- templates,
118
- values,
119
- formats,
120
- };
116
+ return { templates, values, formats };
121
117
  };
122
118
 
123
119
  /** 默认格式化函数 */
@@ -234,9 +230,9 @@ if (typeof location != 'undefined') {
234
230
  panic.prefix = [badge, `${common} background: #d23d3d; color: #fff;`, reset];
235
231
  } else {
236
232
  if (supportsColor.stdout) {
237
- debug_print.prefix = ['\u001B[44;37m MiraScript \u001B[0m'];
233
+ debug_print.prefix = ['\u{1B}[44;37m MiraScript \u{1B}[0m'];
238
234
  }
239
235
  if (supportsColor.stderr) {
240
- panic.prefix = ['\u001B[41;37m MiraScript \u001B[0m'];
236
+ panic.prefix = ['\u{1B}[41;37m MiraScript \u{1B}[0m'];
241
237
  }
242
238
  }