@poe-platform/safe-js 0.1.331 → 0.1.333

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.
@@ -14883,7 +14883,7 @@ function createFloat32ArrayPrototypes(budget, constructor) {
14883
14883
  getters.push(getter);
14884
14884
  Object.defineProperty(shared, key, { get: accessorAdapter(getter, "get"), configurable: true });
14885
14885
  }
14886
- for (const key of ["set", "slice", "subarray", "fill", "copyWithin", "reverse", "at", "includes", "indexOf"])
14886
+ for (const key of ["set", "slice", "subarray", "fill", "copyWithin", "reverse", "at", "includes", "indexOf", "lastIndexOf", "forEach"])
14887
14887
  Object.defineProperty(shared, key, { value: getFloat32Member(new Float32Array(0), key, budget, constructor), writable: true, configurable: true });
14888
14888
  const arrayPrototype = resolveIntrinsicIdentity(budget, '["Array","prototype"]');
14889
14889
  Object.defineProperty(shared, "toString", { value: getSandboxDataProperty(arrayPrototype, "toString", budget), writable: true, configurable: true });
@@ -14965,17 +14965,17 @@ function getFloat32Member(value, property, budget, defaultConstructor) {
14965
14965
  if (key === "byteLength") return storage.length * 4;
14966
14966
  if (key === "byteOffset") return storage.byteOffset;
14967
14967
  if (key === "BYTES_PER_ELEMENT") return 4;
14968
- if (!["set", "slice", "subarray", "fill", "copyWithin", "reverse", "at", "includes", "indexOf"].includes(key)) return void 0;
14968
+ if (!["set", "slice", "subarray", "fill", "copyWithin", "reverse", "at", "includes", "indexOf", "lastIndexOf", "forEach"].includes(key)) return void 0;
14969
14969
  return createSandboxClosure({
14970
14970
  guest: true,
14971
14971
  sandbox: true,
14972
14972
  name: key,
14973
- length: key === "reverse" ? 0 : key === "set" || key === "fill" || key === "at" || key === "includes" || key === "indexOf" ? 1 : 2,
14973
+ length: key === "reverse" ? 0 : key === "set" || key === "fill" || key === "at" || key === "includes" || key === "indexOf" || key === "lastIndexOf" || key === "forEach" ? 1 : 2,
14974
14974
  call: (args, context) => {
14975
14975
  const receiver = context?.thisValue;
14976
14976
  if (!isFloat32Array(receiver))
14977
14977
  throw new TypeError(`Float32Array#${key} requires a Float32Array receiver.`);
14978
- const storage2 = float32Storage(receiver, key === "slice" || key === "fill" || key === "copyWithin" || key === "reverse" || key === "at" || key === "includes" || key === "indexOf");
14978
+ const storage2 = float32Storage(receiver, key === "slice" || key === "fill" || key === "copyWithin" || key === "reverse" || key === "at" || key === "includes" || key === "indexOf" || key === "lastIndexOf" || key === "forEach");
14979
14979
  if (key === "reverse") {
14980
14980
  const release = retainValues(budget, () => [receiver, ...args]);
14981
14981
  try {
@@ -15004,16 +15004,38 @@ function getFloat32Member(value, property, budget, defaultConstructor) {
15004
15004
  }),
15005
15005
  invokeClosure: context?.invokeClosure ?? ((callee, values, thisValue, construct) => invokeBuiltinClosure(callee, values, budget, context, thisValue, construct))
15006
15006
  };
15007
- if (key === "includes" || key === "indexOf") {
15007
+ if (key === "forEach") {
15008
+ const callback = args[0];
15009
+ if (!isSandboxClosure(callback)) throw new TypeError("Float32Array#forEach callback must be callable.");
15010
+ return (async () => {
15011
+ const release = retainValues(budget, () => [receiver, ...args]);
15012
+ try {
15013
+ for (let index = 0; index < storage2.length; index++) {
15014
+ budget.visitNode();
15015
+ await invokeBuiltinClosure(callback, [receiver[index], index, receiver], budget, bridge, args[1]);
15016
+ }
15017
+ return void 0;
15018
+ } finally {
15019
+ release();
15020
+ }
15021
+ })();
15022
+ }
15023
+ if (key === "includes" || key === "indexOf" || key === "lastIndexOf") {
15008
15024
  const notFound = key === "includes" ? false : -1;
15009
15025
  if (storage2.length === 0) return notFound;
15010
15026
  return (async () => {
15011
15027
  const release = retainValues(budget, () => [receiver, ...args]);
15012
15028
  try {
15013
- const start = relativeIndex(await sandboxNumber(args[1], budget, bridge), storage2.length);
15014
- for (let index = start; index < storage2.length; index++) {
15029
+ const backwards = key === "lastIndexOf";
15030
+ const numeric = backwards && args.length < 2 ? storage2.length - 1 : await sandboxNumber(args[1], budget, bridge);
15031
+ let start = relativeIndex(numeric, storage2.length);
15032
+ if (backwards) {
15033
+ const integer2 = Number.isNaN(numeric) ? 0 : Math.trunc(numeric);
15034
+ start = integer2 < 0 ? storage2.length + integer2 : Math.min(integer2, storage2.length - 1);
15035
+ }
15036
+ for (let index = start; backwards ? index >= 0 : index < storage2.length; index += backwards ? -1 : 1) {
15015
15037
  budget.visitNode();
15016
- if (key === "indexOf" && !(index in receiver)) continue;
15038
+ if (key !== "includes" && !(index in receiver)) continue;
15017
15039
  const element = receiver[index];
15018
15040
  if (element === args[0] || key === "includes" && Number.isNaN(element) && Number.isNaN(args[0]))
15019
15041
  return key === "includes" ? true : index + 0;
@@ -42447,4 +42469,4 @@ export {
42447
42469
  FileSnapshotBackend,
42448
42470
  run
42449
42471
  };
42450
- //# sourceMappingURL=chunk-BYCBPBQJ.js.map
42472
+ //# sourceMappingURL=chunk-34ODNOZT.js.map