/*
 * Copyright (c) 2014, 2015, 2016 Apple Inc. All rights reserved.
 * Copyright (c) 2014, 2017 -2017 Apple Inc. All rights reserved.
 * Copyright (c) 2015 Andy VanWagoner <andy@vanwagoner.family>.
 * Copyright (c) 2015 Jordan Harband. All rights reserved.
 * Copyright (c) 2015, 2016 -2016 Apple Inc. All rights reserved.
 * Copyright (c) 2015, 2016 -2016 Yusuke Suzuki <utatane.tea@gmail.com>.
 * Copyright (c) 2015, 2016, 2017 Yusuke Suzuki <utatane.tea@gmail.com>.
 * Copyright (c) 2016 Caitlin Potter <caitp@igalia.com>.
 * Copyright (c) 2016 Yusuke Suzuki <utatane.tea@gmail.com>
 * Copyright (c) 2016, 2017 -2017 Yusuke Suzuki <utatane.tea@gmail.com>.
 * Copyright (c) 2016, 2017, 2018 Oleksandr Skachkov <gskachkov@gmail.com>.
 * Copyright (c) 2016, 2018 -2018 Apple Inc. All rights reserved.
 * Copyright (c) 2017 Caio Lima <ticaiolima@gmail.com>.
 * Copyright (c) 2018 Yusuke Suzuki <yusukesuzuki@slowstart.org>.
 * Copyright (c) 2019 Alexey Shvayka <shvaikalesh@gmail.com>.
 * 
 * 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

namespace JSC {
class FunctionExecutable;
class VM;

enum class ConstructAbility : unsigned;
}

namespace JSC {

extern const char s_JSCCombinedCode[];

extern const unsigned s_JSCCombinedCodeLength;

/* ArrayConstructor */
extern const char* const s_arrayConstructorOfCode;
extern const int s_arrayConstructorOfCodeLength;
extern const JSC::ConstructAbility s_arrayConstructorOfCodeConstructAbility;
extern const char* const s_arrayConstructorFromCode;
extern const int s_arrayConstructorFromCodeLength;
extern const JSC::ConstructAbility s_arrayConstructorFromCodeConstructAbility;
extern const char* const s_arrayConstructorIsArrayCode;
extern const int s_arrayConstructorIsArrayCodeLength;
extern const JSC::ConstructAbility s_arrayConstructorIsArrayCodeConstructAbility;

#define JSC_FOREACH_ARRAYCONSTRUCTOR_BUILTIN_DATA(macro) \
    macro(of, arrayConstructorOf, 0) \
    macro(from, arrayConstructorFrom, 1) \
    macro(isArray, arrayConstructorIsArray, 1) \

/* ArrayIteratorPrototype */
extern const char* const s_arrayIteratorPrototypeNextCode;
extern const int s_arrayIteratorPrototypeNextCodeLength;
extern const JSC::ConstructAbility s_arrayIteratorPrototypeNextCodeConstructAbility;
extern const char* const s_arrayIteratorPrototypeArrayIteratorValueNextCode;
extern const int s_arrayIteratorPrototypeArrayIteratorValueNextCodeLength;
extern const JSC::ConstructAbility s_arrayIteratorPrototypeArrayIteratorValueNextCodeConstructAbility;
extern const char* const s_arrayIteratorPrototypeArrayIteratorKeyNextCode;
extern const int s_arrayIteratorPrototypeArrayIteratorKeyNextCodeLength;
extern const JSC::ConstructAbility s_arrayIteratorPrototypeArrayIteratorKeyNextCodeConstructAbility;
extern const char* const s_arrayIteratorPrototypeArrayIteratorKeyValueNextCode;
extern const int s_arrayIteratorPrototypeArrayIteratorKeyValueNextCodeLength;
extern const JSC::ConstructAbility s_arrayIteratorPrototypeArrayIteratorKeyValueNextCodeConstructAbility;

#define JSC_FOREACH_ARRAYITERATORPROTOTYPE_BUILTIN_DATA(macro) \
    macro(next, arrayIteratorPrototypeNext, 0) \
    macro(arrayIteratorValueNext, arrayIteratorPrototypeArrayIteratorValueNext, 0) \
    macro(arrayIteratorKeyNext, arrayIteratorPrototypeArrayIteratorKeyNext, 0) \
    macro(arrayIteratorKeyValueNext, arrayIteratorPrototypeArrayIteratorKeyValueNext, 0) \

/* ArrayPrototype */
extern const char* const s_arrayPrototypeArrayIteratorConstructorCode;
extern const int s_arrayPrototypeArrayIteratorConstructorCodeLength;
extern const JSC::ConstructAbility s_arrayPrototypeArrayIteratorConstructorCodeConstructAbility;
extern const char* const s_arrayPrototypeValuesCode;
extern const int s_arrayPrototypeValuesCodeLength;
extern const JSC::ConstructAbility s_arrayPrototypeValuesCodeConstructAbility;
extern const char* const s_arrayPrototypeKeysCode;
extern const int s_arrayPrototypeKeysCodeLength;
extern const JSC::ConstructAbility s_arrayPrototypeKeysCodeConstructAbility;
extern const char* const s_arrayPrototypeEntriesCode;
extern const int s_arrayPrototypeEntriesCodeLength;
extern const JSC::ConstructAbility s_arrayPrototypeEntriesCodeConstructAbility;
extern const char* const s_arrayPrototypeReduceCode;
extern const int s_arrayPrototypeReduceCodeLength;
extern const JSC::ConstructAbility s_arrayPrototypeReduceCodeConstructAbility;
extern const char* const s_arrayPrototypeReduceRightCode;
extern const int s_arrayPrototypeReduceRightCodeLength;
extern const JSC::ConstructAbility s_arrayPrototypeReduceRightCodeConstructAbility;
extern const char* const s_arrayPrototypeEveryCode;
extern const int s_arrayPrototypeEveryCodeLength;
extern const JSC::ConstructAbility s_arrayPrototypeEveryCodeConstructAbility;
extern const char* const s_arrayPrototypeForEachCode;
extern const int s_arrayPrototypeForEachCodeLength;
extern const JSC::ConstructAbility s_arrayPrototypeForEachCodeConstructAbility;
extern const char* const s_arrayPrototypeFilterCode;
extern const int s_arrayPrototypeFilterCodeLength;
extern const JSC::ConstructAbility s_arrayPrototypeFilterCodeConstructAbility;
extern const char* const s_arrayPrototypeMapCode;
extern const int s_arrayPrototypeMapCodeLength;
extern const JSC::ConstructAbility s_arrayPrototypeMapCodeConstructAbility;
extern const char* const s_arrayPrototypeSomeCode;
extern const int s_arrayPrototypeSomeCodeLength;
extern const JSC::ConstructAbility s_arrayPrototypeSomeCodeConstructAbility;
extern const char* const s_arrayPrototypeFillCode;
extern const int s_arrayPrototypeFillCodeLength;
extern const JSC::ConstructAbility s_arrayPrototypeFillCodeConstructAbility;
extern const char* const s_arrayPrototypeFindCode;
extern const int s_arrayPrototypeFindCodeLength;
extern const JSC::ConstructAbility s_arrayPrototypeFindCodeConstructAbility;
extern const char* const s_arrayPrototypeFindIndexCode;
extern const int s_arrayPrototypeFindIndexCodeLength;
extern const JSC::ConstructAbility s_arrayPrototypeFindIndexCodeConstructAbility;
extern const char* const s_arrayPrototypeIncludesCode;
extern const int s_arrayPrototypeIncludesCodeLength;
extern const JSC::ConstructAbility s_arrayPrototypeIncludesCodeConstructAbility;
extern const char* const s_arrayPrototypeSortCode;
extern const int s_arrayPrototypeSortCodeLength;
extern const JSC::ConstructAbility s_arrayPrototypeSortCodeConstructAbility;
extern const char* const s_arrayPrototypeConcatSlowPathCode;
extern const int s_arrayPrototypeConcatSlowPathCodeLength;
extern const JSC::ConstructAbility s_arrayPrototypeConcatSlowPathCodeConstructAbility;
extern const char* const s_arrayPrototypeConcatCode;
extern const int s_arrayPrototypeConcatCodeLength;
extern const JSC::ConstructAbility s_arrayPrototypeConcatCodeConstructAbility;
extern const char* const s_arrayPrototypeCopyWithinCode;
extern const int s_arrayPrototypeCopyWithinCodeLength;
extern const JSC::ConstructAbility s_arrayPrototypeCopyWithinCodeConstructAbility;
extern const char* const s_arrayPrototypeFlatIntoArrayCode;
extern const int s_arrayPrototypeFlatIntoArrayCodeLength;
extern const JSC::ConstructAbility s_arrayPrototypeFlatIntoArrayCodeConstructAbility;
extern const char* const s_arrayPrototypeFlatCode;
extern const int s_arrayPrototypeFlatCodeLength;
extern const JSC::ConstructAbility s_arrayPrototypeFlatCodeConstructAbility;
extern const char* const s_arrayPrototypeFlatIntoArrayWithCallbackCode;
extern const int s_arrayPrototypeFlatIntoArrayWithCallbackCodeLength;
extern const JSC::ConstructAbility s_arrayPrototypeFlatIntoArrayWithCallbackCodeConstructAbility;
extern const char* const s_arrayPrototypeFlatMapCode;
extern const int s_arrayPrototypeFlatMapCodeLength;
extern const JSC::ConstructAbility s_arrayPrototypeFlatMapCodeConstructAbility;

#define JSC_FOREACH_ARRAYPROTOTYPE_BUILTIN_DATA(macro) \
    macro(ArrayIterator, arrayPrototypeArrayIteratorConstructor, 3) \
    macro(values, arrayPrototypeValues, 0) \
    macro(keys, arrayPrototypeKeys, 0) \
    macro(entries, arrayPrototypeEntries, 0) \
    macro(reduce, arrayPrototypeReduce, 1) \
    macro(reduceRight, arrayPrototypeReduceRight, 1) \
    macro(every, arrayPrototypeEvery, 1) \
    macro(forEach, arrayPrototypeForEach, 1) \
    macro(filter, arrayPrototypeFilter, 1) \
    macro(map, arrayPrototypeMap, 1) \
    macro(some, arrayPrototypeSome, 1) \
    macro(fill, arrayPrototypeFill, 1) \
    macro(find, arrayPrototypeFind, 1) \
    macro(findIndex, arrayPrototypeFindIndex, 1) \
    macro(includes, arrayPrototypeIncludes, 1) \
    macro(sort, arrayPrototypeSort, 1) \
    macro(concatSlowPath, arrayPrototypeConcatSlowPath, 0) \
    macro(concat, arrayPrototypeConcat, 1) \
    macro(copyWithin, arrayPrototypeCopyWithin, 2) \
    macro(flatIntoArray, arrayPrototypeFlatIntoArray, 5) \
    macro(flat, arrayPrototypeFlat, 0) \
    macro(flatIntoArrayWithCallback, arrayPrototypeFlatIntoArrayWithCallback, 6) \
    macro(flatMap, arrayPrototypeFlatMap, 1) \

/* AsyncFromSyncIteratorPrototype */
extern const char* const s_asyncFromSyncIteratorPrototypeNextCode;
extern const int s_asyncFromSyncIteratorPrototypeNextCodeLength;
extern const JSC::ConstructAbility s_asyncFromSyncIteratorPrototypeNextCodeConstructAbility;
extern const char* const s_asyncFromSyncIteratorPrototypeReturnCode;
extern const int s_asyncFromSyncIteratorPrototypeReturnCodeLength;
extern const JSC::ConstructAbility s_asyncFromSyncIteratorPrototypeReturnCodeConstructAbility;
extern const char* const s_asyncFromSyncIteratorPrototypeThrowCode;
extern const int s_asyncFromSyncIteratorPrototypeThrowCodeLength;
extern const JSC::ConstructAbility s_asyncFromSyncIteratorPrototypeThrowCodeConstructAbility;
extern const char* const s_asyncFromSyncIteratorPrototypeCreateAsyncFromSyncIteratorCode;
extern const int s_asyncFromSyncIteratorPrototypeCreateAsyncFromSyncIteratorCodeLength;
extern const JSC::ConstructAbility s_asyncFromSyncIteratorPrototypeCreateAsyncFromSyncIteratorCodeConstructAbility;
extern const char* const s_asyncFromSyncIteratorPrototypeAsyncFromSyncIteratorConstructorCode;
extern const int s_asyncFromSyncIteratorPrototypeAsyncFromSyncIteratorConstructorCodeLength;
extern const JSC::ConstructAbility s_asyncFromSyncIteratorPrototypeAsyncFromSyncIteratorConstructorCodeConstructAbility;

#define JSC_FOREACH_ASYNCFROMSYNCITERATORPROTOTYPE_BUILTIN_DATA(macro) \
    macro(next, asyncFromSyncIteratorPrototypeNext, 1) \
    macro(return, asyncFromSyncIteratorPrototypeReturn, 1) \
    macro(throw, asyncFromSyncIteratorPrototypeThrow, 1) \
    macro(createAsyncFromSyncIterator, asyncFromSyncIteratorPrototypeCreateAsyncFromSyncIterator, 2) \
    macro(AsyncFromSyncIterator, asyncFromSyncIteratorPrototypeAsyncFromSyncIteratorConstructor, 2) \

/* AsyncFunctionPrototype */
extern const char* const s_asyncFunctionPrototypeAsyncFunctionResumeCode;
extern const int s_asyncFunctionPrototypeAsyncFunctionResumeCodeLength;
extern const JSC::ConstructAbility s_asyncFunctionPrototypeAsyncFunctionResumeCodeConstructAbility;

#define JSC_FOREACH_ASYNCFUNCTIONPROTOTYPE_BUILTIN_DATA(macro) \
    macro(asyncFunctionResume, asyncFunctionPrototypeAsyncFunctionResume, 4) \

