mirror of
https://github.com/oven-sh/bun
synced 2026-02-13 12:29:07 +00:00
Don't allocate new "require" and "resolve" strings in CJS modules (#7162)
* Don't allocate new `"require"` and `"resolve"` strings in every CommonJS module * Use builtinNames more --------- Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
This commit is contained in:
@@ -108,12 +108,12 @@ static bool evaluateCommonJSModuleOnce(JSC::VM& vm, Zig::GlobalObject* globalObj
|
||||
globalObject,
|
||||
globalObject->requireResolveFunctionUnbound(),
|
||||
moduleObject->id(),
|
||||
ArgList(), 1, jsString(vm, String("resolve"_s)));
|
||||
ArgList(), 1, globalObject->commonStrings().resolveString(globalObject));
|
||||
JSFunction* requireFunction = JSC::JSBoundFunction::create(vm,
|
||||
globalObject,
|
||||
globalObject->requireFunctionUnbound(),
|
||||
moduleObject,
|
||||
ArgList(), 1, jsString(vm, String("require"_s)));
|
||||
ArgList(), 1, globalObject->commonStrings().requireString(globalObject));
|
||||
requireFunction->putDirect(vm, vm.propertyNames->resolve, resolveFunction, 0);
|
||||
moduleObject->putDirect(vm, WebCore::clientData(vm)->builtinNames().requirePublicName(), requireFunction, 0);
|
||||
|
||||
@@ -238,7 +238,7 @@ RequireFunctionPrototype* RequireFunctionPrototype::create(
|
||||
RequireFunctionPrototype* prototype = new (NotNull, JSC::allocateCell<RequireFunctionPrototype>(vm)) RequireFunctionPrototype(vm, structure);
|
||||
prototype->finishCreation(vm);
|
||||
|
||||
prototype->putDirect(vm, JSC::Identifier::fromString(vm, "resolve"_s), jsCast<Zig::GlobalObject*>(globalObject)->requireResolveFunctionUnbound(), 0);
|
||||
prototype->putDirect(vm, builtinNames(vm).resolvePublicName(), jsCast<Zig::GlobalObject*>(globalObject)->requireResolveFunctionUnbound(), 0);
|
||||
|
||||
return prototype;
|
||||
}
|
||||
@@ -1059,13 +1059,13 @@ JSObject* JSCommonJSModule::createBoundRequireFunction(VM& vm, JSGlobalObject* l
|
||||
globalObject,
|
||||
globalObject->requireFunctionUnbound(),
|
||||
moduleObject,
|
||||
ArgList(), 1, jsString(vm, String("require"_s)));
|
||||
ArgList(), 1, globalObject->commonStrings().requireString(globalObject));
|
||||
|
||||
JSFunction* resolveFunction = JSC::JSBoundFunction::create(vm,
|
||||
globalObject,
|
||||
globalObject->requireResolveFunctionUnbound(),
|
||||
moduleObject,
|
||||
ArgList(), 1, jsString(vm, String("resolve"_s)));
|
||||
ArgList(), 1, globalObject->commonStrings().resolveString(globalObject));
|
||||
|
||||
requireFunction->putDirect(vm, vm.propertyNames->resolve, resolveFunction, 0);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user