diff options
author | 2023-06-25 19:48:56 -0700 | |
---|---|---|
committer | 2023-06-25 19:48:56 -0700 | |
commit | 76626ac54b83a5a9a24abee1bc35f13a2196504d (patch) | |
tree | 0ad676a65b1629905a9b2cf7871f58409922f5d6 /src/bun.js/modules/NodeModuleModule.cpp | |
parent | 116bcf424564a5f38ddf5f99f34453c175526fdc (diff) | |
download | bun-76626ac54b83a5a9a24abee1bc35f13a2196504d.tar.gz bun-76626ac54b83a5a9a24abee1bc35f13a2196504d.tar.zst bun-76626ac54b83a5a9a24abee1bc35f13a2196504d.zip |
Fix test failures in import.meta (#3403)
* Fix test failures in import.meta
* regenerate
* Use bound functions for `import.meta.require` and `import.meta.require.resolve` and `Module.createRequire`
---------
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
Diffstat (limited to 'src/bun.js/modules/NodeModuleModule.cpp')
-rw-r--r-- | src/bun.js/modules/NodeModuleModule.cpp | 23 |
1 files changed, 6 insertions, 17 deletions
diff --git a/src/bun.js/modules/NodeModuleModule.cpp b/src/bun.js/modules/NodeModuleModule.cpp index f11277709..8b278ddd8 100644 --- a/src/bun.js/modules/NodeModuleModule.cpp +++ b/src/bun.js/modules/NodeModuleModule.cpp @@ -19,24 +19,12 @@ JSC_DEFINE_HOST_FUNCTION(jsFunctionNodeModuleCreateRequire, return JSC::JSValue::encode(JSC::jsUndefined()); } - auto str = callFrame->uncheckedArgument(0).toStringOrNull(globalObject); + auto val = callFrame->uncheckedArgument(0).toWTFString(globalObject); RETURN_IF_EXCEPTION(scope, JSC::JSValue::encode(JSC::jsUndefined())); - WTF::String val = str->value(globalObject); - auto *meta = Zig::ImportMetaObject::create(globalObject, str); auto clientData = WebCore::clientData(vm); - auto requireFunction = - Zig::ImportMetaObject::createRequireFunction(vm, globalObject, val); - auto nameStr = jsCast<JSFunction *>(requireFunction)->name(vm); - JSC::JSBoundFunction *boundRequireFunction = - JSC::JSBoundFunction::create(vm, globalObject, requireFunction, meta, - ArgList(), 0, jsString(vm, nameStr)); - boundRequireFunction->putDirect( - vm, clientData->builtinNames().resolvePublicName(), - requireFunction->getDirect( - vm, clientData->builtinNames().resolvePublicName()), - 0); - - RELEASE_AND_RETURN(scope, JSValue::encode(boundRequireFunction)); + RELEASE_AND_RETURN( + scope, JSValue::encode(Zig::ImportMetaObject::createRequireFunction( + vm, globalObject, val))); } JSC_DEFINE_HOST_FUNCTION(jsFunctionNodeModulePaths, (JSC::JSGlobalObject * globalObject, @@ -158,7 +146,8 @@ void generateNodeModuleModule(JSC::JSGlobalObject *globalObject, jsFunctionNodeModulePaths, ImplementationVisibility::Public)); exportNames.append(JSC::Identifier::fromString(vm, "_cache"_s)); - exportValues.append(JSC::constructEmptyObject(globalObject)); + exportValues.append( + jsCast<Zig::GlobalObject *>(globalObject)->lazyRequireCacheObject()); exportNames.append(JSC::Identifier::fromString(vm, "builtinModules"_s)); |