@mirascript/mirascript 0.1.3 → 0.1.5

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 (86) hide show
  1. package/dist/{chunk-3RUWGMBP.js → chunk-JB6LPPFJ.js} +190 -24
  2. package/dist/chunk-JB6LPPFJ.js.map +6 -0
  3. package/dist/{chunk-MVHCSH3E.js → chunk-OU3K5EYB.js} +61 -131
  4. package/dist/chunk-OU3K5EYB.js.map +6 -0
  5. package/dist/cli/execute.d.ts +1 -1
  6. package/dist/cli/execute.d.ts.map +1 -1
  7. package/dist/cli/index.js +58 -28
  8. package/dist/cli/index.js.map +2 -2
  9. package/dist/cli/print.d.ts.map +1 -1
  10. package/dist/compiler/diagnostic.d.ts +3 -1
  11. package/dist/compiler/diagnostic.d.ts.map +1 -1
  12. package/dist/compiler/emit.d.ts +2 -1
  13. package/dist/compiler/emit.d.ts.map +1 -1
  14. package/dist/compiler/index.d.ts.map +1 -1
  15. package/dist/compiler/worker.d.ts.map +1 -1
  16. package/dist/compiler/worker.js +6 -3
  17. package/dist/compiler/worker.js.map +1 -1
  18. package/dist/helpers/serialize.d.ts +10 -2
  19. package/dist/helpers/serialize.d.ts.map +1 -1
  20. package/dist/index.js +2 -2
  21. package/dist/subtle.d.ts +1 -1
  22. package/dist/subtle.d.ts.map +1 -1
  23. package/dist/subtle.js +17 -7
  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/lib/global/bit.d.ts +7 -8
  27. package/dist/vm/lib/global/bit.d.ts.map +1 -1
  28. package/dist/vm/lib/global/debug.d.ts +6 -3
  29. package/dist/vm/lib/global/debug.d.ts.map +1 -1
  30. package/dist/vm/lib/global/json.d.ts +2 -3
  31. package/dist/vm/lib/global/json.d.ts.map +1 -1
  32. package/dist/vm/lib/global/math-additional.d.ts +1 -2
  33. package/dist/vm/lib/global/math-additional.d.ts.map +1 -1
  34. package/dist/vm/lib/global/math-arr.d.ts +5 -6
  35. package/dist/vm/lib/global/math-arr.d.ts.map +1 -1
  36. package/dist/vm/lib/global/math-unary.d.ts +26 -27
  37. package/dist/vm/lib/global/math-unary.d.ts.map +1 -1
  38. package/dist/vm/lib/global/math.d.ts +3 -4
  39. package/dist/vm/lib/global/math.d.ts.map +1 -1
  40. package/dist/vm/lib/global/mod/matrix.d.ts +13 -14
  41. package/dist/vm/lib/global/mod/matrix.d.ts.map +1 -1
  42. package/dist/vm/lib/global/sequence/all-any.d.ts +2 -3
  43. package/dist/vm/lib/global/sequence/all-any.d.ts.map +1 -1
  44. package/dist/vm/lib/global/sequence/entries.d.ts +4 -5
  45. package/dist/vm/lib/global/sequence/entries.d.ts.map +1 -1
  46. package/dist/vm/lib/global/sequence/find.d.ts +2 -3
  47. package/dist/vm/lib/global/sequence/find.d.ts.map +1 -1
  48. package/dist/vm/lib/global/sequence/flatten.d.ts +1 -2
  49. package/dist/vm/lib/global/sequence/flatten.d.ts.map +1 -1
  50. package/dist/vm/lib/global/sequence/len.d.ts +1 -2
  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 -4
  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 -2
  55. package/dist/vm/lib/global/sequence/repeat.d.ts.map +1 -1
  56. package/dist/vm/lib/global/sequence/reverse.d.ts +1 -2
  57. package/dist/vm/lib/global/sequence/reverse.d.ts.map +1 -1
  58. package/dist/vm/lib/global/sequence/sort.d.ts +2 -3
  59. package/dist/vm/lib/global/sequence/sort.d.ts.map +1 -1
  60. package/dist/vm/lib/global/sequence/with.d.ts +1 -2
  61. package/dist/vm/lib/global/sequence/with.d.ts.map +1 -1
  62. package/dist/vm/lib/global/sequence/zip.d.ts +1 -2
  63. package/dist/vm/lib/global/sequence/zip.d.ts.map +1 -1
  64. package/dist/vm/lib/global/string.d.ts +10 -11
  65. package/dist/vm/lib/global/string.d.ts.map +1 -1
  66. package/dist/vm/lib/global/time.d.ts +4 -5
  67. package/dist/vm/lib/global/time.d.ts.map +1 -1
  68. package/dist/vm/lib/global/to-primitive.d.ts +4 -5
  69. package/dist/vm/lib/global/to-primitive.d.ts.map +1 -1
  70. package/dist/vm/types/wrapper.d.ts.map +1 -1
  71. package/package.json +7 -5
  72. package/src/cli/execute.ts +15 -7
  73. package/src/cli/index.ts +22 -5
  74. package/src/cli/print.ts +43 -27
  75. package/src/compiler/diagnostic.ts +19 -3
  76. package/src/compiler/emit.ts +45 -19
  77. package/src/compiler/index.ts +10 -2
  78. package/src/compiler/worker.ts +5 -1
  79. package/src/helpers/serialize.ts +6 -6
  80. package/src/subtle.ts +11 -1
  81. package/src/vm/lib/_helpers.ts +8 -3
  82. package/src/vm/lib/global/debug.ts +24 -3
  83. package/src/vm/lib/global/math-arr.ts +1 -1
  84. package/src/vm/types/wrapper.ts +3 -1
  85. package/dist/chunk-3RUWGMBP.js.map +0 -6
  86. package/dist/chunk-MVHCSH3E.js.map +0 -6
