fix require.resolve with an empty options object #2370 (#2371)

* fix #2370 and import-meta test

* edit test to not allow transpiler optimization
This commit is contained in:
dave caruso
2023-03-12 06:43:32 -04:00
committed by GitHub
parent 8c91278a00
commit 21f9fc828f
2 changed files with 11 additions and 5 deletions

View File

@@ -84,9 +84,11 @@ static EncodedJSValue functionRequireResolve(JSC::JSGlobalObject* globalObject,
// require.resolve also supports a paths array
// we only support a single path
if (!fromValue.isUndefinedOrNull() && fromValue.isObject()) {
if (JSC::JSArray* array = JSC::jsDynamicCast<JSC::JSArray*>(fromValue.getObject()->getIfPropertyExists(globalObject, JSC::Identifier::fromString(vm, "paths"_s)))) {
if (array->length() > 0) {
fromValue = array->getIndex(globalObject, 0);
if (JSValue pathsValue = fromValue.getObject()->getIfPropertyExists(globalObject, JSC::Identifier::fromString(vm, "paths"_s))) {
if (JSC::JSArray* array = JSC::jsDynamicCast<JSC::JSArray*>(pathsValue)) {
if (array->length() > 0) {
fromValue = array->getIndex(globalObject, 0);
}
}
}
}