aboutsummaryrefslogtreecommitdiff
path: root/src/bun.js/builtins/cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/bun.js/builtins/cpp')
-rw-r--r--src/bun.js/builtins/cpp/ConsoleObjectBuiltins.cpp167
-rw-r--r--src/bun.js/builtins/cpp/ConsoleObjectBuiltins.h138
-rw-r--r--src/bun.js/builtins/cpp/ReadableStreamInternalsBuiltins.cpp53
-rw-r--r--src/bun.js/builtins/cpp/WebCoreJSBuiltins.h4
4 files changed, 334 insertions, 28 deletions
diff --git a/src/bun.js/builtins/cpp/ConsoleObjectBuiltins.cpp b/src/bun.js/builtins/cpp/ConsoleObjectBuiltins.cpp
new file mode 100644
index 000000000..39080d690
--- /dev/null
+++ b/src/bun.js/builtins/cpp/ConsoleObjectBuiltins.cpp
@@ -0,0 +1,167 @@
+/*
+ * Copyright (c) 2015 Igalia
+ * Copyright (c) 2015 Igalia S.L.
+ * Copyright (c) 2015 Igalia.
+ * Copyright (c) 2015, 2016 Canon Inc. All rights reserved.
+ * Copyright (c) 2015, 2016, 2017 Canon Inc.
+ * Copyright (c) 2016, 2018 -2018 Apple Inc. All rights reserved.
+ * Copyright (c) 2016, 2020 Apple Inc. All rights reserved.
+ * Copyright (c) 2022 Codeblog Corp. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from JavaScript files for
+// builtins by the script: Source/JavaScriptCore/Scripts/generate-js-builtins.py
+
+#include "config.h"
+#include "ConsoleObjectBuiltins.h"
+
+#include "WebCoreJSClientData.h"
+#include <JavaScriptCore/HeapInlines.h>
+#include <JavaScriptCore/IdentifierInlines.h>
+#include <JavaScriptCore/ImplementationVisibility.h>
+#include <JavaScriptCore/Intrinsic.h>
+#include <JavaScriptCore/JSCJSValueInlines.h>
+#include <JavaScriptCore/JSCellInlines.h>
+#include <JavaScriptCore/StructureInlines.h>
+#include <JavaScriptCore/VM.h>
+
+namespace WebCore {
+
+const JSC::ConstructAbility s_consoleObjectAsyncIteratorCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
+const JSC::ConstructorKind s_consoleObjectAsyncIteratorCodeConstructorKind = JSC::ConstructorKind::None;
+const JSC::ImplementationVisibility s_consoleObjectAsyncIteratorCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
+const int s_consoleObjectAsyncIteratorCodeLength = 2004;
+static const JSC::Intrinsic s_consoleObjectAsyncIteratorCodeIntrinsic = JSC::NoIntrinsic;
+const char* const s_consoleObjectAsyncIteratorCode =
+ "(function () {\n" \
+ " \"use strict\";\n" \
+ "\n" \
+ " const Iterator = async function* ConsoleAsyncIterator() {\n" \
+ " \"use strict\";\n" \
+ "\n" \
+ " const stream = @Bun.stdin.stream();\n" \
+ " var reader = stream.getReader();\n" \
+ "\n" \
+ " //\n" \
+ " var decoder = new globalThis.TextDecoder(\"utf-8\", { fatal: false });\n" \
+ " var deferredError;\n" \
+ " var indexOf = @Bun.indexOfLine;\n" \
+ "\n" \
+ " try {\n" \
+ " while (true) {\n" \
+ " var done, value;\n" \
+ " var pendingChunk;\n" \
+ " const firstResult = reader.readMany();\n" \
+ " if (@isPromise(firstResult)) {\n" \
+ " ({done, value} = await firstResult);\n" \
+ " } else {\n" \
+ " ({done, value} = firstResult);\n" \
+ " }\n" \
+ "\n" \
+ " if (done) {\n" \
+ " if (pendingChunk) {\n" \
+ " yield decoder.decode(pendingChunk);\n" \
+ " }\n" \
+ " return;\n" \
+ " }\n" \
+ " \n" \
+ " var actualChunk;\n" \
+ " //\n" \
+ " for (const chunk of value) {\n" \
+ " actualChunk = chunk;\n" \
+ " if (pendingChunk) {\n" \
+ " actualChunk = Buffer.concat([pendingChunk, chunk]);\n" \
+ " pendingChunk = null;\n" \
+ " }\n" \
+ "\n" \
+ " var last = 0;\n" \
+ " //\n" \
+ " var i = indexOf(actualChunk, last);\n" \
+ " while (i !== -1) {\n" \
+ " yield decoder.decode(actualChunk.subarray(last, i));\n" \
+ " last = i + 1;\n" \
+ " i = indexOf(actualChunk, last);\n" \
+ " }\n" \
+ "\n" \
+ " pendingChunk = actualChunk.subarray(last);\n" \
+ " }\n" \
+ " }\n" \
+ " } catch(e) {\n" \
+ " deferredError = e;\n" \
+ " } finally {\n" \
+ " reader.releaseLock();\n" \
+ "\n" \
+ " if (deferredError) {\n" \
+ " throw deferredError;\n" \
+ " }\n" \
+ " }\n" \
+ " };\n" \
+ "\n" \
+ " const symbol = globalThis.Symbol.asyncIterator;\n" \
+ " this[symbol] = Iterator;\n" \
+ " return Iterator();\n" \
+ "})\n" \
+;
+
+const JSC::ConstructAbility s_consoleObjectWriteCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
+const JSC::ConstructorKind s_consoleObjectWriteCodeConstructorKind = JSC::ConstructorKind::None;
+const JSC::ImplementationVisibility s_consoleObjectWriteCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
+const int s_consoleObjectWriteCodeLength = 524;
+static const JSC::Intrinsic s_consoleObjectWriteCodeIntrinsic = JSC::NoIntrinsic;
+const char* const s_consoleObjectWriteCode =
+ "(function (input) {\n" \
+ " \"use strict\";\n" \
+ "\n" \
+ " var writer = @getByIdDirectPrivate(this, \"writer\");\n" \
+ " if (!writer) {\n" \
+ " var length = @toLength(input?.length ?? 0);\n" \
+ " writer = @Bun.stdout.writer({highWaterMark: length > 65536 ? length : 65536});\n" \
+ " @putByIdDirectPrivate(this, \"writer\", writer);\n" \
+ " }\n" \
+ "\n" \
+ " var wrote = writer.write(input);\n" \
+ "\n" \
+ " const count = @argumentCount();\n" \
+ " for (var i = 1; i < count; i++) {\n" \
+ " wrote += writer.write(@argument(i));\n" \
+ " }\n" \
+ "\n" \
+ " writer.flush(true);\n" \
+ " return wrote;\n" \
+ "})\n" \
+;
+
+
+#define DEFINE_BUILTIN_GENERATOR(codeName, functionName, overriddenName, argumentCount) \
+JSC::FunctionExecutable* codeName##Generator(JSC::VM& vm) \
+{\
+ JSVMClientData* clientData = static_cast<JSVMClientData*>(vm.clientData); \
+ return clientData->builtinFunctions().consoleObjectBuiltins().codeName##Executable()->link(vm, nullptr, clientData->builtinFunctions().consoleObjectBuiltins().codeName##Source(), std::nullopt, s_##codeName##Intrinsic); \
+}
+WEBCORE_FOREACH_CONSOLEOBJECT_BUILTIN_CODE(DEFINE_BUILTIN_GENERATOR)
+#undef DEFINE_BUILTIN_GENERATOR
+
+
+} // namespace WebCore
diff --git a/src/bun.js/builtins/cpp/ConsoleObjectBuiltins.h b/src/bun.js/builtins/cpp/ConsoleObjectBuiltins.h
new file mode 100644
index 000000000..9e2a43707
--- /dev/null
+++ b/src/bun.js/builtins/cpp/ConsoleObjectBuiltins.h
@@ -0,0 +1,138 @@
+/*
+ * Copyright (c) 2015 Igalia
+ * Copyright (c) 2015 Igalia S.L.
+ * Copyright (c) 2015 Igalia.
+ * Copyright (c) 2015, 2016 Canon Inc. All rights reserved.
+ * Copyright (c) 2015, 2016, 2017 Canon Inc.
+ * Copyright (c) 2016, 2018 -2018 Apple Inc. All rights reserved.
+ * Copyright (c) 2016, 2020 Apple Inc. All rights reserved.
+ * Copyright (c) 2022 Codeblog Corp. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from JavaScript files for
+// builtins by the script: Source/JavaScriptCore/Scripts/generate-js-builtins.py
+
+#pragma once
+
+#include <JavaScriptCore/BuiltinUtils.h>
+#include <JavaScriptCore/Identifier.h>
+#include <JavaScriptCore/JSFunction.h>
+#include <JavaScriptCore/UnlinkedFunctionExecutable.h>
+
+namespace JSC {
+class FunctionExecutable;
+}
+
+namespace WebCore {
+
+/* ConsoleObject */
+extern const char* const s_consoleObjectAsyncIteratorCode;
+extern const int s_consoleObjectAsyncIteratorCodeLength;
+extern const JSC::ConstructAbility s_consoleObjectAsyncIteratorCodeConstructAbility;
+extern const JSC::ConstructorKind s_consoleObjectAsyncIteratorCodeConstructorKind;
+extern const JSC::ImplementationVisibility s_consoleObjectAsyncIteratorCodeImplementationVisibility;
+extern const char* const s_consoleObjectWriteCode;
+extern const int s_consoleObjectWriteCodeLength;
+extern const JSC::ConstructAbility s_consoleObjectWriteCodeConstructAbility;
+extern const JSC::ConstructorKind s_consoleObjectWriteCodeConstructorKind;
+extern const JSC::ImplementationVisibility s_consoleObjectWriteCodeImplementationVisibility;
+
+#define WEBCORE_FOREACH_CONSOLEOBJECT_BUILTIN_DATA(macro) \
+ macro(asyncIterator, consoleObjectAsyncIterator, 0) \
+ macro(write, consoleObjectWrite, 1) \
+
+#define WEBCORE_BUILTIN_CONSOLEOBJECT_ASYNCITERATOR 1
+#define WEBCORE_BUILTIN_CONSOLEOBJECT_WRITE 1
+
+#define WEBCORE_FOREACH_CONSOLEOBJECT_BUILTIN_CODE(macro) \
+ macro(consoleObjectAsyncIteratorCode, asyncIterator, "[Symbol.asyncIterator]"_s, s_consoleObjectAsyncIteratorCodeLength) \
+ macro(consoleObjectWriteCode, write, ASCIILiteral(), s_consoleObjectWriteCodeLength) \
+
+#define WEBCORE_FOREACH_CONSOLEOBJECT_BUILTIN_FUNCTION_NAME(macro) \
+ macro(asyncIterator) \
+ macro(write) \
+
+#define DECLARE_BUILTIN_GENERATOR(codeName, functionName, overriddenName, argumentCount) \
+ JSC::FunctionExecutable* codeName##Generator(JSC::VM&);
+
+WEBCORE_FOREACH_CONSOLEOBJECT_BUILTIN_CODE(DECLARE_BUILTIN_GENERATOR)
+#undef DECLARE_BUILTIN_GENERATOR
+
+class ConsoleObjectBuiltinsWrapper : private JSC::WeakHandleOwner {
+public:
+ explicit ConsoleObjectBuiltinsWrapper(JSC::VM& vm)
+ : m_vm(vm)
+ WEBCORE_FOREACH_CONSOLEOBJECT_BUILTIN_FUNCTION_NAME(INITIALIZE_BUILTIN_NAMES)
+#define INITIALIZE_BUILTIN_SOURCE_MEMBERS(name, functionName, overriddenName, length) , m_##name##Source(JSC::makeSource(StringImpl::createWithoutCopying(s_##name, length), { }))
+ WEBCORE_FOREACH_CONSOLEOBJECT_BUILTIN_CODE(INITIALIZE_BUILTIN_SOURCE_MEMBERS)
+#undef INITIALIZE_BUILTIN_SOURCE_MEMBERS
+ {
+ }
+
+#define EXPOSE_BUILTIN_EXECUTABLES(name, functionName, overriddenName, length) \
+ JSC::UnlinkedFunctionExecutable* name##Executable(); \
+ const JSC::SourceCode& name##Source() const { return m_##name##Source; }
+ WEBCORE_FOREACH_CONSOLEOBJECT_BUILTIN_CODE(EXPOSE_BUILTIN_EXECUTABLES)
+#undef EXPOSE_BUILTIN_EXECUTABLES
+
+ WEBCORE_FOREACH_CONSOLEOBJECT_BUILTIN_FUNCTION_NAME(DECLARE_BUILTIN_IDENTIFIER_ACCESSOR)
+
+ void exportNames();
+
+private:
+ JSC::VM& m_vm;
+
+ WEBCORE_FOREACH_CONSOLEOBJECT_BUILTIN_FUNCTION_NAME(DECLARE_BUILTIN_NAMES)
+
+#define DECLARE_BUILTIN_SOURCE_MEMBERS(name, functionName, overriddenName, length) \
+ JSC::SourceCode m_##name##Source;\
+ JSC::Weak<JSC::UnlinkedFunctionExecutable> m_##name##Executable;
+ WEBCORE_FOREACH_CONSOLEOBJECT_BUILTIN_CODE(DECLARE_BUILTIN_SOURCE_MEMBERS)
+#undef DECLARE_BUILTIN_SOURCE_MEMBERS
+
+};
+
+#define DEFINE_BUILTIN_EXECUTABLES(name, functionName, overriddenName, length) \
+inline JSC::UnlinkedFunctionExecutable* ConsoleObjectBuiltinsWrapper::name##Executable() \
+{\
+ if (!m_##name##Executable) {\
+ JSC::Identifier executableName = functionName##PublicName();\
+ if (overriddenName)\
+ executableName = JSC::Identifier::fromString(m_vm, overriddenName);\
+ m_##name##Executable = JSC::Weak<JSC::UnlinkedFunctionExecutable>(JSC::createBuiltinExecutable(m_vm, m_##name##Source, executableName, s_##name##ImplementationVisibility, s_##name##ConstructorKind, s_##name##ConstructAbility), this, &m_##name##Executable);\
+ }\
+ return m_##name##Executable.get();\
+}
+WEBCORE_FOREACH_CONSOLEOBJECT_BUILTIN_CODE(DEFINE_BUILTIN_EXECUTABLES)
+#undef DEFINE_BUILTIN_EXECUTABLES
+
+inline void ConsoleObjectBuiltinsWrapper::exportNames()
+{
+#define EXPORT_FUNCTION_NAME(name) m_vm.propertyNames->appendExternalName(name##PublicName(), name##PrivateName());
+ WEBCORE_FOREACH_CONSOLEOBJECT_BUILTIN_FUNCTION_NAME(EXPORT_FUNCTION_NAME)
+#undef EXPORT_FUNCTION_NAME
+}
+
+} // namespace WebCore
diff --git a/src/bun.js/builtins/cpp/ReadableStreamInternalsBuiltins.cpp b/src/bun.js/builtins/cpp/ReadableStreamInternalsBuiltins.cpp
index 8431b9fb7..854d46faa 100644
--- a/src/bun.js/builtins/cpp/ReadableStreamInternalsBuiltins.cpp
+++ b/src/bun.js/builtins/cpp/ReadableStreamInternalsBuiltins.cpp
@@ -2621,7 +2621,7 @@ const char* const s_readableStreamInternalsReadableStreamToArrayDirectCode =
const JSC::ConstructAbility s_readableStreamInternalsReadableStreamDefineLazyIteratorsCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
const JSC::ConstructorKind s_readableStreamInternalsReadableStreamDefineLazyIteratorsCodeConstructorKind = JSC::ConstructorKind::None;
const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamDefineLazyIteratorsCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_readableStreamInternalsReadableStreamDefineLazyIteratorsCodeLength = 1650;
+const int s_readableStreamInternalsReadableStreamDefineLazyIteratorsCodeLength = 1478;
static const JSC::Intrinsic s_readableStreamInternalsReadableStreamDefineLazyIteratorsCodeIntrinsic = JSC::NoIntrinsic;
const char* const s_readableStreamInternalsReadableStreamDefineLazyIteratorsCode =
"(function (prototype) {\n" \
@@ -2632,37 +2632,34 @@ const char* const s_readableStreamInternalsReadableStreamDefineLazyIteratorsCode
" var ReadableStreamAsyncIterator = async function* ReadableStreamAsyncIterator(stream, preventCancel) {\n" \
" var reader = stream.getReader();\n" \
" var deferredError;\n" \
- " try {\n" \
- " while (true) {\n" \
- " var done, value;\n" \
- " const firstResult = reader.readMany();\n" \
- " if (@isPromise(firstResult)) {\n" \
- " const result = await firstResult;\n" \
- " done = result.done;\n" \
- " value = result.value;\n" \
- " } else {\n" \
- " done = firstResult.done;\n" \
- " value = firstResult.value;\n" \
- " }\n" \
- "\n" \
- " if (done) {\n" \
- " return;\n" \
- " }\n" \
- " yield* value;\n" \
- " }\n" \
- " } catch(e) {\n" \
- " deferredError = e;\n" \
- " } finally {\n" \
- " reader.releaseLock();\n" \
- "\n" \
- " if (!preventCancel) {\n" \
- " stream.cancel(deferredError);\n" \
+ " try {\n" \
+ " while (true) {\n" \
+ " var done, value;\n" \
+ " const firstResult = reader.readMany();\n" \
+ " if (@isPromise(firstResult)) {\n" \
+ " ({done, value} = await firstResult);\n" \
+ " } else {\n" \
+ " ({done, value} = firstResult);\n" \
+ " }\n" \
+ "\n" \
+ " if (done) {\n" \
+ " return;\n" \
+ " }\n" \
+ " yield* value;\n" \
" }\n" \
+ " } catch(e) {\n" \
+ " deferredError = e;\n" \
+ " } finally {\n" \
+ " reader.releaseLock();\n" \
"\n" \
- " if (deferredError) {\n" \
- " throw deferredError;\n" \
+ " if (!preventCancel) {\n" \
+ " stream.cancel(deferredError);\n" \
" }\n" \
+ "\n" \
+ " if (deferredError) {\n" \
+ " throw deferredError;\n" \
" }\n" \
+ " }\n" \
" };\n" \
" var createAsyncIterator = function asyncIterator() {\n" \
" return ReadableStreamAsyncIterator(this, false);\n" \
diff --git a/src/bun.js/builtins/cpp/WebCoreJSBuiltins.h b/src/bun.js/builtins/cpp/WebCoreJSBuiltins.h
index 85da33a83..0d6d0372c 100644
--- a/src/bun.js/builtins/cpp/WebCoreJSBuiltins.h
+++ b/src/bun.js/builtins/cpp/WebCoreJSBuiltins.h
@@ -37,6 +37,7 @@
#pragma once
#include "ByteLengthQueuingStrategyBuiltins.h"
+#include "ConsoleObjectBuiltins.h"
#include "CountQueuingStrategyBuiltins.h"
#include "ImportMetaObjectBuiltins.h"
#include "JSBufferConstructorBuiltins.h"
@@ -67,6 +68,7 @@ public:
explicit JSBuiltinFunctions(JSC::VM& vm)
: m_vm(vm)
, m_byteLengthQueuingStrategyBuiltins(m_vm)
+ , m_consoleObjectBuiltins(m_vm)
, m_countQueuingStrategyBuiltins(m_vm)
, m_importMetaObjectBuiltins(m_vm)
, m_jsBufferConstructorBuiltins(m_vm)
@@ -97,6 +99,7 @@ public:
}
ByteLengthQueuingStrategyBuiltinsWrapper& byteLengthQueuingStrategyBuiltins() { return m_byteLengthQueuingStrategyBuiltins; }
+ ConsoleObjectBuiltinsWrapper& consoleObjectBuiltins() { return m_consoleObjectBuiltins; }
CountQueuingStrategyBuiltinsWrapper& countQueuingStrategyBuiltins() { return m_countQueuingStrategyBuiltins; }
ImportMetaObjectBuiltinsWrapper& importMetaObjectBuiltins() { return m_importMetaObjectBuiltins; }
JSBufferConstructorBuiltinsWrapper& jsBufferConstructorBuiltins() { return m_jsBufferConstructorBuiltins; }
@@ -122,6 +125,7 @@ public:
private:
JSC::VM& m_vm;
ByteLengthQueuingStrategyBuiltinsWrapper m_byteLengthQueuingStrategyBuiltins;
+ ConsoleObjectBuiltinsWrapper m_consoleObjectBuiltins;
CountQueuingStrategyBuiltinsWrapper m_countQueuingStrategyBuiltins;
ImportMetaObjectBuiltinsWrapper m_importMetaObjectBuiltins;
JSBufferConstructorBuiltinsWrapper m_jsBufferConstructorBuiltins;