@mirascript/mirascript 0.1.76 → 0.1.79

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 (182) hide show
  1. package/dist/{chunk-ZRLBJK6A.js → chunk-BPFOJ4Q6.js} +499 -470
  2. package/dist/chunk-BPFOJ4Q6.js.map +6 -0
  3. package/dist/{chunk-VI74OKFU.js → chunk-LSPCAN32.js} +291 -226
  4. package/dist/chunk-LSPCAN32.js.map +6 -0
  5. package/dist/compiler/emit/constants.d.ts +1 -1
  6. package/dist/compiler/emit/constants.d.ts.map +1 -1
  7. package/dist/compiler/emit/consts.d.ts.map +1 -1
  8. package/dist/compiler/emit/index.d.ts.map +1 -1
  9. package/dist/compiler/emit-script.d.ts.map +1 -1
  10. package/dist/compiler/worker.js +1 -1
  11. package/dist/helpers/convert/{to-boolean.d.ts → boolean.d.ts} +1 -1
  12. package/dist/helpers/convert/boolean.d.ts.map +1 -0
  13. package/dist/helpers/convert/{to-format.d.ts → format.d.ts} +1 -1
  14. package/dist/helpers/convert/format.d.ts.map +1 -0
  15. package/dist/helpers/convert/index.d.ts +4 -4
  16. package/dist/helpers/convert/index.d.ts.map +1 -1
  17. package/dist/helpers/convert/{to-number.d.ts → number.d.ts} +1 -1
  18. package/dist/helpers/convert/number.d.ts.map +1 -0
  19. package/dist/helpers/convert/{to-string.d.ts → string.d.ts} +3 -1
  20. package/dist/helpers/convert/string.d.ts.map +1 -0
  21. package/dist/helpers/error.d.ts +1 -0
  22. package/dist/helpers/error.d.ts.map +1 -1
  23. package/dist/helpers/serialize.d.ts.map +1 -1
  24. package/dist/helpers/types/array-like.d.ts +8 -0
  25. package/dist/helpers/types/array-like.d.ts.map +1 -0
  26. package/dist/helpers/types/basic.d.ts +26 -0
  27. package/dist/helpers/types/basic.d.ts.map +1 -0
  28. package/dist/helpers/types/composed.d.ts +12 -0
  29. package/dist/helpers/types/composed.d.ts.map +1 -0
  30. package/dist/helpers/types/const.d.ts +6 -0
  31. package/dist/helpers/types/const.d.ts.map +1 -0
  32. package/dist/helpers/types/get-type.d.ts +6 -0
  33. package/dist/helpers/types/get-type.d.ts.map +1 -0
  34. package/dist/helpers/types/index.d.ts +6 -0
  35. package/dist/helpers/types/index.d.ts.map +1 -0
  36. package/dist/helpers/types/proto.d.ts +5 -0
  37. package/dist/helpers/types/proto.d.ts.map +1 -0
  38. package/dist/helpers/utils.d.ts +9 -0
  39. package/dist/helpers/utils.d.ts.map +1 -1
  40. package/dist/index.js +3 -3
  41. package/dist/index.js.map +1 -1
  42. package/dist/subtle.js +3 -3
  43. package/dist/vm/lib/global/debug.d.ts.map +1 -1
  44. package/dist/vm/lib/global/json.d.ts +3 -2
  45. package/dist/vm/lib/global/json.d.ts.map +1 -1
  46. package/dist/vm/lib/global/math/tgamma.d.ts.map +1 -1
  47. package/dist/vm/lib/global/sequence/entries.d.ts +1 -1
  48. package/dist/vm/lib/global/sequence/entries.d.ts.map +1 -1
  49. package/dist/vm/lib/global/sequence/fold.d.ts +3 -0
  50. package/dist/vm/lib/global/sequence/fold.d.ts.map +1 -0
  51. package/dist/vm/lib/global/sequence/group.d.ts +3 -0
  52. package/dist/vm/lib/global/sequence/group.d.ts.map +1 -0
  53. package/dist/vm/lib/global/sequence/index.d.ts +2 -0
  54. package/dist/vm/lib/global/sequence/index.d.ts.map +1 -1
  55. package/dist/vm/lib/global/sequence/new.d.ts.map +1 -1
  56. package/dist/vm/lib/global/sequence/zip.d.ts +2 -2
  57. package/dist/vm/lib/global/sequence/zip.d.ts.map +1 -1
  58. package/dist/vm/lib/helpers.d.ts +2 -2
  59. package/dist/vm/lib/helpers.d.ts.map +1 -1
  60. package/dist/vm/lib/mod/index.d.ts +1 -1
  61. package/dist/vm/lib/mod/index.d.ts.map +1 -1
  62. package/dist/vm/lib/mod/matrix/bin-ops.d.ts +8 -0
  63. package/dist/vm/lib/mod/matrix/bin-ops.d.ts.map +1 -0
  64. package/dist/vm/lib/mod/matrix/fill.d.ts +6 -0
  65. package/dist/vm/lib/mod/matrix/fill.d.ts.map +1 -0
  66. package/dist/vm/lib/mod/matrix/helpers.d.ts +6 -0
  67. package/dist/vm/lib/mod/matrix/helpers.d.ts.map +1 -0
  68. package/dist/vm/lib/mod/matrix/index.d.ts +6 -0
  69. package/dist/vm/lib/mod/matrix/index.d.ts.map +1 -0
  70. package/dist/vm/lib/mod/matrix/invert.d.ts +3 -0
  71. package/dist/vm/lib/mod/matrix/invert.d.ts.map +1 -0
  72. package/dist/vm/lib/mod/matrix/size.d.ts +2 -0
  73. package/dist/vm/lib/mod/matrix/size.d.ts.map +1 -0
  74. package/dist/vm/lib/mod/matrix/transpose.d.ts +2 -0
  75. package/dist/vm/lib/mod/matrix/transpose.d.ts.map +1 -0
  76. package/dist/vm/operations/array-range.d.ts +3 -3
  77. package/dist/vm/operations/array-range.d.ts.map +1 -1
  78. package/dist/vm/operations/call.d.ts +1 -1
  79. package/dist/vm/operations/call.d.ts.map +1 -1
  80. package/dist/vm/operations/compound.d.ts +1 -13
  81. package/dist/vm/operations/compound.d.ts.map +1 -1
  82. package/dist/vm/operations/index.d.ts +3 -0
  83. package/dist/vm/operations/index.d.ts.map +1 -1
  84. package/dist/vm/operations/iterable.d.ts +6 -0
  85. package/dist/vm/operations/iterable.d.ts.map +1 -0
  86. package/dist/vm/operations/record.d.ts +6 -0
  87. package/dist/vm/operations/record.d.ts.map +1 -0
  88. package/dist/vm/operations/slice.d.ts.map +1 -1
  89. package/dist/vm/operations/spread.d.ts +6 -0
  90. package/dist/vm/operations/spread.d.ts.map +1 -0
  91. package/dist/vm/operations/utils.d.ts.map +1 -1
  92. package/dist/vm/types/extern/access.d.ts +5 -0
  93. package/dist/vm/types/extern/access.d.ts.map +1 -0
  94. package/dist/vm/types/{extern.d.ts → extern/index.d.ts} +3 -3
  95. package/dist/vm/types/extern/index.d.ts.map +1 -0
  96. package/dist/vm/types/extern/tag.d.ts +3 -0
  97. package/dist/vm/types/extern/tag.d.ts.map +1 -0
  98. package/dist/vm/types/extern/utils.d.ts +13 -0
  99. package/dist/vm/types/extern/utils.d.ts.map +1 -0
  100. package/dist/vm/types/index.d.ts +3 -3
  101. package/dist/vm/types/index.d.ts.map +1 -1
  102. package/package.json +6 -6
  103. package/src/compiler/compile-fast.ts +1 -1
  104. package/src/compiler/diagnostic.ts +2 -2
  105. package/src/compiler/emit/constants.ts +1 -1
  106. package/src/compiler/emit/consts.ts +0 -1
  107. package/src/compiler/emit/index.ts +1 -7
  108. package/src/compiler/emit/sourcemap.ts +1 -1
  109. package/src/compiler/emit-script.ts +1 -0
  110. package/src/compiler/load-module.ts +5 -1
  111. package/src/helpers/convert/{to-boolean.ts → boolean.ts} +1 -1
  112. package/src/helpers/convert/{to-format.ts → format.ts} +1 -1
  113. package/src/helpers/convert/index.ts +4 -4
  114. package/src/helpers/convert/{to-number.ts → number.ts} +16 -32
  115. package/src/helpers/convert/{to-string.ts → string.ts} +5 -4
  116. package/src/helpers/error.ts +3 -1
  117. package/src/helpers/serialize.ts +45 -44
  118. package/src/helpers/types/array-like.ts +32 -0
  119. package/src/helpers/types/basic.ts +82 -0
  120. package/src/helpers/types/composed.ts +27 -0
  121. package/src/helpers/types/const.ts +44 -0
  122. package/src/helpers/types/get-type.ts +16 -0
  123. package/src/helpers/types/index.ts +5 -0
  124. package/src/helpers/types/proto.ts +21 -0
  125. package/src/helpers/utils.ts +33 -0
  126. package/src/vm/lib/global/debug.ts +4 -8
  127. package/src/vm/lib/global/json.ts +21 -9
  128. package/src/vm/lib/global/math/tgamma.ts +8 -14
  129. package/src/vm/lib/global/sequence/all-any.ts +1 -1
  130. package/src/vm/lib/global/sequence/entries.ts +6 -1
  131. package/src/vm/lib/global/sequence/find.ts +1 -1
  132. package/src/vm/lib/global/sequence/fold.ts +30 -0
  133. package/src/vm/lib/global/sequence/group.ts +37 -0
  134. package/src/vm/lib/global/sequence/index.ts +2 -0
  135. package/src/vm/lib/global/sequence/map-filter.ts +3 -3
  136. package/src/vm/lib/global/sequence/new.ts +9 -3
  137. package/src/vm/lib/global/sequence/sort.ts +1 -1
  138. package/src/vm/lib/global/sequence/unique.ts +1 -1
  139. package/src/vm/lib/global/sequence/with.ts +5 -5
  140. package/src/vm/lib/global/sequence/zip.ts +21 -10
  141. package/src/vm/lib/global/time.ts +1 -1
  142. package/src/vm/lib/helpers.ts +12 -5
  143. package/src/vm/lib/mod/index.ts +1 -1
  144. package/src/vm/lib/mod/matrix/bin-ops.ts +291 -0
  145. package/src/vm/lib/mod/matrix/fill.ts +109 -0
  146. package/src/vm/lib/mod/matrix/helpers.ts +26 -0
  147. package/src/vm/lib/mod/matrix/index.ts +5 -0
  148. package/src/vm/lib/mod/matrix/invert.ts +122 -0
  149. package/src/vm/lib/mod/matrix/size.ts +15 -0
  150. package/src/vm/lib/mod/matrix/transpose.ts +32 -0
  151. package/src/vm/operations/array-range.ts +15 -27
  152. package/src/vm/operations/call.ts +2 -2
  153. package/src/vm/operations/compound.ts +5 -125
  154. package/src/vm/operations/helpers.ts +1 -1
  155. package/src/vm/operations/index.ts +3 -0
  156. package/src/vm/operations/iterable.ts +40 -0
  157. package/src/vm/operations/record.ts +33 -0
  158. package/src/vm/operations/slice.ts +23 -22
  159. package/src/vm/operations/spread.ts +57 -0
  160. package/src/vm/operations/type-check.ts +1 -1
  161. package/src/vm/operations/utils.ts +45 -37
  162. package/src/vm/types/boundary.ts +2 -2
  163. package/src/vm/types/extern/access.ts +24 -0
  164. package/src/vm/types/extern/index.ts +124 -0
  165. package/src/vm/types/extern/tag.ts +58 -0
  166. package/src/vm/types/extern/utils.ts +55 -0
  167. package/src/vm/types/function.ts +1 -1
  168. package/src/vm/types/index.ts +3 -3
  169. package/dist/chunk-VI74OKFU.js.map +0 -6
  170. package/dist/chunk-ZRLBJK6A.js.map +0 -6
  171. package/dist/helpers/convert/to-boolean.d.ts.map +0 -1
  172. package/dist/helpers/convert/to-format.d.ts.map +0 -1
  173. package/dist/helpers/convert/to-number.d.ts.map +0 -1
  174. package/dist/helpers/convert/to-string.d.ts.map +0 -1
  175. package/dist/helpers/types.d.ts +0 -58
  176. package/dist/helpers/types.d.ts.map +0 -1
  177. package/dist/vm/lib/mod/matrix.d.ts +0 -15
  178. package/dist/vm/lib/mod/matrix.d.ts.map +0 -1
  179. package/dist/vm/types/extern.d.ts.map +0 -1
  180. package/src/helpers/types.ts +0 -283
  181. package/src/vm/lib/mod/matrix.ts +0 -590
  182. package/src/vm/types/extern.ts +0 -197
