@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.
- package/dist/{chunk-3RUWGMBP.js → chunk-JB6LPPFJ.js} +190 -24
- package/dist/chunk-JB6LPPFJ.js.map +6 -0
- package/dist/{chunk-MVHCSH3E.js → chunk-OU3K5EYB.js} +61 -131
- package/dist/chunk-OU3K5EYB.js.map +6 -0
- package/dist/cli/execute.d.ts +1 -1
- package/dist/cli/execute.d.ts.map +1 -1
- package/dist/cli/index.js +58 -28
- package/dist/cli/index.js.map +2 -2
- package/dist/cli/print.d.ts.map +1 -1
- package/dist/compiler/diagnostic.d.ts +3 -1
- package/dist/compiler/diagnostic.d.ts.map +1 -1
- package/dist/compiler/emit.d.ts +2 -1
- package/dist/compiler/emit.d.ts.map +1 -1
- package/dist/compiler/index.d.ts.map +1 -1
- package/dist/compiler/worker.d.ts.map +1 -1
- package/dist/compiler/worker.js +6 -3
- package/dist/compiler/worker.js.map +1 -1
- package/dist/helpers/serialize.d.ts +10 -2
- package/dist/helpers/serialize.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/subtle.d.ts +1 -1
- package/dist/subtle.d.ts.map +1 -1
- package/dist/subtle.js +17 -7
- package/dist/vm/lib/_helpers.d.ts +1 -1
- package/dist/vm/lib/_helpers.d.ts.map +1 -1
- package/dist/vm/lib/global/bit.d.ts +7 -8
- package/dist/vm/lib/global/bit.d.ts.map +1 -1
- package/dist/vm/lib/global/debug.d.ts +6 -3
- package/dist/vm/lib/global/debug.d.ts.map +1 -1
- package/dist/vm/lib/global/json.d.ts +2 -3
- package/dist/vm/lib/global/json.d.ts.map +1 -1
- package/dist/vm/lib/global/math-additional.d.ts +1 -2
- package/dist/vm/lib/global/math-additional.d.ts.map +1 -1
- package/dist/vm/lib/global/math-arr.d.ts +5 -6
- package/dist/vm/lib/global/math-arr.d.ts.map +1 -1
- package/dist/vm/lib/global/math-unary.d.ts +26 -27
- package/dist/vm/lib/global/math-unary.d.ts.map +1 -1
- package/dist/vm/lib/global/math.d.ts +3 -4
- package/dist/vm/lib/global/math.d.ts.map +1 -1
- package/dist/vm/lib/global/mod/matrix.d.ts +13 -14
- package/dist/vm/lib/global/mod/matrix.d.ts.map +1 -1
- package/dist/vm/lib/global/sequence/all-any.d.ts +2 -3
- package/dist/vm/lib/global/sequence/all-any.d.ts.map +1 -1
- package/dist/vm/lib/global/sequence/entries.d.ts +4 -5
- package/dist/vm/lib/global/sequence/entries.d.ts.map +1 -1
- package/dist/vm/lib/global/sequence/find.d.ts +2 -3
- package/dist/vm/lib/global/sequence/find.d.ts.map +1 -1
- package/dist/vm/lib/global/sequence/flatten.d.ts +1 -2
- package/dist/vm/lib/global/sequence/flatten.d.ts.map +1 -1
- package/dist/vm/lib/global/sequence/len.d.ts +1 -2
- package/dist/vm/lib/global/sequence/len.d.ts.map +1 -1
- package/dist/vm/lib/global/sequence/map-filter.d.ts +3 -4
- package/dist/vm/lib/global/sequence/map-filter.d.ts.map +1 -1
- package/dist/vm/lib/global/sequence/repeat.d.ts +1 -2
- package/dist/vm/lib/global/sequence/repeat.d.ts.map +1 -1
- package/dist/vm/lib/global/sequence/reverse.d.ts +1 -2
- package/dist/vm/lib/global/sequence/reverse.d.ts.map +1 -1
- package/dist/vm/lib/global/sequence/sort.d.ts +2 -3
- package/dist/vm/lib/global/sequence/sort.d.ts.map +1 -1
- package/dist/vm/lib/global/sequence/with.d.ts +1 -2
- package/dist/vm/lib/global/sequence/with.d.ts.map +1 -1
- package/dist/vm/lib/global/sequence/zip.d.ts +1 -2
- package/dist/vm/lib/global/sequence/zip.d.ts.map +1 -1
- package/dist/vm/lib/global/string.d.ts +10 -11
- package/dist/vm/lib/global/string.d.ts.map +1 -1
- package/dist/vm/lib/global/time.d.ts +4 -5
- package/dist/vm/lib/global/time.d.ts.map +1 -1
- package/dist/vm/lib/global/to-primitive.d.ts +4 -5
- package/dist/vm/lib/global/to-primitive.d.ts.map +1 -1
- package/dist/vm/types/wrapper.d.ts.map +1 -1
- package/package.json +7 -5
- package/src/cli/execute.ts +15 -7
- package/src/cli/index.ts +22 -5
- package/src/cli/print.ts +43 -27
- package/src/compiler/diagnostic.ts +19 -3
- package/src/compiler/emit.ts +45 -19
- package/src/compiler/index.ts +10 -2
- package/src/compiler/worker.ts +5 -1
- package/src/helpers/serialize.ts +6 -6
- package/src/subtle.ts +11 -1
- package/src/vm/lib/_helpers.ts +8 -3
- package/src/vm/lib/global/debug.ts +24 -3
- package/src/vm/lib/global/math-arr.ts +1 -1
- package/src/vm/types/wrapper.ts +3 -1
- package/dist/chunk-3RUWGMBP.js.map +0 -6
- 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 {
|
|
10
|
-
|
|
11
|
-
|
|
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 (
|
|
456
|
+
code = `'use strict'; return ((${args.join(", ")}) => { try { CpEnter(); var ${regs};`;
|
|
328
457
|
} else {
|
|
329
|
-
code = `${this.wv(reg)} = Function(
|
|
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(
|
|
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
|
|
710
|
-
|
|
711
|
-
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
|
|
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}
|
|
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,${
|
|
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
|
|
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 =
|
|
888
|
+
mod = wasm2;
|
|
742
889
|
}
|
|
743
|
-
await
|
|
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-
|
|
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
|
-
|
|
7
|
-
|
|
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
|
-
|
|
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(
|
|
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(
|
|
2358
|
-
else console.error(
|
|
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
|
|
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-
|
|
3660
|
+
//# sourceMappingURL=chunk-OU3K5EYB.js.map
|