@poe-platform/safe-js 0.1.447 → 0.1.448

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.
@@ -8525,6 +8525,8 @@ var functionPrototypes = /* @__PURE__ */ new WeakMap();
8525
8525
  var initialArrayMethods = /* @__PURE__ */ new WeakMap();
8526
8526
  var initialRegexDescriptors = /* @__PURE__ */ new WeakMap();
8527
8527
  var intrinsicPrototypeRoots = /* @__PURE__ */ new WeakMap();
8528
+ var intrinsicRetentionTargets = /* @__PURE__ */ new WeakMap();
8529
+ var intrinsicRetentionGroups = /* @__PURE__ */ new WeakMap();
8528
8530
  var intrinsicConstructors = /* @__PURE__ */ new WeakMap();
8529
8531
  var intrinsicFunctions = /* @__PURE__ */ new WeakSet();
8530
8532
  var initialBoxedMethods = /* @__PURE__ */ new WeakMap();
@@ -8701,11 +8703,16 @@ function registerIntrinsicObject(budget, value, trackMethods = true) {
8701
8703
  const methods2 = trackMethods ? Object.values(Object.getOwnPropertyDescriptors(value)).map((descriptor) => descriptor.value).filter(isGuestClosure) : [];
8702
8704
  trackIntrinsicState(budget, value, value, [value, ...methods2]);
8703
8705
  }
8704
- function trackIntrinsicState(budget, root, owner, targets) {
8705
- let roots = intrinsicPrototypeRoots.get(budget);
8706
- if (roots === void 0) intrinsicPrototypeRoots.set(budget, roots = /* @__PURE__ */ new Set());
8707
- roots.add(root);
8708
- const records = [...new Set(targets)].map((target) => {
8706
+ function completeIntrinsicObjectInitialization(budget, value) {
8707
+ for (const records of intrinsicRetentionGroups.get(budget)?.values() ?? []) {
8708
+ const record4 = records.find((record5) => record5.target === value);
8709
+ if (record4 === void 0) continue;
8710
+ Object.assign(record4, captureIntrinsicRecords([value])[0]);
8711
+ return;
8712
+ }
8713
+ }
8714
+ function captureIntrinsicRecords(targets) {
8715
+ return [...new Set(targets)].map((target) => {
8709
8716
  let tracked = trackedPrototypes.get(target);
8710
8717
  if (tracked === void 0) {
8711
8718
  tracked = { current: getSandboxPrototype(target) };
@@ -8726,6 +8733,12 @@ function trackIntrinsicState(budget, root, owner, targets) {
8726
8733
  extensible: Object.isExtensible(record4.value),
8727
8734
  descriptors: new Map(Reflect.ownKeys(record4.value).map((key) => [key, Object.getOwnPropertyDescriptor(record4.value, key)]))
8728
8735
  }));
8736
+ }
8737
+ function trackIntrinsicState(budget, root, owner, targets) {
8738
+ let roots = intrinsicPrototypeRoots.get(budget);
8739
+ if (roots === void 0) intrinsicPrototypeRoots.set(budget, roots = /* @__PURE__ */ new Set());
8740
+ roots.add(root);
8741
+ const records = captureIntrinsicRecords(targets);
8729
8742
  for (const { target } of records)
8730
8743
  if (isGuestClosure(target)) intrinsicFunctions.add(target);
8731
8744
  const unchanged = (before, after) => before !== void 0 && after !== void 0 && Object.is(before.value, after.value) && before.get === after.get && before.set === after.set && before.writable === after.writable && before.configurable === after.configurable && before.enumerable === after.enumerable;
@@ -8736,9 +8749,21 @@ function trackIntrinsicState(budget, root, owner, targets) {
8736
8749
  return getSandboxPrototype(target) === parent && Object.isExtensible(value) === extensible && hasExplicitSandboxPrototype(target) === explicit && Reflect.ownKeys(current).length === descriptors2.size && Reflect.ownKeys(value).every((key) => unchanged(descriptors2.get(key), Object.getOwnPropertyDescriptor(value, key)));
8737
8750
  })
8738
8751
  );
8752
+ let retainedTargets = intrinsicRetentionTargets.get(budget);
8753
+ if (retainedTargets === void 0) intrinsicRetentionTargets.set(budget, retainedTargets = /* @__PURE__ */ new WeakSet());
8754
+ let groups = intrinsicRetentionGroups.get(budget);
8755
+ if (groups === void 0) intrinsicRetentionGroups.set(budget, groups = /* @__PURE__ */ new Map());
8756
+ let retainedRecords = groups.get(root);
8757
+ if (retainedRecords === void 0) groups.set(root, retainedRecords = []);
8758
+ for (const record4 of records) {
8759
+ if (retainedTargets.has(record4.target)) continue;
8760
+ retainedTargets.add(record4.target);
8761
+ retainedRecords.push(record4);
8762
+ }
8763
+ if (retainedRecords.length === 0) return;
8739
8764
  budget.setRetainedValues(root, () => {
8740
8765
  const retained = [];
8741
- for (const record4 of records) {
8766
+ for (const record4 of retainedRecords) {
8742
8767
  const { value, descriptors: descriptors2, prototype: parent, revision } = record4;
8743
8768
  const currentPrototype = record4.tracked.current;
8744
8769
  if (currentPrototype !== parent) retained.push(currentPrototype);
@@ -8762,6 +8787,8 @@ function releaseObjectPrototype(budget) {
8762
8787
  releaseIntrinsicIdentities(budget);
8763
8788
  for (const prototype of intrinsicPrototypeRoots.get(budget) ?? []) budget.setRetainedValues(prototype, void 0);
8764
8789
  intrinsicPrototypeRoots.delete(budget);
8790
+ intrinsicRetentionTargets.delete(budget);
8791
+ intrinsicRetentionGroups.delete(budget);
8765
8792
  boxedPrototypes.delete(budget);
8766
8793
  regexPrototypes.delete(budget);
8767
8794
  collectionPrototypes.delete(budget);
@@ -24791,6 +24818,7 @@ function createIteratorGlobal(budget) {
24791
24818
  installIteratorConsumers(prototype, budget);
24792
24819
  installLazyIteratorHelpers(prototype, budget);
24793
24820
  registerIntrinsicFunction(budget, constructor);
24821
+ completeIntrinsicObjectInitialization(budget, prototype);
24794
24822
  registerIntrinsicObject(budget, prototype);
24795
24823
  return constructor;
24796
24824
  }
@@ -47818,4 +47846,4 @@ export {
47818
47846
  FileSnapshotBackend,
47819
47847
  run
47820
47848
  };
47821
- //# sourceMappingURL=chunk-RN5KVZJA.js.map
47849
+ //# sourceMappingURL=chunk-D32JKK5K.js.map