@mirascript/mirascript 0.1.2 → 0.1.4

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 (63) 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-AOINGBRS.js → chunk-RYSPVMVZ.js} +189 -191
  4. package/dist/chunk-RYSPVMVZ.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 +42 -21
  8. package/dist/cli/index.js.map +1 -1
  9. package/dist/cli/print.d.ts.map +1 -1
  10. package/dist/compiler/diagnostic.d.ts +14 -3
  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 +4 -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.map +1 -1
  25. package/dist/vm/lib/global/sequence/with.d.ts +2 -2
  26. package/dist/vm/lib/global/sequence/with.d.ts.map +1 -1
  27. package/dist/vm/operations.d.ts.map +1 -1
  28. package/dist/vm/types/boundary.d.ts.map +1 -1
  29. package/dist/vm/types/checker.d.ts +1 -1
  30. package/dist/vm/types/checker.d.ts.map +1 -1
  31. package/dist/vm/types/context.d.ts +14 -6
  32. package/dist/vm/types/context.d.ts.map +1 -1
  33. package/dist/vm/types/extern.d.ts +2 -0
  34. package/dist/vm/types/extern.d.ts.map +1 -1
  35. package/dist/vm/types/index.d.ts +6 -10
  36. package/dist/vm/types/index.d.ts.map +1 -1
  37. package/dist/vm/types/module.d.ts +2 -0
  38. package/dist/vm/types/module.d.ts.map +1 -1
  39. package/dist/vm/types/wrapper.d.ts +2 -0
  40. package/dist/vm/types/wrapper.d.ts.map +1 -1
  41. package/package.json +7 -6
  42. package/src/cli/execute.ts +8 -3
  43. package/src/cli/index.ts +22 -5
  44. package/src/cli/print.ts +13 -9
  45. package/src/compiler/diagnostic.ts +32 -14
  46. package/src/compiler/emit.ts +45 -19
  47. package/src/compiler/index.ts +10 -2
  48. package/src/compiler/worker.ts +5 -1
  49. package/src/helpers/serialize.ts +6 -6
  50. package/src/subtle.ts +11 -1
  51. package/src/vm/lib/_helpers.ts +2 -10
  52. package/src/vm/lib/global/math-arr.ts +1 -1
  53. package/src/vm/lib/global/sequence/with.ts +111 -17
  54. package/src/vm/operations.ts +23 -24
  55. package/src/vm/types/boundary.ts +4 -4
  56. package/src/vm/types/checker.ts +8 -15
  57. package/src/vm/types/context.ts +28 -16
  58. package/src/vm/types/extern.ts +11 -2
  59. package/src/vm/types/index.ts +7 -26
  60. package/src/vm/types/module.ts +7 -0
  61. package/src/vm/types/wrapper.ts +10 -1
  62. package/dist/chunk-3RUWGMBP.js.map +0 -6
  63. package/dist/chunk-AOINGBRS.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
+ }