Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(163)

Side by Side Diff: src/runtime/runtime-object.cc

Issue 2006673002: Reduce boilerplace for common pattern to return MaybeHandle. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: rebase and fix Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/runtime/runtime-liveedit.cc ('k') | src/runtime/runtime-operators.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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/bootstrapper.h" 8 #include "src/bootstrapper.h"
9 #include "src/debug/debug.h" 9 #include "src/debug/debug.h"
10 #include "src/isolate-inl.h" 10 #include "src/isolate-inl.h"
(...skipping 212 matching lines...) Expand 10 before | Expand all | Expand 10 after
223 MAYBE_RETURN_NULL(Object::SetProperty(&it, value, language_mode, 223 MAYBE_RETURN_NULL(Object::SetProperty(&it, value, language_mode,
224 Object::MAY_BE_STORE_FROM_KEYED)); 224 Object::MAY_BE_STORE_FROM_KEYED));
225 return value; 225 return value;
226 } 226 }
227 227
228 228
229 RUNTIME_FUNCTION(Runtime_GetPrototype) { 229 RUNTIME_FUNCTION(Runtime_GetPrototype) {
230 HandleScope scope(isolate); 230 HandleScope scope(isolate);
231 DCHECK(args.length() == 1); 231 DCHECK(args.length() == 1);
232 CONVERT_ARG_HANDLE_CHECKED(JSReceiver, obj, 0); 232 CONVERT_ARG_HANDLE_CHECKED(JSReceiver, obj, 0);
233 Handle<Object> prototype; 233 RETURN_RESULT_OR_FAILURE(isolate, JSReceiver::GetPrototype(isolate, obj));
234 ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, prototype,
235 JSReceiver::GetPrototype(isolate, obj));
236 return *prototype;
237 } 234 }
238 235
239 236
240 RUNTIME_FUNCTION(Runtime_InternalSetPrototype) { 237 RUNTIME_FUNCTION(Runtime_InternalSetPrototype) {
241 HandleScope scope(isolate); 238 HandleScope scope(isolate);
242 DCHECK(args.length() == 2); 239 DCHECK(args.length() == 2);
243 CONVERT_ARG_HANDLE_CHECKED(JSReceiver, obj, 0); 240 CONVERT_ARG_HANDLE_CHECKED(JSReceiver, obj, 0);
244 CONVERT_ARG_HANDLE_CHECKED(Object, prototype, 1); 241 CONVERT_ARG_HANDLE_CHECKED(Object, prototype, 1);
245 MAYBE_RETURN( 242 MAYBE_RETURN(
246 JSReceiver::SetPrototype(obj, prototype, false, Object::THROW_ON_ERROR), 243 JSReceiver::SetPrototype(obj, prototype, false, Object::THROW_ON_ERROR),
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
298 it.GetHolder<Object>().is_identical_to(global_object)) { 295 it.GetHolder<Object>().is_identical_to(global_object)) {
299 // Now update the cell in the script context. 296 // Now update the cell in the script context.
300 Handle<PropertyCell> cell = it.GetPropertyCell(); 297 Handle<PropertyCell> cell = it.GetPropertyCell();
301 script_context->set(slot, *cell); 298 script_context->set(slot, *cell);
302 } else { 299 } else {
303 // This is not a fast case, so keep this access in a slow mode. 300 // This is not a fast case, so keep this access in a slow mode.
304 // Store empty_property_cell here to release the outdated property cell. 301 // Store empty_property_cell here to release the outdated property cell.
305 script_context->set(slot, isolate->heap()->empty_property_cell()); 302 script_context->set(slot, isolate->heap()->empty_property_cell());
306 } 303 }
307 304
308 Handle<Object> result; 305 RETURN_RESULT_OR_FAILURE(isolate, Object::GetProperty(&it));
309 ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, result, Object::GetProperty(&it));
310 return *result;
311 } 306 }
312 307
313 308
314 namespace { 309 namespace {
315 310
316 Object* StoreGlobalViaContext(Isolate* isolate, int slot, Handle<Object> value, 311 Object* StoreGlobalViaContext(Isolate* isolate, int slot, Handle<Object> value,
317 LanguageMode language_mode) { 312 LanguageMode language_mode) {
318 // Go up context chain to the script context. 313 // Go up context chain to the script context.
319 Handle<Context> script_context(isolate->context()->script_context(), isolate); 314 Handle<Context> script_context(isolate->context()->script_context(), isolate);
320 DCHECK(script_context->IsScriptContext()); 315 DCHECK(script_context->IsScriptContext());
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
369 } 364 }
370 365
371 366
372 RUNTIME_FUNCTION(Runtime_GetProperty) { 367 RUNTIME_FUNCTION(Runtime_GetProperty) {
373 HandleScope scope(isolate); 368 HandleScope scope(isolate);
374 DCHECK(args.length() == 2); 369 DCHECK(args.length() == 2);
375 370
376 CONVERT_ARG_HANDLE_CHECKED(Object, object, 0); 371 CONVERT_ARG_HANDLE_CHECKED(Object, object, 0);
377 CONVERT_ARG_HANDLE_CHECKED(Object, key, 1); 372 CONVERT_ARG_HANDLE_CHECKED(Object, key, 1);
378 373
379 Handle<Object> result; 374 RETURN_RESULT_OR_FAILURE(isolate,
380 ASSIGN_RETURN_FAILURE_ON_EXCEPTION( 375 Runtime::GetObjectProperty(isolate, object, key));
381 isolate, result, Runtime::GetObjectProperty(isolate, object, key));
382 return *result;
383 } 376 }
384 377
385 378
386 // KeyedGetProperty is called from KeyedLoadIC::GenerateGeneric. 379 // KeyedGetProperty is called from KeyedLoadIC::GenerateGeneric.
387 RUNTIME_FUNCTION(Runtime_KeyedGetProperty) { 380 RUNTIME_FUNCTION(Runtime_KeyedGetProperty) {
388 HandleScope scope(isolate); 381 HandleScope scope(isolate);
389 DCHECK(args.length() == 2); 382 DCHECK(args.length() == 2);
390 383
391 CONVERT_ARG_HANDLE_CHECKED(Object, receiver_obj, 0); 384 CONVERT_ARG_HANDLE_CHECKED(Object, receiver_obj, 0);
392 CONVERT_ARG_HANDLE_CHECKED(Object, key_obj, 1); 385 CONVERT_ARG_HANDLE_CHECKED(Object, key_obj, 1);
393 386
394 Handle<Object> result; 387 RETURN_RESULT_OR_FAILURE(
395 ASSIGN_RETURN_FAILURE_ON_EXCEPTION( 388 isolate, KeyedGetObjectProperty(isolate, receiver_obj, key_obj));
396 isolate, result, KeyedGetObjectProperty(isolate, receiver_obj, key_obj));
397 return *result;
398 } 389 }
399 390
400 391
401 RUNTIME_FUNCTION(Runtime_AddNamedProperty) { 392 RUNTIME_FUNCTION(Runtime_AddNamedProperty) {
402 HandleScope scope(isolate); 393 HandleScope scope(isolate);
403 RUNTIME_ASSERT(args.length() == 4); 394 RUNTIME_ASSERT(args.length() == 4);
404 395
405 CONVERT_ARG_HANDLE_CHECKED(JSObject, object, 0); 396 CONVERT_ARG_HANDLE_CHECKED(JSObject, object, 0);
406 CONVERT_ARG_HANDLE_CHECKED(Name, name, 1); 397 CONVERT_ARG_HANDLE_CHECKED(Name, name, 1);
407 CONVERT_ARG_HANDLE_CHECKED(Object, value, 2); 398 CONVERT_ARG_HANDLE_CHECKED(Object, value, 2);
408 CONVERT_PROPERTY_ATTRIBUTES_CHECKED(attrs, 3); 399 CONVERT_PROPERTY_ATTRIBUTES_CHECKED(attrs, 3);
409 400
410 #ifdef DEBUG 401 #ifdef DEBUG
411 uint32_t index = 0; 402 uint32_t index = 0;
412 DCHECK(!name->ToArrayIndex(&index)); 403 DCHECK(!name->ToArrayIndex(&index));
413 LookupIterator it(object, name, object, LookupIterator::OWN_SKIP_INTERCEPTOR); 404 LookupIterator it(object, name, object, LookupIterator::OWN_SKIP_INTERCEPTOR);
414 Maybe<PropertyAttributes> maybe = JSReceiver::GetPropertyAttributes(&it); 405 Maybe<PropertyAttributes> maybe = JSReceiver::GetPropertyAttributes(&it);
415 if (!maybe.IsJust()) return isolate->heap()->exception(); 406 if (!maybe.IsJust()) return isolate->heap()->exception();
416 RUNTIME_ASSERT(!it.IsFound()); 407 RUNTIME_ASSERT(!it.IsFound());
417 #endif 408 #endif
418 409
419 Handle<Object> result; 410 RETURN_RESULT_OR_FAILURE(isolate, JSObject::SetOwnPropertyIgnoreAttributes(
420 ASSIGN_RETURN_FAILURE_ON_EXCEPTION( 411 object, name, value, attrs));
421 isolate, result,
422 JSObject::SetOwnPropertyIgnoreAttributes(object, name, value, attrs));
423 return *result;
424 } 412 }
425 413
426 414
427 // Adds an element to an array. 415 // Adds an element to an array.
428 // This is used to create an indexed data property into an array. 416 // This is used to create an indexed data property into an array.
429 RUNTIME_FUNCTION(Runtime_AddElement) { 417 RUNTIME_FUNCTION(Runtime_AddElement) {
430 HandleScope scope(isolate); 418 HandleScope scope(isolate);
431 RUNTIME_ASSERT(args.length() == 3); 419 RUNTIME_ASSERT(args.length() == 3);
432 420
433 CONVERT_ARG_HANDLE_CHECKED(JSObject, object, 0); 421 CONVERT_ARG_HANDLE_CHECKED(JSObject, object, 0);
434 CONVERT_ARG_HANDLE_CHECKED(Object, key, 1); 422 CONVERT_ARG_HANDLE_CHECKED(Object, key, 1);
435 CONVERT_ARG_HANDLE_CHECKED(Object, value, 2); 423 CONVERT_ARG_HANDLE_CHECKED(Object, value, 2);
436 424
437 uint32_t index = 0; 425 uint32_t index = 0;
438 CHECK(key->ToArrayIndex(&index)); 426 CHECK(key->ToArrayIndex(&index));
439 427
440 #ifdef DEBUG 428 #ifdef DEBUG
441 LookupIterator it(isolate, object, index, object, 429 LookupIterator it(isolate, object, index, object,
442 LookupIterator::OWN_SKIP_INTERCEPTOR); 430 LookupIterator::OWN_SKIP_INTERCEPTOR);
443 Maybe<PropertyAttributes> maybe = JSReceiver::GetPropertyAttributes(&it); 431 Maybe<PropertyAttributes> maybe = JSReceiver::GetPropertyAttributes(&it);
444 if (!maybe.IsJust()) return isolate->heap()->exception(); 432 if (!maybe.IsJust()) return isolate->heap()->exception();
445 RUNTIME_ASSERT(!it.IsFound()); 433 RUNTIME_ASSERT(!it.IsFound());
446 434
447 if (object->IsJSArray()) { 435 if (object->IsJSArray()) {
448 Handle<JSArray> array = Handle<JSArray>::cast(object); 436 Handle<JSArray> array = Handle<JSArray>::cast(object);
449 RUNTIME_ASSERT(!JSArray::WouldChangeReadOnlyLength(array, index)); 437 RUNTIME_ASSERT(!JSArray::WouldChangeReadOnlyLength(array, index));
450 } 438 }
451 #endif 439 #endif
452 440
453 Handle<Object> result; 441 RETURN_RESULT_OR_FAILURE(isolate, JSObject::SetOwnElementIgnoreAttributes(
454 ASSIGN_RETURN_FAILURE_ON_EXCEPTION( 442 object, index, value, NONE));
455 isolate, result,
456 JSObject::SetOwnElementIgnoreAttributes(object, index, value, NONE));
457 return *result;
458 } 443 }
459 444
460 445
461 RUNTIME_FUNCTION(Runtime_AppendElement) { 446 RUNTIME_FUNCTION(Runtime_AppendElement) {
462 HandleScope scope(isolate); 447 HandleScope scope(isolate);
463 RUNTIME_ASSERT(args.length() == 2); 448 RUNTIME_ASSERT(args.length() == 2);
464 449
465 CONVERT_ARG_HANDLE_CHECKED(JSArray, array, 0); 450 CONVERT_ARG_HANDLE_CHECKED(JSArray, array, 0);
466 CONVERT_ARG_HANDLE_CHECKED(Object, value, 1); 451 CONVERT_ARG_HANDLE_CHECKED(Object, value, 1);
467 452
468 uint32_t index; 453 uint32_t index;
469 CHECK(array->length()->ToArrayIndex(&index)); 454 CHECK(array->length()->ToArrayIndex(&index));
470 455
471 Handle<Object> result; 456 RETURN_FAILURE_ON_EXCEPTION(
472 ASSIGN_RETURN_FAILURE_ON_EXCEPTION( 457 isolate, JSObject::AddDataElement(array, index, value, NONE));
473 isolate, result, JSObject::AddDataElement(array, index, value, NONE));
474 JSObject::ValidateElements(array); 458 JSObject::ValidateElements(array);
475 return *array; 459 return *array;
476 } 460 }
477 461
478 462
479 RUNTIME_FUNCTION(Runtime_SetProperty) { 463 RUNTIME_FUNCTION(Runtime_SetProperty) {
480 HandleScope scope(isolate); 464 HandleScope scope(isolate);
481 RUNTIME_ASSERT(args.length() == 4); 465 RUNTIME_ASSERT(args.length() == 4);
482 466
483 CONVERT_ARG_HANDLE_CHECKED(Object, object, 0); 467 CONVERT_ARG_HANDLE_CHECKED(Object, object, 0);
484 CONVERT_ARG_HANDLE_CHECKED(Object, key, 1); 468 CONVERT_ARG_HANDLE_CHECKED(Object, key, 1);
485 CONVERT_ARG_HANDLE_CHECKED(Object, value, 2); 469 CONVERT_ARG_HANDLE_CHECKED(Object, value, 2);
486 CONVERT_LANGUAGE_MODE_ARG_CHECKED(language_mode_arg, 3); 470 CONVERT_LANGUAGE_MODE_ARG_CHECKED(language_mode_arg, 3);
487 LanguageMode language_mode = language_mode_arg; 471 LanguageMode language_mode = language_mode_arg;
488 472
489 Handle<Object> result; 473 RETURN_RESULT_OR_FAILURE(
490 ASSIGN_RETURN_FAILURE_ON_EXCEPTION( 474 isolate,
491 isolate, result,
492 Runtime::SetObjectProperty(isolate, object, key, value, language_mode)); 475 Runtime::SetObjectProperty(isolate, object, key, value, language_mode));
493 return *result;
494 } 476 }
495 477
496 478
497 namespace { 479 namespace {
498 480
499 // ES6 section 12.5.4. 481 // ES6 section 12.5.4.
500 Object* DeleteProperty(Isolate* isolate, Handle<Object> object, 482 Object* DeleteProperty(Isolate* isolate, Handle<Object> object,
501 Handle<Object> key, LanguageMode language_mode) { 483 Handle<Object> key, LanguageMode language_mode) {
502 Handle<JSReceiver> receiver; 484 Handle<JSReceiver> receiver;
503 ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, receiver, 485 ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, receiver,
(...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after
622 DCHECK(args.length() == 0); 604 DCHECK(args.length() == 0);
623 return *isolate->factory()->NewHeapNumber(0); 605 return *isolate->factory()->NewHeapNumber(0);
624 } 606 }
625 607
626 608
627 RUNTIME_FUNCTION(Runtime_NewObject) { 609 RUNTIME_FUNCTION(Runtime_NewObject) {
628 HandleScope scope(isolate); 610 HandleScope scope(isolate);
629 DCHECK_EQ(2, args.length()); 611 DCHECK_EQ(2, args.length());
630 CONVERT_ARG_HANDLE_CHECKED(JSFunction, target, 0); 612 CONVERT_ARG_HANDLE_CHECKED(JSFunction, target, 0);
631 CONVERT_ARG_HANDLE_CHECKED(JSReceiver, new_target, 1); 613 CONVERT_ARG_HANDLE_CHECKED(JSReceiver, new_target, 1);
632 Handle<JSObject> result; 614 RETURN_RESULT_OR_FAILURE(isolate, JSObject::New(target, new_target));
633 ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, result,
634 JSObject::New(target, new_target));
635 return *result;
636 } 615 }
637 616
638 617
639 RUNTIME_FUNCTION(Runtime_FinalizeInstanceSize) { 618 RUNTIME_FUNCTION(Runtime_FinalizeInstanceSize) {
640 HandleScope scope(isolate); 619 HandleScope scope(isolate);
641 DCHECK(args.length() == 1); 620 DCHECK(args.length() == 1);
642 621
643 CONVERT_ARG_HANDLE_CHECKED(Map, initial_map, 0); 622 CONVERT_ARG_HANDLE_CHECKED(Map, initial_map, 0);
644 initial_map->CompleteInobjectSlackTracking(); 623 initial_map->CompleteInobjectSlackTracking();
645 624
(...skipping 183 matching lines...) Expand 10 before | Expand all | Expand 10 after
829 JSObject::DefineAccessor(object, name, isolate->factory()->null_value(), 808 JSObject::DefineAccessor(object, name, isolate->factory()->null_value(),
830 setter, attrs)); 809 setter, attrs));
831 return isolate->heap()->undefined_value(); 810 return isolate->heap()->undefined_value();
832 } 811 }
833 812
834 813
835 RUNTIME_FUNCTION(Runtime_ToObject) { 814 RUNTIME_FUNCTION(Runtime_ToObject) {
836 HandleScope scope(isolate); 815 HandleScope scope(isolate);
837 DCHECK_EQ(1, args.length()); 816 DCHECK_EQ(1, args.length());
838 CONVERT_ARG_HANDLE_CHECKED(Object, object, 0); 817 CONVERT_ARG_HANDLE_CHECKED(Object, object, 0);
839 Handle<JSReceiver> receiver; 818 RETURN_RESULT_OR_FAILURE(isolate, Object::ToObject(isolate, object));
840 ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, receiver,
841 Object::ToObject(isolate, object));
842 return *receiver;
843 } 819 }
844 820
845 821
846 RUNTIME_FUNCTION(Runtime_ToPrimitive) { 822 RUNTIME_FUNCTION(Runtime_ToPrimitive) {
847 HandleScope scope(isolate); 823 HandleScope scope(isolate);
848 DCHECK_EQ(1, args.length()); 824 DCHECK_EQ(1, args.length());
849 CONVERT_ARG_HANDLE_CHECKED(Object, input, 0); 825 CONVERT_ARG_HANDLE_CHECKED(Object, input, 0);
850 Handle<Object> result; 826 RETURN_RESULT_OR_FAILURE(isolate, Object::ToPrimitive(input));
851 ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, result,
852 Object::ToPrimitive(input));
853 return *result;
854 } 827 }
855 828
856 829
857 RUNTIME_FUNCTION(Runtime_ToPrimitive_Number) { 830 RUNTIME_FUNCTION(Runtime_ToPrimitive_Number) {
858 HandleScope scope(isolate); 831 HandleScope scope(isolate);
859 DCHECK_EQ(1, args.length()); 832 DCHECK_EQ(1, args.length());
860 CONVERT_ARG_HANDLE_CHECKED(Object, input, 0); 833 CONVERT_ARG_HANDLE_CHECKED(Object, input, 0);
861 Handle<Object> result; 834 RETURN_RESULT_OR_FAILURE(
862 ASSIGN_RETURN_FAILURE_ON_EXCEPTION( 835 isolate, Object::ToPrimitive(input, ToPrimitiveHint::kNumber));
863 isolate, result, Object::ToPrimitive(input, ToPrimitiveHint::kNumber));
864 return *result;
865 } 836 }
866 837
867 838
868 RUNTIME_FUNCTION(Runtime_ToPrimitive_String) { 839 RUNTIME_FUNCTION(Runtime_ToPrimitive_String) {
869 HandleScope scope(isolate); 840 HandleScope scope(isolate);
870 DCHECK_EQ(1, args.length()); 841 DCHECK_EQ(1, args.length());
871 CONVERT_ARG_HANDLE_CHECKED(Object, input, 0); 842 CONVERT_ARG_HANDLE_CHECKED(Object, input, 0);
872 Handle<Object> result; 843 RETURN_RESULT_OR_FAILURE(
873 ASSIGN_RETURN_FAILURE_ON_EXCEPTION( 844 isolate, Object::ToPrimitive(input, ToPrimitiveHint::kString));
874 isolate, result, Object::ToPrimitive(input, ToPrimitiveHint::kString));
875 return *result;
876 } 845 }
877 846
878 847
879 RUNTIME_FUNCTION(Runtime_ToNumber) { 848 RUNTIME_FUNCTION(Runtime_ToNumber) {
880 HandleScope scope(isolate); 849 HandleScope scope(isolate);
881 DCHECK_EQ(1, args.length()); 850 DCHECK_EQ(1, args.length());
882 CONVERT_ARG_HANDLE_CHECKED(Object, input, 0); 851 CONVERT_ARG_HANDLE_CHECKED(Object, input, 0);
883 Handle<Object> result; 852 RETURN_RESULT_OR_FAILURE(isolate, Object::ToNumber(input));
884 ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, result, Object::ToNumber(input));
885 return *result;
886 } 853 }
887 854
888 855
889 RUNTIME_FUNCTION(Runtime_ToInteger) { 856 RUNTIME_FUNCTION(Runtime_ToInteger) {
890 HandleScope scope(isolate); 857 HandleScope scope(isolate);
891 DCHECK_EQ(1, args.length()); 858 DCHECK_EQ(1, args.length());
892 CONVERT_ARG_HANDLE_CHECKED(Object, input, 0); 859 CONVERT_ARG_HANDLE_CHECKED(Object, input, 0);
893 Handle<Object> result; 860 RETURN_RESULT_OR_FAILURE(isolate, Object::ToInteger(isolate, input));
894 ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, result,
895 Object::ToInteger(isolate, input));
896 return *result;
897 } 861 }
898 862
899 863
900 RUNTIME_FUNCTION(Runtime_ToLength) { 864 RUNTIME_FUNCTION(Runtime_ToLength) {
901 HandleScope scope(isolate); 865 HandleScope scope(isolate);
902 DCHECK_EQ(1, args.length()); 866 DCHECK_EQ(1, args.length());
903 CONVERT_ARG_HANDLE_CHECKED(Object, input, 0); 867 CONVERT_ARG_HANDLE_CHECKED(Object, input, 0);
904 Handle<Object> result; 868 RETURN_RESULT_OR_FAILURE(isolate, Object::ToLength(isolate, input));
905 ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, result,
906 Object::ToLength(isolate, input));
907 return *result;
908 } 869 }
909 870
910 871
911 RUNTIME_FUNCTION(Runtime_ToString) { 872 RUNTIME_FUNCTION(Runtime_ToString) {
912 HandleScope scope(isolate); 873 HandleScope scope(isolate);
913 DCHECK_EQ(1, args.length()); 874 DCHECK_EQ(1, args.length());
914 CONVERT_ARG_HANDLE_CHECKED(Object, input, 0); 875 CONVERT_ARG_HANDLE_CHECKED(Object, input, 0);
915 Handle<Object> result; 876 RETURN_RESULT_OR_FAILURE(isolate, Object::ToString(isolate, input));
916 ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, result,
917 Object::ToString(isolate, input));
918 return *result;
919 } 877 }
920 878
921 879
922 RUNTIME_FUNCTION(Runtime_ToName) { 880 RUNTIME_FUNCTION(Runtime_ToName) {
923 HandleScope scope(isolate); 881 HandleScope scope(isolate);
924 DCHECK_EQ(1, args.length()); 882 DCHECK_EQ(1, args.length());
925 CONVERT_ARG_HANDLE_CHECKED(Object, input, 0); 883 CONVERT_ARG_HANDLE_CHECKED(Object, input, 0);
926 Handle<Object> result; 884 RETURN_RESULT_OR_FAILURE(isolate, Object::ToName(isolate, input));
927 ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, result,
928 Object::ToName(isolate, input));
929 return *result;
930 } 885 }
931 886
932 887
933 RUNTIME_FUNCTION(Runtime_SameValue) { 888 RUNTIME_FUNCTION(Runtime_SameValue) {
934 SealHandleScope scope(isolate); 889 SealHandleScope scope(isolate);
935 DCHECK_EQ(2, args.length()); 890 DCHECK_EQ(2, args.length());
936 CONVERT_ARG_CHECKED(Object, x, 0); 891 CONVERT_ARG_CHECKED(Object, x, 0);
937 CONVERT_ARG_CHECKED(Object, y, 1); 892 CONVERT_ARG_CHECKED(Object, y, 1);
938 return isolate->heap()->ToBoolean(x->SameValue(y)); 893 return isolate->heap()->ToBoolean(x->SameValue(y));
939 } 894 }
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
1018 isolate, o, key, &success, LookupIterator::OWN); 973 isolate, o, key, &success, LookupIterator::OWN);
1019 if (!success) return isolate->heap()->exception(); 974 if (!success) return isolate->heap()->exception();
1020 MAYBE_RETURN( 975 MAYBE_RETURN(
1021 JSReceiver::CreateDataProperty(&it, value, Object::THROW_ON_ERROR), 976 JSReceiver::CreateDataProperty(&it, value, Object::THROW_ON_ERROR),
1022 isolate->heap()->exception()); 977 isolate->heap()->exception());
1023 return *value; 978 return *value;
1024 } 979 }
1025 980
1026 } // namespace internal 981 } // namespace internal
1027 } // namespace v8 982 } // namespace v8
OLDNEW
« no previous file with comments | « src/runtime/runtime-liveedit.cc ('k') | src/runtime/runtime-operators.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698