@poe-platform/safe-js 0.1.325 → 0.1.327

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"])
14886
+ for (const key of ["set", "slice", "subarray", "fill", "copyWithin", "reverse", "at"])
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,35 @@ 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"].includes(key)) return void 0;
14968
+ if (!["set", "slice", "subarray", "fill", "copyWithin", "reverse", "at"].includes(key)) return void 0;
14969
14969
  return createSandboxClosure({
14970
14970
  guest: true,
14971
14971
  sandbox: true,
14972
14972
  name: key,
14973
- length: key === "set" || key === "fill" ? 1 : 2,
14973
+ length: key === "reverse" ? 0 : key === "set" || key === "fill" || key === "at" ? 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");
14978
+ const storage2 = float32Storage(receiver, key === "slice" || key === "fill" || key === "copyWithin" || key === "reverse" || key === "at");
14979
+ if (key === "reverse") {
14980
+ const release = retainValues(budget, () => [receiver, ...args]);
14981
+ try {
14982
+ const bytes = new Uint8Array(storage2.buffer, storage2.byteOffset, storage2.length * 4);
14983
+ for (let lower = 0; lower < Math.floor(storage2.length / 2); lower++) {
14984
+ const upper = storage2.length - lower - 1;
14985
+ for (let offset = 0; offset < 4; offset++) {
14986
+ budget.visitNode();
14987
+ const saved = bytes[lower * 4 + offset];
14988
+ bytes[lower * 4 + offset] = bytes[upper * 4 + offset];
14989
+ bytes[upper * 4 + offset] = saved;
14990
+ }
14991
+ }
14992
+ return receiver;
14993
+ } finally {
14994
+ release();
14995
+ }
14996
+ }
14979
14997
  const bridge = {
14980
14998
  ...context,
14981
14999
  stack: context?.stack ?? [],
@@ -14986,6 +15004,19 @@ function getFloat32Member(value, property, budget, defaultConstructor) {
14986
15004
  }),
14987
15005
  invokeClosure: context?.invokeClosure ?? ((callee, values, thisValue, construct) => invokeBuiltinClosure(callee, values, budget, context, thisValue, construct))
14988
15006
  };
15007
+ if (key === "at") {
15008
+ return (async () => {
15009
+ const release = retainValues(budget, () => [receiver, ...args]);
15010
+ try {
15011
+ const number = await sandboxNumber(args[0], budget, bridge);
15012
+ const relative = Number.isNaN(number) ? 0 : Math.trunc(number);
15013
+ const index = relative < 0 ? storage2.length + relative : relative;
15014
+ return index < 0 || index >= storage2.length ? void 0 : receiver[index];
15015
+ } finally {
15016
+ release();
15017
+ }
15018
+ })();
15019
+ }
14989
15020
  if (key === "copyWithin") {
14990
15021
  return (async () => {
14991
15022
  const release = retainValues(budget, () => [receiver, ...args]);
@@ -42394,4 +42425,4 @@ export {
42394
42425
  FileSnapshotBackend,
42395
42426
  run
42396
42427
  };
42397
- //# sourceMappingURL=chunk-6YOMKQ6K.js.map
42428
+ //# sourceMappingURL=chunk-5PY5K56B.js.map