/* AsyncGeneratorPrototype */
extern const char* const s_asyncGeneratorPrototypeAsyncGeneratorQueueIsEmptyCode;
extern const int s_asyncGeneratorPrototypeAsyncGeneratorQueueIsEmptyCodeLength;
extern const JSC::ConstructAbility s_asyncGeneratorPrototypeAsyncGeneratorQueueIsEmptyCodeConstructAbility;
extern const char* const s_asyncGeneratorPrototypeAsyncGeneratorQueueEnqueueCode;
extern const int s_asyncGeneratorPrototypeAsyncGeneratorQueueEnqueueCodeLength;
extern const JSC::ConstructAbility s_asyncGeneratorPrototypeAsyncGeneratorQueueEnqueueCodeConstructAbility;
extern const char* const s_asyncGeneratorPrototypeAsyncGeneratorQueueDequeueCode;
extern const int s_asyncGeneratorPrototypeAsyncGeneratorQueueDequeueCodeLength;
extern const JSC::ConstructAbility s_asyncGeneratorPrototypeAsyncGeneratorQueueDequeueCodeConstructAbility;
extern const char* const s_asyncGeneratorPrototypeAsyncGeneratorDequeueCode;
extern const int s_asyncGeneratorPrototypeAsyncGeneratorDequeueCodeLength;
extern const JSC::ConstructAbility s_asyncGeneratorPrototypeAsyncGeneratorDequeueCodeConstructAbility;
extern const char* const s_asyncGeneratorPrototypeIsExecutionStateCode;
extern const int s_asyncGeneratorPrototypeIsExecutionStateCodeLength;
extern const JSC::ConstructAbility s_asyncGeneratorPrototypeIsExecutionStateCodeConstructAbility;
extern const char* const s_asyncGeneratorPrototypeIsSuspendYieldStateCode;
extern const int s_asyncGeneratorPrototypeIsSuspendYieldStateCodeLength;
extern const JSC::ConstructAbility s_asyncGeneratorPrototypeIsSuspendYieldStateCodeConstructAbility;
extern const char* const s_asyncGeneratorPrototypeAsyncGeneratorRejectCode;
extern const int s_asyncGeneratorPrototypeAsyncGeneratorRejectCodeLength;
extern const JSC::ConstructAbility s_asyncGeneratorPrototypeAsyncGeneratorRejectCodeConstructAbility;
extern const char* const s_asyncGeneratorPrototypeAsyncGeneratorResolveCode;
extern const int s_asyncGeneratorPrototypeAsyncGeneratorResolveCodeLength;
extern const JSC::ConstructAbility s_asyncGeneratorPrototypeAsyncGeneratorResolveCodeConstructAbility;
extern const char* const s_asyncGeneratorPrototypeAsyncGeneratorYieldCode;
extern const int s_asyncGeneratorPrototypeAsyncGeneratorYieldCodeLength;
extern const JSC::ConstructAbility s_asyncGeneratorPrototypeAsyncGeneratorYieldCodeConstructAbility;
extern const char* const s_asyncGeneratorPrototypeAwaitValueCode;
extern const int s_asyncGeneratorPrototypeAwaitValueCodeLength;
extern const JSC::ConstructAbility s_asyncGeneratorPrototypeAwaitValueCodeConstructAbility;
extern const char* const s_asyncGeneratorPrototypeDoAsyncGeneratorBodyCallCode;
extern const int s_asyncGeneratorPrototypeDoAsyncGeneratorBodyCallCodeLength;
extern const JSC::ConstructAbility s_asyncGeneratorPrototypeDoAsyncGeneratorBodyCallCodeConstructAbility;
extern const char* const s_asyncGeneratorPrototypeAsyncGeneratorResumeNextCode;
extern const int s_asyncGeneratorPrototypeAsyncGeneratorResumeNextCodeLength;
extern const JSC::ConstructAbility s_asyncGeneratorPrototypeAsyncGeneratorResumeNextCodeConstructAbility;
extern const char* const s_asyncGeneratorPrototypeAsyncGeneratorEnqueueCode;
extern const int s_asyncGeneratorPrototypeAsyncGeneratorEnqueueCodeLength;
extern const JSC::ConstructAbility s_asyncGeneratorPrototypeAsyncGeneratorEnqueueCodeConstructAbility;
extern const char* const s_asyncGeneratorPrototypeNextCode;
extern const int s_asyncGeneratorPrototypeNextCodeLength;
extern const JSC::ConstructAbility s_asyncGeneratorPrototypeNextCodeConstructAbility;
extern const char* const s_asyncGeneratorPrototypeReturnCode;
extern const int s_asyncGeneratorPrototypeReturnCodeLength;
extern const JSC::ConstructAbility s_asyncGeneratorPrototypeReturnCodeConstructAbility;
extern const char* const s_asyncGeneratorPrototypeThrowCode;
extern const int s_asyncGeneratorPrototypeThrowCodeLength;
extern const JSC::ConstructAbility s_asyncGeneratorPrototypeThrowCodeConstructAbility;

#define JSC_FOREACH_ASYNCGENERATORPROTOTYPE_BUILTIN_DATA(macro) \
    macro(asyncGeneratorQueueIsEmpty, asyncGeneratorPrototypeAsyncGeneratorQueueIsEmpty, 1) \
    macro(asyncGeneratorQueueEnqueue, asyncGeneratorPrototypeAsyncGeneratorQueueEnqueue, 2) \
    macro(asyncGeneratorQueueDequeue, asyncGeneratorPrototypeAsyncGeneratorQueueDequeue, 1) \
    macro(asyncGeneratorDequeue, asyncGeneratorPrototypeAsyncGeneratorDequeue, 1) \
    macro(isExecutionState, asyncGeneratorPrototypeIsExecutionState, 1) \
    macro(isSuspendYieldState, asyncGeneratorPrototypeIsSuspendYieldState, 1) \
    macro(asyncGeneratorReject, asyncGeneratorPrototypeAsyncGeneratorReject, 2) \
    macro(asyncGeneratorResolve, asyncGeneratorPrototypeAsyncGeneratorResolve, 3) \
    macro(asyncGeneratorYield, asyncGeneratorPrototypeAsyncGeneratorYield, 3) \
    macro(awaitValue, asyncGeneratorPrototypeAwaitValue, 3) \
    macro(doAsyncGeneratorBodyCall, asyncGeneratorPrototypeDoAsyncGeneratorBodyCall, 3) \
    macro(asyncGeneratorResumeNext, asyncGeneratorPrototypeAsyncGeneratorResumeNext, 1) \
    macro(asyncGeneratorEnqueue, asyncGeneratorPrototypeAsyncGeneratorEnqueue, 3) \
    macro(next, asyncGeneratorPrototypeNext, 1) \
    macro(return, asyncGeneratorPrototypeReturn, 1) \
    macro(throw, asyncGeneratorPrototypeThrow, 1) \

/* AsyncIteratorPrototype */
extern const char* const s_asyncIteratorPrototypeSymbolAsyncIteratorGetterCode;
extern const int s_asyncIteratorPrototypeSymbolAsyncIteratorGetterCodeLength;
extern const JSC::ConstructAbility s_asyncIteratorPrototypeSymbolAsyncIteratorGetterCodeConstructAbility;

#define JSC_FOREACH_ASYNCITERATORPROTOTYPE_BUILTIN_DATA(macro) \
    macro(symbolAsyncIteratorGetter, asyncIteratorPrototypeSymbolAsyncIteratorGetter, 0) \

/* DatePrototype */
extern const char* const s_datePrototypeToLocaleStringCode;
extern const int s_datePrototypeToLocaleStringCodeLength;
extern const JSC::ConstructAbility s_datePrototypeToLocaleStringCodeConstructAbility;
extern const char* const s_datePrototypeToLocaleDateStringCode;
extern const int s_datePrototypeToLocaleDateStringCodeLength;
extern const JSC::ConstructAbility s_datePrototypeToLocaleDateStringCodeConstructAbility;
extern const char* const s_datePrototypeToLocaleTimeStringCode;
extern const int s_datePrototypeToLocaleTimeStringCodeLength;
extern const JSC::ConstructAbility s_datePrototypeToLocaleTimeStringCodeConstructAbility;

#define JSC_FOREACH_DATEPROTOTYPE_BUILTIN_DATA(macro) \
    macro(toLocaleString, datePrototypeToLocaleString, 0) \
    macro(toLocaleDateString, datePrototypeToLocaleDateString, 0) \
    macro(toLocaleTimeString, datePrototypeToLocaleTimeString, 0) \

/* FunctionPrototype */
extern const char* const s_functionPrototypeCallCode;
extern const int s_functionPrototypeCallCodeLength;
extern const JSC::ConstructAbility s_functionPrototypeCallCodeConstructAbility;
extern const char* const s_functionPrototypeApplyCode;
extern const int s_functionPrototypeApplyCodeLength;
extern const JSC::ConstructAbility s_functionPrototypeApplyCodeConstructAbility;
extern const char* const s_functionPrototypeSymbolHasInstanceCode;
extern const int s_functionPrototypeSymbolHasInstanceCodeLength;
extern const JSC::ConstructAbility s_functionPrototypeSymbolHasInstanceCodeConstructAbility;
extern const char* const s_functionPrototypeBindCode;
extern const int s_functionPrototypeBindCodeLength;
extern const JSC::ConstructAbility s_functionPrototypeBindCodeConstructAbility;

#define JSC_FOREACH_FUNCTIONPROTOTYPE_BUILTIN_DATA(macro) \
    macro(call, functionPrototypeCall, 1) \
    macro(apply, functionPrototypeApply, 2) \
    macro(symbolHasInstance, functionPrototypeSymbolHasInstance, 1) \
    macro(bind, functionPrototypeBind, 1) \

/* GeneratorPrototype */
extern const char* const s_generatorPrototypeGeneratorResumeCode;
extern const int s_generatorPrototypeGeneratorResumeCodeLength;
extern const JSC::ConstructAbility s_generatorPrototypeGeneratorResumeCodeConstructAbility;
extern const char* const s_generatorPrototypeNextCode;
extern const int s_generatorPrototypeNextCodeLength;
extern const JSC::ConstructAbility s_generatorPrototypeNextCodeConstructAbility;
extern const char* const s_generatorPrototypeReturnCode;
extern const int s_generatorPrototypeReturnCodeLength;
extern const JSC::ConstructAbility s_generatorPrototypeReturnCodeConstructAbility;
extern const char* const s_generatorPrototypeThrowCode;
extern const int s_generatorPrototypeThrowCodeLength;
extern const JSC::ConstructAbility s_generatorPrototypeThrowCodeConstructAbility;

#define JSC_FOREACH_GENERATORPROTOTYPE_BUILTIN_DATA(macro) \
    macro(generatorResume, generatorPrototypeGeneratorResume, 6) \
    macro(next, generatorPrototypeNext, 1) \
    macro(return, generatorPrototypeReturn, 1) \
    macro(throw, generatorPrototypeThrow, 1) \

/* GlobalObject */
extern const char* const s_globalObjectIsFiniteCode;
extern const int s_globalObjectIsFiniteCodeLength;
extern const JSC::ConstructAbility s_globalObjectIsFiniteCodeConstructAbility;
extern const char* const s_globalObjectIsNaNCode;
extern const int s_globalObjectIsNaNCodeLength;
extern const JSC::ConstructAbility s_globalObjectIsNaNCodeConstructAbility;

#define JSC_FOREACH_GLOBALOBJECT_BUILTIN_DATA(macro) \
    macro(isFinite, globalObjectIsFinite, 1) \
    macro(isNaN, globalObjectIsNaN, 1) \

/* GlobalOperations */
extern const char* const s_globalOperationsToIntegerCode;
extern const int s_globalOperationsToIntegerCodeLength;
extern const JSC::ConstructAbility s_globalOperationsToIntegerCodeConstructAbility;
extern const char* const s_globalOperationsToLengthCode;
extern const int s_globalOperationsToLengthCodeLength;
extern const JSC::ConstructAbility s_globalOperationsToLengthCodeConstructAbility;
extern const char* const s_globalOperationsIsDictionaryCode;
extern const int s_globalOperationsIsDictionaryCodeLength;
extern const JSC::ConstructAbility s_globalOperationsIsDictionaryCodeConstructAbility;
extern const char* const s_globalOperationsSpeciesGetterCode;
extern const int s_globalOperationsSpeciesGetterCodeLength;
extern const JSC::ConstructAbility s_globalOperationsSpeciesGetterCodeConstructAbility;
extern const char* const s_globalOperationsSpeciesConstructorCode;
extern const int s_globalOperationsSpeciesConstructorCodeLength;
extern const JSC::ConstructAbility s_globalOperationsSpeciesConstructorCodeConstructAbility;
extern const char* const s_globalOperationsCopyDataPropertiesCode;
extern const int s_globalOperationsCopyDataPropertiesCodeLength;
extern const JSC::ConstructAbility s_globalOperationsCopyDataPropertiesCodeConstructAbility;
extern const char* const s_globalOperationsCopyDataPropertiesNoExclusionsCode;
extern const int s_globalOperationsCopyDataPropertiesNoExclusionsCodeLength;
extern const JSC::ConstructAbility s_globalOperationsCopyDataPropertiesNoExclusionsCodeConstructAbility;

#define JSC_FOREACH_GLOBALOPERATIONS_BUILTIN_DATA(macro) \
    macro(toInteger, globalOperationsToInteger, 1) \
    macro(toLength, globalOperationsToLength, 1) \
    macro(isDictionary, globalOperationsIsDictionary, 1) \
    macro(speciesGetter, globalOperationsSpeciesGetter, 0) \
    macro(speciesConstructor, globalOperationsSpeciesConstructor, 2) \
    macro(copyDataProperties, globalOperationsCopyDataProperties, 3) \
    macro(copyDataPropertiesNoExclusions, globalOperationsCopyDataPropertiesNoExclusions, 2) \

/* InspectorInstrumentationObject */
extern const char* const s_inspectorInstrumentationObjectPromiseFulfilledCode;
extern const int s_inspectorInstrumentationObjectPromiseFulfilledCodeLength;
extern const JSC::ConstructAbility s_inspectorInstrumentationObjectPromiseFulfilledCodeConstructAbility;
extern const char* const s_inspectorInstrumentationObjectPromiseRejectedCode;
extern const int s_inspectorInstrumentationObjectPromiseRejectedCodeLength;
extern const JSC::ConstructAbility s_inspectorInstrumentationObjectPromiseRejectedCodeConstructAbility;

#define JSC_FOREACH_INSPECTORINSTRUMENTATIONOBJECT_BUILTIN_DATA(macro) \
    macro(promiseFulfilled, inspectorInstrumentationObjectPromiseFulfilled, 3) \
    macro(promiseRejected, inspectorInstrumentationObjectPromiseRejected, 3) \

/* InternalPromiseConstructor */
extern const char* const s_internalPromiseConstructorInternalAllCode;
extern const int s_internalPromiseConstructorInternalAllCodeLength;
extern const JSC::ConstructAbility s_internalPromiseConstructorInternalAllCodeConstructAbility;

#define JSC_FOREACH_INTERNALPROMISECONSTRUCTOR_BUILTIN_DATA(macro) \
    macro(internalAll, internalPromiseConstructorInternalAll, 1) \

/* IteratorHelpers */
extern const char* const s_iteratorHelpersPerformIterationCode;
extern const int s_iteratorHelpersPerformIterationCodeLength;
extern const JSC::ConstructAbility s_iteratorHelpersPerformIterationCodeConstructAbility;

#define JSC_FOREACH_ITERATORHELPERS_BUILTIN_DATA(macro) \
    macro(performIteration, iteratorHelpersPerformIteration, 1) \

/* IteratorPrototype */
extern const char* const s_iteratorPrototypeSymbolIteratorGetterCode;
extern const int s_iteratorPrototypeSymbolIteratorGetterCodeLength;
extern const JSC::ConstructAbility s_iteratorPrototypeSymbolIteratorGetterCodeConstructAbility;

#define JSC_FOREACH_ITERATORPROTOTYPE_BUILTIN_DATA(macro) \
    macro(symbolIteratorGetter, iteratorPrototypeSymbolIteratorGetter, 0) \

