Remove some lodash/cloneDeep calls (#13032)

This commit is contained in:
Justin Ridgewell
2021-03-25 13:01:19 -04:00
committed by GitHub
parent 0233e3c8eb
commit 73dcd06293
9 changed files with 35 additions and 15 deletions

View File

@@ -3,13 +3,13 @@
import fs from "fs";
import path from "path";
import buildDebug from "debug";
import cloneDeep from "lodash/cloneDeep";
import type { Handler } from "gensync";
import * as t from "@babel/types";
import type { PluginPasses } from "../config";
import convertSourceMap, { typeof Converter } from "convert-source-map";
import File from "./file/file";
import parser from "../parser";
import cloneDeep from "./util/clone-deep";
const debug = buildDebug("babel:transform:file");
const LARGE_INPUT_SOURCEMAP_THRESHOLD = 1_000_000;
@@ -35,8 +35,7 @@ export default function* normalizeFile(
throw new Error("AST root must be a Program or File node");
}
const { cloneInputAst } = options;
if (cloneInputAst) {
if (options.cloneInputAst) {
ast = cloneDeep(ast);
}
} else {

View File

@@ -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);
}

View File

@@ -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);
}