@@ -4,11 +4,139 @@ var __export = (target, all) => {
4
4
  __defProp(target, name, { get: all[name], enumerable: true });
5
5
  };
6
6
 
7
+ // src/compiler/diagnostic.ts
8
+ import { DiagnosticCode, wasm } from "@mirascript/wasm";
9
+
10
+ // src/helpers/utils.ts
11
+ var { isArray } = Array;
12
+ var { isFinite, isNaN, isInteger, isSafeInteger } = Number;
13
+ var { hasOwn, keys, values, entries, create, getPrototypeOf, fromEntries, defineProperty } = Object;
14
+ var { apply } = Reflect;
15
+ var hasOwnEnumerable = Function.call.bind(
16
+ // eslint-disable-next-line @typescript-eslint/unbound-method
17
+ Object.prototype.propertyIsEnumerable
18
+ );
19
+
20
+ // src/compiler/diagnostic.ts
21
+ var diagnosticMessages = /* @__PURE__ */ new Map();
22
+ function getDiagnosticMessage(code) {
23
+ if (!isSafeInteger(code) || code < 0 || code >= 65535) {
24
+ throw new RangeError(`Invalid DiagnosticCode: ${code}`);
25
+ }
26
+ if (diagnosticMessages.has(code)) {
27
+ return diagnosticMessages.get(code);
28
+ }
29
+ const msg = wasm.get_diagnostic_message(code);
30
+ diagnosticMessages.set(code, msg);
31
+ return msg;
32
+ }
33
+ function parseDiagnostics(source, diagnostics, filter) {
34
+ const parsed = [];
35
+ const bufLen = diagnostics.length;
36
+ for (let i = 0; i < bufLen; i += 5) {
37
+ const code = diagnostics[i + 4];
38
+ if (filter && !filter(code)) {
39
+ continue;
40
+ }
41
+ const startLineNumber = diagnostics[i];
42
+ const startColumn = diagnostics[i + 1];
43
+ const endLineNumber = diagnostics[i + 2];
44
+ const endColumn = diagnostics[i + 3];
45
+ parsed.push({
46
+ code,
47
+ range: {
48
+ startLineNumber,
49
+ startColumn,
50
+ endLineNumber,
51
+ endColumn
52
+ }
53
+ });
54
+ }
55
+ const _errors = [];
56
+ const _warnings = [];
57
+ const _infos = [];
58
+ const _hints = [];
59
+ const _tags = [];
60
+ const _references = [];
61
+ const _tagsReferences = [];
62
+ const _sourcemaps = [];
63
+ for (let i = 0; i < parsed.length; i++) {
64
+ const diagnostic = parsed[i];
65
+ const { code } = diagnostic;
66
+ if (code > DiagnosticCode.ErrorStart && code < DiagnosticCode.ErrorEnd) {
67
+ _errors.push(diagnostic);
68
+ } else if (code > DiagnosticCode.WarningStart && code < DiagnosticCode.WarningEnd) {
69
+ _warnings.push(diagnostic);
70
+ } else if (code > DiagnosticCode.InfoStart && code < DiagnosticCode.InfoEnd) {
71
+ _infos.push(diagnostic);
72
+ } else if (code > DiagnosticCode.HintStart && code < DiagnosticCode.HintEnd) {
73
+ _hints.push(diagnostic);
74
+ } else if (code > DiagnosticCode.TagStart && code < DiagnosticCode.TagEnd) {
75
+ _tags.push(diagnostic);
76
+ } else if (code === DiagnosticCode.SourceMap) {
77
+ _sourcemaps.push(diagnostic.range);
78
+ continue;
79
+ } else {
80
+ continue;
81
+ }
82
+ diagnostic.references = [];
83
+ while (i + 1 < parsed.length) {
84
+ const ref = parsed[i + 1];
85
+ let isRef = false;
86
+ if (ref.code > DiagnosticCode.TagRefStart && ref.code < DiagnosticCode.TagRefEnd) {
87
+ isRef = true;
88
+ _tagsReferences.push(ref);
89
+ }
90
+ if (ref.code > DiagnosticCode.ReferenceStart && ref.code < DiagnosticCode.ReferenceEnd) {
91
+ isRef = true;
92
+ _references.push(ref);
93
+ }
94
+ if (!isRef) {
95
+ break;
96
+ }
97
+ i++;
98
+ ref.diagnostic = diagnostic;
99
+ diagnostic.references.push(ref);
100
+ }
101
+ }
102
+ return {
103
+ errors: _errors,
104
+ warnings: _warnings,
105
+ infos: _infos,
106
+ hints: _hints,
107
+ tags: _tags,
108
+ references: _references,
109
+ tagsReferences: _tagsReferences,
110
+ sourcemaps: _sourcemaps
111
+ };
112
+ }
113
+ function formatRange(range) {
114
+ if (range.startLineNumber === range.endLineNumber) {
115
+ if (range.startColumn === range.endColumn) {
116
+ return `${range.startLineNumber}:${range.startColumn}`;
117
+ }
118
+ return `${range.startLineNumber}:${range.startColumn}-${range.endColumn}`;
119
+ }
120
+ return `${range.startLineNumber}:${range.startColumn}-${range.endLineNumber}:${range.endColumn}`;
121
+ }
122
+ function formatDiagnostic(diagnostic) {
123
+ const range = formatRange(diagnostic.range);
124
+ const codeName = DiagnosticCode[diagnostic.code] || `Unknown(${diagnostic.code})`;
125
+ let message = getDiagnosticMessage(diagnostic.code);
126
+ for (const ref of diagnostic.references) {
127
+ const refRange = formatRange(ref.range);
128
+ message += `
129
+ (${refRange}): ${getDiagnosticMessage(ref.code)}`;
130
+ }
131
+ return ` ${codeName}(${range}): ${message}`;
132
+ }
133
+
7
134
  // src/compiler/emit.ts