/* MapIteratorPrototype */
extern const char* const s_mapIteratorPrototypeMapIteratorNextCode;
extern const int s_mapIteratorPrototypeMapIteratorNextCodeLength;
extern const JSC::ConstructAbility s_mapIteratorPrototypeMapIteratorNextCodeConstructAbility;
extern const char* const s_mapIteratorPrototypeNextCode;
extern const int s_mapIteratorPrototypeNextCodeLength;
extern const JSC::ConstructAbility s_mapIteratorPrototypeNextCodeConstructAbility;

#define JSC_FOREACH_MAPITERATORPROTOTYPE_BUILTIN_DATA(macro) \
    macro(mapIteratorNext, mapIteratorPrototypeMapIteratorNext, 2) \
    macro(next, mapIteratorPrototypeNext, 0) \

/* MapPrototype */
extern const char* const s_mapPrototypeMapIteratorConstructorCode;
extern const int s_mapPrototypeMapIteratorConstructorCodeLength;
extern const JSC::ConstructAbility s_mapPrototypeMapIteratorConstructorCodeConstructAbility;
extern const char* const s_mapPrototypeValuesCode;
extern const int s_mapPrototypeValuesCodeLength;
extern const JSC::ConstructAbility s_mapPrototypeValuesCodeConstructAbility;
extern const char* const s_mapPrototypeKeysCode;
extern const int s_mapPrototypeKeysCodeLength;
extern const JSC::ConstructAbility s_mapPrototypeKeysCodeConstructAbility;
extern const char* const s_mapPrototypeEntriesCode;
extern const int s_mapPrototypeEntriesCodeLength;
extern const JSC::ConstructAbility s_mapPrototypeEntriesCodeConstructAbility;
extern const char* const s_mapPrototypeForEachCode;
extern const int s_mapPrototypeForEachCodeLength;
extern const JSC::ConstructAbility s_mapPrototypeForEachCodeConstructAbility;

#define JSC_FOREACH_MAPPROTOTYPE_BUILTIN_DATA(macro) \
    macro(MapIterator, mapPrototypeMapIteratorConstructor, 2) \
    macro(values, mapPrototypeValues, 0) \
    macro(keys, mapPrototypeKeys, 0) \
    macro(entries, mapPrototypeEntries, 0) \
    macro(forEach, mapPrototypeForEach, 1) \

/* ModuleLoader */
extern const char* const s_moduleLoaderSetStateToMaxCode;
extern const int s_moduleLoaderSetStateToMaxCodeLength;
extern const JSC::ConstructAbility s_moduleLoaderSetStateToMaxCodeConstructAbility;
extern const char* const s_moduleLoaderNewRegistryEntryCode;
extern const int s_moduleLoaderNewRegistryEntryCodeLength;
extern const JSC::ConstructAbility s_moduleLoaderNewRegistryEntryCodeConstructAbility;
extern const char* const s_moduleLoaderEnsureRegisteredCode;
extern const int s_moduleLoaderEnsureRegisteredCodeLength;
extern const JSC::ConstructAbility s_moduleLoaderEnsureRegisteredCodeConstructAbility;
extern const char* const s_moduleLoaderForceFulfillPromiseCode;
extern const int s_moduleLoaderForceFulfillPromiseCodeLength;
extern const JSC::ConstructAbility s_moduleLoaderForceFulfillPromiseCodeConstructAbility;
extern const char* const s_moduleLoaderFulfillFetchCode;
extern const int s_moduleLoaderFulfillFetchCodeLength;
extern const JSC::ConstructAbility s_moduleLoaderFulfillFetchCodeConstructAbility;
extern const char* const s_moduleLoaderRequestFetchCode;
extern const int s_moduleLoaderRequestFetchCodeLength;
extern const JSC::ConstructAbility s_moduleLoaderRequestFetchCodeConstructAbility;
extern const char* const s_moduleLoaderRequestInstantiateCode;
extern const int s_moduleLoaderRequestInstantiateCodeLength;
extern const JSC::ConstructAbility s_moduleLoaderRequestInstantiateCodeConstructAbility;
extern const char* const s_moduleLoaderRequestSatisfyCode;
extern const int s_moduleLoaderRequestSatisfyCodeLength;
extern const JSC::ConstructAbility s_moduleLoaderRequestSatisfyCodeConstructAbility;
extern const char* const s_moduleLoaderLinkCode;
extern const int s_moduleLoaderLinkCodeLength;
extern const JSC::ConstructAbility s_moduleLoaderLinkCodeConstructAbility;
extern const char* const s_moduleLoaderModuleEvaluationCode;
extern const int s_moduleLoaderModuleEvaluationCodeLength;
extern const JSC::ConstructAbility s_moduleLoaderModuleEvaluationCodeConstructAbility;
extern const char* const s_moduleLoaderProvideFetchCode;
extern const int s_moduleLoaderProvideFetchCodeLength;
extern const JSC::ConstructAbility s_moduleLoaderProvideFetchCodeConstructAbility;
extern const char* const s_moduleLoaderLoadModuleCode;
extern const int s_moduleLoaderLoadModuleCodeLength;
extern const JSC::ConstructAbility s_moduleLoaderLoadModuleCodeConstructAbility;
extern const char* const s_moduleLoaderLinkAndEvaluateModuleCode;
extern const int s_moduleLoaderLinkAndEvaluateModuleCodeLength;
extern const JSC::ConstructAbility s_moduleLoaderLinkAndEvaluateModuleCodeConstructAbility;
extern const char* const s_moduleLoaderLoadAndEvaluateModuleCode;
extern const int s_moduleLoaderLoadAndEvaluateModuleCodeLength;
extern const JSC::ConstructAbility s_moduleLoaderLoadAndEvaluateModuleCodeConstructAbility;
extern const char* const s_moduleLoaderRequestImportModuleCode;
extern const int s_moduleLoaderRequestImportModuleCodeLength;
extern const JSC::ConstructAbility s_moduleLoaderRequestImportModuleCodeConstructAbility;
extern const char* const s_moduleLoaderDependencyKeysIfEvaluatedCode;
extern const int s_moduleLoaderDependencyKeysIfEvaluatedCodeLength;
extern const JSC::ConstructAbility s_moduleLoaderDependencyKeysIfEvaluatedCodeConstructAbility;

#define JSC_FOREACH_MODULELOADER_BUILTIN_DATA(macro) \
    macro(setStateToMax, moduleLoaderSetStateToMax, 2) \
    macro(newRegistryEntry, moduleLoaderNewRegistryEntry, 1) \
    macro(ensureRegistered, moduleLoaderEnsureRegistered, 1) \
    macro(forceFulfillPromise, moduleLoaderForceFulfillPromise, 2) \
    macro(fulfillFetch, moduleLoaderFulfillFetch, 2) \
    macro(requestFetch, moduleLoaderRequestFetch, 3) \
    macro(requestInstantiate, moduleLoaderRequestInstantiate, 3) \
    macro(requestSatisfy, moduleLoaderRequestSatisfy, 4) \
    macro(link, moduleLoaderLink, 2) \
    macro(moduleEvaluation, moduleLoaderModuleEvaluation, 2) \
    macro(provideFetch, moduleLoaderProvideFetch, 2) \
    macro(loadModule, moduleLoaderLoadModule, 3) \
    macro(linkAndEvaluateModule, moduleLoaderLinkAndEvaluateModule, 2) \
    macro(loadAndEvaluateModule, moduleLoaderLoadAndEvaluateModule, 3) \
    macro(requestImportModule, moduleLoaderRequestImportModule, 3) \
    macro(dependencyKeysIfEvaluated, moduleLoaderDependencyKeysIfEvaluated, 1) \

/* NumberConstructor */
extern const char* const s_numberConstructorIsFiniteCode;
extern const int s_numberConstructorIsFiniteCodeLength;
extern const JSC::ConstructAbility s_numberConstructorIsFiniteCodeConstructAbility;
extern const char* const s_numberConstructorIsNaNCode;
extern const int s_numberConstructorIsNaNCodeLength;
extern const JSC::ConstructAbility s_numberConstructorIsNaNCodeConstructAbility;

#define JSC_FOREACH_NUMBERCONSTRUCTOR_BUILTIN_DATA(macro) \
    macro(isFinite, numberConstructorIsFinite, 1) \
    macro(isNaN, numberConstructorIsNaN, 1) \

/* ObjectConstructor */
extern const char* const s_objectConstructorEntriesCode;
extern const int s_objectConstructorEntriesCodeLength;
extern const JSC::ConstructAbility s_objectConstructorEntriesCodeConstructAbility;
extern const char* const s_objectConstructorFromEntriesCode;
extern const int s_objectConstructorFromEntriesCodeLength;
extern const JSC::ConstructAbility s_objectConstructorFromEntriesCodeConstructAbility;

#define JSC_FOREACH_OBJECTCONSTRUCTOR_BUILTIN_DATA(macro) \
    macro(entries, objectConstructorEntries, 1) \
    macro(fromEntries, objectConstructorFromEntries, 1) \

/* PromiseConstructor */
extern const char* const s_promiseConstructorAllCode;
extern const int s_promiseConstructorAllCodeLength;
extern const JSC::ConstructAbility s_promiseConstructorAllCodeConstructAbility;
extern const char* const s_promiseConstructorAllSettledCode;
extern const int s_promiseConstructorAllSettledCodeLength;
extern const JSC::ConstructAbility s_promiseConstructorAllSettledCodeConstructAbility;
extern const char* const s_promiseConstructorRaceCode;
extern const int s_promiseConstructorRaceCodeLength;
extern const JSC::ConstructAbility s_promiseConstructorRaceCodeConstructAbility;
extern const char* const s_promiseConstructorRejectCode;
extern const int s_promiseConstructorRejectCodeLength;
extern const JSC::ConstructAbility s_promiseConstructorRejectCodeConstructAbility;
extern const char* const s_promiseConstructorResolveCode;
extern const int s_promiseConstructorResolveCodeLength;
extern const JSC::ConstructAbility s_promiseConstructorResolveCodeConstructAbility;

#define JSC_FOREACH_PROMISECONSTRUCTOR_BUILTIN_DATA(macro) \
    macro(all, promiseConstructorAll, 1) \
    macro(allSettled, promiseConstructorAllSettled, 1) \
    macro(race, promiseConstructorRace, 1) \
    macro(reject, promiseConstructorReject, 1) \
    macro(resolve, promiseConstructorResolve, 1) \

/* PromiseOperations */
extern const char* const s_promiseOperationsIsPromiseCode;
extern const int s_promiseOperationsIsPromiseCodeLength;
extern const JSC::ConstructAbility s_promiseOperationsIsPromiseCodeConstructAbility;
extern const char* const s_promiseOperationsNewPromiseReactionCode;
extern const int s_promiseOperationsNewPromiseReactionCodeLength;
extern const JSC::ConstructAbility s_promiseOperationsNewPromiseReactionCodeConstructAbility;
extern const char* const s_promiseOperationsNewPromiseCapabilityCode;
extern const int s_promiseOperationsNewPromiseCapabilityCodeLength;
extern const JSC::ConstructAbility s_promiseOperationsNewPromiseCapabilityCodeConstructAbility;
extern const char* const s_promiseOperationsNewHandledRejectedPromiseCode;
extern const int s_promiseOperationsNewHandledRejectedPromiseCodeLength;
extern const JSC::ConstructAbility s_promiseOperationsNewHandledRejectedPromiseCodeConstructAbility;
extern const char* const s_promiseOperationsTriggerPromiseReactionsCode;
extern const int s_promiseOperationsTriggerPromiseReactionsCodeLength;
extern const JSC::ConstructAbility s_promiseOperationsTriggerPromiseReactionsCodeConstructAbility;
extern const char* const s_promiseOperationsRejectPromiseCode;
extern const int s_promiseOperationsRejectPromiseCodeLength;
extern const JSC::ConstructAbility s_promiseOperationsRejectPromiseCodeConstructAbility;
extern const char* const s_promiseOperationsFulfillPromiseCode;
extern const int s_promiseOperationsFulfillPromiseCodeLength;
extern const JSC::ConstructAbility s_promiseOperationsFulfillPromiseCodeConstructAbility;
extern const char* const s_promiseOperationsCreateResolvingFunctionsCode;
extern const int s_promiseOperationsCreateResolvingFunctionsCodeLength;
extern const JSC::ConstructAbility s_promiseOperationsCreateResolvingFunctionsCodeConstructAbility;
extern const char* const s_promiseOperationsPromiseReactionJobCode;
extern const int s_promiseOperationsPromiseReactionJobCodeLength;
extern const JSC::ConstructAbility s_promiseOperationsPromiseReactionJobCodeConstructAbility;
extern const char* const s_promiseOperationsPromiseResolveThenableJobCode;
extern const int s_promiseOperationsPromiseResolveThenableJobCodeLength;
extern const JSC::ConstructAbility s_promiseOperationsPromiseResolveThenableJobCodeConstructAbility;
extern const char* const s_promiseOperationsInitializePromiseCode;
extern const int s_promiseOperationsInitializePromiseCodeLength;
extern const JSC::ConstructAbility s_promiseOperationsInitializePromiseCodeConstructAbility;

#define JSC_FOREACH_PROMISEOPERATIONS_BUILTIN_DATA(macro) \
    macro(isPromise, promiseOperationsIsPromise, 1) \
    macro(newPromiseReaction, promiseOperationsNewPromiseReaction, 3) \
    macro(newPromiseCapability, promiseOperationsNewPromiseCapability, 1) \
    macro(newHandledRejectedPromise, promiseOperationsNewHandledRejectedPromise, 1) \
    macro(triggerPromiseReactions, promiseOperationsTriggerPromiseReactions, 3) \
    macro(rejectPromise, promiseOperationsRejectPromise, 2) \
    macro(fulfillPromise, promiseOperationsFulfillPromise, 2) \
    macro(createResolvingFunctions, promiseOperationsCreateResolvingFunctions, 1) \
    macro(promiseReactionJob, promiseOperationsPromiseReactionJob, 3) \
    macro(promiseResolveThenableJob, promiseOperationsPromiseResolveThenableJob, 3) \
    macro(initializePromise, promiseOperationsInitializePromise, 1) \

/* PromisePrototype */
extern const char* const s_promisePrototypeCatchCode;
extern const int s_promisePrototypeCatchCodeLength;
extern const JSC::ConstructAbility s_promisePrototypeCatchCodeConstructAbility;
extern const char* const s_promisePrototypeThenCode;
extern const int s_promisePrototypeThenCodeLength;
extern const JSC::ConstructAbility s_promisePrototypeThenCodeConstructAbility;
extern const char* const s_promisePrototypeFinallyCode;
extern const int s_promisePrototypeFinallyCodeLength;
extern const JSC::ConstructAbility s_promisePrototypeFinallyCodeConstructAbility;
extern const char* const s_promisePrototypeGetThenFinallyCode;
extern const int s_promisePrototypeGetThenFinallyCodeLength;
extern const JSC::ConstructAbility s_promisePrototypeGetThenFinallyCodeConstructAbility;
extern const char* const s_promisePrototypeGetCatchFinallyCode;
extern const int s_promisePrototypeGetCatchFinallyCodeLength;
extern const JSC::ConstructAbility s_promisePrototypeGetCatchFinallyCodeConstructAbility;

