### Begin File: JSCBuiltins.h
/*
 * Copyright (c) 2015, 2016 Apple Inc. All rights reserved.
 * 
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 * 2. Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in the
 *    documentation and/or other materials provided with the distribution.
 * 
 * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
 * THE POSSIBILITY OF SUCH DAMAGE.
 * 
 */

// DO NOT EDIT THIS FILE. It is automatically generated from JavaScript files for
// builtins by the script: Source/JavaScriptCore/Scripts/generate-js-builtins.py

#pragma once

namespace JSC {
class FunctionExecutable;
class VM;

enum class ConstructAbility : uint8_t;
enum class ConstructorKind : uint8_t;
}

namespace JSC {

extern const char s_JSCCombinedCode[];

extern const unsigned s_JSCCombinedCodeLength;

/* BuiltinConstructor */
extern const char* const s_builtinConstructorOfCode;
extern const int s_builtinConstructorOfCodeLength;
extern const JSC::ConstructAbility s_builtinConstructorOfCodeConstructAbility;
extern const JSC::ConstructorKind s_builtinConstructorOfCodeConstructorKind;
extern const char* const s_builtinConstructorFromCode;
extern const int s_builtinConstructorFromCodeLength;
extern const JSC::ConstructAbility s_builtinConstructorFromCodeConstructAbility;
extern const JSC::ConstructorKind s_builtinConstructorFromCodeConstructorKind;

#define JSC_FOREACH_BUILTINCONSTRUCTOR_BUILTIN_DATA(macro) \
    macro(of, builtinConstructorOf, 0) \
    macro(from, builtinConstructorFrom, 1) \

#define JSC_FOREACH_BUILTIN_CODE(macro) \
    macro(builtinConstructorFromCode, from, static_cast<const char*>(nullptr), s_builtinConstructorFromCodeLength) \
    macro(builtinConstructorOfCode, of, static_cast<const char*>(nullptr), s_builtinConstructorOfCodeLength) \

#define JSC_FOREACH_BUILTIN_FUNCTION_NAME(macro) \
    macro(from) \
    macro(of) \

#define JSC_FOREACH_BUILTIN_FUNCTION_PRIVATE_GLOBAL_NAME(macro) \

#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
### End File: JSCBuiltins.h

### Begin File: JSCBuiltins.cpp
/*
 * Copyright (c) 2015, 2016 Apple Inc. All rights reserved.
 * 
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 * 2. Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in the
 *    documentation and/or other materials provided with the distribution.
 * 
 * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
 * THE POSSIBILITY OF SUCH DAMAGE.
 * 
 */

// DO NOT EDIT THIS FILE. It is automatically generated from JavaScript files for
// builtins by the script: Source/JavaScriptCore/Scripts/generate-js-builtins.py

#include "config.h"
#include "JSCBuiltins.h"

#include "BuiltinExecutables.h"
#include "HeapInlines.h"
#include "IdentifierInlines.h"
#include "Intrinsic.h"
#include "JSCellInlines.h"
#include "UnlinkedFunctionExecutable.h"
#include "VM.h"

namespace JSC {

const char s_JSCCombinedCode[] = { 40, 102, 117, 110, 99, 116, 105, 111, 110, 32, 40, 105, 116, 101, 109, 115, 32, 41, 10, 123, 10, 32, 32, 32, 32, 34, 117, 115, 101, 32, 115, 116, 114, 105, 99, 116, 34, 59, 10, 10, 32, 32, 32, 32, 118, 97, 114, 32, 116, 104, 105, 115, 79, 98, 106, 32, 61, 32, 116, 104, 105, 115, 59, 10, 10, 32, 32, 32, 32, 118, 97, 114, 32, 109, 97, 112, 70, 110, 32, 61, 32, 97, 114, 103, 117, 109, 101, 110, 116, 115, 46, 108, 101, 110, 103, 116, 104, 32, 62, 32, 49, 32, 63, 32, 97, 114, 103, 117, 109, 101, 110, 116, 115, 91, 49, 93, 32, 58, 32, 117, 110, 100, 101, 102, 105, 110, 101, 100, 59, 10, 10, 32, 32, 32, 32, 118, 97, 114, 32, 116, 104, 105, 115, 65, 114, 103, 59, 10, 10, 32, 32, 32, 32, 105, 102, 32, 40, 109, 97, 112, 70, 110, 32, 33, 61, 61, 32, 117, 110, 100, 101, 102, 105, 110, 101, 100, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 116, 121, 112, 101, 111, 102, 32, 109, 97, 112, 70, 110, 32, 33, 61, 61, 32, 34, 102, 117, 110, 99, 116, 105, 111, 110, 34, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 64, 84, 121, 112, 101, 69, 114, 114, 111, 114, 40, 34, 65, 114, 114, 97, 121, 46, 102, 114, 111, 109, 32, 114, 101, 113, 117, 105, 114, 101, 115, 32, 116, 104, 97, 116, 32, 116, 104, 101, 32, 115, 101, 99, 111, 110, 100, 32, 97, 114, 103, 117, 109, 101, 110, 116, 44, 32, 119, 104, 101, 110, 32, 112, 114, 111, 118, 105, 100, 101, 100, 44, 32, 98, 101, 32, 97, 32, 102, 117, 110, 99, 116, 105, 111, 110, 34, 41, 59, 10, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 97, 114, 103, 117, 109, 101, 110, 116, 115, 46, 108, 101, 110, 103, 116, 104, 32, 62, 32, 50, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 65, 114, 103, 32, 61, 32, 97, 114, 103, 117, 109, 101, 110, 116, 115, 91, 50, 93, 59, 10, 32, 32, 32, 32, 125, 10, 10, 32, 32, 32, 32, 105, 102, 32, 40, 105, 116, 101, 109, 115, 32, 61, 61, 32, 110, 117, 108, 108, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 64, 84, 121, 112, 101, 69, 114, 114, 111, 114, 40, 34, 65, 114, 114, 97, 121, 46, 102, 114, 111, 109, 32, 114, 101, 113, 117, 105, 114, 101, 115, 32, 97, 110, 32, 97, 114, 114, 97, 121, 45, 108, 105, 107, 101, 32, 111, 98, 106, 101, 99, 116, 32, 45, 32, 110, 111, 116, 32, 110, 117, 108, 108, 32, 111, 114, 32, 117, 110, 100, 101, 102, 105, 110, 101, 100, 34, 41, 59, 10, 10, 32, 32, 32, 32, 118, 97, 114, 32, 105, 116, 101, 114, 97, 116, 111, 114, 77, 101, 116, 104, 111, 100, 32, 61, 32, 105, 116, 101, 109, 115, 91, 64, 115, 121, 109, 98, 111, 108, 73, 116, 101, 114, 97, 116, 111, 114, 93, 59, 10, 32, 32, 32, 32, 105, 102, 32, 40, 105, 116, 101, 114, 97, 116, 111, 114, 77, 101, 116, 104, 111, 100, 32, 33, 61, 32, 110, 117, 108, 108, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 116, 121, 112, 101, 111, 102, 32, 105, 116, 101, 114, 97, 116, 111, 114, 77, 101, 116, 104, 111, 100, 32, 33, 61, 61, 32, 34, 102, 117, 110, 99, 116, 105, 111, 110, 34, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 64, 84, 121, 112, 101, 69, 114, 114, 111, 114, 40, 34, 65, 114, 114, 97, 121, 46, 102, 114, 111, 109, 32, 114, 101, 113, 117, 105, 114, 101, 115, 32, 116, 104, 97, 116, 32, 116, 104, 101, 32, 112, 114, 111, 112, 101, 114, 116, 121, 32, 111, 102, 32, 116, 104, 101, 32, 102, 105, 114, 115, 116, 32, 97, 114, 103, 117, 109, 101, 110, 116, 44, 32, 105, 116, 101, 109, 115, 91, 83, 121, 109, 98, 111, 108, 46, 105, 116, 101, 114, 97, 116, 111, 114, 93, 44, 32, 119, 104, 101, 110, 32, 101, 120, 105, 115, 116, 115, 44, 32, 98, 101, 32, 97, 32, 102, 117, 110, 99, 116, 105, 111, 110, 34, 41, 59, 10, 10, 32, 32, 32, 32, 32, 32, 32, 32, 47, 47, 10, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 114, 101, 115, 117, 108, 116, 32, 61, 32, 40, 116, 121, 112, 101, 111, 102, 32, 116, 104, 105, 115, 79, 98, 106, 32, 61, 61, 61, 32, 34, 102, 117, 110, 99, 116, 105, 111, 110, 34, 41, 32, 63, 32, 64, 79, 98, 106, 101, 99, 116, 40, 110, 101, 119, 32, 116, 104, 105, 115, 79, 98, 106, 40, 41, 41, 32, 58, 32, 91, 93, 59, 10, 10, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 107, 32, 61, 32, 48, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 105, 116, 101, 114, 97, 116, 111, 114, 32, 61, 32, 105, 116, 101, 114, 97, 116, 111, 114, 77, 101, 116, 104, 111, 100, 46, 64, 99, 97, 108, 108, 40, 105, 116, 101, 109, 115, 41, 59, 10, 10, 32, 32, 32, 32, 32, 32, 32, 32, 47, 47, 10, 32, 32, 32, 32, 32, 32, 32, 32, 47, 47, 10, 32, 32, 32, 32, 32, 32, 32, 32, 47, 47, 10, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 119, 114, 97, 112, 112, 101, 114, 32, 61, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 91, 64, 115, 121, 109, 98, 111, 108, 73, 116, 101, 114, 97, 116, 111, 114, 93, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 105, 116, 101, 114, 97, 116, 111, 114, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 59, 10, 10, 32, 32, 32, 32, 32, 32, 32, 32, 102, 111, 114, 32, 40, 118, 97, 114, 32, 118, 97, 108, 117, 101, 32, 111, 102, 32, 119, 114, 97, 112, 112, 101, 114, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 109, 97, 112, 70, 110, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 64, 112, 117, 116, 66, 121, 86, 97, 108, 68, 105, 114, 101, 99, 116, 40, 114, 101, 115, 117, 108, 116, 44, 32, 107, 44, 32, 116, 104, 105, 115, 65, 114, 103, 32, 61, 61, 61, 32, 117, 110, 100, 101, 102, 105, 110, 101, 100, 32, 63, 32, 109, 97, 112, 70, 110, 40, 118, 97, 108, 117, 101, 44, 32, 107, 41, 32, 58, 32, 109, 97, 112, 70, 110, 46, 64, 99, 97, 108, 108, 40, 116, 104, 105, 115, 65, 114, 103, 44, 32, 118, 97, 108, 117, 101, 44, 32, 107, 41, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 101, 108, 115, 101, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 64, 112, 117, 116, 66, 121, 86, 97, 108, 68, 105, 114, 101, 99, 116, 40, 114, 101, 115, 117, 108, 116, 44, 32, 107, 44, 32, 118, 97, 108, 117, 101, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 107, 32, 43, 61, 32, 49, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 115, 117, 108, 116, 46, 108, 101, 110, 103, 116, 104, 32, 61, 32, 107, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 114, 101, 115, 117, 108, 116, 59, 10, 32, 32, 32, 32, 125, 10, 10, 32, 32, 32, 32, 118, 97, 114, 32, 97, 114, 114, 97, 121, 76, 105, 107, 101, 32, 61, 32, 64, 79, 98, 106, 101, 99, 116, 40, 105, 116, 101, 109, 115, 41, 59, 10, 32, 32, 32, 32, 118, 97, 114, 32, 97, 114, 114, 97, 121, 76, 105, 107, 101, 76, 101, 110, 103, 116, 104, 32, 61, 32, 64, 116, 111, 76, 101, 110, 103, 116, 104, 40, 97, 114, 114, 97, 121, 76, 105, 107, 101, 46, 108, 101, 110, 103, 116, 104, 41, 59, 10, 10, 32, 32, 32, 32, 47, 47, 10, 32, 32, 32, 32, 118, 97, 114, 32, 114, 101, 115, 117, 108, 116, 32, 61, 32, 40, 116, 121, 112, 101, 111, 102, 32, 116, 104, 105, 115, 79, 98, 106, 32, 61, 61, 61, 32, 34, 102, 117, 110, 99, 116, 105, 111, 110, 34, 41, 32, 63, 32, 64, 79, 98, 106, 101, 99, 116, 40, 110, 101, 119, 32, 116, 104, 105, 115, 79, 98, 106, 40, 97, 114, 114, 97, 121, 76, 105, 107, 101, 76, 101, 110, 103, 116, 104, 41, 41, 32, 58, 32, 110, 101, 119, 32, 64, 65, 114, 114, 97, 121, 40, 97, 114, 114, 97, 121, 76, 105, 107, 101, 76, 101, 110, 103, 116, 104, 41, 59, 10, 10, 32, 32, 32, 32, 118, 97, 114, 32, 107, 32, 61, 32, 48, 59, 10, 32, 32, 32, 32, 119, 104, 105, 108, 101, 32, 40, 107, 32, 60, 32, 97, 114, 114, 97, 121, 76, 105, 107, 101, 76, 101, 110, 103, 116, 104, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 118, 97, 108, 117, 101, 32, 61, 32, 97, 114, 114, 97, 121, 76, 105, 107, 101, 91, 107, 93, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 109, 97, 112, 70, 110, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 64, 112, 117, 116, 66, 121, 86, 97, 108, 68, 105, 114, 101, 99, 116, 40, 114, 101, 115, 117, 108, 116, 44, 32, 107, 44, 32, 116, 104, 105, 115, 65, 114, 103, 32, 61, 61, 61, 32, 117, 110, 100, 101, 102, 105, 110, 101, 100, 32, 63, 32, 109, 97, 112, 70, 110, 40, 118, 97, 108, 117, 101, 44, 32, 107, 41, 32, 58, 32, 109, 97, 112, 70, 110, 46, 64, 99, 97, 108, 108, 40, 116, 104, 105, 115, 65, 114, 103, 44, 32, 118, 97, 108, 117, 101, 44, 32, 107, 41, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 101, 108, 115, 101, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 64, 112, 117, 116, 66, 121, 86, 97, 108, 68, 105, 114, 101, 99, 116, 40, 114, 101, 115, 117, 108, 116, 44, 32, 107, 44, 32, 118, 97, 108, 117, 101, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 107, 32, 43, 61, 32, 49, 59, 10, 32, 32, 32, 32, 125, 10, 10, 32, 32, 32, 32, 114, 101, 115, 117, 108, 116, 46, 108, 101, 110, 103, 116, 104, 32, 61, 32, 97, 114, 114, 97, 121, 76, 105, 107, 101, 76, 101, 110, 103, 116, 104, 59, 10, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 114, 101, 115, 117, 108, 116, 59, 10, 125, 41, 10, 40, 102, 117, 110, 99, 116, 105, 111, 110, 32, 40, 41, 10, 123, 10, 32, 32, 32, 32, 34, 117, 115, 101, 32, 115, 116, 114, 105, 99, 116, 34, 59, 10, 10, 32, 32, 32, 32, 118, 97, 114, 32, 108, 101, 110, 103, 116, 104, 32, 61, 32, 97, 114, 103, 117, 109, 101, 110, 116, 115, 46, 108, 101, 110, 103, 116, 104, 59, 10, 32, 32, 32, 32, 47, 47, 10, 32, 32, 32, 32, 118, 97, 114, 32, 97, 114, 114, 97, 121, 32, 61, 32, 116, 121, 112, 101, 111, 102, 32, 116, 104, 105, 115, 32, 61, 61, 61, 32, 39, 102, 117, 110, 99, 116, 105, 111, 110, 39, 32, 63, 32, 110, 101, 119, 32, 116, 104, 105, 115, 40, 108, 101, 110, 103, 116, 104, 41, 32, 58, 32, 110, 101, 119, 32, 64, 65, 114, 114, 97, 121, 40, 108, 101, 110, 103, 116, 104, 41, 59, 10, 32, 32, 32, 32, 102, 111, 114, 32, 40, 118, 97, 114, 32, 107, 32, 61, 32, 48, 59, 32, 107, 32, 60, 32, 108, 101, 110, 103, 116, 104, 59, 32, 43, 43, 107, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 64, 112, 117, 116, 66, 121, 86, 97, 108, 68, 105, 114, 101, 99, 116, 40, 97, 114, 114, 97, 121, 44, 32, 107, 44, 32, 97, 114, 103, 117, 109, 101, 110, 116, 115, 91, 107, 93, 41, 59, 10, 32, 32, 32, 32, 97, 114, 114, 97, 121, 46, 108, 101, 110, 103, 116, 104, 32, 61, 32, 108, 101, 110, 103, 116, 104, 59, 10, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 97, 114, 114, 97, 121, 59, 10, 125, 41, 10 };

const unsigned s_JSCCombinedCodeLength = 2340;

const JSC::ConstructAbility s_builtinConstructorFromCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
const JSC::ConstructorKind s_builtinConstructorFromCodeConstructorKind = JSC::ConstructorKind::None;
const int s_builtinConstructorFromCodeLength = 2046;
static const JSC::Intrinsic s_builtinConstructorFromCodeIntrinsic = JSC::NoIntrinsic;
const char* const s_builtinConstructorFromCode =
s_JSCCombinedCode + 0
;

const JSC::ConstructAbility s_builtinConstructorOfCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
const JSC::ConstructorKind s_builtinConstructorOfCodeConstructorKind = JSC::ConstructorKind::None;
const int s_builtinConstructorOfCodeLength = 294;
static const JSC::Intrinsic s_builtinConstructorOfCodeIntrinsic = JSC::NoIntrinsic;
const char* const s_builtinConstructorOfCode =
s_JSCCombinedCode + 2046
;


#define DEFINE_BUILTIN_GENERATOR(codeName, functionName, overriddenName, argumentCount) \
JSC::FunctionExecutable* codeName##Generator(JSC::VM& vm) \
{\
    return vm.builtinExecutables()->codeName##Executable()->link(vm, nullptr, vm.builtinExecutables()->codeName##Source(), WTF::nullopt, s_##codeName##Intrinsic); }
JSC_FOREACH_BUILTIN_CODE(DEFINE_BUILTIN_GENERATOR)
#undef DEFINE_BUILTIN_GENERATOR


} // namespace JSC
### End File: JSCBuiltins.cpp