8
135
  import { OpCode } from "@mirascript/wasm/types";
9
- import { encodeURL } from "js-base64";
10
- function emit(source, chunk, options) {
11
- const gen = new Emitter(source, chunk, options);
136
+ import { toBase64 } from "js-base64";
137
+ import { SourceMapGenerator } from "source-map-js";
138
+ function emit(source, chunk, sourcemaps, options) {
139
+ const gen = new Emitter(source, chunk, sourcemaps, options);
12
140
  gen.read();
13
141
  const code = gen.codeLines.join("\n");
14
142
  return code;
@@ -53,7 +181,7 @@ function toJavascript(value) {
53
181
  }
54
182
  return String(value);
55
183
  }
56
- var ORIGIN = `mira://MiraScript`;
184
+ var ORIGIN = `mira://MiraScript/`;
57
185
  var sourceId = 1;
58
186
  function createArray(length, fn) {
59
187
  const result = [];
@@ -63,9 +191,10 @@ function createArray(length, fn) {
63
191
  return result;
64
192
  }
65
193
  var Emitter = class {
66
- constructor(source, chunk, options) {
194
+ constructor(source, chunk, sourcemaps, options) {
67
195
  this.source = source;
68
196
  this.chunk = chunk;
197
+ this.sourcemaps = sourcemaps;
69
198
  this.options = options;
70
199
  this.constants = [];
71
200
  this.codeOffset = 0;
@@ -324,9 +453,9 @@ var Emitter = class {
324
453
  );
325
454
  if (script) {
326
455
  args.unshift(`global = GlobalFallback()`);
327
- code = `'use strict'; return (function script(${args.join(", ")}) { try { CpEnter(); var ${regs};`;
456
+ code = `'use strict'; return ((${args.join(", ")}) => { try { CpEnter(); var ${regs};`;
328
457
  } else {
329
- code = `${this.wv(reg)} = Function(function (${args.join(", ")}) { try { CpEnter(); var ${regs};`;
458
+ code = `${this.wv(reg)} = Function((${args.join(", ")}) => { try { CpEnter(); var ${regs};`;
330
459
  }
331
460
  if (varg) {
332
461
  code += ` var ${this.wv(argn, -1)} = Vargs(vargs);`;
@@ -647,6 +776,9 @@ var Emitter = class {
647
776
  code = `continue;`;
648
777
  break;
649
778
  }
779
+ case OpCode.Noop: {
780
+ return;
781
+ }
650
782
  default: {
651
783
  code = `; // ${OpCode[opcode] ?? opcode}`;
652
784
  break;
@@ -700,33 +832,48 @@ var Emitter = class {
700
832
  const hasSchema = /^\w+:/.test(fileName);
701
833
  if (!hasSchema) {
702
834
  if (fileName.startsWith("/")) {
703
- fileName = fileName.replace(/^\\+\s*/, "");
835
+ fileName = fileName.replace(/^\/+\s*/, "");
704
836
  }
705
837
  if (!fileName) {
706
838
  fileName = `${sourceId++}.${this.options.input_mode === "Template" ? "miratpl" : "mira"}`;
707
839
  }
708
840
  }
709
- const data = {
710
- version: 3,
711
- file: fileName,
712
- sourceRoot: hasSchema ? "" : ORIGIN,
713
- sources: [fileName],
714
- sourcesContent: [ArrayBuffer.isView(this.source) ? null : this.source],
715
- names: [],
716
- mappings: ""
717
- };
841
+ const map = new SourceMapGenerator({
842
+ file: fileName + ".js"
843
+ });
844
+ if (typeof this.source === "string") {
845
+ map.setSourceContent(fileName, this.source);
846
+ }
847
+ for (let i = 0; i < this.sourcemaps.length; i++) {
848
+ const range = this.sourcemaps[i];
849
+ if (!range) break;
850
+ map.addMapping({
851
+ generated: {
852
+ // 前两行固定为:
853
+ // (function anonymous($Add,$Aeq, ...
854
+ // ) {
855
+ line: i + 3,
856
+ column: 0
857
+ },
858
+ original: {
859
+ line: range.startLineNumber,
860
+ column: range.startColumn - 1
861
+ },
862
+ source: fileName
863
+ });
864
+ }
718
865
  const prefix = "//# ";
719
- const sourceURL = hasSchema ? fileName : `${ORIGIN}/${fileName}.js`;
866
+ const sourceURL = hasSchema ? fileName : `${ORIGIN}${fileName}`;
720
867
  this.codeLines.push(
721
868
  // Prevent source map from being recognized as of this file
722
- `${prefix}sourceURL=${sourceURL}`,
723
- `${prefix}sourceMappingURL=data:application/json;base64,${encodeURL(JSON.stringify(data))}`
869
+ `${prefix}sourceURL=${sourceURL}.js`,
870
+ `${prefix}sourceMappingURL=data:application/json;base64,${toBase64(map.toString())}`
724
871
  );
725
872
  }
726
873
  };
727
874
 
728
875
  // src/compiler/generate-bytecode.ts
729
- import * as wasm from "@mirascript/wasm";
876
+ import * as wasm2 from "@mirascript/wasm";
730
877
  var module;
731
878
  var loading;
732
879
  async function loadModule() {
@@ -738,9 +885,9 @@ async function loadModule() {
738
885
  mod = await import("#compiler-bundle");
739
886
  } catch (ex) {
740
887
  console.warn("Failed to load compiler bundle, falling back to @mirascript/wasm");
741
- mod = wasm;
888
+ mod = wasm2;
742
889
  }
743
- await wasm.ready;
890
+ await wasm2.ready;
744
891
  module = mod;
745
892
  })();
746
893
  void p.finally(() => {
@@ -772,9 +919,28 @@ async function generateBytecode(script, options) {
772
919
 
773
920
  export {
774
921
  __export,
922
+ isArray,
923
+ isFinite,
924
+ isNaN,
925
+ isInteger,
926
+ isSafeInteger,
927
+ hasOwn,
928
+ keys,
929
+ values,
930
+ entries,
931
+ create,
932
+ getPrototypeOf,
933
+ fromEntries,
934
+ defineProperty,
935
+ apply,
936
+ hasOwnEnumerable,
937
+ DiagnosticCode,
938
+ getDiagnosticMessage,
939
+ parseDiagnostics,
940
+ formatDiagnostic,
775
941
  emit,
776
942
  loadModule,
777
943
  generateBytecodeSync,
778
944
  generateBytecode
779
945
  };
780
- //# sourceMappingURL=chunk-3RUWGMBP.js.map
946
+ //# sourceMappingURL=chunk-JB6LPPFJ.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/compiler/diagnostic.ts", "../src/helpers/utils.ts", "../src/compiler/emit.ts", "../src/compiler/generate-bytecode.ts"],
4
+ "mappings": "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",
5
+ "names": ["i", "wasm"]
6
+ }
@@ -1,10 +1,28 @@
1
1
  import {
2
+ DiagnosticCode,
2
3
  __export,
4
+ apply,
5
+ create,
6
+ defineProperty,
3
7
  emit,
8
+ entries,
9
+ formatDiagnostic,
10
+ fromEntries,
4
11
  generateBytecode,
5
12
  generateBytecodeSync,
6
- loadModule
7
- } from "./chunk-3RUWGMBP.js";
13
+ getPrototypeOf,
14
+ hasOwn,
15
+ hasOwnEnumerable,
16
+ isArray,
17
+ isFinite,
18
+ isInteger,
19
+ isNaN,
20
+ isSafeInteger,
21
+ keys,
22
+ loadModule,
23
+ parseDiagnostics,
24
+ values
25
+ } from "./chunk-JB6LPPFJ.js";
8
26
 
9
27
  // src/helpers/constants.ts
10
28
  var constants_exports = {};
@@ -15,16 +33,6 @@ __export(constants_exports, {
15
33
  var REG_IDENTIFIER = /(?:_+|@+|\$+|\p{XID_Start})\p{XID_Continue}*/u;
16
34
  var REG_ORDINAL = /(?:0|[1-9]\d{0,8}|1\d{9}|20\d{8}|21[0-3]\d{7}|214[0-6]\d{6}|2147[0-3]\d{5}|21474[0-7]\d{4}|214748[0-2]\d{3}|2147483[0-5]\d{2}|21474836[0-3]\d|214748364[0-7])/;
17
35
 
18
- // src/helpers/utils.ts
19
- var { isArray } = Array;
20
- var { isFinite, isNaN, isInteger, isSafeInteger } = Number;
21
- var { hasOwn, keys, values, entries, create, getPrototypeOf, fromEntries, defineProperty } = Object;
22
- var { apply } = Reflect;
23
- var hasOwnEnumerable = Function.call.bind(
24
- // eslint-disable-next-line @typescript-eslint/unbound-method
25
- Object.prototype.propertyIsEnumerable
26
- );
27
-
28
36
  // src/vm/error.ts
29
37
  var VmError = class _VmError extends Error {
30
38
  constructor(message, recovered) {
@@ -64,7 +72,9 @@ var VmWrapper = class {
64
72
  }
65
73
  /** 转为字符串 */
66
74
  toString() {
67
- return `<${this.type} ${this.describe}>`;
75
+ const { type, describe } = this;
76
+ if (!describe) return `<${type}>`;
77
+ return `<${type} ${describe}>`;
68
78
  }
69
79
  };
70
80
  var kVmWrapper = Symbol.for("mirascript.vm.wrapper");
@@ -1386,10 +1396,11 @@ function map(data, mapper) {
1386
1396
  return fromEntries(e);
1387
1397
  }
1388
1398
  }
1389
- function VmLib(fn, option) {
1399
+ function VmLib(fn, option, properties) {
1390
1400
  if (typeof fn != "function") throw new TypeError("Invalid function");
1391
1401
  if (isVmFunction(fn)) throw new TypeError("Cannot create VmLib from a VmFunction");
1392
1402
  const ret = fn;
1403
+ Object.assign(ret, properties);
1393
1404
  ret.params = option.params;
1394
1405
  ret.paramsType = option.paramsType;
1395
1406
  ret.returns = option.returns;
@@ -1430,7 +1441,7 @@ var hypot = VmLib(build(Math.hypot), {
1430
1441
  var sum = VmLib(
1431
1442
  (...values4) => {
1432
1443
  const numbers = getNumbers(values4);
1433
- return numbers.reduce((a, b) => a + b, 0);
1444
+ return numbers.reduce((a, b) => a + b, -0);
1434
1445
  },
1435
1446
  {
1436
1447
  summary: "返回一组数的总和",
@@ -2340,9 +2351,10 @@ var repeat = VmLib(
2340
2351
  );
2341
2352
 
2342
2353
  // src/vm/lib/global/debug.ts
2354
+ import supportsColor from "supports-color";
2343
2355
  var debug_print = VmLib(
2344
2356
  (...args) => {
2345
- console.log("\x1B[46;30m MiraScript \x1B[0m", ...args);
2357
+ console.log(...debug_print.prefix, ...args);
2346
2358
  },
2347
2359
  {
2348
2360
  summary: "打印调试信息到控制台",
@@ -2350,12 +2362,15 @@ var debug_print = VmLib(
2350
2362
  paramsType: { "..args": "any[]" },
2351
2363
  returnsType: "nil",
2352
2364
  examples: ['debug_print("value:", 42);']
2365
+ },
2366
+ {
2367
+ prefix: ["MiraScript"]
2353
2368
  }
2354
2369
  );
2355
2370
  var panic = VmLib(
2356
2371
  (message) => {
2357
- if (message === void 0) console.error("\x1B[41;37m MiraScript \x1B[0m");
2358
- else console.error("\x1B[41;37m MiraScript \x1B[0m", message);
2372
+ if (message === void 0) console.error(...panic.prefix);
2373
+ else console.error(...panic.prefix, message);
2359
2374
  const error = message == null ? "panic" : "panic: " + $ToString(message);
2360
2375
  throw new VmError(error, void 0);
2361
2376
  },
@@ -2365,8 +2380,24 @@ var panic = VmLib(
2365
2380
  paramsType: { message: "string" },
2366
2381
  returnsType: "never",
2367
2382
  examples: ['panic("boom");']
2383
+ },
2384
+ {
2385
+ prefix: ["MiraScript"]
2368
2386
  }
2369
2387
  );
2388
+ if (typeof location != "undefined") {
2389
+ const badge = "%cMiraScript";
2390
+ const common = "display: inline-block; padding: 1px 4px; border-radius: 3px;";
2391
+ debug_print.prefix = [badge, `${common} background: #007acc; color: #fff;`];
2392
+ panic.prefix = [badge, `${common} background: #d23d3d; color: #fff;`];
2393
+ } else {
2394
+ if (supportsColor.stdout) {
2395
+ debug_print.prefix = ["\x1B[44;37m MiraScript \x1B[0m"];
2396
+ }
2397
+ if (supportsColor.stderr) {
2398
+ panic.prefix = ["\x1B[41;37m MiraScript \x1B[0m"];
2399
+ }
2400
+ }
2370
2401
 
2371
2402
  // src/vm/lib/global/json.ts
2372
2403
  var { parse, stringify } = JSON;
@@ -3395,113 +3426,6 @@ function serialize(value, options) {
3395
3426
  return serializeImpl(value, 0, getSerializeOptions(options));
3396
3427
  }
3397
3428
 
3398
- // src/compiler/diagnostic.ts
3399
- import { DiagnosticCode, wasm } from "@mirascript/wasm";
3400
- var diagnosticMessages = /* @__PURE__ */ new Map();
3401
- function getDiagnosticMessage(code) {
3402
- if (!isSafeInteger(code) || code < 0 || code >= 65535) {
3403
- throw new RangeError(`Invalid DiagnosticCode: ${code}`);
3404
- }
3405
- if (diagnosticMessages.has(code)) {
3406
- return diagnosticMessages.get(code);
3407
- }
3408
- const msg = wasm.get_diagnostic_message(code);
3409
- diagnosticMessages.set(code, msg);
3410
- return msg;
3411
- }
3412
- function parseDiagnostics(source, diagnostics) {
3413
- const parsed = [];
3414
- const bufLen = diagnostics.length;
3415
- for (let i = 0; i < bufLen; i += 5) {
3416
- const startLineNumber = diagnostics[i];
3417
- const startColumn = diagnostics[i + 1];
3418
- const endLineNumber = diagnostics[i + 2];
3419
- const endColumn = diagnostics[i + 3];
3420
- const error = diagnostics[i + 4];
3421
- parsed.push({
3422
- code: error,
3423
- range: {
3424
- startLineNumber,
3425
- startColumn,
3426
- endLineNumber,
3427
- endColumn
3428
- }
3429
- });
3430
- }
3431
- const _errors = [];
3432
- const _warnings = [];
3433
- const _infos = [];
3434
- const _hints = [];
3435
- const _tags = [];
3436
- const _references = [];
3437
- const _tagsReferences = [];
3438
- for (let i = 0; i < parsed.length; i++) {
3439
- const diagnostic = parsed[i];
3440
- const { code } = diagnostic;
3441
- if (code > DiagnosticCode.ErrorStart && code < DiagnosticCode.ErrorEnd) {
3442
- _errors.push(diagnostic);
3443
- } else if (code > DiagnosticCode.WarningStart && code < DiagnosticCode.WarningEnd) {
3444
- _warnings.push(diagnostic);
3445
- } else if (code > DiagnosticCode.InfoStart && code < DiagnosticCode.InfoEnd) {
3446
- _infos.push(diagnostic);
3447
- } else if (code > DiagnosticCode.HintStart && code < DiagnosticCode.HintEnd) {
3448
- _hints.push(diagnostic);
3449
- } else if (code > DiagnosticCode.TagStart && code < DiagnosticCode.TagEnd) {
3450
- _tags.push(diagnostic);
3451
- } else {
3452
- continue;
3453
- }
3454
- diagnostic.references = [];
3455
- while (i + 1 < parsed.length) {
3456
- const ref = parsed[i + 1];
3457
- let isRef = false;
3458
- if (ref.code > DiagnosticCode.TagRefStart && ref.code < DiagnosticCode.TagRefEnd) {
3459
- isRef = true;
3460
- _tagsReferences.push(ref);
3461
- }
3462
- if (ref.code > DiagnosticCode.ReferenceStart && ref.code < DiagnosticCode.ReferenceEnd) {
3463
- isRef = true;
3464
- _references.push(ref);
3465
- }
3466
- if (!isRef) {
3467
- break;
3468
- }
3469
- i++;
3470
- ref.diagnostic = diagnostic;
3471
- diagnostic.references.push(ref);
3472
- }
3473
- }
3474
- return {
3475
- errors: _errors,
3476
- warnings: _warnings,
3477
- infos: _infos,
3478
- hints: _hints,
3479
- tags: _tags,
3480
- references: _references,
3481
- tagsReferences: _tagsReferences
3482
- };
3483
- }
3484
- function formatRange(range) {
3485
- if (range.startLineNumber === range.endLineNumber) {
3486
- if (range.startColumn === range.endColumn) {
3487
- return `${range.startLineNumber}:${range.startColumn}`;
3488
- }
3489
- return `${range.startLineNumber}:${range.startColumn}-${range.endColumn}`;
3490
- }
3491
- return `${range.startLineNumber}:${range.startColumn}-${range.endLineNumber}:${range.endColumn}`;
3492
- }
3493
- function formatDiagnostic(diagnostic) {
3494
- const range = formatRange(diagnostic.range);
3495
- const codeName = DiagnosticCode[diagnostic.code] || `Unknown(${diagnostic.code})`;
3496
- let message = getDiagnosticMessage(diagnostic.code);
3497
- for (const ref of diagnostic.references) {
3498
- const refRange = formatRange(ref.range);
3499
- message += `
3500
- (${refRange}): ${getDiagnosticMessage(ref.code)}`;
3501
- }
3502
- return ` ${codeName}(${range}): ${message}`;
3503
- }
3504
-
3505
3429
  // src/vm/env.ts
3506
3430
  var keys3 = [];
3507
3431
  var values3 = [];
@@ -3655,10 +3579,15 @@ function emitScript(source, [code, diagnostics], options) {
3655
3579
  if (!code) {
3656
3580
  reportDiagnostic(source, diagnostics);
3657
3581
  }
3658
- const target = emit(source, code, options);
3582
+ const sourcemaps = options.sourceMap ? parseDiagnostics(source, diagnostics, (c) => c === DiagnosticCode.SourceMap).sourcemaps : [];
3583
+ const target = emit(source, code, sourcemaps, options);
3659
3584
  return createScript(source, target);
3660
3585
  }
3661
3586
  async function compile(source, options = {}) {
3587
+ if (options.sourceMap) {
3588
+ options.diagnostic_sourcemap = true;
3589
+ options.diagnostic_position_encoding ??= "Utf16";
3590
+ }
3662
3591
  if (typeof source == "string") {
3663
3592
  const result = compileFast(source, options);
3664
3593
  if (result) return result;
@@ -3714,10 +3643,6 @@ export {
3714
3643
  isVmCallable,
3715
3644
  VM_ARRAY_MAX_LENGTH,
3716
3645
  constants_exports,
3717
- DiagnosticCode,
3718
- getDiagnosticMessage,
3719
- parseDiagnostics,
3720
- formatDiagnostic,
3721
3646
  emitScript,
3722
3647
  compile,
3723
3648
  compileSync,
@@ -3725,6 +3650,11 @@ export {
3725
3650
  lib,
3726
3651
  serializeString,
3727
3652
  serializePropName,
3653
+ serializeNil,
3654
+ serializeBoolean,
3655
+ serializeNumber,
3656
+ serializeArray,
3657
+ serializeRecord,
3728
3658
  serialize
3729
3659
  };
3730
- //# sourceMappingURL=chunk-MVHCSH3E.js.map
3660
+ //# sourceMappingURL=chunk-OU3K5EYB.js.map