@mirascript/mirascript 0.1.15 → 0.1.17
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-JG3D67GF.js +1625 -0
- package/dist/chunk-JG3D67GF.js.map +6 -0
- package/dist/chunk-RIT53WVY.js +1 -0
- package/dist/chunk-RLWIIOH5.js +12 -0
- package/dist/chunk-RLWIIOH5.js.map +6 -0
- package/dist/{chunk-NT235HY3.js → chunk-W2I5XPIE.js} +1490 -608
- package/dist/chunk-W2I5XPIE.js.map +6 -0
- package/dist/cli/index.js +11 -67
- package/dist/cli/index.js.map +2 -2
- package/dist/compiler/compile-fast.d.ts +1 -1
- package/dist/compiler/compile-fast.d.ts.map +1 -1
- package/dist/compiler/create-script.d.ts +10 -1
- package/dist/compiler/create-script.d.ts.map +1 -1
- package/dist/compiler/diagnostic.d.ts +1 -1
- package/dist/compiler/diagnostic.d.ts.map +1 -1
- package/dist/compiler/emit/constants.d.ts +3 -0
- package/dist/compiler/emit/constants.d.ts.map +1 -0
- package/dist/compiler/emit/consts.d.ts +6 -0
- package/dist/compiler/emit/consts.d.ts.map +1 -0
- package/dist/compiler/emit/globals.d.ts +17 -0
- package/dist/compiler/emit/globals.d.ts.map +1 -0
- package/dist/compiler/emit/index.d.ts +58 -0
- package/dist/compiler/emit/index.d.ts.map +1 -0
- package/dist/compiler/emit/sourcemap.d.ts +6 -0
- package/dist/compiler/emit/sourcemap.d.ts.map +1 -0
- package/dist/compiler/index.d.ts +3 -2
- package/dist/compiler/index.d.ts.map +1 -1
- package/dist/compiler/worker.js +1 -1
- package/dist/helpers/constants.d.ts +10 -0
- package/dist/helpers/constants.d.ts.map +1 -1
- package/dist/helpers/convert/index.d.ts +5 -0
- package/dist/helpers/convert/index.d.ts.map +1 -0
- package/dist/helpers/convert/to-boolean.d.ts +4 -0
- package/dist/helpers/convert/to-boolean.d.ts.map +1 -0
- package/dist/helpers/convert/to-format.d.ts +4 -0
- package/dist/helpers/convert/to-format.d.ts.map +1 -0
- package/dist/helpers/convert/to-number.d.ts +4 -0
- package/dist/helpers/convert/to-number.d.ts.map +1 -0
- package/dist/helpers/convert/to-string.d.ts +6 -0
- package/dist/helpers/convert/to-string.d.ts.map +1 -0
- package/dist/{vm → helpers}/error.d.ts +1 -1
- package/dist/helpers/error.d.ts.map +1 -0
- package/dist/helpers/serialize.d.ts +13 -4
- package/dist/helpers/serialize.d.ts.map +1 -1
- package/dist/helpers/types.d.ts +54 -0
- package/dist/helpers/types.d.ts.map +1 -0
- package/dist/index.js +11 -17
- package/dist/subtle.d.ts +4 -3
- package/dist/subtle.d.ts.map +1 -1
- package/dist/subtle.js +20 -16
- package/dist/vm/checkpoint.d.ts +9 -0
- package/dist/vm/checkpoint.d.ts.map +1 -0
- package/dist/vm/helpers.d.ts +4 -10
- package/dist/vm/helpers.d.ts.map +1 -1
- package/dist/vm/index.d.ts +3 -3
- package/dist/vm/index.d.ts.map +1 -1
- package/dist/vm/lib/global/bit.d.ts +7 -7
- package/dist/vm/lib/global/bit.d.ts.map +1 -1
- package/dist/vm/lib/global/debug.d.ts +2 -2
- package/dist/vm/lib/global/debug.d.ts.map +1 -1
- package/dist/vm/lib/global/index.d.ts +0 -1
- package/dist/vm/lib/global/index.d.ts.map +1 -1
- package/dist/vm/lib/global/json.d.ts +2 -2
- package/dist/vm/lib/global/json.d.ts.map +1 -1
- package/dist/vm/lib/global/math-additional.d.ts +1 -1
- package/dist/vm/lib/global/math-additional.d.ts.map +1 -1
- package/dist/vm/lib/global/math-arr.d.ts +5 -5
- package/dist/vm/lib/global/math-arr.d.ts.map +1 -1
- package/dist/vm/lib/global/math-unary.d.ts +26 -26
- package/dist/vm/lib/global/math-unary.d.ts.map +1 -1
- package/dist/vm/lib/global/math.d.ts +3 -3
- package/dist/vm/lib/global/math.d.ts.map +1 -1
- package/dist/vm/lib/global/sequence/all-any.d.ts +2 -2
- package/dist/vm/lib/global/sequence/all-any.d.ts.map +1 -1
- package/dist/vm/lib/global/sequence/entries.d.ts +5 -5
- package/dist/vm/lib/global/sequence/entries.d.ts.map +1 -1
- package/dist/vm/lib/global/sequence/find.d.ts +3 -3
- package/dist/vm/lib/global/sequence/find.d.ts.map +1 -1
- package/dist/vm/lib/global/sequence/flatten.d.ts +1 -1
- package/dist/vm/lib/global/sequence/flatten.d.ts.map +1 -1
- package/dist/vm/lib/global/sequence/len.d.ts +1 -1
- package/dist/vm/lib/global/sequence/len.d.ts.map +1 -1
- package/dist/vm/lib/global/sequence/map-filter.d.ts +3 -3
- package/dist/vm/lib/global/sequence/map-filter.d.ts.map +1 -1
- package/dist/vm/lib/global/sequence/repeat.d.ts +1 -1
- package/dist/vm/lib/global/sequence/repeat.d.ts.map +1 -1
- package/dist/vm/lib/global/sequence/reverse.d.ts +1 -1
- package/dist/vm/lib/global/sequence/reverse.d.ts.map +1 -1
- package/dist/vm/lib/global/sequence/sort.d.ts +2 -2
- package/dist/vm/lib/global/sequence/sort.d.ts.map +1 -1
- package/dist/vm/lib/global/sequence/with.d.ts +2 -2
- package/dist/vm/lib/global/sequence/with.d.ts.map +1 -1
- package/dist/vm/lib/global/sequence/zip.d.ts +1 -1
- package/dist/vm/lib/global/sequence/zip.d.ts.map +1 -1
- package/dist/vm/lib/global/string.d.ts +10 -10
- package/dist/vm/lib/global/string.d.ts.map +1 -1
- package/dist/vm/lib/global/time.d.ts +3 -13
- package/dist/vm/lib/global/time.d.ts.map +1 -1
- package/dist/vm/lib/global/to-primitive.d.ts +4 -4
- package/dist/vm/lib/global/to-primitive.d.ts.map +1 -1
- package/dist/vm/lib/helpers.d.ts +53 -0
- package/dist/vm/lib/helpers.d.ts.map +1 -0
- package/dist/vm/lib/index.d.ts +4 -0
- package/dist/vm/lib/index.d.ts.map +1 -0
- package/dist/vm/lib/{_loader.d.ts → loader.d.ts} +5 -5
- package/dist/vm/lib/loader.d.ts.map +1 -0
- package/dist/vm/lib/mod/index.d.ts +2 -0
- package/dist/vm/lib/mod/index.d.ts.map +1 -0
- package/dist/vm/lib/mod/matrix.d.ts +15 -0
- package/dist/vm/lib/mod/matrix.d.ts.map +1 -0
- package/dist/vm/operations.d.ts +2 -4
- package/dist/vm/operations.d.ts.map +1 -1
- package/dist/vm/types/boundary.d.ts +1 -1
- package/dist/vm/types/boundary.d.ts.map +1 -1
- package/dist/vm/types/context.d.ts +4 -17
- package/dist/vm/types/context.d.ts.map +1 -1
- package/dist/vm/types/extern.d.ts +1 -3
- package/dist/vm/types/extern.d.ts.map +1 -1
- package/dist/vm/types/function.d.ts +1 -6
- package/dist/vm/types/function.d.ts.map +1 -1
- package/dist/vm/types/index.d.ts +31 -17
- package/dist/vm/types/index.d.ts.map +1 -1
- package/dist/vm/types/module.d.ts +2 -4
- package/dist/vm/types/module.d.ts.map +1 -1
- package/dist/vm/types/wrapper.d.ts +0 -2
- package/dist/vm/types/wrapper.d.ts.map +1 -1
- package/package.json +7 -3
- package/src/cli/index.ts +1 -1
- package/src/compiler/compile-fast.ts +1 -2
- package/src/compiler/create-script.ts +12 -2
- package/src/compiler/diagnostic.ts +17 -8
- package/src/compiler/emit/constants.ts +2 -0
- package/src/compiler/emit/consts.ts +47 -0
- package/src/compiler/emit/globals.ts +39 -0
- package/src/compiler/{emit.ts → emit/index.ts} +16 -200
- package/src/compiler/emit/sourcemap.ts +168 -0
- package/src/compiler/index.ts +9 -9
- package/src/compiler/worker.ts +1 -1
- package/src/helpers/constants.ts +12 -0
- package/src/helpers/convert/index.ts +4 -0
- package/src/helpers/convert/to-boolean.ts +12 -0
- package/src/helpers/convert/to-format.ts +37 -0
- package/src/helpers/convert/to-number.ts +35 -0
- package/src/helpers/convert/to-string.ts +55 -0
- package/src/{vm → helpers}/error.ts +1 -1
- package/src/helpers/serialize.ts +72 -24
- package/src/helpers/types.ts +267 -0
- package/src/subtle.ts +4 -2
- package/src/vm/checkpoint.ts +42 -0
- package/src/vm/helpers.ts +9 -53
- package/src/vm/index.ts +3 -3
- package/src/vm/lib/global/bit.ts +8 -9
- package/src/vm/lib/global/debug.ts +5 -4
- package/src/vm/lib/global/index.ts +0 -1
- package/src/vm/lib/global/json.ts +2 -2
- package/src/vm/lib/global/math-additional.ts +2 -4
- package/src/vm/lib/global/math-arr.ts +1 -1
- package/src/vm/lib/global/math-unary.ts +2 -4
- package/src/vm/lib/global/math.ts +3 -4
- package/src/vm/lib/global/sequence/all-any.ts +11 -6
- package/src/vm/lib/global/sequence/entries.ts +1 -1
- package/src/vm/lib/global/sequence/find.ts +4 -3
- package/src/vm/lib/global/sequence/flatten.ts +2 -3
- package/src/vm/lib/global/sequence/len.ts +1 -1
- package/src/vm/lib/global/sequence/map-filter.ts +4 -3
- package/src/vm/lib/global/sequence/repeat.ts +2 -4
- package/src/vm/lib/global/sequence/reverse.ts +1 -1
- package/src/vm/lib/global/sequence/sort.ts +6 -5
- package/src/vm/lib/global/sequence/with.ts +21 -20
- package/src/vm/lib/global/sequence/zip.ts +3 -3
- package/src/vm/lib/global/string.ts +16 -27
- package/src/vm/lib/global/time.ts +59 -30
- package/src/vm/lib/global/to-primitive.ts +27 -18
- package/src/vm/lib/{_helpers.ts → helpers.ts} +132 -44
- package/src/vm/lib/index.ts +16 -0
- package/src/vm/lib/{_loader.ts → loader.ts} +3 -11
- package/src/vm/lib/mod/index.ts +1 -0
- package/src/vm/lib/{global/mod → mod}/matrix.ts +9 -7
- package/src/vm/operations.ts +41 -137
- package/src/vm/types/boundary.ts +10 -13
- package/src/vm/types/context.ts +31 -50
- package/src/vm/types/extern.ts +8 -15
- package/src/vm/types/function.ts +4 -19
- package/src/vm/types/index.ts +47 -25
- package/src/vm/types/module.ts +3 -7
- package/src/vm/types/wrapper.ts +1 -5
- package/dist/chunk-35JGBXRE.js +0 -1
- package/dist/chunk-JVFUK7AN.js +0 -2324
- package/dist/chunk-JVFUK7AN.js.map +0 -6
- package/dist/chunk-NT235HY3.js.map +0 -6
- package/dist/compiler/emit.d.ts +0 -5
- package/dist/compiler/emit.d.ts.map +0 -1
- package/dist/vm/error.d.ts.map +0 -1
- package/dist/vm/lib/_helpers.d.ts +0 -35
- package/dist/vm/lib/_helpers.d.ts.map +0 -1
- package/dist/vm/lib/_loader.d.ts.map +0 -1
- package/dist/vm/lib/global/mod/index.d.ts +0 -3
- package/dist/vm/lib/global/mod/index.d.ts.map +0 -1
- package/dist/vm/lib/global/mod/matrix.d.ts +0 -15
- package/dist/vm/lib/global/mod/matrix.d.ts.map +0 -1
- package/dist/vm/types/any.d.ts +0 -10
- package/dist/vm/types/any.d.ts.map +0 -1
- package/dist/vm/types/array.d.ts +0 -12
- package/dist/vm/types/array.d.ts.map +0 -1
- package/dist/vm/types/callable.d.ts +0 -5
- package/dist/vm/types/callable.d.ts.map +0 -1
- package/dist/vm/types/const.d.ts +0 -15
- package/dist/vm/types/const.d.ts.map +0 -1
- package/dist/vm/types/immutable.d.ts +0 -15
- package/dist/vm/types/immutable.d.ts.map +0 -1
- package/dist/vm/types/primitive.d.ts +0 -7
- package/dist/vm/types/primitive.d.ts.map +0 -1
- package/dist/vm/types/record.d.ts +0 -20
- package/dist/vm/types/record.d.ts.map +0 -1
- package/dist/vm/types/script.d.ts +0 -14
- package/dist/vm/types/script.d.ts.map +0 -1
- package/dist/vm/types/value.d.ts +0 -14
- package/dist/vm/types/value.d.ts.map +0 -1
- package/src/vm/lib/global/mod/index.ts +0 -4
- package/src/vm/types/any.ts +0 -33
- package/src/vm/types/array.ts +0 -19
- package/src/vm/types/callable.ts +0 -10
- package/src/vm/types/const.ts +0 -109
- package/src/vm/types/immutable.ts +0 -22
- package/src/vm/types/primitive.ts +0 -14
- package/src/vm/types/record.ts +0 -53
- package/src/vm/types/script.ts +0 -18
- package/src/vm/types/value.ts +0 -22
- /package/dist/{chunk-35JGBXRE.js.map → chunk-RIT53WVY.js.map} +0 -0
package/src/vm/types/index.ts
CHANGED
|
@@ -1,12 +1,36 @@
|
|
|
1
|
-
import type { VmArray } from './array.js';
|
|
2
1
|
import type { VmExtern } from './extern.js';
|
|
3
2
|
import type { VmFunction } from './function.js';
|
|
4
3
|
import type { VmModule } from './module.js';
|
|
5
|
-
import type { VmRecord } from './record.js';
|
|
6
4
|
|
|
7
5
|
/** 类型名称 */
|
|
8
6
|
export type TypeName = keyof VmValueMap;
|
|
9
7
|
|
|
8
|
+
/** Mirascript 虚拟机内的未初始化变量 */
|
|
9
|
+
export type VmUninitialized = undefined;
|
|
10
|
+
/** Mirascript 原始值 */
|
|
11
|
+
export type VmPrimitive = null | number | string | boolean;
|
|
12
|
+
/**
|
|
13
|
+
* Mirascript 数组
|
|
14
|
+
* 数组中的 `undefined`、`null` 及 <empty slot> 均视作 `nil`
|
|
15
|
+
*/
|
|
16
|
+
export type VmArray = ReadonlyArray<VmConst | undefined>;
|
|
17
|
+
/**
|
|
18
|
+
* Mirascript 记录
|
|
19
|
+
* 仅拥有且可枚举的字符串键视作存在
|
|
20
|
+
* 字段值 `undefined` 和 `null` 均视作 `nil`
|
|
21
|
+
*/
|
|
22
|
+
export type VmRecord = {
|
|
23
|
+
readonly [key: string]: VmConst | undefined;
|
|
24
|
+
};
|
|
25
|
+
/** Mirascript 虚拟机内的值语义值 */
|
|
26
|
+
export type VmConst = VmPrimitive | VmRecord | VmArray;
|
|
27
|
+
/** Mirascript 虚拟机内的不可变值 */
|
|
28
|
+
export type VmImmutable = VmConst | VmFunction | VmModule;
|
|
29
|
+
/** Mirascript 虚拟机内的合法值 */
|
|
30
|
+
export type VmValue = VmImmutable | VmExtern;
|
|
31
|
+
/** Mirascript 虚拟机内的值(包括未初始化变量) */
|
|
32
|
+
export type VmAny = VmValue | VmUninitialized;
|
|
33
|
+
|
|
10
34
|
/** 类型名称映射 */
|
|
11
35
|
export interface VmValueMap {
|
|
12
36
|
/** 空值 */
|
|
@@ -29,32 +53,30 @@ export interface VmValueMap {
|
|
|
29
53
|
module: VmModule;
|
|
30
54
|
}
|
|
31
55
|
|
|
32
|
-
export { wrapToVmValue, unwrapFromVmValue, toVmFunctionProxy, fromVmFunctionProxy } from './boundary.js';
|
|
33
|
-
export { type VmContext, type VmSharedContext, isVmContext, defineVmContextValue, createVmContext } from './context.js';
|
|
34
|
-
export { type VmScript, isVmScript } from './script.js';
|
|
35
|
-
export { isVmCallable } from './callable.js';
|
|
36
|
-
|
|
37
|
-
export { type VmArray, VM_ARRAY_MAX_LENGTH, isVmArray } from './array.js';
|
|
38
56
|
export {
|
|
39
|
-
|
|
40
|
-
|
|
57
|
+
isVmAny,
|
|
58
|
+
isVmArray,
|
|
41
59
|
isVmArrayLikeRecord,
|
|
42
60
|
isVmArrayLikeRecordByEntires,
|
|
43
61
|
isVmArrayLikeRecordByKeys,
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
export { VmExtern, isVmExtern } from './extern.js';
|
|
49
|
-
export {
|
|
50
|
-
VmFunction,
|
|
62
|
+
isVmCallable,
|
|
63
|
+
isVmConst,
|
|
64
|
+
isVmContext,
|
|
65
|
+
isVmExtern,
|
|
51
66
|
isVmFunction,
|
|
67
|
+
isVmImmutable,
|
|
68
|
+
isVmModule,
|
|
69
|
+
isVmPrimitive,
|
|
70
|
+
isVmRecord,
|
|
71
|
+
isVmScript,
|
|
72
|
+
isVmValue,
|
|
73
|
+
isVmWrapper,
|
|
52
74
|
getVmFunctionInfo,
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
export {
|
|
58
|
-
export {
|
|
59
|
-
export { type
|
|
60
|
-
export {
|
|
75
|
+
} from '../../helpers/types.js';
|
|
76
|
+
|
|
77
|
+
export { wrapToVmValue, unwrapFromVmValue } from './boundary.js';
|
|
78
|
+
|
|
79
|
+
export { type VmContext, defineVmContextValue, createVmContext } from './context.js';
|
|
80
|
+
export { VmExtern } from './extern.js';
|
|
81
|
+
export { VmFunction, type VmFunctionInfo, type VmFunctionLike, type VmFunctionOption } from './function.js';
|
|
82
|
+
export { VmModule } from './module.js';
|
package/src/vm/types/module.ts
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
|
+
import { kVmModule } from '../../helpers/constants.js';
|
|
1
2
|
import { hasOwnEnumerable, keys } from '../../helpers/utils.js';
|
|
2
|
-
import type { TypeName, VmAny,
|
|
3
|
+
import type { TypeName, VmAny, VmImmutable } from './index.js';
|
|
3
4
|
import { VmWrapper } from './wrapper.js';
|
|
4
5
|
|
|
5
6
|
/** Mirascript 模块 */
|
|
6
|
-
export class VmModule<const T extends Record<string,
|
|
7
|
+
export class VmModule<const T extends Record<string, VmImmutable> = Record<string, VmImmutable>> extends VmWrapper<T> {
|
|
7
8
|
constructor(
|
|
8
9
|
/** 模块名称 */
|
|
9
10
|
readonly name: string,
|
|
@@ -39,9 +40,4 @@ export class VmModule<const T extends Record<string, VmValue> = Record<string, V
|
|
|
39
40
|
}
|
|
40
41
|
}
|
|
41
42
|
|
|
42
|
-
const kVmModule = Symbol.for('mirascript.vm.module');
|
|
43
43
|
Object.defineProperty(VmModule.prototype, kVmModule, { value: true });
|
|
44
|
-
/** 检查值是否为 Mirascript 模块 */
|
|
45
|
-
export function isVmModule<T extends Record<string, VmValue>>(value: unknown): value is VmModule<T> {
|
|
46
|
-
return value != null && typeof value == 'object' && kVmModule in value;
|
|
47
|
-
}
|
package/src/vm/types/wrapper.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { kVmWrapper } from '../../helpers/constants.js';
|
|
1
2
|
import type { TypeName, VmAny } from './index.js';
|
|
2
3
|
|
|
3
4
|
/**
|
|
@@ -29,9 +30,4 @@ export abstract class VmWrapper<T extends object> {
|
|
|
29
30
|
}
|
|
30
31
|
}
|
|
31
32
|
|
|
32
|
-
const kVmWrapper = Symbol.for('mirascript.vm.wrapper');
|
|
33
33
|
Object.defineProperty(VmWrapper.prototype, kVmWrapper, { value: true });
|
|
34
|
-
/** 检查值是否为 MiraScript 包装器 */
|
|
35
|
-
export function isVmWrapper<T extends object>(value: unknown): value is VmWrapper<T> {
|
|
36
|
-
return value != null && typeof value == 'object' && kVmWrapper in value;
|
|
37
|
-
}
|
package/dist/chunk-35JGBXRE.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
//# sourceMappingURL=chunk-35JGBXRE.js.map
|