OLD | NEW |
1 // Copyright 2014 the V8 project authors. All rights reserved. | 1 // Copyright 2014 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/runtime/runtime-utils.h" | 5 #include "src/runtime/runtime-utils.h" |
6 | 6 |
7 #include "src/arguments.h" | 7 #include "src/arguments.h" |
8 #include "src/conversions-inl.h" | 8 #include "src/conversions-inl.h" |
9 #include "src/elements.h" | 9 #include "src/elements.h" |
10 #include "src/factory.h" | 10 #include "src/factory.h" |
(...skipping 302 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
313 site->SetDoNotInlineCall(); | 313 site->SetDoNotInlineCall(); |
314 } | 314 } |
315 | 315 |
316 // Set up the prototoype using original function. | 316 // Set up the prototoype using original function. |
317 // TODO(dslomov): instead of setting the __proto__, | 317 // TODO(dslomov): instead of setting the __proto__, |
318 // use and cache the correct map. | 318 // use and cache the correct map. |
319 if (*original_constructor != *constructor) { | 319 if (*original_constructor != *constructor) { |
320 if (original_constructor->has_instance_prototype()) { | 320 if (original_constructor->has_instance_prototype()) { |
321 Handle<Object> prototype = | 321 Handle<Object> prototype = |
322 handle(original_constructor->instance_prototype(), isolate); | 322 handle(original_constructor->instance_prototype(), isolate); |
323 RETURN_FAILURE_ON_EXCEPTION( | 323 MAYBE_RETURN( |
324 isolate, JSObject::SetPrototype(array, prototype, false)); | 324 JSObject::SetPrototype(array, prototype, false, THROW_ON_ERROR), |
| 325 isolate->heap()->exception()); |
325 } | 326 } |
326 } | 327 } |
327 | 328 |
328 return *array; | 329 return *array; |
329 } | 330 } |
330 | 331 |
331 | 332 |
332 RUNTIME_FUNCTION(Runtime_ArrayConstructor) { | 333 RUNTIME_FUNCTION(Runtime_ArrayConstructor) { |
333 HandleScope scope(isolate); | 334 HandleScope scope(isolate); |
334 // If we get 2 arguments then they are the stub parameters (constructor, type | 335 // If we get 2 arguments then they are the stub parameters (constructor, type |
(...skipping 156 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
491 | 492 |
492 RUNTIME_FUNCTION(Runtime_FastOneByteArrayJoin) { | 493 RUNTIME_FUNCTION(Runtime_FastOneByteArrayJoin) { |
493 SealHandleScope shs(isolate); | 494 SealHandleScope shs(isolate); |
494 DCHECK(args.length() == 2); | 495 DCHECK(args.length() == 2); |
495 // Returning undefined means that this fast path fails and one has to resort | 496 // Returning undefined means that this fast path fails and one has to resort |
496 // to a slow path. | 497 // to a slow path. |
497 return isolate->heap()->undefined_value(); | 498 return isolate->heap()->undefined_value(); |
498 } | 499 } |
499 } // namespace internal | 500 } // namespace internal |
500 } // namespace v8 | 501 } // namespace v8 |
OLD | NEW |