aboutsummaryrefslogtreecommitdiff
path: root/src/bun.js/builtins/cpp/ImportMetaObjectBuiltins.cpp
diff options
context:
space:
mode:
authorGravatar Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> 2023-01-18 14:59:39 -0800
committerGravatar Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> 2023-01-18 14:59:39 -0800
commit7012d2fb7407739d8cb8eb09e726ac288a485683 (patch)
tree9088d270fb275dbc30a3aeca03501769fd1e7e3c /src/bun.js/builtins/cpp/ImportMetaObjectBuiltins.cpp
parent2db04ef9d9ddf6531b0a77c3b0867bc80388a039 (diff)
downloadbun-7012d2fb7407739d8cb8eb09e726ac288a485683.tar.gz
bun-7012d2fb7407739d8cb8eb09e726ac288a485683.tar.zst
bun-7012d2fb7407739d8cb8eb09e726ac288a485683.zip
Fixes #1831
Diffstat (limited to 'src/bun.js/builtins/cpp/ImportMetaObjectBuiltins.cpp')
-rw-r--r--src/bun.js/builtins/cpp/ImportMetaObjectBuiltins.cpp36
1 files changed, 25 insertions, 11 deletions
diff --git a/src/bun.js/builtins/cpp/ImportMetaObjectBuiltins.cpp b/src/bun.js/builtins/cpp/ImportMetaObjectBuiltins.cpp
index 360168176..a6a62ed62 100644
--- a/src/bun.js/builtins/cpp/ImportMetaObjectBuiltins.cpp
+++ b/src/bun.js/builtins/cpp/ImportMetaObjectBuiltins.cpp
@@ -195,18 +195,15 @@ const char* const s_importMetaObjectRequireESMCode =
"})\n" \
;
-const JSC::ConstructAbility s_importMetaObjectRequireCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_importMetaObjectRequireCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_importMetaObjectRequireCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_importMetaObjectRequireCodeLength = 1133;
-static const JSC::Intrinsic s_importMetaObjectRequireCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_importMetaObjectRequireCode =
- "(function (name) {\n" \
+const JSC::ConstructAbility s_importMetaObjectInternalRequireCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
+const JSC::ConstructorKind s_importMetaObjectInternalRequireCodeConstructorKind = JSC::ConstructorKind::None;
+const JSC::ImplementationVisibility s_importMetaObjectInternalRequireCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
+const int s_importMetaObjectInternalRequireCodeLength = 983;
+static const JSC::Intrinsic s_importMetaObjectInternalRequireCodeIntrinsic = JSC::NoIntrinsic;
+const char* const s_importMetaObjectInternalRequireCode =
+ "(function (resolved) {\n" \
" \"use strict\";\n" \
- " if (typeof name !== \"string\") {\n" \
- " @throwTypeError(\"require() expects a string as its argument\");\n" \
- " }\n" \
- " const resolved = @resolveSync(name, this.path);\n" \
+ "\n" \
" var cached = @requireMap.@get(resolved);\n" \
" const last5 = resolved.substring(resolved.length - 5);\n" \
" if (cached) {\n" \
@@ -241,6 +238,23 @@ const char* const s_importMetaObjectRequireCode =
"})\n" \
;
+const JSC::ConstructAbility s_importMetaObjectRequireCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
+const JSC::ConstructorKind s_importMetaObjectRequireCodeConstructorKind = JSC::ConstructorKind::None;
+const JSC::ImplementationVisibility s_importMetaObjectRequireCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
+const int s_importMetaObjectRequireCodeLength = 222;
+static const JSC::Intrinsic s_importMetaObjectRequireCodeIntrinsic = JSC::NoIntrinsic;
+const char* const s_importMetaObjectRequireCode =
+ "(function (name) {\n" \
+ " const from = this?.path ?? arguments.callee.path;\n" \
+ "\n" \
+ " if (typeof name !== \"string\") {\n" \
+ " @throwTypeError(\"require(name) must be a string\");\n" \
+ " }\n" \
+ "\n" \
+ " return @internalRequire(@resolveSync(name, from));\n" \
+ "})\n" \
+;
+
#define DEFINE_BUILTIN_GENERATOR(codeName, functionName, overriddenName, argumentCount) \
JSC::FunctionExecutable* codeName##Generator(JSC::VM& vm) \