Unreviewed, rolling out r221327.
[WebKit-https.git] / Source / JavaScriptCore / Scripts / tests / builtins / expected / JavaScriptCore-Builtin.prototype-Separate.js-result
1 ### Begin File: BuiltinPrototypeBuiltins.h
2 /*
3  * Copyright (c) 2014, 2015, 2016 Apple Inc. All rights reserved.
4  * Copyright (c) 2015 Yusuke Suzuki <utatane.tea@gmail.com>.
5  * 
6  * Redistribution and use in source and binary forms, with or without
7  * modification, are permitted provided that the following conditions
8  * are met:
9  * 1. Redistributions of source code must retain the above copyright
10  *    notice, this list of conditions and the following disclaimer.
11  * 2. Redistributions in binary form must reproduce the above copyright
12  *    notice, this list of conditions and the following disclaimer in the
13  *    documentation and/or other materials provided with the distribution.
14  * 
15  * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
16  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
17  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
18  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
19  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
20  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
21  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
22  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
23  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
24  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
25  * THE POSSIBILITY OF SUCH DAMAGE.
26  * 
27  */
28
29 // DO NOT EDIT THIS FILE. It is automatically generated from JavaScript files for
30 // builtins by the script: Source/JavaScriptCore/Scripts/generate-js-builtins.py
31
32 #pragma once
33
34
35
36 namespace JSC {
37 class FunctionExecutable;
38 }
39
40 namespace JSC {
41
42 /* Builtin.prototype */
43 extern const char* s_builtinPrototypeEveryCode;
44 extern const int s_builtinPrototypeEveryCodeLength;
45 extern const JSC::ConstructAbility s_builtinPrototypeEveryCodeConstructAbility;
46 extern const char* s_builtinPrototypeForEachCode;
47 extern const int s_builtinPrototypeForEachCodeLength;
48 extern const JSC::ConstructAbility s_builtinPrototypeForEachCodeConstructAbility;
49
50 #define JSC_FOREACH_BUILTIN_PROTOTYPE_BUILTIN_DATA(macro) \
51     macro(every, builtinPrototypeEvery, 1) \
52     macro(forEach, builtinPrototypeForEach, 1) \
53
54 #define JSC_BUILTIN_BUILTIN_PROTOTYPE_EVERY 1
55 #define JSC_BUILTIN_BUILTIN_PROTOTYPE_FOREACH 1
56
57 #define JSC_FOREACH_BUILTIN.PROTOTYPE_BUILTIN_CODE(macro) \
58     macro(builtinPrototypeEveryCode, every, s_builtinPrototypeEveryCodeLength) \
59     macro(builtinPrototypeForEachCode, forEach, s_builtinPrototypeForEachCodeLength) \
60
61 #define JSC_FOREACH_BUILTIN.PROTOTYPE_BUILTIN_FUNCTION_NAME(macro) \
62     macro(every) \
63     macro(forEach) \
64
65 #define DECLARE_BUILTIN_GENERATOR(codeName, functionName, argumentCount) \
66     JSC::FunctionExecutable* codeName##Generator(JSC::VM&);
67
68 JSC_FOREACH_BUILTIN.PROTOTYPE_BUILTIN_CODE(DECLARE_BUILTIN_GENERATOR)
69 #undef DECLARE_BUILTIN_GENERATOR
70
71 } // namespace JSC
72 ### End File: BuiltinPrototypeBuiltins.h
73
74 ### Begin File: BuiltinPrototypeBuiltins.cpp
75 /*
76  * Copyright (c) 2014, 2015, 2016 Apple Inc. All rights reserved.
77  * Copyright (c) 2015 Yusuke Suzuki <utatane.tea@gmail.com>.
78  * 
79  * Redistribution and use in source and binary forms, with or without
80  * modification, are permitted provided that the following conditions
81  * are met:
82  * 1. Redistributions of source code must retain the above copyright
83  *    notice, this list of conditions and the following disclaimer.
84  * 2. Redistributions in binary form must reproduce the above copyright
85  *    notice, this list of conditions and the following disclaimer in the
86  *    documentation and/or other materials provided with the distribution.
87  * 
88  * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
89  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
90  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
91  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
92  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
93  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
94  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
95  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
96  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
97  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
98  * THE POSSIBILITY OF SUCH DAMAGE.
99  * 
100  */
101
102 // DO NOT EDIT THIS FILE. It is automatically generated from JavaScript files for
103 // builtins by the script: Source/JavaScriptCore/Scripts/generate-js-builtins.py
104
105 #include "config.h"
106 #include "BuiltinPrototypeBuiltins.h"
107
108 #include "BuiltinExecutables.h"
109 #include "HeapInlines.h"
110 #include "Intrinsic.h"
111 #include "JSCellInlines.h"
112 #include "VM.h"
113
114 namespace JSC {
115
116 const JSC::ConstructAbility s_builtinPrototypeEveryCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
117 const int s_builtinPrototypeEveryCodeLength = 760;
118 static const JSC::Intrinsic s_builtinPrototypeEveryCodeIntrinsic = JSC::NoIntrinsic;
119 const char* s_builtinPrototypeEveryCode =
120     "(function (callback )\n" \
121     "{\n" \
122     "    \"use strict\";\n" \
123     "    if (this === null)\n" \
124     "        throw new @TypeError(\"Array.prototype.every requires that |this| not be null\");\n" \
125     "    \n" \
126     "    if (this === undefined)\n" \
127     "        throw new @TypeError(\"Array.prototype.every requires that |this| not be undefined\");\n" \
128     "    \n" \
129     "    var array = @Object(this);\n" \
130     "    var length = @toLength(array.length);\n" \
131     "    if (typeof callback !== \"function\")\n" \
132     "        throw new @TypeError(\"Array.prototype.every callback must be a function\");\n" \
133     "    \n" \
134     "    var thisArg = arguments.length > 1 ? arguments[1] : undefined;\n" \
135     "    \n" \
136     "    for (var i = 0; i < length; i++) {\n" \
137     "        if (!(i in array))\n" \
138     "            continue;\n" \
139     "        if (!callback.@call(thisArg, array[i], i, array))\n" \
140     "            return false;\n" \
141     "    }\n" \
142     "    \n" \
143     "    return true;\n" \
144     "})\n" \
145 ;
146
147 const JSC::ConstructAbility s_builtinPrototypeForEachCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
148 const int s_builtinPrototypeForEachCodeLength = 692;
149 static const JSC::Intrinsic s_builtinPrototypeForEachCodeIntrinsic = JSC::NoIntrinsic;
150 const char* s_builtinPrototypeForEachCode =
151     "(function (callback )\n" \
152     "{\n" \
153     "    \"use strict\";\n" \
154     "    if (this === null)\n" \
155     "        throw new @TypeError(\"Array.prototype.forEach requires that |this| not be null\");\n" \
156     "    \n" \
157     "    if (this === undefined)\n" \
158     "        throw new @TypeError(\"Array.prototype.forEach requires that |this| not be undefined\");\n" \
159     "    \n" \
160     "    var array = @Object(this);\n" \
161     "    var length = @toLength(array.length);\n" \
162     "    if (typeof callback !== \"function\")\n" \
163     "        throw new @TypeError(\"Array.prototype.forEach callback must be a function\");\n" \
164     "    \n" \
165     "    var thisArg = arguments.length > 1 ? arguments[1] : undefined;\n" \
166     "    \n" \
167     "    for (var i = 0; i < length; i++) {\n" \
168     "        if (i in array)\n" \
169     "            callback.@call(thisArg, array[i], i, array);\n" \
170     "    }\n" \
171     "})\n" \
172 ;
173
174
175 #define DEFINE_BUILTIN_GENERATOR(codeName, functionName, argumentCount) \
176 JSC::FunctionExecutable* codeName##Generator(JSC::VM& vm) \
177 {\
178     return vm.builtinExecutables()->codeName##Executable()->link(vm, vm.builtinExecutables()->codeName##Source(), std::nullopt, s_##codeName##Intrinsic); }
179 JSC_FOREACH_BUILTIN.PROTOTYPE_BUILTIN_CODE(DEFINE_BUILTIN_GENERATOR)
180 #undef DEFINE_BUILTIN_GENERATOR
181
182
183 } // namespace JSC
184 ### End File: BuiltinPrototypeBuiltins.cpp