#define JSC_FOREACH_PROMISEPROTOTYPE_BUILTIN_DATA(macro) \
    macro(catch, promisePrototypeCatch, 1) \
    macro(then, promisePrototypeThen, 2) \
    macro(finally, promisePrototypeFinally, 1) \
    macro(getThenFinally, promisePrototypeGetThenFinally, 2) \
    macro(getCatchFinally, promisePrototypeGetCatchFinally, 2) \

/* ReflectObject */
extern const char* const s_reflectObjectApplyCode;
extern const int s_reflectObjectApplyCodeLength;
extern const JSC::ConstructAbility s_reflectObjectApplyCodeConstructAbility;
extern const char* const s_reflectObjectDeletePropertyCode;
extern const int s_reflectObjectDeletePropertyCodeLength;
extern const JSC::ConstructAbility s_reflectObjectDeletePropertyCodeConstructAbility;
extern const char* const s_reflectObjectHasCode;
extern const int s_reflectObjectHasCodeLength;
extern const JSC::ConstructAbility s_reflectObjectHasCodeConstructAbility;

#define JSC_FOREACH_REFLECTOBJECT_BUILTIN_DATA(macro) \
    macro(apply, reflectObjectApply, 3) \
    macro(deleteProperty, reflectObjectDeleteProperty, 2) \
    macro(has, reflectObjectHas, 2) \

/* RegExpPrototype */
extern const char* const s_regExpPrototypeRegExpStringIteratorConstructorCode;
extern const int s_regExpPrototypeRegExpStringIteratorConstructorCodeLength;
extern const JSC::ConstructAbility s_regExpPrototypeRegExpStringIteratorConstructorCodeConstructAbility;
extern const char* const s_regExpPrototypeAdvanceStringIndexCode;
extern const int s_regExpPrototypeAdvanceStringIndexCodeLength;
extern const JSC::ConstructAbility s_regExpPrototypeAdvanceStringIndexCodeConstructAbility;
extern const char* const s_regExpPrototypeRegExpExecCode;
extern const int s_regExpPrototypeRegExpExecCodeLength;
extern const JSC::ConstructAbility s_regExpPrototypeRegExpExecCodeConstructAbility;
extern const char* const s_regExpPrototypeHasObservableSideEffectsForRegExpMatchCode;
extern const int s_regExpPrototypeHasObservableSideEffectsForRegExpMatchCodeLength;
extern const JSC::ConstructAbility s_regExpPrototypeHasObservableSideEffectsForRegExpMatchCodeConstructAbility;
extern const char* const s_regExpPrototypeMatchSlowCode;
extern const int s_regExpPrototypeMatchSlowCodeLength;
extern const JSC::ConstructAbility s_regExpPrototypeMatchSlowCodeConstructAbility;
extern const char* const s_regExpPrototypeMatchCode;
extern const int s_regExpPrototypeMatchCodeLength;
extern const JSC::ConstructAbility s_regExpPrototypeMatchCodeConstructAbility;
extern const char* const s_regExpPrototypeMatchAllCode;
extern const int s_regExpPrototypeMatchAllCodeLength;
extern const JSC::ConstructAbility s_regExpPrototypeMatchAllCodeConstructAbility;
extern const char* const s_regExpPrototypeReplaceCode;
extern const int s_regExpPrototypeReplaceCodeLength;
extern const JSC::ConstructAbility s_regExpPrototypeReplaceCodeConstructAbility;
extern const char* const s_regExpPrototypeSearchCode;
extern const int s_regExpPrototypeSearchCodeLength;
extern const JSC::ConstructAbility s_regExpPrototypeSearchCodeConstructAbility;
extern const char* const s_regExpPrototypeHasObservableSideEffectsForRegExpSplitCode;
extern const int s_regExpPrototypeHasObservableSideEffectsForRegExpSplitCodeLength;
extern const JSC::ConstructAbility s_regExpPrototypeHasObservableSideEffectsForRegExpSplitCodeConstructAbility;
extern const char* const s_regExpPrototypeSplitCode;
extern const int s_regExpPrototypeSplitCodeLength;
extern const JSC::ConstructAbility s_regExpPrototypeSplitCodeConstructAbility;
extern const char* const s_regExpPrototypeTestCode;
extern const int s_regExpPrototypeTestCodeLength;
extern const JSC::ConstructAbility s_regExpPrototypeTestCodeConstructAbility;

#define JSC_FOREACH_REGEXPPROTOTYPE_BUILTIN_DATA(macro) \
    macro(RegExpStringIterator, regExpPrototypeRegExpStringIteratorConstructor, 4) \
    macro(advanceStringIndex, regExpPrototypeAdvanceStringIndex, 3) \
    macro(regExpExec, regExpPrototypeRegExpExec, 2) \
    macro(hasObservableSideEffectsForRegExpMatch, regExpPrototypeHasObservableSideEffectsForRegExpMatch, 1) \
    macro(matchSlow, regExpPrototypeMatchSlow, 2) \
    macro(match, regExpPrototypeMatch, 1) \
    macro(matchAll, regExpPrototypeMatchAll, 1) \
    macro(replace, regExpPrototypeReplace, 2) \
    macro(search, regExpPrototypeSearch, 1) \
    macro(hasObservableSideEffectsForRegExpSplit, regExpPrototypeHasObservableSideEffectsForRegExpSplit, 1) \
    macro(split, regExpPrototypeSplit, 2) \
    macro(test, regExpPrototypeTest, 1) \

/* RegExpStringIteratorPrototype */
extern const char* const s_regExpStringIteratorPrototypeNextCode;
extern const int s_regExpStringIteratorPrototypeNextCodeLength;
extern const JSC::ConstructAbility s_regExpStringIteratorPrototypeNextCodeConstructAbility;

#define JSC_FOREACH_REGEXPSTRINGITERATORPROTOTYPE_BUILTIN_DATA(macro) \
    macro(next, regExpStringIteratorPrototypeNext, 0) \

/* SetIteratorPrototype */
extern const char* const s_setIteratorPrototypeSetIteratorNextCode;
extern const int s_setIteratorPrototypeSetIteratorNextCodeLength;
extern const JSC::ConstructAbility s_setIteratorPrototypeSetIteratorNextCodeConstructAbility;
extern const char* const s_setIteratorPrototypeNextCode;
extern const int s_setIteratorPrototypeNextCodeLength;
extern const JSC::ConstructAbility s_setIteratorPrototypeNextCodeConstructAbility;

#define JSC_FOREACH_SETITERATORPROTOTYPE_BUILTIN_DATA(macro) \
    macro(setIteratorNext, setIteratorPrototypeSetIteratorNext, 2) \
    macro(next, setIteratorPrototypeNext, 0) \

/* SetPrototype */
extern const char* const s_setPrototypeSetIteratorConstructorCode;
extern const int s_setPrototypeSetIteratorConstructorCodeLength;
extern const JSC::ConstructAbility s_setPrototypeSetIteratorConstructorCodeConstructAbility;
extern const char* const s_setPrototypeValuesCode;
extern const int s_setPrototypeValuesCodeLength;
extern const JSC::ConstructAbility s_setPrototypeValuesCodeConstructAbility;
extern const char* const s_setPrototypeEntriesCode;
extern const int s_setPrototypeEntriesCodeLength;
extern const JSC::ConstructAbility s_setPrototypeEntriesCodeConstructAbility;
extern const char* const s_setPrototypeForEachCode;
extern const int s_setPrototypeForEachCodeLength;
extern const JSC::ConstructAbility s_setPrototypeForEachCodeConstructAbility;

#define JSC_FOREACH_SETPROTOTYPE_BUILTIN_DATA(macro) \
    macro(SetIterator, setPrototypeSetIteratorConstructor, 2) \
    macro(values, setPrototypeValues, 0) \
    macro(entries, setPrototypeEntries, 0) \
    macro(forEach, setPrototypeForEach, 1) \

/* StringConstructor */
extern const char* const s_stringConstructorRawCode;
extern const int s_stringConstructorRawCodeLength;
extern const JSC::ConstructAbility s_stringConstructorRawCodeConstructAbility;

#define JSC_FOREACH_STRINGCONSTRUCTOR_BUILTIN_DATA(macro) \
    macro(raw, stringConstructorRaw, 1) \

/* StringIteratorPrototype */
extern const char* const s_stringIteratorPrototypeNextCode;
extern const int s_stringIteratorPrototypeNextCodeLength;
extern const JSC::ConstructAbility s_stringIteratorPrototypeNextCodeConstructAbility;

#define JSC_FOREACH_STRINGITERATORPROTOTYPE_BUILTIN_DATA(macro) \
    macro(next, stringIteratorPrototypeNext, 0) \

/* StringPrototype */
extern const char* const s_stringPrototypeMatchCode;
extern const int s_stringPrototypeMatchCodeLength;
extern const JSC::ConstructAbility s_stringPrototypeMatchCodeConstructAbility;
extern const char* const s_stringPrototypeMatchAllCode;
extern const int s_stringPrototypeMatchAllCodeLength;
extern const JSC::ConstructAbility s_stringPrototypeMatchAllCodeConstructAbility;
extern const char* const s_stringPrototypeRepeatSlowPathCode;
extern const int s_stringPrototypeRepeatSlowPathCodeLength;
extern const JSC::ConstructAbility s_stringPrototypeRepeatSlowPathCodeConstructAbility;
extern const char* const s_stringPrototypeRepeatCharactersSlowPathCode;
extern const int s_stringPrototypeRepeatCharactersSlowPathCodeLength;
extern const JSC::ConstructAbility s_stringPrototypeRepeatCharactersSlowPathCodeConstructAbility;
extern const char* const s_stringPrototypeRepeatCode;
extern const int s_stringPrototypeRepeatCodeLength;
extern const JSC::ConstructAbility s_stringPrototypeRepeatCodeConstructAbility;
extern const char* const s_stringPrototypePadStartCode;
extern const int s_stringPrototypePadStartCodeLength;
extern const JSC::ConstructAbility s_stringPrototypePadStartCodeConstructAbility;
extern const char* const s_stringPrototypePadEndCode;
extern const int s_stringPrototypePadEndCodeLength;
extern const JSC::ConstructAbility s_stringPrototypePadEndCodeConstructAbility;
extern const char* const s_stringPrototypeHasObservableSideEffectsForStringReplaceCode;
extern const int s_stringPrototypeHasObservableSideEffectsForStringReplaceCodeLength;
extern const JSC::ConstructAbility s_stringPrototypeHasObservableSideEffectsForStringReplaceCodeConstructAbility;
extern const char* const s_stringPrototypeReplaceCode;
extern const int s_stringPrototypeReplaceCodeLength;
extern const JSC::ConstructAbility s_stringPrototypeReplaceCodeConstructAbility;
extern const char* const s_stringPrototypeSearchCode;
extern const int s_stringPrototypeSearchCodeLength;
extern const JSC::ConstructAbility s_stringPrototypeSearchCodeConstructAbility;
extern const char* const s_stringPrototypeSplitCode;
extern const int s_stringPrototypeSplitCodeLength;
extern const JSC::ConstructAbility s_stringPrototypeSplitCodeConstructAbility;
extern const char* const s_stringPrototypeStringConcatSlowPathCode;
extern const int s_stringPrototypeStringConcatSlowPathCodeLength;
extern const JSC::ConstructAbility s_stringPrototypeStringConcatSlowPathCodeConstructAbility;
extern const char* const s_stringPrototypeConcatCode;
extern const int s_stringPrototypeConcatCodeLength;
extern const JSC::ConstructAbility s_stringPrototypeConcatCodeConstructAbility;
extern const char* const s_stringPrototypeCreateHTMLCode;
extern const int s_stringPrototypeCreateHTMLCodeLength;
extern const JSC::ConstructAbility s_stringPrototypeCreateHTMLCodeConstructAbility;
extern const char* const s_stringPrototypeAnchorCode;
extern const int s_stringPrototypeAnchorCodeLength;
extern const JSC::ConstructAbility s_stringPrototypeAnchorCodeConstructAbility;
extern const char* const s_stringPrototypeBigCode;
extern const int s_stringPrototypeBigCodeLength;
extern const JSC::ConstructAbility s_stringPrototypeBigCodeConstructAbility;
extern const char* const s_stringPrototypeBlinkCode;
extern const int s_stringPrototypeBlinkCodeLength;
extern const JSC::ConstructAbility s_stringPrototypeBlinkCodeConstructAbility;
extern const char* const s_stringPrototypeBoldCode;
extern const int s_stringPrototypeBoldCodeLength;
extern const JSC::ConstructAbility s_stringPrototypeBoldCodeConstructAbility;
extern const char* const s_stringPrototypeFixedCode;
extern const int s_stringPrototypeFixedCodeLength;
extern const JSC::ConstructAbility s_stringPrototypeFixedCodeConstructAbility;
extern const char* const s_stringPrototypeFontcolorCode;
extern const int s_stringPrototypeFontcolorCodeLength;
extern const JSC::ConstructAbility s_stringPrototypeFontcolorCodeConstructAbility;
extern const char* const s_stringPrototypeFontsizeCode;
extern const int s_stringPrototypeFontsizeCodeLength;
extern const JSC::ConstructAbility s_stringPrototypeFontsizeCodeConstructAbility;
extern const char* const s_stringPrototypeItalicsCode;
extern const int s_stringPrototypeItalicsCodeLength;
extern const JSC::ConstructAbility s_stringPrototypeItalicsCodeConstructAbility;
extern const char* const s_stringPrototypeLinkCode;
extern const int s_stringPrototypeLinkCodeLength;
extern const JSC::ConstructAbility s_stringPrototypeLinkCodeConstructAbility;
extern const char* const s_stringPrototypeSmallCode;
extern const int s_stringPrototypeSmallCodeLength;
extern const JSC::ConstructAbility s_stringPrototypeSmallCodeConstructAbility;
extern const char* const s_stringPrototypeStrikeCode;
extern const int s_stringPrototypeStrikeCodeLength;
extern const JSC::ConstructAbility s_stringPrototypeStrikeCodeConstructAbility;
extern const char* const s_stringPrototypeSubCode;
extern const int s_stringPrototypeSubCodeLength;
extern const JSC::ConstructAbility s_stringPrototypeSubCodeConstructAbility;
extern const char* const s_stringPrototypeSupCode;
extern const int s_stringPrototypeSupCodeLength;
extern const JSC::ConstructAbility s_stringPrototypeSupCodeConstructAbility;