@@ -1,6 +1,6 @@
1
- import { hasOwnEnumerable, isNaN, keys } from '../../helpers/utils.js';
2
- import { isVmArray, isVmWrapper } from '../../helpers/types.js';
3
- import type { VmAny, VmValue } from '../types/index.js';
1
+ import { isNaN, keys, getRecord } from '../../helpers/utils.js';
2
+ import { getVmType, isVmWrapper } from '../../helpers/types/index.js';
3
+ import type { VmAny, VmArray, VmRecord, VmValue } from '../types/index.js';
4
4
 
5
5
  /**
6
6
  * 确定操作的重载
@@ -12,6 +12,38 @@ export const overloadNumberString = (a: VmAny, b: VmAny): boolean => {
12
12
  return true;
13
13
  };
14
14
 
15
+ const isArraySame = (a: VmArray, b: VmArray): boolean => {
16
+ const len = a.length;
17
+ if (len !== b.length) return false;
18
+
19
+ for (let i = 0; i < len; i++) {
20
+ if (!isSame(a[i] ?? null, b[i] ?? null)) {
21
+ return false;
22
+ }
23
+ }
24
+ return true;
25
+ };
26
+
27
+ const isRecordSame = (a: VmRecord, b: VmRecord): boolean => {
28
+ const aKeys = keys(a);
29
+ const bKeys = keys(b);
30
+
31
+ const len = aKeys.length;
32
+ if (len !== bKeys.length) return false;
33
+ if (len === 0) return true;
34
+
35
+ for (let i = 0; i < len; i++) {
36
+ const key = aKeys[i]!;
37
+ const av = a[key] ?? null;
38
+ const bv = getRecord(b, key);
39
+ // Key not found in b
40
+ if (bv === undefined) return false;
41
+ // Key found in b, but values are not the same
42
+ if (!isSame(av, bv)) return false;
43
+ }
44
+ return true;
45
+ };
46
+
15
47
  /**
16
48
  * 检查两个 VmValue 是否相同
17
49
  */
