@mirascript/mirascript 0.1.0
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-5FQWUJIY.js +766 -0
- package/dist/chunk-5FQWUJIY.js.map +6 -0
- package/dist/chunk-BTDGMWFK.js +202 -0
- package/dist/chunk-BTDGMWFK.js.map +6 -0
- package/dist/chunk-DCXIWIW5.js +3419 -0
- package/dist/chunk-DCXIWIW5.js.map +6 -0
- package/dist/chunk-RAPJ3XLV.js +10 -0
- package/dist/chunk-RAPJ3XLV.js.map +6 -0
- package/dist/cli/execute.d.ts +4 -0
- package/dist/cli/execute.d.ts.map +1 -0
- package/dist/cli/index.d.ts +2 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +191 -0
- package/dist/cli/index.js.map +6 -0
- package/dist/cli/print.d.ts +4 -0
- package/dist/cli/print.d.ts.map +1 -0
- package/dist/compiler/compile-bytecode.d.ts +12 -0
- package/dist/compiler/compile-bytecode.d.ts.map +1 -0
- package/dist/compiler/compile-fast.d.ts +7 -0
- package/dist/compiler/compile-fast.d.ts.map +1 -0
- package/dist/compiler/create-script.d.ts +7 -0
- package/dist/compiler/create-script.d.ts.map +1 -0
- package/dist/compiler/diagnostic.d.ts +56 -0
- package/dist/compiler/diagnostic.d.ts.map +1 -0
- package/dist/compiler/emit.d.ts +4 -0
- package/dist/compiler/emit.d.ts.map +1 -0
- package/dist/compiler/index.d.ts +13 -0
- package/dist/compiler/index.d.ts.map +1 -0
- package/dist/compiler/types.d.ts +16 -0
- package/dist/compiler/types.d.ts.map +1 -0
- package/dist/compiler/worker-manager.d.ts +6 -0
- package/dist/compiler/worker-manager.d.ts.map +1 -0
- package/dist/compiler/worker.d.ts +6 -0
- package/dist/compiler/worker.d.ts.map +1 -0
- package/dist/compiler/worker.js +34 -0
- package/dist/compiler/worker.js.map +6 -0
- package/dist/helpers/constants.d.ts +3 -0
- package/dist/helpers/constants.d.ts.map +1 -0
- package/dist/helpers/serialize.d.ts +45 -0
- package/dist/helpers/serialize.d.ts.map +1 -0
- package/dist/helpers/utils.d.ts +36 -0
- package/dist/helpers/utils.d.ts.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +61 -0
- package/dist/index.js.map +6 -0
- package/dist/subtle.d.ts +7 -0
- package/dist/subtle.d.ts.map +1 -0
- package/dist/subtle.js +30 -0
- package/dist/subtle.js.map +6 -0
- package/dist/vm/env.d.ts +3 -0
- package/dist/vm/env.d.ts.map +1 -0
- package/dist/vm/error.d.ts +11 -0
- package/dist/vm/error.d.ts.map +1 -0
- package/dist/vm/helpers.d.ts +21 -0
- package/dist/vm/helpers.d.ts.map +1 -0
- package/dist/vm/index.d.ts +5 -0
- package/dist/vm/index.d.ts.map +1 -0
- package/dist/vm/lib/_helpers.d.ts +35 -0
- package/dist/vm/lib/_helpers.d.ts.map +1 -0
- package/dist/vm/lib/_loader.d.ts +16 -0
- package/dist/vm/lib/_loader.d.ts.map +1 -0
- package/dist/vm/lib/global/bit.d.ts +9 -0
- package/dist/vm/lib/global/bit.d.ts.map +1 -0
- package/dist/vm/lib/global/debug.d.ts +5 -0
- package/dist/vm/lib/global/debug.d.ts.map +1 -0
- package/dist/vm/lib/global/index.d.ts +10 -0
- package/dist/vm/lib/global/index.d.ts.map +1 -0
- package/dist/vm/lib/global/json.d.ts +4 -0
- package/dist/vm/lib/global/json.d.ts.map +1 -0
- package/dist/vm/lib/global/math-additional.d.ts +3 -0
- package/dist/vm/lib/global/math-additional.d.ts.map +1 -0
- package/dist/vm/lib/global/math-arr.d.ts +8 -0
- package/dist/vm/lib/global/math-arr.d.ts.map +1 -0
- package/dist/vm/lib/global/math-const.d.ts +3 -0
- package/dist/vm/lib/global/math-const.d.ts.map +1 -0
- package/dist/vm/lib/global/math-unary.d.ts +29 -0
- package/dist/vm/lib/global/math-unary.d.ts.map +1 -0
- package/dist/vm/lib/global/math.d.ts +9 -0
- package/dist/vm/lib/global/math.d.ts.map +1 -0
- package/dist/vm/lib/global/mod/index.d.ts +3 -0
- package/dist/vm/lib/global/mod/index.d.ts.map +1 -0
- package/dist/vm/lib/global/mod/matrix.d.ts +16 -0
- package/dist/vm/lib/global/mod/matrix.d.ts.map +1 -0
- package/dist/vm/lib/global/sequence/all-any.d.ts +4 -0
- package/dist/vm/lib/global/sequence/all-any.d.ts.map +1 -0
- package/dist/vm/lib/global/sequence/entries.d.ts +12 -0
- package/dist/vm/lib/global/sequence/entries.d.ts.map +1 -0
- package/dist/vm/lib/global/sequence/find.d.ts +10 -0
- package/dist/vm/lib/global/sequence/find.d.ts.map +1 -0
- package/dist/vm/lib/global/sequence/flatten.d.ts +3 -0
- package/dist/vm/lib/global/sequence/flatten.d.ts.map +1 -0
- package/dist/vm/lib/global/sequence/index.d.ts +12 -0
- package/dist/vm/lib/global/sequence/index.d.ts.map +1 -0
- package/dist/vm/lib/global/sequence/len.d.ts +3 -0
- package/dist/vm/lib/global/sequence/len.d.ts.map +1 -0
- package/dist/vm/lib/global/sequence/map-filter.d.ts +9 -0
- package/dist/vm/lib/global/sequence/map-filter.d.ts.map +1 -0
- package/dist/vm/lib/global/sequence/repeat.d.ts +4 -0
- package/dist/vm/lib/global/sequence/repeat.d.ts.map +1 -0
- package/dist/vm/lib/global/sequence/reverse.d.ts +3 -0
- package/dist/vm/lib/global/sequence/reverse.d.ts.map +1 -0
- package/dist/vm/lib/global/sequence/sort.d.ts +5 -0
- package/dist/vm/lib/global/sequence/sort.d.ts.map +1 -0
- package/dist/vm/lib/global/sequence/with.d.ts +5 -0
- package/dist/vm/lib/global/sequence/with.d.ts.map +1 -0
- package/dist/vm/lib/global/sequence/zip.d.ts +4 -0
- package/dist/vm/lib/global/sequence/zip.d.ts.map +1 -0
- package/dist/vm/lib/global/string.d.ts +12 -0
- package/dist/vm/lib/global/string.d.ts.map +1 -0
- package/dist/vm/lib/global/time.d.ts +15 -0
- package/dist/vm/lib/global/time.d.ts.map +1 -0
- package/dist/vm/lib/global/to-primitive.d.ts +6 -0
- package/dist/vm/lib/global/to-primitive.d.ts.map +1 -0
- package/dist/vm/operations.d.ts +49 -0
- package/dist/vm/operations.d.ts.map +1 -0
- package/dist/vm/types/checker.d.ts +30 -0
- package/dist/vm/types/checker.d.ts.map +1 -0
- package/dist/vm/types/context.d.ts +43 -0
- package/dist/vm/types/context.d.ts.map +1 -0
- package/dist/vm/types/extern.d.ts +32 -0
- package/dist/vm/types/extern.d.ts.map +1 -0
- package/dist/vm/types/function.d.ts +49 -0
- package/dist/vm/types/function.d.ts.map +1 -0
- package/dist/vm/types/index.d.ts +75 -0
- package/dist/vm/types/index.d.ts.map +1 -0
- package/dist/vm/types/module.d.ts +25 -0
- package/dist/vm/types/module.d.ts.map +1 -0
- package/dist/vm/types/script.d.ts +14 -0
- package/dist/vm/types/script.d.ts.map +1 -0
- package/dist/vm/types/wrapper.d.ts +25 -0
- package/dist/vm/types/wrapper.d.ts.map +1 -0
- package/package.json +55 -0
- package/src/cli/execute.ts +32 -0
- package/src/cli/index.ts +73 -0
- package/src/cli/print.ts +41 -0
- package/src/compiler/compile-bytecode.ts +65 -0
- package/src/compiler/compile-fast.ts +81 -0
- package/src/compiler/create-script.ts +34 -0
- package/src/compiler/diagnostic.ts +175 -0
- package/src/compiler/emit.ts +764 -0
- package/src/compiler/index.ts +67 -0
- package/src/compiler/types.ts +16 -0
- package/src/compiler/worker-manager.ts +60 -0
- package/src/compiler/worker.ts +37 -0
- package/src/helpers/constants.ts +3 -0
- package/src/helpers/serialize.ts +280 -0
- package/src/helpers/utils.ts +16 -0
- package/src/index.ts +3 -0
- package/src/subtle.ts +6 -0
- package/src/vm/env.ts +16 -0
- package/src/vm/error.ts +22 -0
- package/src/vm/helpers.ts +121 -0
- package/src/vm/index.ts +5 -0
- package/src/vm/lib/_helpers.ts +215 -0
- package/src/vm/lib/_loader.ts +51 -0
- package/src/vm/lib/global/bit.ts +93 -0
- package/src/vm/lib/global/debug.ts +36 -0
- package/src/vm/lib/global/index.ts +9 -0
- package/src/vm/lib/global/json.ts +45 -0
- package/src/vm/lib/global/math-additional.ts +71 -0
- package/src/vm/lib/global/math-arr.ts +62 -0
- package/src/vm/lib/global/math-const.ts +2 -0
- package/src/vm/lib/global/math-unary.ts +171 -0
- package/src/vm/lib/global/math.ts +27 -0
- package/src/vm/lib/global/mod/index.ts +4 -0
- package/src/vm/lib/global/mod/matrix.ts +579 -0
- package/src/vm/lib/global/sequence/all-any.ts +73 -0
- package/src/vm/lib/global/sequence/entries.ts +67 -0
- package/src/vm/lib/global/sequence/find.ts +49 -0
- package/src/vm/lib/global/sequence/flatten.ts +16 -0
- package/src/vm/lib/global/sequence/index.ts +11 -0
- package/src/vm/lib/global/sequence/len.ts +15 -0
- package/src/vm/lib/global/sequence/map-filter.ts +82 -0
- package/src/vm/lib/global/sequence/repeat.ts +28 -0
- package/src/vm/lib/global/sequence/reverse.ts +17 -0
- package/src/vm/lib/global/sequence/sort.ts +88 -0
- package/src/vm/lib/global/sequence/with.ts +43 -0
- package/src/vm/lib/global/sequence/zip.ts +40 -0
- package/src/vm/lib/global/string.ts +149 -0
- package/src/vm/lib/global/time.ts +73 -0
- package/src/vm/lib/global/to-primitive.ts +58 -0
- package/src/vm/operations.ts +497 -0
- package/src/vm/types/checker.ts +164 -0
- package/src/vm/types/context.ts +161 -0
- package/src/vm/types/extern.ts +166 -0
- package/src/vm/types/function.ts +136 -0
- package/src/vm/types/index.ts +124 -0
- package/src/vm/types/module.ts +40 -0
- package/src/vm/types/script.ts +18 -0
- package/src/vm/types/wrapper.ts +28 -0
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
import type { VmAny } from '../../index.js';
|
|
2
|
+
import { $ToNumber } from '../../operations.js';
|
|
3
|
+
import { required, VmLib } from '../_helpers.js';
|
|
4
|
+
|
|
5
|
+
/** 生成函数 */
|
|
6
|
+
function build(f: (x: number) => number): (x: VmAny) => number {
|
|
7
|
+
return (x) => {
|
|
8
|
+
required('x', x, Number.NaN);
|
|
9
|
+
return f($ToNumber(x));
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export const trunc = VmLib(build(Math.trunc), {
|
|
14
|
+
summary: '返回数值的整数部分(去除小数)',
|
|
15
|
+
params: { x: '要取整数部分的数' },
|
|
16
|
+
paramsType: { x: 'number' },
|
|
17
|
+
returnsType: 'number',
|
|
18
|
+
});
|
|
19
|
+
export const floor = VmLib(build(Math.floor), {
|
|
20
|
+
summary: '返回小于等于给定数的最大整数',
|
|
21
|
+
params: { x: '要向下取整的数' },
|
|
22
|
+
paramsType: { x: 'number' },
|
|
23
|
+
returnsType: 'number',
|
|
24
|
+
});
|
|
25
|
+
export const ceil = VmLib(build(Math.ceil), {
|
|
26
|
+
summary: '返回大于等于给定数的最小整数',
|
|
27
|
+
params: { x: '要向上取整的数' },
|
|
28
|
+
paramsType: { x: 'number' },
|
|
29
|
+
returnsType: 'number',
|
|
30
|
+
});
|
|
31
|
+
export const round = VmLib(build(Math.round), {
|
|
32
|
+
summary: '返回四舍五入后的整数',
|
|
33
|
+
params: { x: '要四舍五入的数' },
|
|
34
|
+
paramsType: { x: 'number' },
|
|
35
|
+
returnsType: 'number',
|
|
36
|
+
});
|
|
37
|
+
export const sign = VmLib(build(Math.sign), {
|
|
38
|
+
summary: '返回数值的符号(正数为 1,负数为 -1,零为 0)',
|
|
39
|
+
params: { x: '要判断符号的数' },
|
|
40
|
+
paramsType: { x: 'number' },
|
|
41
|
+
returnsType: 'number',
|
|
42
|
+
});
|
|
43
|
+
export const abs = VmLib(build(Math.abs), {
|
|
44
|
+
summary: '返回数值的绝对值',
|
|
45
|
+
params: { x: '要取绝对值的数' },
|
|
46
|
+
paramsType: { x: 'number' },
|
|
47
|
+
returnsType: 'number',
|
|
48
|
+
});
|
|
49
|
+
|
|
50
|
+
export const acos = VmLib(build(Math.acos), {
|
|
51
|
+
summary: '返回数值的反余弦值(弧度)',
|
|
52
|
+
params: { x: '要计算反余弦的数' },
|
|
53
|
+
paramsType: { x: 'number' },
|
|
54
|
+
returnsType: 'number',
|
|
55
|
+
});
|
|
56
|
+
export const acosh = VmLib(build(Math.acosh), {
|
|
57
|
+
summary: '返回数值的反双曲余弦值',
|
|
58
|
+
params: { x: '要计算反双曲余弦的数' },
|
|
59
|
+
paramsType: { x: 'number' },
|
|
60
|
+
returnsType: 'number',
|
|
61
|
+
});
|
|
62
|
+
export const asin = VmLib(build(Math.asin), {
|
|
63
|
+
summary: '返回数值的反正弦值(弧度)',
|
|
64
|
+
params: { x: '要计算反正弦的数' },
|
|
65
|
+
paramsType: { x: 'number' },
|
|
66
|
+
returnsType: 'number',
|
|
67
|
+
});
|
|
68
|
+
export const asinh = VmLib(build(Math.asinh), {
|
|
69
|
+
summary: '返回数值的反双曲正弦值',
|
|
70
|
+
params: { x: '要计算反双曲正弦的数' },
|
|
71
|
+
paramsType: { x: 'number' },
|
|
72
|
+
returnsType: 'number',
|
|
73
|
+
});
|
|
74
|
+
export const atan = VmLib(build(Math.atan), {
|
|
75
|
+
summary: '返回数值的反正切值(弧度)',
|
|
76
|
+
params: { x: '要计算反正切的数' },
|
|
77
|
+
paramsType: { x: 'number' },
|
|
78
|
+
returnsType: 'number',
|
|
79
|
+
});
|
|
80
|
+
export const atanh = VmLib(build(Math.atanh), {
|
|
81
|
+
summary: '返回数值的反双曲正切值',
|
|
82
|
+
params: { x: '要计算反双曲正切的数' },
|
|
83
|
+
paramsType: { x: 'number' },
|
|
84
|
+
returnsType: 'number',
|
|
85
|
+
});
|
|
86
|
+
export const cos = VmLib(build(Math.cos), {
|
|
87
|
+
summary: '返回数值的余弦值',
|
|
88
|
+
params: { x: '要计算余弦的数(弧度)' },
|
|
89
|
+
paramsType: { x: 'number' },
|
|
90
|
+
returnsType: 'number',
|
|
91
|
+
});
|
|
92
|
+
export const cosh = VmLib(build(Math.cosh), {
|
|
93
|
+
summary: '返回数值的双曲余弦值',
|
|
94
|
+
params: { x: '要计算双曲余弦的数' },
|
|
95
|
+
paramsType: { x: 'number' },
|
|
96
|
+
returnsType: 'number',
|
|
97
|
+
});
|
|
98
|
+
export const sin = VmLib(build(Math.sin), {
|
|
99
|
+
summary: '返回数值的正弦值',
|
|
100
|
+
params: { x: '要计算正弦的数(弧度)' },
|
|
101
|
+
paramsType: { x: 'number' },
|
|
102
|
+
returnsType: 'number',
|
|
103
|
+
});
|
|
104
|
+
export const sinh = VmLib(build(Math.sinh), {
|
|
105
|
+
summary: '返回数值的双曲正弦值',
|
|
106
|
+
params: { x: '要计算双曲正弦的数' },
|
|
107
|
+
paramsType: { x: 'number' },
|
|
108
|
+
returnsType: 'number',
|
|
109
|
+
});
|
|
110
|
+
export const tan = VmLib(build(Math.tan), {
|
|
111
|
+
summary: '返回数值的正切值',
|
|
112
|
+
params: { x: '要计算正切的数(弧度)' },
|
|
113
|
+
paramsType: { x: 'number' },
|
|
114
|
+
returnsType: 'number',
|
|
115
|
+
});
|
|
116
|
+
export const tanh = VmLib(build(Math.tanh), {
|
|
117
|
+
summary: '返回数值的双曲正切值',
|
|
118
|
+
params: { x: '要计算双曲正切的数' },
|
|
119
|
+
paramsType: { x: 'number' },
|
|
120
|
+
returnsType: 'number',
|
|
121
|
+
});
|
|
122
|
+
|
|
123
|
+
export const exp = VmLib(build(Math.exp), {
|
|
124
|
+
summary: '返回 e 的指定次幂',
|
|
125
|
+
params: { x: '指数' },
|
|
126
|
+
paramsType: { x: 'number' },
|
|
127
|
+
returnsType: 'number',
|
|
128
|
+
});
|
|
129
|
+
export const expm1 = VmLib(build(Math.expm1), {
|
|
130
|
+
summary: '返回 e 的 x 次幂减 1',
|
|
131
|
+
params: { x: '指数' },
|
|
132
|
+
paramsType: { x: 'number' },
|
|
133
|
+
returnsType: 'number',
|
|
134
|
+
});
|
|
135
|
+
export const log = VmLib(build(Math.log), {
|
|
136
|
+
summary: '返回数值的自然对数(以 e 为底)',
|
|
137
|
+
params: { x: '要取对数的数' },
|
|
138
|
+
paramsType: { x: 'number' },
|
|
139
|
+
returnsType: 'number',
|
|
140
|
+
});
|
|
141
|
+
export const log10 = VmLib(build(Math.log10), {
|
|
142
|
+
summary: '返回数值的以 10 为底的对数',
|
|
143
|
+
params: { x: '要取对数的数' },
|
|
144
|
+
paramsType: { x: 'number' },
|
|
145
|
+
returnsType: 'number',
|
|
146
|
+
});
|
|
147
|
+
export const log1p = VmLib(build(Math.log1p), {
|
|
148
|
+
summary: '返回 1 加上数值的自然对数',
|
|
149
|
+
params: { x: '要取对数的数' },
|
|
150
|
+
paramsType: { x: 'number' },
|
|
151
|
+
returnsType: 'number',
|
|
152
|
+
});
|
|
153
|
+
export const log2 = VmLib(build(Math.log2), {
|
|
154
|
+
summary: '返回数值的以 2 为底的对数',
|
|
155
|
+
params: { x: '要取对数的数' },
|
|
156
|
+
paramsType: { x: 'number' },
|
|
157
|
+
returnsType: 'number',
|
|
158
|
+
});
|
|
159
|
+
|
|
160
|
+
export const sqrt = VmLib(build(Math.sqrt), {
|
|
161
|
+
summary: '返回数值的平方根',
|
|
162
|
+
params: { x: '要开平方的数' },
|
|
163
|
+
paramsType: { x: 'number' },
|
|
164
|
+
returnsType: 'number',
|
|
165
|
+
});
|
|
166
|
+
export const cbrt = VmLib(build(Math.cbrt), {
|
|
167
|
+
summary: '返回数值的立方根',
|
|
168
|
+
params: { x: '要计算立方根的数' },
|
|
169
|
+
paramsType: { x: 'number' },
|
|
170
|
+
returnsType: 'number',
|
|
171
|
+
});
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { $ToNumber } from '../../operations.js';
|
|
2
|
+
import { VmLib } from '../_helpers.js';
|
|
3
|
+
const { atan2: _atan2, pow: _pow } = Math;
|
|
4
|
+
|
|
5
|
+
export const atan2 = VmLib((x, y) => _atan2($ToNumber(x), $ToNumber(y)), {
|
|
6
|
+
summary: '返回从原点到点 (x, y) 的角度(弧度)',
|
|
7
|
+
params: { x: 'x 坐标', y: 'y 坐标' },
|
|
8
|
+
paramsType: { x: 'number', y: 'number' },
|
|
9
|
+
returnsType: 'number',
|
|
10
|
+
});
|
|
11
|
+
export const pow = VmLib((x, y) => _pow($ToNumber(x), $ToNumber(y)), {
|
|
12
|
+
summary: '返回 x 的 y 次幂',
|
|
13
|
+
params: { x: '底数', y: '指数' },
|
|
14
|
+
paramsType: { x: 'number', y: 'number' },
|
|
15
|
+
returnsType: 'number',
|
|
16
|
+
});
|
|
17
|
+
export const random = VmLib(Math.random, {
|
|
18
|
+
summary: '返回 0 到 1 之间的伪随机数',
|
|
19
|
+
params: {},
|
|
20
|
+
paramsType: {},
|
|
21
|
+
returnsType: 'number',
|
|
22
|
+
});
|
|
23
|
+
|
|
24
|
+
export * from './math-arr.js';
|
|
25
|
+
export * from './math-const.js';
|
|
26
|
+
export * from './math-unary.js';
|
|
27
|
+
export * from './math-additional.js';
|