diff options
Diffstat (limited to 'node_modules/@babel/core/src/transformation')
| -rw-r--r-- | node_modules/@babel/core/src/transformation/util/clone-deep-browser.ts | 19 | ||||
| -rw-r--r-- | node_modules/@babel/core/src/transformation/util/clone-deep.ts | 9 | 
2 files changed, 28 insertions, 0 deletions
diff --git a/node_modules/@babel/core/src/transformation/util/clone-deep-browser.ts b/node_modules/@babel/core/src/transformation/util/clone-deep-browser.ts new file mode 100644 index 0000000..78ae53e --- /dev/null +++ b/node_modules/@babel/core/src/transformation/util/clone-deep-browser.ts @@ -0,0 +1,19 @@ +const serialized = "$$ babel internal serialized type" + Math.random(); + +function serialize(key, value) { +  if (typeof value !== "bigint") return value; +  return { +    [serialized]: "BigInt", +    value: value.toString(), +  }; +} + +function revive(key, value) { +  if (!value || typeof value !== "object") return value; +  if (value[serialized] !== "BigInt") return value; +  return BigInt(value.value); +} + +export default function (value) { +  return JSON.parse(JSON.stringify(value, serialize), revive); +} diff --git a/node_modules/@babel/core/src/transformation/util/clone-deep.ts b/node_modules/@babel/core/src/transformation/util/clone-deep.ts new file mode 100644 index 0000000..cc077ce --- /dev/null +++ b/node_modules/@babel/core/src/transformation/util/clone-deep.ts @@ -0,0 +1,9 @@ +import v8 from "v8"; +import cloneDeep from "./clone-deep-browser"; + +export default function (value) { +  if (v8.deserialize && v8.serialize) { +    return v8.deserialize(v8.serialize(value)); +  } +  return cloneDeep(value); +}  | 
