OLD | NEW |
1 // Copyright 2017 the V8 project authors. All rights reserved. | 1 // Copyright 2017 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "src/builtins/builtins-string-gen.h" | 5 #include "src/builtins/builtins-string-gen.h" |
6 #include "src/builtins/builtins-utils-gen.h" | 6 #include "src/builtins/builtins-utils-gen.h" |
7 #include "src/builtins/builtins.h" | 7 #include "src/builtins/builtins.h" |
8 #include "src/code-stub-assembler.h" | 8 #include "src/code-stub-assembler.h" |
9 | 9 |
10 namespace v8 { | 10 namespace v8 { |
(...skipping 1186 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1197 | 1197 |
1198 InitIteratingArrayBuiltinLoopContinuation(context, receiver, callbackfn, | 1198 InitIteratingArrayBuiltinLoopContinuation(context, receiver, callbackfn, |
1199 this_arg, array, object, initial_k, | 1199 this_arg, array, object, initial_k, |
1200 len, to); | 1200 len, to); |
1201 | 1201 |
1202 GenerateIteratingArrayBuiltinLoopContinuation( | 1202 GenerateIteratingArrayBuiltinLoopContinuation( |
1203 &ArrayBuiltinCodeStubAssembler::ForEachProcessor, | 1203 &ArrayBuiltinCodeStubAssembler::ForEachProcessor, |
1204 &ArrayBuiltinCodeStubAssembler::NullPostLoopAction); | 1204 &ArrayBuiltinCodeStubAssembler::NullPostLoopAction); |
1205 } | 1205 } |
1206 | 1206 |
| 1207 TF_BUILTIN(ArrayForEachLoopEagerDeoptContinuation, |
| 1208 ArrayBuiltinCodeStubAssembler) { |
| 1209 Node* context = Parameter(Descriptor::kContext); |
| 1210 Node* receiver = Parameter(Descriptor::kReceiver); |
| 1211 Node* callbackfn = Parameter(Descriptor::kCallbackFn); |
| 1212 Node* this_arg = Parameter(Descriptor::kThisArg); |
| 1213 Node* initial_k = Parameter(Descriptor::kInitialK); |
| 1214 Node* len = Parameter(Descriptor::kLength); |
| 1215 |
| 1216 Callable stub(Builtins::CallableFor(isolate(), |
| 1217 Builtins::kArrayForEachLoopContinuation)); |
| 1218 Return(CallStub(stub, context, receiver, callbackfn, this_arg, |
| 1219 UndefinedConstant(), receiver, initial_k, len, |
| 1220 UndefinedConstant())); |
| 1221 } |
| 1222 |
| 1223 TF_BUILTIN(ArrayForEachLoopLazyDeoptContinuation, |
| 1224 ArrayBuiltinCodeStubAssembler) { |
| 1225 Node* context = Parameter(Descriptor::kContext); |
| 1226 Node* receiver = Parameter(Descriptor::kReceiver); |
| 1227 Node* callbackfn = Parameter(Descriptor::kCallbackFn); |
| 1228 Node* this_arg = Parameter(Descriptor::kThisArg); |
| 1229 Node* initial_k = Parameter(Descriptor::kInitialK); |
| 1230 Node* len = Parameter(Descriptor::kLength); |
| 1231 |
| 1232 Callable stub(Builtins::CallableFor(isolate(), |
| 1233 Builtins::kArrayForEachLoopContinuation)); |
| 1234 Return(CallStub(stub, context, receiver, callbackfn, this_arg, |
| 1235 UndefinedConstant(), receiver, initial_k, len, |
| 1236 UndefinedConstant())); |
| 1237 } |
| 1238 |
1207 TF_BUILTIN(ArrayForEach, ArrayBuiltinCodeStubAssembler) { | 1239 TF_BUILTIN(ArrayForEach, ArrayBuiltinCodeStubAssembler) { |
1208 Node* argc = | 1240 Node* argc = |
1209 ChangeInt32ToIntPtr(Parameter(BuiltinDescriptor::kArgumentsCount)); | 1241 ChangeInt32ToIntPtr(Parameter(BuiltinDescriptor::kArgumentsCount)); |
1210 CodeStubArguments args(this, argc); | 1242 CodeStubArguments args(this, argc); |
1211 Node* context = Parameter(BuiltinDescriptor::kContext); | 1243 Node* context = Parameter(BuiltinDescriptor::kContext); |
1212 Node* new_target = Parameter(BuiltinDescriptor::kNewTarget); | 1244 Node* new_target = Parameter(BuiltinDescriptor::kNewTarget); |
1213 Node* receiver = args.GetReceiver(); | 1245 Node* receiver = args.GetReceiver(); |
1214 Node* callbackfn = args.GetOptionalArgumentValue(0, UndefinedConstant()); | 1246 Node* callbackfn = args.GetOptionalArgumentValue(0, UndefinedConstant()); |
1215 Node* this_arg = args.GetOptionalArgumentValue(1, UndefinedConstant()); | 1247 Node* this_arg = args.GetOptionalArgumentValue(1, UndefinedConstant()); |
1216 | 1248 |
(...skipping 1228 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2445 { | 2477 { |
2446 Node* message = SmiConstant(MessageTemplate::kDetachedOperation); | 2478 Node* message = SmiConstant(MessageTemplate::kDetachedOperation); |
2447 CallRuntime(Runtime::kThrowTypeError, context, message, | 2479 CallRuntime(Runtime::kThrowTypeError, context, message, |
2448 HeapConstant(operation)); | 2480 HeapConstant(operation)); |
2449 Unreachable(); | 2481 Unreachable(); |
2450 } | 2482 } |
2451 } | 2483 } |
2452 | 2484 |
2453 } // namespace internal | 2485 } // namespace internal |
2454 } // namespace v8 | 2486 } // namespace v8 |
OLD | NEW |