diff options
author | 2022-06-25 04:41:20 -0700 | |
---|---|---|
committer | 2022-06-25 04:41:20 -0700 | |
commit | 8fbd92e37de61766a72fe0c4a1c98a5fb058c00c (patch) | |
tree | c8cbe1fa0b0d5251f0835057b9fdd3e3bc51651a /src/bun.js/builtins/cpp/JSZigGlobalObjectBuiltins.cpp | |
parent | 7bb75f55530e52447b9c68bc5b0908bf734ba184 (diff) | |
download | bun-8fbd92e37de61766a72fe0c4a1c98a5fb058c00c.tar.gz bun-8fbd92e37de61766a72fe0c4a1c98a5fb058c00c.tar.zst bun-8fbd92e37de61766a72fe0c4a1c98a5fb058c00c.zip |
Cleanup some of the require code
Diffstat (limited to 'src/bun.js/builtins/cpp/JSZigGlobalObjectBuiltins.cpp')
-rw-r--r-- | src/bun.js/builtins/cpp/JSZigGlobalObjectBuiltins.cpp | 183 |
1 files changed, 103 insertions, 80 deletions
diff --git a/src/bun.js/builtins/cpp/JSZigGlobalObjectBuiltins.cpp b/src/bun.js/builtins/cpp/JSZigGlobalObjectBuiltins.cpp index 421ba1181..583a035d8 100644 --- a/src/bun.js/builtins/cpp/JSZigGlobalObjectBuiltins.cpp +++ b/src/bun.js/builtins/cpp/JSZigGlobalObjectBuiltins.cpp @@ -49,7 +49,7 @@ namespace WebCore { const JSC::ConstructAbility s_jsZigGlobalObjectRequireCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; const JSC::ConstructorKind s_jsZigGlobalObjectRequireCodeConstructorKind = JSC::ConstructorKind::None; -const int s_jsZigGlobalObjectRequireCodeLength = 1221; +const int s_jsZigGlobalObjectRequireCodeLength = 1162; static const JSC::Intrinsic s_jsZigGlobalObjectRequireCodeIntrinsic = JSC::NoIntrinsic; const char* const s_jsZigGlobalObjectRequireCode = "(function (name) {\n" \ @@ -59,36 +59,36 @@ const char* const s_jsZigGlobalObjectRequireCode = " }\n" \ " \n" \ " const resolved = this.resolveSync(name, this.path);\n" \ - " var requireCache = (globalThis[Symbol.for(\"_requireCache\")] ||= new @Map);\n" \ - " var cached = requireCache.@get(resolved);\n" \ + " var cached = @requireMap.@get(resolved);\n" \ + " const last5 = resolved.substring(resolved.length - 5);\n" \ " if (cached) {\n" \ - " if (resolved.endsWith(\".node\")) {\n" \ + " if (last5 === \".node\") {\n" \ " return cached.exports;\n" \ " }\n" \ "\n" \ " return cached;\n" \ " }\n" \ "\n" \ - "\n" \ + " \n" \ " //\n" \ - " if (resolved.endsWith(\".json\")) {\n" \ + " if (last5 === \".json\") {\n" \ " var fs = (globalThis[Symbol.for(\"_fs\")] ||= Bun.fs());\n" \ " var exports = JSON.parse(fs.readFileSync(resolved, \"utf8\"));\n" \ - " requireCache.@set(resolved, exports);\n" \ + " @requireMap.@set(resolved, exports);\n" \ " return exports;\n" \ - " } else if (resolved.endsWith(\".node\")) {\n" \ + " } else if (last5 === \".node\") {\n" \ " var module = { exports: {} };\n" \ " globalThis.process.dlopen(module, resolved);\n" \ - " requireCache.@set(resolved, module);\n" \ + " @requireMap.@set(resolved, module);\n" \ " return module.exports;\n" \ - " } else if (resolved.endsWith(\".toml\")) {\n" \ + " } else if (last5 === \".toml\") {\n" \ " var fs = (globalThis[Symbol.for(\"_fs\")] ||= Bun.fs());\n" \ " var exports = Bun.TOML.parse(fs.readFileSync(resolved, \"utf8\"));\n" \ - " requireCache.@set(resolved, exports);\n" \ + " @requireMap.@set(resolved, exports);\n" \ " return exports;\n" \ " } else {\n" \ " var exports = this.requireModule(this, resolved);\n" \ - " requireCache.@set(resolved, exports);\n" \ + " @requireMap.@set(resolved, exports);\n" \ " return exports;\n" \ " }\n" \ "})\n" \ @@ -96,94 +96,117 @@ const char* const s_jsZigGlobalObjectRequireCode = const JSC::ConstructAbility s_jsZigGlobalObjectLoadModuleCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; const JSC::ConstructorKind s_jsZigGlobalObjectLoadModuleCodeConstructorKind = JSC::ConstructorKind::None; -const int s_jsZigGlobalObjectLoadModuleCodeLength = 2783; +const int s_jsZigGlobalObjectLoadModuleCodeLength = 2750; static const JSC::Intrinsic s_jsZigGlobalObjectLoadModuleCodeIntrinsic = JSC::NoIntrinsic; const char* const s_jsZigGlobalObjectLoadModuleCode = "(function (meta, resolvedSpecifier) {\n" \ " \"use strict\";\n" \ - " var queue = @createFIFO();\n" \ - " var key = resolvedSpecifier;\n" \ - " \n" \ - " var Loader = globalThis.Loader;\n" \ - " var registry = Loader.registry;\n" \ - " while (key) {\n" \ - " @fulfillModuleSync(key);\n" \ - " var entry = registry.@get(key);\n" \ + " var Loader = globalThis.Loader;\n" \ "\n" \ - " //\n" \ - " //\n" \ - " //\n" \ - " //\n" \ - " var sourceCodeObject = @getPromiseInternalField(entry.fetch, @promiseFieldReactionsOrResult);\n" \ - " \n" \ + " var queue = @createFIFO();\n" \ + " var key = resolvedSpecifier;\n" \ + " var registry = Loader.registry;\n" \ + " while (key) {\n" \ + " @fulfillModuleSync(key);\n" \ + " var entry = registry.@get(key);\n" \ + "\n" \ + " //\n" \ + " //\n" \ + " //\n" \ + " //\n" \ + " var sourceCodeObject = @getPromiseInternalField(\n" \ + " entry.fetch,\n" \ + " @promiseFieldReactionsOrResult\n" \ + " );\n" \ + "\n" \ + " //\n" \ + " //\n" \ + " //\n" \ + " var moduleRecordPromise = Loader.parseModule(key, sourceCodeObject);\n" \ + " var module = entry.module;\n" \ + " if (!module && moduleRecordPromise && @isPromise(moduleRecordPromise)) {\n" \ + " var reactionsOrResult = @getPromiseInternalField(\n" \ + " moduleRecordPromise,\n" \ + " @promiseFieldReactionsOrResult\n" \ + " );\n" \ + " var flags = @getPromiseInternalField(\n" \ + " moduleRecordPromise,\n" \ + " @promiseFieldFlags\n" \ + " );\n" \ + " var state = flags & @promiseStateMask;\n" \ "\n" \ " //\n" \ + " if (\n" \ + " state === @promiseStatePending ||\n" \ + " (reactionsOrResult && @isPromise(reactionsOrResult))\n" \ + " ) {\n" \ + " @throwTypeError(`require() async module \\\"${key}\\\" is unsupported`);\n" \ + " } else if (state === @promiseStateRejected) {\n" \ + " //\n" \ + " //\n" \ + " @throwTypeError(\n" \ + " `${\n" \ + " reactionsOrResult?.message ?? \"An error occurred\"\n" \ + " } while parsing module \\\"${key}\\\"`\n" \ + " );\n" \ + " }\n" \ + " entry.module = module = reactionsOrResult;\n" \ + " } else if (moduleRecordPromise && !module) {\n" \ + " entry.module = module = moduleRecordPromise;\n" \ + " }\n" \ + "\n" \ + " //\n" \ + " @setStateToMax(entry, @ModuleLink);\n" \ + " var dependenciesMap = module.dependenciesMap;\n" \ + " var requestedModules = Loader.requestedModules(module);\n" \ + " var dependencies = @newArrayWithSize(requestedModules.length);\n" \ + "\n" \ + " for (var i = 0, length = requestedModules.length; i < length; ++i) {\n" \ + " var depName = requestedModules[i];\n" \ + "\n" \ " //\n" \ " //\n" \ - " var moduleRecordPromise = Loader.parseModule(key, sourceCodeObject);\n" \ - " var module = entry.module;\n" \ - " if (!module && moduleRecordPromise && @isPromise(moduleRecordPromise)) {\n" \ - " var reactionsOrResult = @getPromiseInternalField(moduleRecordPromise, @promiseFieldReactionsOrResult);\n" \ - " var flags = @getPromiseInternalField(moduleRecordPromise, @promiseFieldFlags);\n" \ - " var state = flags & @promiseStateMask;\n" \ + " var depKey =\n" \ + " depName[0] === \"/\"\n" \ + " ? depName\n" \ + " : Loader.resolveSync(depName, key, @undefined);\n" \ + " var depEntry = Loader.ensureRegistered(depKey);\n" \ "\n" \ - " //\n" \ - " if (state === @promiseStatePending || (reactionsOrResult && @isPromise(reactionsOrResult))) {\n" \ - " @throwTypeError(`require() async module \\\"${key}\\\" is unsupported`);\n" \ - " \n" \ - " } else if (state === @promiseStateRejected) {\n" \ - " //\n" \ - " //\n" \ - " @throwTypeError(`${reactionsOrResult?.message ?? \"An error occurred\"} while parsing module \\\"${key}\\\"`);\n" \ - " }\n" \ - " entry.module = module = reactionsOrResult;\n" \ - " } else if (moduleRecordPromise && !module) {\n" \ - " entry.module = module = moduleRecordPromise;\n" \ + " if (depEntry.state < @ModuleLink) {\n" \ + " queue.push(depKey);\n" \ " }\n" \ "\n" \ - " //\n" \ - " @setStateToMax(entry, @ModuleLink);\n" \ - " var dependenciesMap = module.dependenciesMap;\n" \ - " var requestedModules = Loader.requestedModules(module);\n" \ - " var dependencies = @newArrayWithSize(requestedModules.length);\n" \ - " \n" \ - " for (var i = 0, length = requestedModules.length; i < length; ++i) {\n" \ - " var depName = requestedModules[i];\n" \ - "\n" \ - " //\n" \ - " //\n" \ - " var depKey = depName[0] === '/' ? depName : Loader.resolveSync(depName, key, @undefined);\n" \ - " var depEntry = Loader.ensureRegistered(depKey);\n" \ - "\n" \ - " if (depEntry.state < @ModuleLink) {\n" \ - " queue.push(depKey);\n" \ - " }\n" \ - "\n" \ - " @putByValDirect(dependencies, i, depEntry);\n" \ - " dependenciesMap.@set(depName, depEntry);\n" \ - " }\n" \ - "\n" \ - " entry.dependencies = dependencies;\n" \ - " key = queue.shift();\n" \ - " while (key && ((registry.@get(key)?.state ?? @ModuleFetch) >= @ModuleLink)) {\n" \ - " key = queue.shift();\n" \ - " }\n" \ + " @putByValDirect(dependencies, i, depEntry);\n" \ + " dependenciesMap.@set(depName, depEntry);\n" \ " }\n" \ "\n" \ - " var linkAndEvaluateResult = Loader.linkAndEvaluateModule(resolvedSpecifier, @undefined);\n" \ - " if (linkAndEvaluateResult && @isPromise(linkAndEvaluateResult)) {\n" \ - " //\n" \ - " //\n" \ - " @throwTypeError(`require() async module \\\"${resolvedSpecifier}\\\" is unsupported`);\n" \ + " entry.dependencies = dependencies;\n" \ + " key = queue.shift();\n" \ + " while (key && (registry.@get(key)?.state ?? @ModuleFetch) >= @ModuleLink) {\n" \ + " key = queue.shift();\n" \ " }\n" \ + " }\n" \ + "\n" \ + " var linkAndEvaluateResult = Loader.linkAndEvaluateModule(\n" \ + " resolvedSpecifier,\n" \ + " @undefined\n" \ + " );\n" \ + " if (linkAndEvaluateResult && @isPromise(linkAndEvaluateResult)) {\n" \ + " //\n" \ + " //\n" \ + " @throwTypeError(\n" \ + " `require() async module \\\"${resolvedSpecifier}\\\" is unsupported`\n" \ + " );\n" \ + " }\n" \ + "\n" \ + " return Loader.registry.@get(resolvedSpecifier);\n" \ "\n" \ - " return Loader.registry.@get(resolvedSpecifier);\n" \ "})\n" \ ; const JSC::ConstructAbility s_jsZigGlobalObjectRequireModuleCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; const JSC::ConstructorKind s_jsZigGlobalObjectRequireModuleCodeConstructorKind = JSC::ConstructorKind::None; -const int s_jsZigGlobalObjectRequireModuleCodeLength = 613; +const int s_jsZigGlobalObjectRequireModuleCodeLength = 606; static const JSC::Intrinsic s_jsZigGlobalObjectRequireModuleCodeIntrinsic = JSC::NoIntrinsic; const char* const s_jsZigGlobalObjectRequireModuleCode = "(function (meta, resolved) {\n" \ @@ -200,7 +223,7 @@ const char* const s_jsZigGlobalObjectRequireModuleCode = " }\n" \ " var exports = Loader.getModuleNamespaceObject(entry.module);\n" \ " var commonJS = exports.default;\n" \ - " if (commonJS && @isObject(commonJS) && Symbol.for(\"CommonJS\") in commonJS) {\n" \ + " if (commonJS && @isObject(commonJS) && @commonJSSymbol in commonJS) {\n" \ " return commonJS();\n" \ " }\n" \ " return exports;\n" \ |