Remove some lodash/cloneDeep calls (#13032)
This commit is contained in:
@@ -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 {
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
Reference in New Issue
Block a user