#define JSC_FOREACH_STRINGPROTOTYPE_BUILTIN_DATA(macro) \
    macro(match, stringPrototypeMatch, 1) \
    macro(matchAll, stringPrototypeMatchAll, 1) \
    macro(repeatSlowPath, stringPrototypeRepeatSlowPath, 2) \
    macro(repeatCharactersSlowPath, stringPrototypeRepeatCharactersSlowPath, 2) \
    macro(repeat, stringPrototypeRepeat, 1) \
    macro(padStart, stringPrototypePadStart, 1) \
    macro(padEnd, stringPrototypePadEnd, 1) \
    macro(hasObservableSideEffectsForStringReplace, stringPrototypeHasObservableSideEffectsForStringReplace, 2) \
    macro(replace, stringPrototypeReplace, 2) \
    macro(search, stringPrototypeSearch, 1) \
    macro(split, stringPrototypeSplit, 2) \
    macro(stringConcatSlowPath, stringPrototypeStringConcatSlowPath, 0) \
    macro(concat, stringPrototypeConcat, 1) \
    macro(createHTML, stringPrototypeCreateHTML, 5) \
    macro(anchor, stringPrototypeAnchor, 1) \
    macro(big, stringPrototypeBig, 0) \
    macro(blink, stringPrototypeBlink, 0) \
    macro(bold, stringPrototypeBold, 0) \
    macro(fixed, stringPrototypeFixed, 0) \
    macro(fontcolor, stringPrototypeFontcolor, 1) \
    macro(fontsize, stringPrototypeFontsize, 1) \
    macro(italics, stringPrototypeItalics, 0) \
    macro(link, stringPrototypeLink, 1) \
    macro(small, stringPrototypeSmall, 0) \
    macro(strike, stringPrototypeStrike, 0) \
    macro(sub, stringPrototypeSub, 0) \
    macro(sup, stringPrototypeSup, 0) \

/* TypedArrayConstructor */
extern const char* const s_typedArrayConstructorOfCode;
extern const int s_typedArrayConstructorOfCodeLength;
extern const JSC::ConstructAbility s_typedArrayConstructorOfCodeConstructAbility;
extern const char* const s_typedArrayConstructorFromCode;
extern const int s_typedArrayConstructorFromCodeLength;
extern const JSC::ConstructAbility s_typedArrayConstructorFromCodeConstructAbility;
extern const char* const s_typedArrayConstructorAllocateInt8ArrayCode;
extern const int s_typedArrayConstructorAllocateInt8ArrayCodeLength;
extern const JSC::ConstructAbility s_typedArrayConstructorAllocateInt8ArrayCodeConstructAbility;
extern const char* const s_typedArrayConstructorAllocateInt16ArrayCode;
extern const int s_typedArrayConstructorAllocateInt16ArrayCodeLength;
extern const JSC::ConstructAbility s_typedArrayConstructorAllocateInt16ArrayCodeConstructAbility;
extern const char* const s_typedArrayConstructorAllocateInt32ArrayCode;
extern const int s_typedArrayConstructorAllocateInt32ArrayCodeLength;
extern const JSC::ConstructAbility s_typedArrayConstructorAllocateInt32ArrayCodeConstructAbility;
extern const char* const s_typedArrayConstructorAllocateUint32ArrayCode;
extern const int s_typedArrayConstructorAllocateUint32ArrayCodeLength;
extern const JSC::ConstructAbility s_typedArrayConstructorAllocateUint32ArrayCodeConstructAbility;
extern const char* const s_typedArrayConstructorAllocateUint16ArrayCode;
extern const int s_typedArrayConstructorAllocateUint16ArrayCodeLength;
extern const JSC::ConstructAbility s_typedArrayConstructorAllocateUint16ArrayCodeConstructAbility;
extern const char* const s_typedArrayConstructorAllocateUint8ArrayCode;
extern const int s_typedArrayConstructorAllocateUint8ArrayCodeLength;
extern const JSC::ConstructAbility s_typedArrayConstructorAllocateUint8ArrayCodeConstructAbility;
extern const char* const s_typedArrayConstructorAllocateUint8ClampedArrayCode;
extern const int s_typedArrayConstructorAllocateUint8ClampedArrayCodeLength;
extern const JSC::ConstructAbility s_typedArrayConstructorAllocateUint8ClampedArrayCodeConstructAbility;
extern const char* const s_typedArrayConstructorAllocateFloat32ArrayCode;
extern const int s_typedArrayConstructorAllocateFloat32ArrayCodeLength;
extern const JSC::ConstructAbility s_typedArrayConstructorAllocateFloat32ArrayCodeConstructAbility;
extern const char* const s_typedArrayConstructorAllocateFloat64ArrayCode;
extern const int s_typedArrayConstructorAllocateFloat64ArrayCodeLength;
extern const JSC::ConstructAbility s_typedArrayConstructorAllocateFloat64ArrayCodeConstructAbility;

#define JSC_FOREACH_TYPEDARRAYCONSTRUCTOR_BUILTIN_DATA(macro) \
    macro(of, typedArrayConstructorOf, 0) \
    macro(from, typedArrayConstructorFrom, 1) \
    macro(allocateInt8Array, typedArrayConstructorAllocateInt8Array, 1) \
    macro(allocateInt16Array, typedArrayConstructorAllocateInt16Array, 1) \
    macro(allocateInt32Array, typedArrayConstructorAllocateInt32Array, 1) \
    macro(allocateUint32Array, typedArrayConstructorAllocateUint32Array, 1) \
    macro(allocateUint16Array, typedArrayConstructorAllocateUint16Array, 1) \
    macro(allocateUint8Array, typedArrayConstructorAllocateUint8Array, 1) \
    macro(allocateUint8ClampedArray, typedArrayConstructorAllocateUint8ClampedArray, 1) \
    macro(allocateFloat32Array, typedArrayConstructorAllocateFloat32Array, 1) \
    macro(allocateFloat64Array, typedArrayConstructorAllocateFloat64Array, 1) \

/* TypedArrayPrototype */
extern const char* const s_typedArrayPrototypeTypedArraySpeciesConstructorCode;
extern const int s_typedArrayPrototypeTypedArraySpeciesConstructorCodeLength;
extern const JSC::ConstructAbility s_typedArrayPrototypeTypedArraySpeciesConstructorCodeConstructAbility;
extern const char* const s_typedArrayPrototypeTypedArrayClampArgumentToStartOrEndCode;
extern const int s_typedArrayPrototypeTypedArrayClampArgumentToStartOrEndCodeLength;
extern const JSC::ConstructAbility s_typedArrayPrototypeTypedArrayClampArgumentToStartOrEndCodeConstructAbility;
extern const char* const s_typedArrayPrototypeValuesCode;
extern const int s_typedArrayPrototypeValuesCodeLength;
extern const JSC::ConstructAbility s_typedArrayPrototypeValuesCodeConstructAbility;
extern const char* const s_typedArrayPrototypeKeysCode;
extern const int s_typedArrayPrototypeKeysCodeLength;
extern const JSC::ConstructAbility s_typedArrayPrototypeKeysCodeConstructAbility;
extern const char* const s_typedArrayPrototypeEntriesCode;
extern const int s_typedArrayPrototypeEntriesCodeLength;
extern const JSC::ConstructAbility s_typedArrayPrototypeEntriesCodeConstructAbility;
extern const char* const s_typedArrayPrototypeEveryCode;
extern const int s_typedArrayPrototypeEveryCodeLength;
extern const JSC::ConstructAbility s_typedArrayPrototypeEveryCodeConstructAbility;
extern const char* const s_typedArrayPrototypeFillCode;
extern const int s_typedArrayPrototypeFillCodeLength;
extern const JSC::ConstructAbility s_typedArrayPrototypeFillCodeConstructAbility;
extern const char* const s_typedArrayPrototypeFindCode;
extern const int s_typedArrayPrototypeFindCodeLength;
extern const JSC::ConstructAbility s_typedArrayPrototypeFindCodeConstructAbility;
extern const char* const s_typedArrayPrototypeFindIndexCode;
extern const int s_typedArrayPrototypeFindIndexCodeLength;
extern const JSC::ConstructAbility s_typedArrayPrototypeFindIndexCodeConstructAbility;
extern const char* const s_typedArrayPrototypeForEachCode;
extern const int s_typedArrayPrototypeForEachCodeLength;
extern const JSC::ConstructAbility s_typedArrayPrototypeForEachCodeConstructAbility;
extern const char* const s_typedArrayPrototypeSomeCode;
extern const int s_typedArrayPrototypeSomeCodeLength;
extern const JSC::ConstructAbility s_typedArrayPrototypeSomeCodeConstructAbility;
extern const char* const s_typedArrayPrototypeSortCode;
extern const int s_typedArrayPrototypeSortCodeLength;
extern const JSC::ConstructAbility s_typedArrayPrototypeSortCodeConstructAbility;
extern const char* const s_typedArrayPrototypeSubarrayCode;
extern const int s_typedArrayPrototypeSubarrayCodeLength;
extern const JSC::ConstructAbility s_typedArrayPrototypeSubarrayCodeConstructAbility;
extern const char* const s_typedArrayPrototypeReduceCode;
extern const int s_typedArrayPrototypeReduceCodeLength;
extern const JSC::ConstructAbility s_typedArrayPrototypeReduceCodeConstructAbility;
extern const char* const s_typedArrayPrototypeReduceRightCode;
extern const int s_typedArrayPrototypeReduceRightCodeLength;
extern const JSC::ConstructAbility s_typedArrayPrototypeReduceRightCodeConstructAbility;
extern const char* const s_typedArrayPrototypeMapCode;
extern const int s_typedArrayPrototypeMapCodeLength;
extern const JSC::ConstructAbility s_typedArrayPrototypeMapCodeConstructAbility;
extern const char* const s_typedArrayPrototypeFilterCode;
extern const int s_typedArrayPrototypeFilterCodeLength;
extern const JSC::ConstructAbility s_typedArrayPrototypeFilterCodeConstructAbility;
extern const char* const s_typedArrayPrototypeToLocaleStringCode;
extern const int s_typedArrayPrototypeToLocaleStringCodeLength;
extern const JSC::ConstructAbility s_typedArrayPrototypeToLocaleStringCodeConstructAbility;

#define JSC_FOREACH_TYPEDARRAYPROTOTYPE_BUILTIN_DATA(macro) \
    macro(typedArraySpeciesConstructor, typedArrayPrototypeTypedArraySpeciesConstructor, 1) \
    macro(typedArrayClampArgumentToStartOrEnd, typedArrayPrototypeTypedArrayClampArgumentToStartOrEnd, 3) \
    macro(values, typedArrayPrototypeValues, 0) \
    macro(keys, typedArrayPrototypeKeys, 0) \
    macro(entries, typedArrayPrototypeEntries, 0) \
    macro(every, typedArrayPrototypeEvery, 1) \
    macro(fill, typedArrayPrototypeFill, 1) \
    macro(find, typedArrayPrototypeFind, 1) \
    macro(findIndex, typedArrayPrototypeFindIndex, 1) \
    macro(forEach, typedArrayPrototypeForEach, 1) \
    macro(some, typedArrayPrototypeSome, 1) \
    macro(sort, typedArrayPrototypeSort, 1) \
    macro(subarray, typedArrayPrototypeSubarray, 2) \
    macro(reduce, typedArrayPrototypeReduce, 1) \
    macro(reduceRight, typedArrayPrototypeReduceRight, 1) \
    macro(map, typedArrayPrototypeMap, 1) \
    macro(filter, typedArrayPrototypeFilter, 1) \
    macro(toLocaleString, typedArrayPrototypeToLocaleString, 0) \

/* WebAssemblyPrototype */
extern const char* const s_webAssemblyPrototypeCompileStreamingCode;
extern const int s_webAssemblyPrototypeCompileStreamingCodeLength;
extern const JSC::ConstructAbility s_webAssemblyPrototypeCompileStreamingCodeConstructAbility;
extern const char* const s_webAssemblyPrototypeInstantiateStreamingCode;
extern const int s_webAssemblyPrototypeInstantiateStreamingCodeLength;
extern const JSC::ConstructAbility s_webAssemblyPrototypeInstantiateStreamingCodeConstructAbility;

#define JSC_FOREACH_WEBASSEMBLYPROTOTYPE_BUILTIN_DATA(macro) \
    macro(compileStreaming, webAssemblyPrototypeCompileStreaming, 1) \
    macro(instantiateStreaming, webAssemblyPrototypeInstantiateStreaming, 1) \

