diff options
Diffstat (limited to 'src/bun.js/builtins/cpp')
-rw-r--r-- | src/bun.js/builtins/cpp/ImportMetaObjectBuiltins.cpp | 36 | ||||
-rw-r--r-- | src/bun.js/builtins/cpp/ImportMetaObjectBuiltins.h | 9 |
2 files changed, 34 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) \ diff --git a/src/bun.js/builtins/cpp/ImportMetaObjectBuiltins.h b/src/bun.js/builtins/cpp/ImportMetaObjectBuiltins.h index 5cc424ec8..d47c86980 100644 --- a/src/bun.js/builtins/cpp/ImportMetaObjectBuiltins.h +++ b/src/bun.js/builtins/cpp/ImportMetaObjectBuiltins.h @@ -57,6 +57,11 @@ extern const int s_importMetaObjectRequireESMCodeLength; extern const JSC::ConstructAbility s_importMetaObjectRequireESMCodeConstructAbility; extern const JSC::ConstructorKind s_importMetaObjectRequireESMCodeConstructorKind; extern const JSC::ImplementationVisibility s_importMetaObjectRequireESMCodeImplementationVisibility; +extern const char* const s_importMetaObjectInternalRequireCode; +extern const int s_importMetaObjectInternalRequireCodeLength; +extern const JSC::ConstructAbility s_importMetaObjectInternalRequireCodeConstructAbility; +extern const JSC::ConstructorKind s_importMetaObjectInternalRequireCodeConstructorKind; +extern const JSC::ImplementationVisibility s_importMetaObjectInternalRequireCodeImplementationVisibility; extern const char* const s_importMetaObjectRequireCode; extern const int s_importMetaObjectRequireCodeLength; extern const JSC::ConstructAbility s_importMetaObjectRequireCodeConstructAbility; @@ -66,18 +71,22 @@ extern const JSC::ImplementationVisibility s_importMetaObjectRequireCodeImplemen #define WEBCORE_FOREACH_IMPORTMETAOBJECT_BUILTIN_DATA(macro) \ macro(loadCJS2ESM, importMetaObjectLoadCJS2ESM, 1) \ macro(requireESM, importMetaObjectRequireESM, 1) \ + macro(internalRequire, importMetaObjectInternalRequire, 1) \ macro(require, importMetaObjectRequire, 1) \ #define WEBCORE_BUILTIN_IMPORTMETAOBJECT_LOADCJS2ESM 1 #define WEBCORE_BUILTIN_IMPORTMETAOBJECT_REQUIREESM 1 +#define WEBCORE_BUILTIN_IMPORTMETAOBJECT_INTERNALREQUIRE 1 #define WEBCORE_BUILTIN_IMPORTMETAOBJECT_REQUIRE 1 #define WEBCORE_FOREACH_IMPORTMETAOBJECT_BUILTIN_CODE(macro) \ macro(importMetaObjectLoadCJS2ESMCode, loadCJS2ESM, ASCIILiteral(), s_importMetaObjectLoadCJS2ESMCodeLength) \ macro(importMetaObjectRequireESMCode, requireESM, ASCIILiteral(), s_importMetaObjectRequireESMCodeLength) \ + macro(importMetaObjectInternalRequireCode, internalRequire, ASCIILiteral(), s_importMetaObjectInternalRequireCodeLength) \ macro(importMetaObjectRequireCode, require, ASCIILiteral(), s_importMetaObjectRequireCodeLength) \ #define WEBCORE_FOREACH_IMPORTMETAOBJECT_BUILTIN_FUNCTION_NAME(macro) \ + macro(internalRequire) \ macro(loadCJS2ESM) \ macro(require) \ macro(requireESM) \ |