porffor 0.58.3 → 0.58.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/bun.lock CHANGED
@@ -11,6 +11,7 @@
11
11
  "@babel/parser": "^7.24.4",
12
12
  "hermes-parser": "^0.18.2",
13
13
  "meriyah": "^4.3.9",
14
+ "oxc-parser": "^0.72.2",
14
15
  },
15
16
  },
16
17
  },
@@ -23,6 +24,46 @@
23
24
 
24
25
  "@babel/types": ["@babel/types@7.26.9", "", { "dependencies": { "@babel/helper-string-parser": "^7.25.9", "@babel/helper-validator-identifier": "^7.25.9" } }, "sha512-Y3IR1cRnOxOCDvMmNiym7XpXQ93iGDDPHx+Zj+NM+rg0fBaShfQLkg+hKPaZCEvg5N/LeCo4+Rj/i3FuJsIQaw=="],
25
26
 
27
+ "@emnapi/core": ["@emnapi/core@1.4.3", "", { "dependencies": { "@emnapi/wasi-threads": "1.0.2", "tslib": "^2.4.0" } }, "sha512-4m62DuCE07lw01soJwPiBGC0nAww0Q+RY70VZ+n49yDIO13yyinhbWCeNnaob0lakDtWQzSdtNWzJeOJt2ma+g=="],
28
+
29
+ "@emnapi/runtime": ["@emnapi/runtime@1.4.3", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-pBPWdu6MLKROBX05wSNKcNb++m5Er+KQ9QkB+WVM+pW2Kx9hoSrVTnu3BdkI5eBLZoKu/J6mW/B6i6bJB2ytXQ=="],
30
+
31
+ "@emnapi/wasi-threads": ["@emnapi/wasi-threads@1.0.2", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-5n3nTJblwRi8LlXkJ9eBzu+kZR8Yxcc7ubakyQTFzPMtIhFpUBRbsnc2Dv88IZDIbCDlBiWrknhB4Lsz7mg6BA=="],
32
+
33
+ "@napi-rs/wasm-runtime": ["@napi-rs/wasm-runtime@0.2.10", "", { "dependencies": { "@emnapi/core": "^1.4.3", "@emnapi/runtime": "^1.4.3", "@tybys/wasm-util": "^0.9.0" } }, "sha512-bCsCyeZEwVErsGmyPNSzwfwFn4OdxBj0mmv6hOFucB/k81Ojdu68RbZdxYsRQUPc9l6SU5F/cG+bXgWs3oUgsQ=="],
34
+
35
+ "@oxc-parser/binding-darwin-arm64": ["@oxc-parser/binding-darwin-arm64@0.72.2", "", { "os": "darwin", "cpu": "arm64" }, "sha512-+h1ukuH8AqxNq1hEyXG0gBNmPWl99qwtZ6rdZ5odXq3lHsimH2MgMETyccmSjBALVU/VKeoe/1wHL7kJj5MVqA=="],
36
+
37
+ "@oxc-parser/binding-darwin-x64": ["@oxc-parser/binding-darwin-x64@0.72.2", "", { "os": "darwin", "cpu": "x64" }, "sha512-v2c/L0kCuF75AAJTLBbnZ6kSfzCHR23JKqhnksf/ccB7IvssIZCxWyT28IJTkG1vGXCenRz9+kAmUbGHIUqV4A=="],
38
+
39
+ "@oxc-parser/binding-freebsd-x64": ["@oxc-parser/binding-freebsd-x64@0.72.2", "", { "os": "freebsd", "cpu": "x64" }, "sha512-BeZH+f4HqLgdkC7dj7VPhoL5HpeBXQLwxgnm6McbnBJnvDRNl8bc7El1mFBRYe/w6OPcand5P3kNc9oMAfasfw=="],
40
+
41
+ "@oxc-parser/binding-linux-arm-gnueabihf": ["@oxc-parser/binding-linux-arm-gnueabihf@0.72.2", "", { "os": "linux", "cpu": "arm" }, "sha512-mIu9B856olNcAdG/xdUALW5VhNoCqe3nhdsPmXNZAUQtQ/YyW3X+1zb2v74RhehsNNe7sT0eN2iOMetM+IYF+Q=="],
42
+
43
+ "@oxc-parser/binding-linux-arm-musleabihf": ["@oxc-parser/binding-linux-arm-musleabihf@0.72.2", "", { "os": "linux", "cpu": "arm" }, "sha512-RR74LnLVtoQ2+dErNqrczLofs9I6YG9lIt4Co/6pNcd8pCIMEHXaVtY7Gz9NSko84Que/6ESPccvolhqACXnHQ=="],
44
+
45
+ "@oxc-parser/binding-linux-arm64-gnu": ["@oxc-parser/binding-linux-arm64-gnu@0.72.2", "", { "os": "linux", "cpu": "arm64" }, "sha512-q+86LrcddEkRgA7ces/cmge/FyuoGpa0M2D6Xh6c60orALus39J6j0LRD0pbfh6c8YVmD4XFoOahiOD2kep4+w=="],
46
+
47
+ "@oxc-parser/binding-linux-arm64-musl": ["@oxc-parser/binding-linux-arm64-musl@0.72.2", "", { "os": "linux", "cpu": "arm64" }, "sha512-mjwp4B3Yqj6Fo1KIRDRQyWkkJ7ydijReo0UQ6wdDdvQt9v3Sjw4VMlkYAc+hAEo7EX6muPwy2WtjMOtzedlzvA=="],
48
+
49
+ "@oxc-parser/binding-linux-riscv64-gnu": ["@oxc-parser/binding-linux-riscv64-gnu@0.72.2", "", { "os": "linux", "cpu": "none" }, "sha512-xjbjHPIjHzew583ly/2uIR8u4YSX2fWuhJitkvqzKGBd403/wV9fOGKbgbgeFZxcqIqQlZI6WcxTU+fcmMQ5HQ=="],
50
+
51
+ "@oxc-parser/binding-linux-s390x-gnu": ["@oxc-parser/binding-linux-s390x-gnu@0.72.2", "", { "os": "linux", "cpu": "s390x" }, "sha512-ohZ70sS4koTbQ+LqMDWK2SOMFmhPzv9DNgC82X/PqjuvzAIDPn13Rt+rUmpMwew/Xtbpe/vPHsEdkxNqsq2XMg=="],
52
+
53
+ "@oxc-parser/binding-linux-x64-gnu": ["@oxc-parser/binding-linux-x64-gnu@0.72.2", "", { "os": "linux", "cpu": "x64" }, "sha512-9lYwvYstsnRHivGpH2k8qZQPf0E/FhMr1YuZPxLqyUYzGmdiEpcU7wQbgU6dNIepLLdu/VLmYqmYYaBh86GzWQ=="],
54
+
55
+ "@oxc-parser/binding-linux-x64-musl": ["@oxc-parser/binding-linux-x64-musl@0.72.2", "", { "os": "linux", "cpu": "x64" }, "sha512-4KYID/lCsXR/8m8lgynZzXQIL5zidi5J9cW1nkje2deAf+YmmG6kKm1Vhvq8DaXOkdfGmtDbYd9luYplxncWBg=="],
56
+
57
+ "@oxc-parser/binding-wasm32-wasi": ["@oxc-parser/binding-wasm32-wasi@0.72.2", "", { "dependencies": { "@napi-rs/wasm-runtime": "^0.2.10" }, "cpu": "none" }, "sha512-ng+OJ+4MOsdJVt2a7VpcornkYFLu9Faos77UXogJg+HM5NnH1L+8rraGvxzJWf8OhYkwlQCIvLuqkncfPap4RA=="],
58
+
59
+ "@oxc-parser/binding-win32-arm64-msvc": ["@oxc-parser/binding-win32-arm64-msvc@0.72.2", "", { "os": "win32", "cpu": "arm64" }, "sha512-0FSLOzfB7mg1+csZjbo3i5tjLIKGu86vB5ldui5o3QNoxWg+TdRhH0cbxfXZANo3eHTLu5GPtrqaZ0pgB4Pvgw=="],
60
+
61
+ "@oxc-parser/binding-win32-x64-msvc": ["@oxc-parser/binding-win32-x64-msvc@0.72.2", "", { "os": "win32", "cpu": "x64" }, "sha512-mmO/7xfszYE0Q6zAwqOooQrq/0f4ZjtYOoOqvoNCBZ6YqdlwiMSWD3M0ylVfeungyKog2wfJbruabKKt5QbVNw=="],
62
+
63
+ "@oxc-project/types": ["@oxc-project/types@0.72.2", "", {}, "sha512-il5RF8AP85XC0CMjHF4cnVT9nT/v/ocm6qlZQpSiAR9qBbQMGkFKloBZwm7PcnOdiUX97yHgsKM7uDCCWCu3tg=="],
64
+
65
+ "@tybys/wasm-util": ["@tybys/wasm-util@0.9.0", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-6+7nlbMVX/PVDCwaIQ8nTOPveOcFLSt8GcXdx8hD0bt39uWxYT88uXzqTd4fTvqta7oeUJqudepapKNt2DYJFw=="],
66
+
26
67
  "acorn": ["acorn@8.14.1", "", { "bin": { "acorn": "bin/acorn" } }, "sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg=="],
27
68
 
28
69
  "hermes-estree": ["hermes-estree@0.18.2", "", {}, "sha512-KoLsoWXJ5o81nit1wSyEZnWUGy9cBna9iYMZBR7skKh7okYAYKqQ9/OczwpMHn/cH0hKDyblulGsJ7FknlfVxQ=="],
@@ -32,5 +73,9 @@
32
73
  "meriyah": ["meriyah@4.5.0", "", {}, "sha512-Rbiu0QPIxTXgOXwiIpRVJfZRQ2FWyfzYrOGBs9SN5RbaXg1CN5ELn/plodwWwluX93yzc4qO/bNIen1ThGFCxw=="],
33
74
 
34
75
  "node-repl-polyfill": ["node-repl-polyfill@github:CanadaHonk/node-repl-polyfill#8d8a080", {}, "CanadaHonk-node-repl-polyfill-8d8a080"],
76
+
77
+ "oxc-parser": ["oxc-parser@0.72.2", "", { "dependencies": { "@oxc-project/types": "^0.72.2" }, "optionalDependencies": { "@oxc-parser/binding-darwin-arm64": "0.72.2", "@oxc-parser/binding-darwin-x64": "0.72.2", "@oxc-parser/binding-freebsd-x64": "0.72.2", "@oxc-parser/binding-linux-arm-gnueabihf": "0.72.2", "@oxc-parser/binding-linux-arm-musleabihf": "0.72.2", "@oxc-parser/binding-linux-arm64-gnu": "0.72.2", "@oxc-parser/binding-linux-arm64-musl": "0.72.2", "@oxc-parser/binding-linux-riscv64-gnu": "0.72.2", "@oxc-parser/binding-linux-s390x-gnu": "0.72.2", "@oxc-parser/binding-linux-x64-gnu": "0.72.2", "@oxc-parser/binding-linux-x64-musl": "0.72.2", "@oxc-parser/binding-wasm32-wasi": "0.72.2", "@oxc-parser/binding-win32-arm64-msvc": "0.72.2", "@oxc-parser/binding-win32-x64-msvc": "0.72.2" } }, "sha512-uoiphvClzsbf5NKgV1urQ7GfxIO+3YopmBWK465AiAURp0K/77udIWeZWdLCspxW+2CR5PhUpd1XocjANliKYw=="],
78
+
79
+ "tslib": ["tslib@2.8.1", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="],
35
80
  }
36
81
  }
@@ -425,7 +425,7 @@ export default (funcs, globals, tags, pages, data, noTreeshake = false) => {
425
425
 
426
426
  // encode call indirect ops as types from info
427
427
  if (op === Opcodes.call_indirect) {
428
- const params = [];
428
+ const params = [ Valtype.i32 ];
429
429
  for (let i = 0; i < o[1]; i++) {
430
430
  params.push(valtypeBinary, Valtype.i32);
431
431
  }
@@ -152,10 +152,7 @@ i32.const 7 ;; object
152
152
  return`;
153
153
  }
154
154
 
155
- if (Porffor.fastAnd(
156
- Porffor.type(_obj) > 0x05,
157
- Porffor.type(_obj) != Porffor.TYPES.undefined
158
- )) {
155
+ if (Porffor.type(_obj) > 0x05) {
159
156
  if (underlyingStore == 0) underlyingStore = Porffor.allocate();
160
157
 
161
158
  // check if underlying object already exists for obj
@@ -310,7 +307,7 @@ export const __Porffor_object_getPrototype = (obj: any): any => {
310
307
  if (Porffor.wasm`local.get ${obj+1}` != Porffor.TYPES.object) {
311
308
  obj = __Porffor_object_underlying(obj);
312
309
  if (Porffor.wasm`local.get ${obj+1}` != Porffor.TYPES.object) {
313
- // return empty
310
+ // return undefined
314
311
  Porffor.wasm`
315
312
  i32.const 0
316
313
  i32.const 0
@@ -328,7 +325,7 @@ return`;
328
325
 
329
326
  export const __Porffor_object_getPrototypeWithHidden = (obj: any, trueType: i32): any => {
330
327
  const objectProto: any = __Porffor_object_getPrototype(obj);
331
- if (Porffor.type(objectProto) != Porffor.TYPES.empty) return objectProto;
328
+ if (Porffor.type(objectProto) != Porffor.TYPES.undefined) return objectProto;
332
329
 
333
330
  return __Porffor_object_getHiddenPrototype(trueType);
334
331
  };
@@ -464,8 +461,8 @@ local.set ${obj}
464
461
  i32.load8_u 0 3
465
462
  local.set ${obj+1}`;
466
463
 
467
- // if empty, prototype is object.prototype
468
- if (Porffor.type(obj) == Porffor.TYPES.empty) obj = __Object_prototype;
464
+ // if undefined, prototype is object.prototype
465
+ if (Porffor.type(obj) == Porffor.TYPES.undefined) obj = __Object_prototype;
469
466
  } else obj = __Porffor_object_getHiddenPrototype(trueType);
470
467
 
471
468
  // todo/opt: put this behind comptime flag if only __proto__ is used
@@ -540,8 +537,8 @@ local.set ${obj}
540
537
  i32.load8_u 0 3
541
538
  local.set ${obj+1}`;
542
539
 
543
- // if empty, prototype is object.prototype
544
- if (Porffor.type(obj) == Porffor.TYPES.empty) obj = __Object_prototype;
540
+ // if undefined, prototype is object.prototype
541
+ if (Porffor.type(obj) == Porffor.TYPES.undefined) obj = __Object_prototype;
545
542
  } else obj = __Porffor_object_getHiddenPrototype(trueType);
546
543
 
547
544
  if (Porffor.type(obj) != Porffor.TYPES.object) obj = __Porffor_object_underlying(obj);
@@ -69,7 +69,6 @@ export const __Porffor_miniLog = (arg: any) => {
69
69
  }
70
70
  break;
71
71
 
72
- case Porffor.TYPES.empty:
73
72
  case Porffor.TYPES.undefined:
74
73
  Porffor.printStatic('undefined');
75
74
  break;
@@ -136,7 +135,6 @@ export const __Porffor_print = (arg: any, colors: boolean = true, depth: number
136
135
  if (colors) Porffor.printStatic('\x1b[0m');
137
136
  return;
138
137
 
139
- case Porffor.TYPES.empty:
140
138
  case Porffor.TYPES.undefined:
141
139
  if (colors) Porffor.printStatic('\x1b[2m'); // dim
142
140
  Porffor.printStatic('undefined');
@@ -1141,6 +1141,9 @@ export const __Date_prototype_setSeconds = (_this: any, sec: any, ms: any) => {
1141
1141
  export const __Date_prototype_setTime = (_this: any, time: any) => {
1142
1142
  // 1. Let dateObject be the this value.
1143
1143
  // 2. Perform ? RequireInternalSlot(dateObject, [[DateValue]]).
1144
+ // extra check here to check ensure this type before coerce as only function where coerce is done before any true read
1145
+ if (Porffor.type(_this) != Porffor.TYPES.date) throw TypeError('Date prototype methods require this to be a Date object');
1146
+
1144
1147
  // 3. Let t be ? ToNumber(time).
1145
1148
  const t: number = ecma262.ToNumber(time);
1146
1149
 
@@ -1383,7 +1386,7 @@ export const __Date_prototype_setUTCSeconds = (_this: any, sec: any, ms: any) =>
1383
1386
  // 5. If ms is present, let milli be ? ToNumber(ms).
1384
1387
  let milli: number;
1385
1388
  if (Porffor.type(ms) != Porffor.TYPES.undefined) milli = ecma262.ToNumber(ms);
1386
-
1389
+
1387
1390
  // 6. If t is NaN, return NaN.
1388
1391
  if (Number.isNaN(t)) return NaN;
1389
1392
 
@@ -62,7 +62,7 @@ export const __Test262Error_thrower = message => {
62
62
  throw new Test262Error(message);
63
63
  };
64
64
 
65
- export const __Error_isError = (x: unknown): boolean => Porffor.fastOr(${errors.map(x => `Porffor.type(x) == Porffor.TYPES.${x.toLowerCase()}`).join(', ')});`;
65
+ export const __Error_isError = (x: unknown): boolean => Porffor.fastAnd(Porffor.type(x) >= Porffor.TYPES.error, Porffor.type(x) <= Porffor.TYPES.test262error);`;
66
66
 
67
67
  return out;
68
68
  };
@@ -24,7 +24,7 @@ export const __Porffor_object_getHiddenPrototype = (trueType: i32): any => {
24
24
  }`;
25
25
 
26
26
  for (const x in TYPES) {
27
- if (['empty', 'undefined', 'string', 'bytestring', 'stringobject', 'number', 'numberobject', 'boolean', 'booleanobject'].includes(x)) continue;
27
+ if (['undefined', 'string', 'bytestring', 'stringobject', 'number', 'numberobject', 'boolean', 'booleanobject'].includes(x)) continue;
28
28
 
29
29
  const name = TYPE_NAMES[TYPES[x]];
30
30
  out += `
@@ -37,9 +37,7 @@ export const __ecma262_ToNumber = (argument: unknown): number => {
37
37
  Porffor.type(argument) == Porffor.TYPES.bigint)) throw new TypeError('Cannot convert Symbol or BigInt to a number');
38
38
 
39
39
  // 3. If argument is undefined, return NaN.
40
- if (Porffor.fastOr(
41
- Porffor.type(argument) == Porffor.TYPES.undefined,
42
- Porffor.type(argument) == Porffor.TYPES.empty)) return NaN;
40
+ if (Porffor.type(argument) == Porffor.TYPES.undefined) return NaN;
43
41
 
44
42
  // 4. If argument is either null or false, return +0𝔽.
45
43
  if (Porffor.fastOr(
@@ -131,9 +129,7 @@ export const __ecma262_ToString = (argument: unknown): any => {
131
129
  if (Porffor.type(argument) == Porffor.TYPES.symbol) throw new TypeError('Cannot convert a Symbol value to a string');
132
130
 
133
131
  // 3. If argument is undefined, return "undefined".
134
- if (Porffor.fastOr(
135
- Porffor.type(argument) == Porffor.TYPES.undefined,
136
- Porffor.type(argument) == Porffor.TYPES.empty)) return 'undefined';
132
+ if (Porffor.type(argument) == Porffor.TYPES.undefined) return 'undefined';
137
133
 
138
134
  // 4. If argument is null, return "null".
139
135
  if (Porffor.fastAnd(