#define JSC_FOREACH_BUILTIN_CODE(macro) \
    macro(arrayPrototypeArrayIteratorConstructorCode, ArrayIterator, static_cast<const char*>(nullptr), s_arrayPrototypeArrayIteratorConstructorCodeLength) \
    macro(asyncFromSyncIteratorPrototypeAsyncFromSyncIteratorConstructorCode, AsyncFromSyncIterator, static_cast<const char*>(nullptr), s_asyncFromSyncIteratorPrototypeAsyncFromSyncIteratorConstructorCodeLength) \
    macro(mapPrototypeMapIteratorConstructorCode, MapIterator, static_cast<const char*>(nullptr), s_mapPrototypeMapIteratorConstructorCodeLength) \
    macro(regExpPrototypeRegExpStringIteratorConstructorCode, RegExpStringIterator, static_cast<const char*>(nullptr), s_regExpPrototypeRegExpStringIteratorConstructorCodeLength) \
    macro(setPrototypeSetIteratorConstructorCode, SetIterator, static_cast<const char*>(nullptr), s_setPrototypeSetIteratorConstructorCodeLength) \
    macro(regExpPrototypeAdvanceStringIndexCode, advanceStringIndex, static_cast<const char*>(nullptr), s_regExpPrototypeAdvanceStringIndexCodeLength) \
    macro(promiseConstructorAllCode, all, static_cast<const char*>(nullptr), s_promiseConstructorAllCodeLength) \
    macro(promiseConstructorAllSettledCode, allSettled, static_cast<const char*>(nullptr), s_promiseConstructorAllSettledCodeLength) \
    macro(typedArrayConstructorAllocateFloat32ArrayCode, allocateFloat32Array, static_cast<const char*>(nullptr), s_typedArrayConstructorAllocateFloat32ArrayCodeLength) \
    macro(typedArrayConstructorAllocateFloat64ArrayCode, allocateFloat64Array, static_cast<const char*>(nullptr), s_typedArrayConstructorAllocateFloat64ArrayCodeLength) \
    macro(typedArrayConstructorAllocateInt16ArrayCode, allocateInt16Array, static_cast<const char*>(nullptr), s_typedArrayConstructorAllocateInt16ArrayCodeLength) \
    macro(typedArrayConstructorAllocateInt32ArrayCode, allocateInt32Array, static_cast<const char*>(nullptr), s_typedArrayConstructorAllocateInt32ArrayCodeLength) \
    macro(typedArrayConstructorAllocateInt8ArrayCode, allocateInt8Array, static_cast<const char*>(nullptr), s_typedArrayConstructorAllocateInt8ArrayCodeLength) \
    macro(typedArrayConstructorAllocateUint16ArrayCode, allocateUint16Array, static_cast<const char*>(nullptr), s_typedArrayConstructorAllocateUint16ArrayCodeLength) \
    macro(typedArrayConstructorAllocateUint32ArrayCode, allocateUint32Array, static_cast<const char*>(nullptr), s_typedArrayConstructorAllocateUint32ArrayCodeLength) \
    macro(typedArrayConstructorAllocateUint8ArrayCode, allocateUint8Array, static_cast<const char*>(nullptr), s_typedArrayConstructorAllocateUint8ArrayCodeLength) \
    macro(typedArrayConstructorAllocateUint8ClampedArrayCode, allocateUint8ClampedArray, static_cast<const char*>(nullptr), s_typedArrayConstructorAllocateUint8ClampedArrayCodeLength) \
    macro(stringPrototypeAnchorCode, anchor, static_cast<const char*>(nullptr), s_stringPrototypeAnchorCodeLength) \
    macro(functionPrototypeApplyCode, apply, static_cast<const char*>(nullptr), s_functionPrototypeApplyCodeLength) \
    macro(reflectObjectApplyCode, apply, static_cast<const char*>(nullptr), s_reflectObjectApplyCodeLength) \
    macro(arrayIteratorPrototypeArrayIteratorKeyNextCode, arrayIteratorKeyNext, static_cast<const char*>(nullptr), s_arrayIteratorPrototypeArrayIteratorKeyNextCodeLength) \
    macro(arrayIteratorPrototypeArrayIteratorKeyValueNextCode, arrayIteratorKeyValueNext, static_cast<const char*>(nullptr), s_arrayIteratorPrototypeArrayIteratorKeyValueNextCodeLength) \
    macro(arrayIteratorPrototypeArrayIteratorValueNextCode, arrayIteratorValueNext, static_cast<const char*>(nullptr), s_arrayIteratorPrototypeArrayIteratorValueNextCodeLength) \
    macro(asyncFunctionPrototypeAsyncFunctionResumeCode, asyncFunctionResume, static_cast<const char*>(nullptr), s_asyncFunctionPrototypeAsyncFunctionResumeCodeLength) \
    macro(asyncGeneratorPrototypeAsyncGeneratorDequeueCode, asyncGeneratorDequeue, static_cast<const char*>(nullptr), s_asyncGeneratorPrototypeAsyncGeneratorDequeueCodeLength) \
    macro(asyncGeneratorPrototypeAsyncGeneratorEnqueueCode, asyncGeneratorEnqueue, static_cast<const char*>(nullptr), s_asyncGeneratorPrototypeAsyncGeneratorEnqueueCodeLength) \
    macro(asyncGeneratorPrototypeAsyncGeneratorQueueDequeueCode, asyncGeneratorQueueDequeue, static_cast<const char*>(nullptr), s_asyncGeneratorPrototypeAsyncGeneratorQueueDequeueCodeLength) \
    macro(asyncGeneratorPrototypeAsyncGeneratorQueueEnqueueCode, asyncGeneratorQueueEnqueue, static_cast<const char*>(nullptr), s_asyncGeneratorPrototypeAsyncGeneratorQueueEnqueueCodeLength) \
    macro(asyncGeneratorPrototypeAsyncGeneratorQueueIsEmptyCode, asyncGeneratorQueueIsEmpty, static_cast<const char*>(nullptr), s_asyncGeneratorPrototypeAsyncGeneratorQueueIsEmptyCodeLength) \
    macro(asyncGeneratorPrototypeAsyncGeneratorRejectCode, asyncGeneratorReject, static_cast<const char*>(nullptr), s_asyncGeneratorPrototypeAsyncGeneratorRejectCodeLength) \
    macro(asyncGeneratorPrototypeAsyncGeneratorResolveCode, asyncGeneratorResolve, static_cast<const char*>(nullptr), s_asyncGeneratorPrototypeAsyncGeneratorResolveCodeLength) \
    macro(asyncGeneratorPrototypeAsyncGeneratorResumeNextCode, asyncGeneratorResumeNext, static_cast<const char*>(nullptr), s_asyncGeneratorPrototypeAsyncGeneratorResumeNextCodeLength) \
    macro(asyncGeneratorPrototypeAsyncGeneratorYieldCode, asyncGeneratorYield, static_cast<const char*>(nullptr), s_asyncGeneratorPrototypeAsyncGeneratorYieldCodeLength) \
    macro(asyncGeneratorPrototypeAwaitValueCode, awaitValue, static_cast<const char*>(nullptr), s_asyncGeneratorPrototypeAwaitValueCodeLength) \
    macro(stringPrototypeBigCode, big, static_cast<const char*>(nullptr), s_stringPrototypeBigCodeLength) \
    macro(functionPrototypeBindCode, bind, static_cast<const char*>(nullptr), s_functionPrototypeBindCodeLength) \
    macro(stringPrototypeBlinkCode, blink, static_cast<const char*>(nullptr), s_stringPrototypeBlinkCodeLength) \
    macro(stringPrototypeBoldCode, bold, static_cast<const char*>(nullptr), s_stringPrototypeBoldCodeLength) \
    macro(functionPrototypeCallCode, call, static_cast<const char*>(nullptr), s_functionPrototypeCallCodeLength) \
    macro(promisePrototypeCatchCode, catch, static_cast<const char*>(nullptr), s_promisePrototypeCatchCodeLength) \
    macro(webAssemblyPrototypeCompileStreamingCode, compileStreaming, static_cast<const char*>(nullptr), s_webAssemblyPrototypeCompileStreamingCodeLength) \
    macro(arrayPrototypeConcatCode, concat, static_cast<const char*>(nullptr), s_arrayPrototypeConcatCodeLength) \
    macro(stringPrototypeConcatCode, concat, static_cast<const char*>(nullptr), s_stringPrototypeConcatCodeLength) \
    macro(arrayPrototypeConcatSlowPathCode, concatSlowPath, static_cast<const char*>(nullptr), s_arrayPrototypeConcatSlowPathCodeLength) \
    macro(globalOperationsCopyDataPropertiesCode, copyDataProperties, static_cast<const char*>(nullptr), s_globalOperationsCopyDataPropertiesCodeLength) \
    macro(globalOperationsCopyDataPropertiesNoExclusionsCode, copyDataPropertiesNoExclusions, static_cast<const char*>(nullptr), s_globalOperationsCopyDataPropertiesNoExclusionsCodeLength) \
    macro(arrayPrototypeCopyWithinCode, copyWithin, static_cast<const char*>(nullptr), s_arrayPrototypeCopyWithinCodeLength) \
    macro(asyncFromSyncIteratorPrototypeCreateAsyncFromSyncIteratorCode, createAsyncFromSyncIterator, static_cast<const char*>(nullptr), s_asyncFromSyncIteratorPrototypeCreateAsyncFromSyncIteratorCodeLength) \
    macro(stringPrototypeCreateHTMLCode, createHTML, static_cast<const char*>(nullptr), s_stringPrototypeCreateHTMLCodeLength) \
    macro(promiseOperationsCreateResolvingFunctionsCode, createResolvingFunctions, static_cast<const char*>(nullptr), s_promiseOperationsCreateResolvingFunctionsCodeLength) \
    macro(reflectObjectDeletePropertyCode, deleteProperty, static_cast<const char*>(nullptr), s_reflectObjectDeletePropertyCodeLength) \
    macro(moduleLoaderDependencyKeysIfEvaluatedCode, dependencyKeysIfEvaluated, static_cast<const char*>(nullptr), s_moduleLoaderDependencyKeysIfEvaluatedCodeLength) \
    macro(asyncGeneratorPrototypeDoAsyncGeneratorBodyCallCode, doAsyncGeneratorBodyCall, static_cast<const char*>(nullptr), s_asyncGeneratorPrototypeDoAsyncGeneratorBodyCallCodeLength) \
    macro(moduleLoaderEnsureRegisteredCode, ensureRegistered, static_cast<const char*>(nullptr), s_moduleLoaderEnsureRegisteredCodeLength) \
    macro(arrayPrototypeEntriesCode, entries, static_cast<const char*>(nullptr), s_arrayPrototypeEntriesCodeLength) \
    macro(mapPrototypeEntriesCode, entries, static_cast<const char*>(nullptr), s_mapPrototypeEntriesCodeLength) \
    macro(objectConstructorEntriesCode, entries, static_cast<const char*>(nullptr), s_objectConstructorEntriesCodeLength) \
    macro(setPrototypeEntriesCode, entries, static_cast<const char*>(nullptr), s_setPrototypeEntriesCodeLength) \
    macro(typedArrayPrototypeEntriesCode, entries, static_cast<const char*>(nullptr), s_typedArrayPrototypeEntriesCodeLength) \
    macro(arrayPrototypeEveryCode, every, static_cast<const char*>(nullptr), s_arrayPrototypeEveryCodeLength) \
    macro(typedArrayPrototypeEveryCode, every, static_cast<const char*>(nullptr), s_typedArrayPrototypeEveryCodeLength) \
    macro(arrayPrototypeFillCode, fill, static_cast<const char*>(nullptr), s_arrayPrototypeFillCodeLength) \
    macro(typedArrayPrototypeFillCode, fill, static_cast<const char*>(nullptr), s_typedArrayPrototypeFillCodeLength) \
    macro(arrayPrototypeFilterCode, filter, static_cast<const char*>(nullptr), s_arrayPrototypeFilterCodeLength) \
    macro(typedArrayPrototypeFilterCode, filter, static_cast<const char*>(nullptr), s_typedArrayPrototypeFilterCodeLength) \
    macro(promisePrototypeFinallyCode, finally, static_cast<const char*>(nullptr), s_promisePrototypeFinallyCodeLength) \
    macro(arrayPrototypeFindCode, find, static_cast<const char*>(nullptr), s_arrayPrototypeFindCodeLength) \
    macro(typedArrayPrototypeFindCode, find, static_cast<const char*>(nullptr), s_typedArrayPrototypeFindCodeLength) \
    macro(arrayPrototypeFindIndexCode, findIndex, static_cast<const char*>(nullptr), s_arrayPrototypeFindIndexCodeLength) \
    macro(typedArrayPrototypeFindIndexCode, findIndex, static_cast<const char*>(nullptr), s_typedArrayPrototypeFindIndexCodeLength) \
    macro(stringPrototypeFixedCode, fixed, static_cast<const char*>(nullptr), s_stringPrototypeFixedCodeLength) \
    macro(arrayPrototypeFlatCode, flat, static_cast<const char*>(nullptr), s_arrayPrototypeFlatCodeLength) \
    macro(arrayPrototypeFlatIntoArrayCode, flatIntoArray, static_cast<const char*>(nullptr), s_arrayPrototypeFlatIntoArrayCodeLength) \
    macro(arrayPrototypeFlatIntoArrayWithCallbackCode, flatIntoArrayWithCallback, static_cast<const char*>(nullptr), s_arrayPrototypeFlatIntoArrayWithCallbackCodeLength) \
    macro(arrayPrototypeFlatMapCode, flatMap, static_cast<const char*>(nullptr), s_arrayPrototypeFlatMapCodeLength) \
    macro(stringPrototypeFontcolorCode, fontcolor, static_cast<const char*>(nullptr), s_stringPrototypeFontcolorCodeLength) \
    macro(stringPrototypeFontsizeCode, fontsize, static_cast<const char*>(nullptr), s_stringPrototypeFontsizeCodeLength) \
    macro(arrayPrototypeForEachCode, forEach, static_cast<const char*>(nullptr), s_arrayPrototypeForEachCodeLength) \
    macro(mapPrototypeForEachCode, forEach, static_cast<const char*>(nullptr), s_mapPrototypeForEachCodeLength) \
    macro(setPrototypeForEachCode, forEach, static_cast<const char*>(nullptr), s_setPrototypeForEachCodeLength) \
    macro(typedArrayPrototypeForEachCode, forEach, static_cast<const char*>(nullptr), s_typedArrayPrototypeForEachCodeLength) \
    macro(moduleLoaderForceFulfillPromiseCode, forceFulfillPromise, static_cast<const char*>(nullptr), s_moduleLoaderForceFulfillPromiseCodeLength) \
    macro(arrayConstructorFromCode, from, static_cast<const char*>(nullptr), s_arrayConstructorFromCodeLength) \
    macro(typedArrayConstructorFromCode, from, static_cast<const char*>(nullptr), s_typedArrayConstructorFromCodeLength) \
    macro(objectConstructorFromEntriesCode, fromEntries, static_cast<const char*>(nullptr), s_objectConstructorFromEntriesCodeLength) \
    macro(moduleLoaderFulfillFetchCode, fulfillFetch, static_cast<const char*>(nullptr), s_moduleLoaderFulfillFetchCodeLength) \
    macro(promiseOperationsFulfillPromiseCode, fulfillPromise, static_cast<const char*>(nullptr), s_promiseOperationsFulfillPromiseCodeLength) \
    macro(generatorPrototypeGeneratorResumeCode, generatorResume, static_cast<const char*>(nullptr), s_generatorPrototypeGeneratorResumeCodeLength) \
    macro(promisePrototypeGetCatchFinallyCode, getCatchFinally, static_cast<const char*>(nullptr), s_promisePrototypeGetCatchFinallyCodeLength) \
    macro(promisePrototypeGetThenFinallyCode, getThenFinally, static_cast<const char*>(nullptr), s_promisePrototypeGetThenFinallyCodeLength) \
    macro(reflectObjectHasCode, has, static_cast<const char*>(nullptr), s_reflectObjectHasCodeLength) \
    macro(regExpPrototypeHasObservableSideEffectsForRegExpMatchCode, hasObservableSideEffectsForRegExpMatch, static_cast<const char*>(nullptr), s_regExpPrototypeHasObservableSideEffectsForRegExpMatchCodeLength) \
    macro(regExpPrototypeHasObservableSideEffectsForRegExpSplitCode, hasObservableSideEffectsForRegExpSplit, static_cast<const char*>(nullptr), s_regExpPrototypeHasObservableSideEffectsForRegExpSplitCodeLength) \
    macro(stringPrototypeHasObservableSideEffectsForStringReplaceCode, hasObservableSideEffectsForStringReplace, static_cast<const char*>(nullptr), s_stringPrototypeHasObservableSideEffectsForStringReplaceCodeLength) \
    macro(arrayPrototypeIncludesCode, includes, static_cast<const char*>(nullptr), s_arrayPrototypeIncludesCodeLength) \
    macro(promiseOperationsInitializePromiseCode, initializePromise, static_cast<const char*>(nullptr), s_promiseOperationsInitializePromiseCodeLength) \
    macro(webAssemblyPrototypeInstantiateStreamingCode, instantiateStreaming, static_cast<const char*>(nullptr), s_webAssemblyPrototypeInstantiateStreamingCodeLength) \
    macro(internalPromiseConstructorInternalAllCode, internalAll, static_cast<const char*>(nullptr), s_internalPromiseConstructorInternalAllCodeLength) \
    macro(arrayConstructorIsArrayCode, isArray, static_cast<const char*>(nullptr), s_arrayConstructorIsArrayCodeLength) \
    macro(globalOperationsIsDictionaryCode, isDictionary, static_cast<const char*>(nullptr), s_globalOperationsIsDictionaryCodeLength) \
    macro(asyncGeneratorPrototypeIsExecutionStateCode, isExecutionState, static_cast<const char*>(nullptr), s_asyncGeneratorPrototypeIsExecutionStateCodeLength) \
    macro(globalObjectIsFiniteCode, isFinite, static_cast<const char*>(nullptr), s_globalObjectIsFiniteCodeLength) \
    macro(numberConstructorIsFiniteCode, isFinite, static_cast<const char*>(nullptr), s_numberConstructorIsFiniteCodeLength) \
    macro(globalObjectIsNaNCode, isNaN, static_cast<const char*>(nullptr), s_globalObjectIsNaNCodeLength) \
    macro(numberConstructorIsNaNCode, isNaN, static_cast<const char*>(nullptr), s_numberConstructorIsNaNCodeLength) \
    macro(promiseOperationsIsPromiseCode, isPromise, static_cast<const char*>(nullptr), s_promiseOperationsIsPromiseCodeLength) \
    macro(asyncGeneratorPrototypeIsSuspendYieldStateCode, isSuspendYieldState, static_cast<const char*>(nullptr), s_asyncGeneratorPrototypeIsSuspendYieldStateCodeLength) \
    macro(stringPrototypeItalicsCode, italics, static_cast<const char*>(nullptr), s_stringPrototypeItalicsCodeLength) \
    macro(arrayPrototypeKeysCode, keys, static_cast<const char*>(nullptr), s_arrayPrototypeKeysCodeLength) \
    macro(mapPrototypeKeysCode, keys, static_cast<const char*>(nullptr), s_mapPrototypeKeysCodeLength) \
    macro(typedArrayPrototypeKeysCode, keys, static_cast<const char*>(nullptr), s_typedArrayPrototypeKeysCodeLength) \
    macro(moduleLoaderLinkCode, link, static_cast<const char*>(nullptr), s_moduleLoaderLinkCodeLength) \
    macro(stringPrototypeLinkCode, link, static_cast<const char*>(nullptr), s_stringPrototypeLinkCodeLength) \
    macro(moduleLoaderLinkAndEvaluateModuleCode, linkAndEvaluateModule, static_cast<const char*>(nullptr), s_moduleLoaderLinkAndEvaluateModuleCodeLength) \
    macro(moduleLoaderLoadAndEvaluateModuleCode, loadAndEvaluateModule, static_cast<const char*>(nullptr), s_moduleLoaderLoadAndEvaluateModuleCodeLength) \
    macro(moduleLoaderLoadModuleCode, loadModule, static_cast<const char*>(nullptr), s_moduleLoaderLoadModuleCodeLength) \
    macro(arrayPrototypeMapCode, map, static_cast<const char*>(nullptr), s_arrayPrototypeMapCodeLength) \
    macro(typedArrayPrototypeMapCode, map, static_cast<const char*>(nullptr), s_typedArrayPrototypeMapCodeLength) \
    macro(mapIteratorPrototypeMapIteratorNextCode, mapIteratorNext, static_cast<const char*>(nullptr), s_mapIteratorPrototypeMapIteratorNextCodeLength) \
    macro(regExpPrototypeMatchCode, match, "[Symbol.match]", s_regExpPrototypeMatchCodeLength) \
    macro(stringPrototypeMatchCode, match, static_cast<const char*>(nullptr), s_stringPrototypeMatchCodeLength) \
    macro(regExpPrototypeMatchAllCode, matchAll, "[Symbol.matchAll]", s_regExpPrototypeMatchAllCodeLength) \
    macro(stringPrototypeMatchAllCode, matchAll, static_cast<const char*>(nullptr), s_stringPrototypeMatchAllCodeLength) \
    macro(regExpPrototypeMatchSlowCode, matchSlow, static_cast<const char*>(nullptr), s_regExpPrototypeMatchSlowCodeLength) \
    macro(moduleLoaderModuleEvaluationCode, moduleEvaluation, static_cast<const char*>(nullptr), s_moduleLoaderModuleEvaluationCodeLength) \
    macro(promiseOperationsNewHandledRejectedPromiseCode, newHandledRejectedPromise, static_cast<const char*>(nullptr), s_promiseOperationsNewHandledRejectedPromiseCodeLength) \
    macro(promiseOperationsNewPromiseCapabilityCode, newPromiseCapability, static_cast<const char*>(nullptr), s_promiseOperationsNewPromiseCapabilityCodeLength) \
    macro(promiseOperationsNewPromiseReactionCode, newPromiseReaction, static_cast<const char*>(nullptr), s_promiseOperationsNewPromiseReactionCodeLength) \
    macro(moduleLoaderNewRegistryEntryCode, newRegistryEntry, static_cast<const char*>(nullptr), s_moduleLoaderNewRegistryEntryCodeLength) \
    macro(arrayIteratorPrototypeNextCode, next, static_cast<const char*>(nullptr), s_arrayIteratorPrototypeNextCodeLength) \
    macro(asyncFromSyncIteratorPrototypeNextCode, next, static_cast<const char*>(nullptr), s_asyncFromSyncIteratorPrototypeNextCodeLength) \
    macro(asyncGeneratorPrototypeNextCode, next, static_cast<const char*>(nullptr), s_asyncGeneratorPrototypeNextCodeLength) \
    macro(generatorPrototypeNextCode, next, static_cast<const char*>(nullptr), s_generatorPrototypeNextCodeLength) \
    macro(mapIteratorPrototypeNextCode, next, static_cast<const char*>(nullptr), s_mapIteratorPrototypeNextCodeLength) \
    macro(regExpStringIteratorPrototypeNextCode, next, static_cast<const char*>(nullptr), s_regExpStringIteratorPrototypeNextCodeLength) \
    macro(setIteratorPrototypeNextCode, next, static_cast<const char*>(nullptr), s_setIteratorPrototypeNextCodeLength) \
    macro(stringIteratorPrototypeNextCode, next, static_cast<const char*>(nullptr), s_stringIteratorPrototypeNextCodeLength) \
    macro(arrayConstructorOfCode, of, static_cast<const char*>(nullptr), s_arrayConstructorOfCodeLength) \
    macro(typedArrayConstructorOfCode, of, static_cast<const char*>(nullptr), s_typedArrayConstructorOfCodeLength) \
    macro(stringPrototypePadEndCode, padEnd, static_cast<const char*>(nullptr), s_stringPrototypePadEndCodeLength) \
    macro(stringPrototypePadStartCode, padStart, static_cast<const char*>(nullptr), s_stringPrototypePadStartCodeLength) \
    macro(iteratorHelpersPerformIterationCode, performIteration, static_cast<const char*>(nullptr), s_iteratorHelpersPerformIterationCodeLength) \
    macro(inspectorInstrumentationObjectPromiseFulfilledCode, promiseFulfilled, static_cast<const char*>(nullptr), s_inspectorInstrumentationObjectPromiseFulfilledCodeLength) \
    macro(promiseOperationsPromiseReactionJobCode, promiseReactionJob, static_cast<const char*>(nullptr), s_promiseOperationsPromiseReactionJobCodeLength) \
    macro(inspectorInstrumentationObjectPromiseRejectedCode, promiseRejected, static_cast<const char*>(nullptr), s_inspectorInstrumentationObjectPromiseRejectedCodeLength) \
    macro(promiseOperationsPromiseResolveThenableJobCode, promiseResolveThenableJob, static_cast<const char*>(nullptr), s_promiseOperationsPromiseResolveThenableJobCodeLength) \
    macro(moduleLoaderProvideFetchCode, provideFetch, static_cast<const char*>(nullptr), s_moduleLoaderProvideFetchCodeLength) \
    macro(promiseConstructorRaceCode, race, static_cast<const char*>(nullptr), s_promiseConstructorRaceCodeLength) \
    macro(stringConstructorRawCode, raw, static_cast<const char*>(nullptr), s_stringConstructorRawCodeLength) \
    macro(arrayPrototypeReduceCode, reduce, static_cast<const char*>(nullptr), s_arrayPrototypeReduceCodeLength) \
    macro(typedArrayPrototypeReduceCode, reduce, static_cast<const char*>(nullptr), s_typedArrayPrototypeReduceCodeLength) \
    macro(arrayPrototypeReduceRightCode, reduceRight, static_cast<const char*>(nullptr), s_arrayPrototypeReduceRightCodeLength) \
    macro(typedArrayPrototypeReduceRightCode, reduceRight, static_cast<const char*>(nullptr), s_typedArrayPrototypeReduceRightCodeLength) \
    macro(regExpPrototypeRegExpExecCode, regExpExec, static_cast<const char*>(nullptr), s_regExpPrototypeRegExpExecCodeLength) \
    macro(promiseConstructorRejectCode, reject, static_cast<const char*>(nullptr), s_promiseConstructorRejectCodeLength) \
    macro(promiseOperationsRejectPromiseCode, rejectPromise, static_cast<const char*>(nullptr), s_promiseOperationsRejectPromiseCodeLength) \
    macro(stringPrototypeRepeatCode, repeat, static_cast<const char*>(nullptr), s_stringPrototypeRepeatCodeLength) \
    macro(stringPrototypeRepeatCharactersSlowPathCode, repeatCharactersSlowPath, static_cast<const char*>(nullptr), s_stringPrototypeRepeatCharactersSlowPathCodeLength) \
    macro(stringPrototypeRepeatSlowPathCode, repeatSlowPath, static_cast<const char*>(nullptr), s_stringPrototypeRepeatSlowPathCodeLength) \
    macro(regExpPrototypeReplaceCode, replace, "[Symbol.replace]", s_regExpPrototypeReplaceCodeLength) \
    macro(stringPrototypeReplaceCode, replace, static_cast<const char*>(nullptr), s_stringPrototypeReplaceCodeLength) \
    macro(moduleLoaderRequestFetchCode, requestFetch, static_cast<const char*>(nullptr), s_moduleLoaderRequestFetchCodeLength) \
    macro(moduleLoaderRequestImportModuleCode, requestImportModule, static_cast<const char*>(nullptr), s_moduleLoaderRequestImportModuleCodeLength) \
    macro(moduleLoaderRequestInstantiateCode, requestInstantiate, static_cast<const char*>(nullptr), s_moduleLoaderRequestInstantiateCodeLength) \
    macro(moduleLoaderRequestSatisfyCode, requestSatisfy, static_cast<const char*>(nullptr), s_moduleLoaderRequestSatisfyCodeLength) \
    macro(promiseConstructorResolveCode, resolve, static_cast<const char*>(nullptr), s_promiseConstructorResolveCodeLength) \
    macro(asyncFromSyncIteratorPrototypeReturnCode, return, static_cast<const char*>(nullptr), s_asyncFromSyncIteratorPrototypeReturnCodeLength) \
    macro(asyncGeneratorPrototypeReturnCode, return, static_cast<const char*>(nullptr), s_asyncGeneratorPrototypeReturnCodeLength) \
    macro(generatorPrototypeReturnCode, return, static_cast<const char*>(nullptr), s_generatorPrototypeReturnCodeLength) \
    macro(regExpPrototypeSearchCode, search, "[Symbol.search]", s_regExpPrototypeSearchCodeLength) \
    macro(stringPrototypeSearchCode, search, static_cast<const char*>(nullptr), s_stringPrototypeSearchCodeLength) \
    macro(setIteratorPrototypeSetIteratorNextCode, setIteratorNext, static_cast<const char*>(nullptr), s_setIteratorPrototypeSetIteratorNextCodeLength) \
    macro(moduleLoaderSetStateToMaxCode, setStateToMax, static_cast<const char*>(nullptr), s_moduleLoaderSetStateToMaxCodeLength) \
    macro(stringPrototypeSmallCode, small, static_cast<const char*>(nullptr), s_stringPrototypeSmallCodeLength) \
    macro(arrayPrototypeSomeCode, some, static_cast<const char*>(nullptr), s_arrayPrototypeSomeCodeLength) \
    macro(typedArrayPrototypeSomeCode, some, static_cast<const char*>(nullptr), s_typedArrayPrototypeSomeCodeLength) \
    macro(arrayPrototypeSortCode, sort, static_cast<const char*>(nullptr), s_arrayPrototypeSortCodeLength) \
    macro(typedArrayPrototypeSortCode, sort, static_cast<const char*>(nullptr), s_typedArrayPrototypeSortCodeLength) \
    macro(globalOperationsSpeciesConstructorCode, speciesConstructor, static_cast<const char*>(nullptr), s_globalOperationsSpeciesConstructorCodeLength) \
    macro(globalOperationsSpeciesGetterCode, speciesGetter, "get [Symbol.species]", s_globalOperationsSpeciesGetterCodeLength) \
    macro(regExpPrototypeSplitCode, split, "[Symbol.split]", s_regExpPrototypeSplitCodeLength) \
    macro(stringPrototypeSplitCode, split, static_cast<const char*>(nullptr), s_stringPrototypeSplitCodeLength) \
    macro(stringPrototypeStrikeCode, strike, static_cast<const char*>(nullptr), s_stringPrototypeStrikeCodeLength) \
    macro(stringPrototypeStringConcatSlowPathCode, stringConcatSlowPath, static_cast<const char*>(nullptr), s_stringPrototypeStringConcatSlowPathCodeLength) \
    macro(stringPrototypeSubCode, sub, static_cast<const char*>(nullptr), s_stringPrototypeSubCodeLength) \
    macro(typedArrayPrototypeSubarrayCode, subarray, static_cast<const char*>(nullptr), s_typedArrayPrototypeSubarrayCodeLength) \
    macro(stringPrototypeSupCode, sup, static_cast<const char*>(nullptr), s_stringPrototypeSupCodeLength) \
    macro(asyncIteratorPrototypeSymbolAsyncIteratorGetterCode, symbolAsyncIteratorGetter, "[Symbol.asyncIterator]", s_asyncIteratorPrototypeSymbolAsyncIteratorGetterCodeLength) \
    macro(functionPrototypeSymbolHasInstanceCode, symbolHasInstance, "[Symbol.hasInstance]", s_functionPrototypeSymbolHasInstanceCodeLength) \
    macro(iteratorPrototypeSymbolIteratorGetterCode, symbolIteratorGetter, "[Symbol.iterator]", s_iteratorPrototypeSymbolIteratorGetterCodeLength) \
    macro(regExpPrototypeTestCode, test, static_cast<const char*>(nullptr), s_regExpPrototypeTestCodeLength) \
    macro(promisePrototypeThenCode, then, static_cast<const char*>(nullptr), s_promisePrototypeThenCodeLength) \
    macro(asyncFromSyncIteratorPrototypeThrowCode, throw, static_cast<const char*>(nullptr), s_asyncFromSyncIteratorPrototypeThrowCodeLength) \
    macro(asyncGeneratorPrototypeThrowCode, throw, static_cast<const char*>(nullptr), s_asyncGeneratorPrototypeThrowCodeLength) \
    macro(generatorPrototypeThrowCode, throw, static_cast<const char*>(nullptr), s_generatorPrototypeThrowCodeLength) \
    macro(globalOperationsToIntegerCode, toInteger, static_cast<const char*>(nullptr), s_globalOperationsToIntegerCodeLength) \
    macro(globalOperationsToLengthCode, toLength, static_cast<const char*>(nullptr), s_globalOperationsToLengthCodeLength) \
    macro(datePrototypeToLocaleDateStringCode, toLocaleDateString, static_cast<const char*>(nullptr), s_datePrototypeToLocaleDateStringCodeLength) \
    macro(datePrototypeToLocaleStringCode, toLocaleString, static_cast<const char*>(nullptr), s_datePrototypeToLocaleStringCodeLength) \
    macro(typedArrayPrototypeToLocaleStringCode, toLocaleString, static_cast<const char*>(nullptr), s_typedArrayPrototypeToLocaleStringCodeLength) \
    macro(datePrototypeToLocaleTimeStringCode, toLocaleTimeString, static_cast<const char*>(nullptr), s_datePrototypeToLocaleTimeStringCodeLength) \
    macro(promiseOperationsTriggerPromiseReactionsCode, triggerPromiseReactions, static_cast<const char*>(nullptr), s_promiseOperationsTriggerPromiseReactionsCodeLength) \
    macro(typedArrayPrototypeTypedArrayClampArgumentToStartOrEndCode, typedArrayClampArgumentToStartOrEnd, static_cast<const char*>(nullptr), s_typedArrayPrototypeTypedArrayClampArgumentToStartOrEndCodeLength) \
    macro(typedArrayPrototypeTypedArraySpeciesConstructorCode, typedArraySpeciesConstructor, static_cast<const char*>(nullptr), s_typedArrayPrototypeTypedArraySpeciesConstructorCodeLength) \
    macro(arrayPrototypeValuesCode, values, static_cast<const char*>(nullptr), s_arrayPrototypeValuesCodeLength) \
    macro(mapPrototypeValuesCode, values, static_cast<const char*>(nullptr), s_mapPrototypeValuesCodeLength) \
    macro(setPrototypeValuesCode, values, static_cast<const char*>(nullptr), s_setPrototypeValuesCodeLength) \
    macro(typedArrayPrototypeValuesCode, values, static_cast<const char*>(nullptr), s_typedArrayPrototypeValuesCodeLength) \