@@ -24,43 +56,19 @@ export const isSame = (a: VmValue, b: VmValue): boolean => {
24
56
  if (a === b) return true;
25
57
  // Any primitives and functions arrive here are not equal
26
58
  if (a == null || typeof a != 'object' || b == null || typeof b != 'object') return false;
27
- // Handle wrapper values
28
- if (isVmWrapper(a)) return a.same(b);
29
- if (isVmWrapper(b)) return b.same(a);
59
+ const aType = getVmType(a);
60
+ const bType = getVmType(b);
61
+ if (aType !== bType) return false;
30
62
  // Handle array values
31
- if (isVmArray(a) && isVmArray(b)) {
32
- const len = a.length;
33
- if (len !== b.length) {
34
- return false;
35
- }
36
- // Compare array items
37
- for (let i = 0; i < len; i++) {
38
- if (!isSame(a[i] ?? null, b[i] ?? null)) {
39
- return false;
40
- }
41
- }
42
- return true;
63
+ if (aType === 'array') {
64
+ return isArraySame(a as VmArray, b as VmArray);
43
65
  }
44
66
  // Handle record values
45
- if (!isVmArray(a) && !isVmArray(b)) {
46
- // Compare record fields
47
- const aKeys = keys(a);
48
- const bKeys = keys(b);
49
-
50
- const len = aKeys.length;
51
- if (len !== bKeys.length) return false;
52
-
53
- if (len === 0) return true;
54
-
55
- let i = len;
56
- while (i--) {
57
- const key = aKeys[i]!;
58
- if (!hasOwnEnumerable(b, key)) return false;
59
- const av = a[key] ?? null;
60
- const bv = b[key] ?? null;
61
- if (!isSame(av, bv)) return false;
62
- }
63
- return true;
67
+ if (aType === 'record') {
68
+ return isRecordSame(a as VmRecord, b as VmRecord);
64
69
  }
70
+ // Handle wrapper values
71
+ if (isVmWrapper(a)) return a.same(b);
72
+ if (isVmWrapper(b)) return b.same(a);
65
73
  return false;
66
74
  };
@@ -1,10 +1,10 @@
1
1
  import { defineProperty, apply } from '../../helpers/utils.js';
2
- import { isVmExtern, isVmFunction, isVmWrapper } from '../../helpers/types.js';
2
+ import { isVmExtern, isVmFunction, isVmWrapper } from '../../helpers/types/index.js';
3
3
  import { kVmFunctionProxy } from '../../helpers/constants.js';
4
4
  import { $Call } from '../operations/call.js';
5
5
  import type { VmAny, VmConst, VmModule, VmPrimitive, VmValue } from './index.js';
6
6
  import type { VmFunctionLike, VmFunction } from './function.js';
7
- import { VmExtern } from './extern.js';
7
+ import { VmExtern } from './extern/index.js';
8
8
 
9
9
  /** 创建 Mirascript 函数在宿主语言运行的代理 */
10
10
  export function toVmFunctionProxy<T extends VmFunctionLike>(fn: VmFunction<T>): T {
@@ -0,0 +1,24 @@
1
+ import { hasOwn } from '../../../helpers/utils.js';
2
+
3
+ const pFunction = Function.prototype;
4
+ const pArray = Array.prototype;
5
+ const pObject = Object.prototype;
6
+ /**
7
+ * Can property be accessed on the extern object?
8
+ */
9
+ export function canAccessProperty(value: object, key: string, read: boolean): boolean {
10
+ // __proto__ and other “private” properties are not accessible
11
+ if (key.startsWith('_')) return false;
12
+ // Function-specific properties are not accessible
13
+ if (typeof value == 'function' && (key === 'prototype' || key === 'arguments' || key === 'caller')) return false;
14
+ if (hasOwn(value, key)) return true;
15
+ if (!read) return true;
16
+ if (!(key in value)) return false;
17
+ if (key === 'constructor') return false; // constructor is not accessible
18
+ // property is not readable if it is the same as the prototype's property
19
+ const prop = (value as Record<string, unknown>)[key];
20
+ if (key in pFunction && prop === pFunction[key as keyof (() => void)]) return false;
21
+ if (key in pArray && prop === pArray[key as keyof unknown[]]) return false;
22
+ if (key in pObject && prop === pObject[key as keyof object]) return false;
23
+ return true;
24
+ }
@@ -0,0 +1,124 @@
1
+ import { VmError } from '../../../helpers/error.js';
2
+ import { apply } from '../../../helpers/utils.js';
3
+ import { innerToString } from '../../../helpers/convert/string.js';
4
+ import { isVmExtern } from '../../../helpers/types/index.js';
5
+ import { kVmExtern } from '../../../helpers/constants.js';
6
+ import type { VmTypeName, VmAny, VmConst, VmPrimitive, VmValue } from '../index.js';
7
+ import { VmWrapper } from '../wrapper.js';
8
+ import { unwrapFromVmValue, wrapToVmValue } from '../boundary.js';
9
+ import { getTag } from './tag.js';
10
+ import { getKeys, isArrayLike, hasCustomToString } from './utils.js';
11
+ import { canAccessProperty } from './access.js';
12
+
13
+ const ArrayMap = Array.prototype.map;
14
+
15
+ /** 包装 Mirascript `extern` 类型的对象 */
16
+ export class VmExtern<const T extends object = object> extends VmWrapper<T> {
17
+ constructor(
18
+ /** 包装值 */
19
+ value: T,
20
+ /** 当 {@link value} 是函数时,绑定的 this 参数 */
21
+ readonly thisArg: ThisParameterType<T> | null = null,
22
+ ) {
23
+ super(value);
24
+ }
25
+
26
+ /**
27
+ * Check if the object has a property
28
+ * This method will be used in {@link get}, {@link set}, {@link has}, and {@link keys} methods
29
+ */
30
+ protected access(key: string, read: boolean): boolean {
31
+ return canAccessProperty(this.value, key, read);
32
+ }
33
+
34
+ /** 决定是否对属性进行包装 */
35
+ assumeVmValue(value: object, key: keyof T | undefined): value is Exclude<VmConst, VmPrimitive> {
36
+ return false;
37
+ }
38
+
39
+ /** @inheritdoc */
40
+ override has(key: string): boolean {
41
+ return this.access(key, true);
42
+ }
43
+ /** @inheritdoc */
44
+ override get(key: string): VmAny {
45
+ if (!(key in this.value)) return undefined;
46
+ if (!this.access(key, true)) return undefined;
47
+ const prop = (this.value as Record<string, unknown>)[key];
48
+ return wrapToVmValue(prop, this.value, (v) => this.assumeVmValue(v, key as keyof T));
49
+ }
50
+ /** Set a property on the object */
51
+ set(key: string, value: VmValue): boolean {
52
+ if (!this.access(key, false)) return false;
53
+ const prop = unwrapFromVmValue(value, true);
54
+ (this.value as Record<string, unknown>)[key] = prop;
55
+ return true;
56
+ }
57
+ /** Call extern value */
58
+ call(args: readonly VmValue[]): VmAny {
59
+ const { value } = this;
60
+ if (typeof value != 'function') {
61
+ throw VmError.from(`Not a callable extern`, null, null);
62
+ }
63
+ const caller = this.thisArg;
64
+ const unwrappedArgs = args.map((arg) => unwrapFromVmValue(arg, true));
65
+ let ret: unknown;
66
+ try {
67
+ ret = apply(value, caller, unwrappedArgs);
68
+ } catch (ex) {
69
+ throw VmError.from(`Callable extern`, ex, null);
70
+ }
71
+ return wrapToVmValue(ret, null, (obj) => this.assumeVmValue(obj, undefined));
72
+ }
73
+ /** @inheritdoc */
74
+ override keys(includeNonEnumerable = false): string[] {
75
+ const keys = getKeys(this.value, includeNonEnumerable);
76
+ return keys.filter((key) => this.access(key, true));
77
+ }
78
+ /** @inheritdoc */
79
+ override same(other: VmAny): boolean {
80
+ if (!isVmExtern(other)) return false;
81
+ return this.value === other.value && this.thisArg === other.thisArg;
82
+ }
83
+ /**
84
+ * Should this extern be treated as array-like?
85
+ *
86
+ * By default, this method returns true if the wrapped value is an Array or a TypedArray.
87
+ */
88
+ isArrayLike(): this is VmExtern<ArrayLike<unknown>> {
89
+ return isArrayLike(this.value);
90
+ }
91
+ /** @inheritdoc */
92
+ override toString(useBraces: boolean): string {
93
+ if (hasCustomToString(this.value)) {
94
+ // Use the wrapped object's toString method
95
+ return String(this.value);
96
+ }
97
+ if (this.isArrayLike()) {
98
+ // Handle array-like externs specially when using default toString
99
+ const mapped = ArrayMap.call(this.value, (item: unknown) => {
100
+ if (item === undefined) return '';
101
+ return innerToString(wrapToVmValue(item ?? null, null, null), true);
102
+ });
103
+ const str = mapped.join(', ');
104
+ if (useBraces) return `[${str}]`;
105
+ return str;
106
+ }
107
+ // When the toString method is not overridden or invalid, provide a better default representation
108
+ return super.toString(useBraces);
109
+ }
110
+ /** @inheritdoc */
111
+ override get type(): VmTypeName {
112
+ return 'extern';
113
+ }
114
+ /** @inheritdoc */
115
+ override get tag(): string {
116
+ const tag = getTag(this.value);
117
+ if (this.isArrayLike()) {
118
+ return `${tag}(${this.value.length})`;
119
+ }
120
+ return tag;
121
+ }
122
+ }
123
+
124
+ Object.defineProperty(VmExtern.prototype, kVmExtern, { value: true });
@@ -0,0 +1,58 @@
1
+ import { getPrototypeOf } from '../../../helpers/utils.js';
2
+
3
+ const ObjectPrototype = Object.prototype;
4
+
5
+ /** get js tag of value */
6
+ function getJsObjectTag(value: object): string {
7
+ return ObjectPrototype.toString.call(value).slice(8, -1);
8
+ }
9
+
10
+ /** 获取类的名称,如果无法确定则返回 null */
11
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-function-type
12
+ function classNameOf(kls: Function): string | null {
13
+ const { displayName } = kls as typeof kls & { displayName?: string };
14
+ if (typeof displayName === 'string' && displayName.trim()) {
15
+ return displayName.trim();
16
+ }
17
+ const { name } = kls;
18
+ if (typeof name == 'string' && name.length > 2) {
19
+ // Looks like a non-minified name
20
+ return name;
21
+ }
22
+ return null;
23
+ }
24
+
25
+ /** Get the tag of the extern object */
26
+ export function getTag(value: object): string {
27
+ const tag = getJsObjectTag(value);
28
+ if (tag === 'Function') {
29
+ if ('prototype' in value && typeof value.prototype == 'object') {
30
+ const className = classNameOf(value as unknown as new () => unknown);
31
+ if (!className) return `class`;
32
+ return `class ${className}`;
33
+ }
34
+ return `function`;
35
+ }
36
+ if (tag === 'AsyncFunction') {
37
+ return `async function`;
38
+ }
39
+ if (tag === 'GeneratorFunction') {
40
+ return `function*`;
41
+ }
42
+ if (tag === 'AsyncGeneratorFunction') {
43
+ return `async function*`;
44
+ }
45
+ if (tag === 'Object') {
46
+ const proto = getPrototypeOf(value);
47
+ if (proto === ObjectPrototype) {
48
+ return 'Object';
49
+ }
50
+ if (proto == null) {
51
+ return 'Object: null prototype';
52
+ }
53
+ if (typeof proto.constructor === 'function') {
54
+ return classNameOf(proto.constructor) ?? 'Object';
55
+ }
56
+ }
57
+ return tag;
58
+ }
@@ -0,0 +1,55 @@
1
+ import { getOwnPropertyNames, getPrototypeOf, isArray } from '../../../helpers/utils.js';
2
+
3
+ /**
4
+ * Should this extern be treated as array-like?
5
+ *
6
+ * By default, this method returns true if the wrapped value is an Array or a TypedArray.
7
+ */
8
+ export function isArrayLike(value: object): value is ArrayLike<unknown> {
9
+ return isArray(value) || (ArrayBuffer.isView(value) && 'length' in value);
10
+ }
11
+
12
+ /**
13
+ * Get extern object keys, including inherited ones.
14
+ */
15
+ export function getKeys(value: object, includeNonEnumerable: boolean): string[] {
16
+ if (!includeNonEnumerable) {
17
+ const keys: string[] = [];
18
+ for (const key in value) {
19
+ keys.push(key);
20
+ }
21
+ return keys;
22
+ }
23
+ const keys = new Set<string>();
24
+ let e: unknown = value;
25
+ while (e != null && (typeof e == 'object' || typeof e == 'function')) {
26
+ for (const key of getOwnPropertyNames(e)) {
27
+ keys.add(key);
28
+ }
29
+ e = getPrototypeOf(e);
30
+ }
31
+ return Array.from(keys);
32
+ }
33
+
34
+ // eslint-disable-next-line @typescript-eslint/unbound-method
35
+ const ObjectToString = Object.prototype.toString;
36
+ // eslint-disable-next-line @typescript-eslint/unbound-method
37
+ const FunctionToString = Function.prototype.toString;
38
+ const ArrayToString = Array.prototype.toString;
39
+ // eslint-disable-next-line @typescript-eslint/unbound-method
40
+ const TypedArrayToString = Uint8Array.prototype.toString;
41
+
42
+ /** Check toString method of the extern object */
43
+ export function hasCustomToString(value: object): boolean {
44
+ // eslint-disable-next-line @typescript-eslint/unbound-method
45
+ const { toString } = value;
46
+ if (typeof toString != 'function') return false;
47
+ if (
48
+ toString === ObjectToString ||
49
+ toString === FunctionToString ||
50
+ toString === ArrayToString ||
51
+ toString === TypedArrayToString
52
+ )
53
+ return false;
54
+ return true;
55
+ }
@@ -2,7 +2,7 @@ import type { Writable } from 'type-fest';
2
2
  import type { DiagnosticCode } from '@mirascript/constants';
3
3
  import { defineProperty, freeze } from '../../helpers/utils.js';
4
4
  import { kVmFunction, VM_FUNCTION_ANONYMOUS_NAME } from '../../helpers/constants.js';
5
- import { isVmFunction } from '../../helpers/types.js';
5
+ import { isVmFunction } from '../../helpers/types/index.js';
6
6
  import type { VmAny, VmValue } from './index.js';
7
7
  import { fromVmFunctionProxy } from './boundary.js';
8
8
  import type { VmLib } from '../lib/helpers.js';
@@ -1,4 +1,4 @@
1
- import type { VmExtern } from './extern.js';
1
+ import type { VmExtern } from './extern/index.js';
2
2
  import type { VmFunction } from './function.js';
3
3
  import type { VmModule } from './module.js';
4
4
 
@@ -73,11 +73,11 @@ export {
73
73
  isVmWrapper,
74
74
  getVmFunctionInfo,
75
75
  getVmType,
76
- } from '../../helpers/types.js';
76
+ } from '../../helpers/types/index.js';
77
77
 
78
78
  export { wrapToVmValue, unwrapFromVmValue } from './boundary.js';
79
79
 
80
80
  export { type VmContext, type VmContextRecord, defineVmContextValue, createVmContext } from './context.js';
81
- export { VmExtern } from './extern.js';
81
+ export { VmExtern } from './extern/index.js';
82
82
  export { VmFunction, type VmFunctionInfo, type VmFunctionLike, type VmFunctionOption } from './function.js';
83
83
  export { VmModule } from './module.js';
@@ -1,6 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../src/helpers/constants.ts", "../src/helpers/utils.ts", "../src/helpers/types.ts", "../src/helpers/serialize.ts", "../src/helpers/error.ts", "../src/compiler/generate-bytecode.ts", "../src/compiler/emit/index.ts", "../src/helpers/convert/to-string.ts", "../src/compiler/emit/consts.ts", "../src/compiler/emit/sourcemap.ts", "../src/compiler/emit/constants.ts", "../src/compiler/diagnostic.ts"],
4
- "mappings": "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",
5
- "names": ["entries", "keys", "value", "entries", "a", "b", "c", "e", "g", "i", "k", "m", "i"]
6
- }