### 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 : unsigned;
}

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 char* const s_builtinConstructorFromCode;
extern const int s_builtinConstructorFromCodeLength;
extern const JSC::ConstructAbility s_builtinConstructorFromCodeConstructAbility;

#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 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 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