#define JSC_FOREACH_BUILTIN_FUNCTION_NAME(macro) \
    macro(ArrayIterator) \
    macro(AsyncFromSyncIterator) \
    macro(MapIterator) \
    macro(RegExpStringIterator) \
    macro(SetIterator) \
    macro(advanceStringIndex) \
    macro(all) \
    macro(allSettled) \
    macro(allocateFloat32Array) \
    macro(allocateFloat64Array) \
    macro(allocateInt16Array) \
    macro(allocateInt32Array) \
    macro(allocateInt8Array) \
    macro(allocateUint16Array) \
    macro(allocateUint32Array) \
    macro(allocateUint8Array) \
    macro(allocateUint8ClampedArray) \
    macro(anchor) \
    macro(apply) \
    macro(arrayIteratorKeyNext) \
    macro(arrayIteratorKeyValueNext) \
    macro(arrayIteratorValueNext) \
    macro(asyncFunctionResume) \
    macro(asyncGeneratorDequeue) \
    macro(asyncGeneratorEnqueue) \
    macro(asyncGeneratorQueueDequeue) \
    macro(asyncGeneratorQueueEnqueue) \
    macro(asyncGeneratorQueueIsEmpty) \
    macro(asyncGeneratorReject) \
    macro(asyncGeneratorResolve) \
    macro(asyncGeneratorResumeNext) \
    macro(asyncGeneratorYield) \
    macro(awaitValue) \
    macro(big) \
    macro(bind) \
    macro(blink) \
    macro(bold) \
    macro(call) \
    macro(catch) \
    macro(compileStreaming) \
    macro(concat) \
    macro(concatSlowPath) \
    macro(copyDataProperties) \
    macro(copyDataPropertiesNoExclusions) \
    macro(copyWithin) \
    macro(createAsyncFromSyncIterator) \
    macro(createHTML) \
    macro(createResolvingFunctions) \
    macro(deleteProperty) \
    macro(dependencyKeysIfEvaluated) \
    macro(doAsyncGeneratorBodyCall) \
    macro(ensureRegistered) \
    macro(entries) \
    macro(every) \
    macro(fill) \
    macro(filter) \
    macro(finally) \
    macro(find) \
    macro(findIndex) \
    macro(fixed) \
    macro(flat) \
    macro(flatIntoArray) \
    macro(flatIntoArrayWithCallback) \
    macro(flatMap) \
    macro(fontcolor) \
    macro(fontsize) \
    macro(forEach) \
    macro(forceFulfillPromise) \
    macro(from) \
    macro(fromEntries) \
    macro(fulfillFetch) \
    macro(fulfillPromise) \
    macro(generatorResume) \
    macro(getCatchFinally) \
    macro(getThenFinally) \
    macro(has) \
    macro(hasObservableSideEffectsForRegExpMatch) \
    macro(hasObservableSideEffectsForRegExpSplit) \
    macro(hasObservableSideEffectsForStringReplace) \
    macro(includes) \
    macro(initializePromise) \
    macro(instantiateStreaming) \
    macro(internalAll) \
    macro(isArray) \
    macro(isDictionary) \
    macro(isExecutionState) \
    macro(isFinite) \
    macro(isNaN) \
    macro(isPromise) \
    macro(isSuspendYieldState) \
    macro(italics) \
    macro(keys) \
    macro(link) \
    macro(linkAndEvaluateModule) \
    macro(loadAndEvaluateModule) \
    macro(loadModule) \
    macro(map) \
    macro(mapIteratorNext) \
    macro(match) \
    macro(matchAll) \
    macro(matchSlow) \
    macro(moduleEvaluation) \
    macro(newHandledRejectedPromise) \
    macro(newPromiseCapability) \
    macro(newPromiseReaction) \
    macro(newRegistryEntry) \
    macro(next) \
    macro(of) \
    macro(padEnd) \
    macro(padStart) \
    macro(performIteration) \
    macro(promiseFulfilled) \
    macro(promiseReactionJob) \
    macro(promiseRejected) \
    macro(promiseResolveThenableJob) \
    macro(provideFetch) \
    macro(race) \
    macro(raw) \
    macro(reduce) \
    macro(reduceRight) \
    macro(regExpExec) \
    macro(reject) \
    macro(rejectPromise) \
    macro(repeat) \
    macro(repeatCharactersSlowPath) \
    macro(repeatSlowPath) \
    macro(replace) \
    macro(requestFetch) \
    macro(requestImportModule) \
    macro(requestInstantiate) \
    macro(requestSatisfy) \
    macro(resolve) \
    macro(return) \
    macro(search) \
    macro(setIteratorNext) \
    macro(setStateToMax) \
    macro(small) \
    macro(some) \
    macro(sort) \
    macro(speciesConstructor) \
    macro(speciesGetter) \
    macro(split) \
    macro(strike) \
    macro(stringConcatSlowPath) \
    macro(sub) \
    macro(subarray) \
    macro(sup) \
    macro(symbolAsyncIteratorGetter) \
    macro(symbolHasInstance) \
    macro(symbolIteratorGetter) \
    macro(test) \
    macro(then) \
    macro(throw) \
    macro(toInteger) \
    macro(toLength) \
    macro(toLocaleDateString) \
    macro(toLocaleString) \
    macro(toLocaleTimeString) \
    macro(triggerPromiseReactions) \
    macro(typedArrayClampArgumentToStartOrEnd) \
    macro(typedArraySpeciesConstructor) \
    macro(values) \

#define JSC_FOREACH_BUILTIN_FUNCTION_PRIVATE_GLOBAL_NAME(macro) \
    macro(arrayIteratorConstructor, ArrayIterator, arrayPrototypeArrayIteratorConstructor) \
    macro(asyncFromSyncIteratorConstructor, AsyncFromSyncIterator, asyncFromSyncIteratorPrototypeAsyncFromSyncIteratorConstructor) \
    macro(mapIteratorConstructor, MapIterator, mapPrototypeMapIteratorConstructor) \
    macro(regExpStringIteratorConstructor, RegExpStringIterator, regExpPrototypeRegExpStringIteratorConstructor) \
    macro(setIteratorConstructor, SetIterator, setPrototypeSetIteratorConstructor) \
    macro(advanceStringIndex, advanceStringIndex, regExpPrototypeAdvanceStringIndex) \
    macro(arrayIteratorKeyNext, arrayIteratorKeyNext, arrayIteratorPrototypeArrayIteratorKeyNext) \
    macro(arrayIteratorKeyValueNext, arrayIteratorKeyValueNext, arrayIteratorPrototypeArrayIteratorKeyValueNext) \
    macro(arrayIteratorValueNext, arrayIteratorValueNext, arrayIteratorPrototypeArrayIteratorValueNext) \
    macro(asyncFunctionResume, asyncFunctionResume, asyncFunctionPrototypeAsyncFunctionResume) \
    macro(asyncGeneratorDequeue, asyncGeneratorDequeue, asyncGeneratorPrototypeAsyncGeneratorDequeue) \
    macro(asyncGeneratorEnqueue, asyncGeneratorEnqueue, asyncGeneratorPrototypeAsyncGeneratorEnqueue) \
    macro(asyncGeneratorQueueDequeue, asyncGeneratorQueueDequeue, asyncGeneratorPrototypeAsyncGeneratorQueueDequeue) \
    macro(asyncGeneratorQueueEnqueue, asyncGeneratorQueueEnqueue, asyncGeneratorPrototypeAsyncGeneratorQueueEnqueue) \
    macro(asyncGeneratorQueueIsEmpty, asyncGeneratorQueueIsEmpty, asyncGeneratorPrototypeAsyncGeneratorQueueIsEmpty) \
    macro(asyncGeneratorReject, asyncGeneratorReject, asyncGeneratorPrototypeAsyncGeneratorReject) \
    macro(asyncGeneratorResolve, asyncGeneratorResolve, asyncGeneratorPrototypeAsyncGeneratorResolve) \
    macro(asyncGeneratorResumeNext, asyncGeneratorResumeNext, asyncGeneratorPrototypeAsyncGeneratorResumeNext) \
    macro(asyncGeneratorYield, asyncGeneratorYield, asyncGeneratorPrototypeAsyncGeneratorYield) \
    macro(awaitValue, awaitValue, asyncGeneratorPrototypeAwaitValue) \
    macro(concatSlowPath, concatSlowPath, arrayPrototypeConcatSlowPath) \
    macro(copyDataProperties, copyDataProperties, globalOperationsCopyDataProperties) \
    macro(copyDataPropertiesNoExclusions, copyDataPropertiesNoExclusions, globalOperationsCopyDataPropertiesNoExclusions) \
    macro(createAsyncFromSyncIterator, createAsyncFromSyncIterator, asyncFromSyncIteratorPrototypeCreateAsyncFromSyncIterator) \
    macro(createHTML, createHTML, stringPrototypeCreateHTML) \
    macro(createResolvingFunctions, createResolvingFunctions, promiseOperationsCreateResolvingFunctions) \
    macro(doAsyncGeneratorBodyCall, doAsyncGeneratorBodyCall, asyncGeneratorPrototypeDoAsyncGeneratorBodyCall) \
    macro(flatIntoArray, flatIntoArray, arrayPrototypeFlatIntoArray) \
    macro(flatIntoArrayWithCallback, flatIntoArrayWithCallback, arrayPrototypeFlatIntoArrayWithCallback) \
    macro(fulfillPromise, fulfillPromise, promiseOperationsFulfillPromise) \
    macro(generatorResume, generatorResume, generatorPrototypeGeneratorResume) \
    macro(getCatchFinally, getCatchFinally, promisePrototypeGetCatchFinally) \
    macro(getThenFinally, getThenFinally, promisePrototypeGetThenFinally) \
    macro(hasObservableSideEffectsForRegExpMatch, hasObservableSideEffectsForRegExpMatch, regExpPrototypeHasObservableSideEffectsForRegExpMatch) \
    macro(hasObservableSideEffectsForRegExpSplit, hasObservableSideEffectsForRegExpSplit, regExpPrototypeHasObservableSideEffectsForRegExpSplit) \
    macro(hasObservableSideEffectsForStringReplace, hasObservableSideEffectsForStringReplace, stringPrototypeHasObservableSideEffectsForStringReplace) \
    macro(initializePromise, initializePromise, promiseOperationsInitializePromise) \
    macro(isDictionary, isDictionary, globalOperationsIsDictionary) \
    macro(isExecutionState, isExecutionState, asyncGeneratorPrototypeIsExecutionState) \
    macro(isFinite, isFinite, globalObjectIsFinite) \
    macro(isNaN, isNaN, globalObjectIsNaN) \
    macro(isPromise, isPromise, promiseOperationsIsPromise) \
    macro(isSuspendYieldState, isSuspendYieldState, asyncGeneratorPrototypeIsSuspendYieldState) \
    macro(mapIteratorNext, mapIteratorNext, mapIteratorPrototypeMapIteratorNext) \
    macro(matchSlow, matchSlow, regExpPrototypeMatchSlow) \
    macro(newHandledRejectedPromise, newHandledRejectedPromise, promiseOperationsNewHandledRejectedPromise) \
    macro(newPromiseCapability, newPromiseCapability, promiseOperationsNewPromiseCapability) \
    macro(newPromiseReaction, newPromiseReaction, promiseOperationsNewPromiseReaction) \
    macro(newRegistryEntry, newRegistryEntry, moduleLoaderNewRegistryEntry) \
    macro(promiseReactionJob, promiseReactionJob, promiseOperationsPromiseReactionJob) \
    macro(promiseResolveThenableJob, promiseResolveThenableJob, promiseOperationsPromiseResolveThenableJob) \
    macro(regExpExec, regExpExec, regExpPrototypeRegExpExec) \
    macro(rejectPromise, rejectPromise, promiseOperationsRejectPromise) \
    macro(repeatCharactersSlowPath, repeatCharactersSlowPath, stringPrototypeRepeatCharactersSlowPath) \
    macro(repeatSlowPath, repeatSlowPath, stringPrototypeRepeatSlowPath) \
    macro(setIteratorNext, setIteratorNext, setIteratorPrototypeSetIteratorNext) \
    macro(setStateToMax, setStateToMax, moduleLoaderSetStateToMax) \
    macro(speciesConstructor, speciesConstructor, globalOperationsSpeciesConstructor) \
    macro(stringConcatSlowPath, stringConcatSlowPath, stringPrototypeStringConcatSlowPath) \
    macro(toInteger, toInteger, globalOperationsToInteger) \
    macro(toLength, toLength, globalOperationsToLength) \
    macro(triggerPromiseReactions, triggerPromiseReactions, promiseOperationsTriggerPromiseReactions) \
    macro(typedArrayClampArgumentToStartOrEnd, typedArrayClampArgumentToStartOrEnd, typedArrayPrototypeTypedArrayClampArgumentToStartOrEnd) \
    macro(typedArraySpeciesConstructor, typedArraySpeciesConstructor, typedArrayPrototypeTypedArraySpeciesConstructor) \

#define DECLARE_BUILTIN_GENERATOR(codeName, functionName, overriddenName, argumentCount) \
    JSC::FunctionExecutable* codeName##Generator(JSC::VM&);

JSC_FOREACH_BUILTIN_CODE(DECLARE_BUILTIN_GENERATOR)
#undef DECLARE_BUILTIN_GENERATOR

} // namespace JSC
