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

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

Issue 2045193002: [runtime] Deprecate RUNTIME_ASSERT from object ops. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Rebased. Created 4 years, 6 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-generator.cc ('k') | src/runtime/runtime-scopes.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 375 matching lines...) Expand 10 before | Expand all | Expand 10 after
386 CONVERT_ARG_HANDLE_CHECKED(Object, receiver_obj, 0); 386 CONVERT_ARG_HANDLE_CHECKED(Object, receiver_obj, 0);
387 CONVERT_ARG_HANDLE_CHECKED(Object, key_obj, 1); 387 CONVERT_ARG_HANDLE_CHECKED(Object, key_obj, 1);
388 388
389 RETURN_RESULT_OR_FAILURE( 389 RETURN_RESULT_OR_FAILURE(
390 isolate, KeyedGetObjectProperty(isolate, receiver_obj, key_obj)); 390 isolate, KeyedGetObjectProperty(isolate, receiver_obj, key_obj));
391 } 391 }
392 392
393 393
394 RUNTIME_FUNCTION(Runtime_AddNamedProperty) { 394 RUNTIME_FUNCTION(Runtime_AddNamedProperty) {
395 HandleScope scope(isolate); 395 HandleScope scope(isolate);
396 RUNTIME_ASSERT(args.length() == 4); 396 DCHECK_EQ(4, args.length());
397 397
398 CONVERT_ARG_HANDLE_CHECKED(JSObject, object, 0); 398 CONVERT_ARG_HANDLE_CHECKED(JSObject, object, 0);
399 CONVERT_ARG_HANDLE_CHECKED(Name, name, 1); 399 CONVERT_ARG_HANDLE_CHECKED(Name, name, 1);
400 CONVERT_ARG_HANDLE_CHECKED(Object, value, 2); 400 CONVERT_ARG_HANDLE_CHECKED(Object, value, 2);
401 CONVERT_PROPERTY_ATTRIBUTES_CHECKED(attrs, 3); 401 CONVERT_PROPERTY_ATTRIBUTES_CHECKED(attrs, 3);
402 402
403 #ifdef DEBUG 403 #ifdef DEBUG
404 uint32_t index = 0; 404 uint32_t index = 0;
405 DCHECK(!name->ToArrayIndex(&index)); 405 DCHECK(!name->ToArrayIndex(&index));
406 LookupIterator it(object, name, object, LookupIterator::OWN_SKIP_INTERCEPTOR); 406 LookupIterator it(object, name, object, LookupIterator::OWN_SKIP_INTERCEPTOR);
407 Maybe<PropertyAttributes> maybe = JSReceiver::GetPropertyAttributes(&it); 407 Maybe<PropertyAttributes> maybe = JSReceiver::GetPropertyAttributes(&it);
408 if (!maybe.IsJust()) return isolate->heap()->exception(); 408 if (!maybe.IsJust()) return isolate->heap()->exception();
409 RUNTIME_ASSERT(!it.IsFound()); 409 CHECK(!it.IsFound());
410 #endif 410 #endif
411 411
412 RETURN_RESULT_OR_FAILURE(isolate, JSObject::SetOwnPropertyIgnoreAttributes( 412 RETURN_RESULT_OR_FAILURE(isolate, JSObject::SetOwnPropertyIgnoreAttributes(
413 object, name, value, attrs)); 413 object, name, value, attrs));
414 } 414 }
415 415
416 416
417 // Adds an element to an array. 417 // Adds an element to an array.
418 // This is used to create an indexed data property into an array. 418 // This is used to create an indexed data property into an array.
419 RUNTIME_FUNCTION(Runtime_AddElement) { 419 RUNTIME_FUNCTION(Runtime_AddElement) {
420 HandleScope scope(isolate); 420 HandleScope scope(isolate);
421 RUNTIME_ASSERT(args.length() == 3); 421 DCHECK_EQ(3, args.length());
422 422
423 CONVERT_ARG_HANDLE_CHECKED(JSObject, object, 0); 423 CONVERT_ARG_HANDLE_CHECKED(JSObject, object, 0);
424 CONVERT_ARG_HANDLE_CHECKED(Object, key, 1); 424 CONVERT_ARG_HANDLE_CHECKED(Object, key, 1);
425 CONVERT_ARG_HANDLE_CHECKED(Object, value, 2); 425 CONVERT_ARG_HANDLE_CHECKED(Object, value, 2);
426 426
427 uint32_t index = 0; 427 uint32_t index = 0;
428 CHECK(key->ToArrayIndex(&index)); 428 CHECK(key->ToArrayIndex(&index));
429 429
430 #ifdef DEBUG 430 #ifdef DEBUG
431 LookupIterator it(isolate, object, index, object, 431 LookupIterator it(isolate, object, index, object,
432 LookupIterator::OWN_SKIP_INTERCEPTOR); 432 LookupIterator::OWN_SKIP_INTERCEPTOR);
433 Maybe<PropertyAttributes> maybe = JSReceiver::GetPropertyAttributes(&it); 433 Maybe<PropertyAttributes> maybe = JSReceiver::GetPropertyAttributes(&it);
434 if (!maybe.IsJust()) return isolate->heap()->exception(); 434 if (!maybe.IsJust()) return isolate->heap()->exception();
435 RUNTIME_ASSERT(!it.IsFound()); 435 CHECK(!it.IsFound());
436 436
437 if (object->IsJSArray()) { 437 if (object->IsJSArray()) {
438 Handle<JSArray> array = Handle<JSArray>::cast(object); 438 Handle<JSArray> array = Handle<JSArray>::cast(object);
439 RUNTIME_ASSERT(!JSArray::WouldChangeReadOnlyLength(array, index)); 439 CHECK(!JSArray::WouldChangeReadOnlyLength(array, index));
440 } 440 }
441 #endif 441 #endif
442 442
443 RETURN_RESULT_OR_FAILURE(isolate, JSObject::SetOwnElementIgnoreAttributes( 443 RETURN_RESULT_OR_FAILURE(isolate, JSObject::SetOwnElementIgnoreAttributes(
444 object, index, value, NONE)); 444 object, index, value, NONE));
445 } 445 }
446 446
447 447
448 RUNTIME_FUNCTION(Runtime_AppendElement) { 448 RUNTIME_FUNCTION(Runtime_AppendElement) {
449 HandleScope scope(isolate); 449 HandleScope scope(isolate);
450 RUNTIME_ASSERT(args.length() == 2); 450 DCHECK_EQ(2, args.length());
451 451
452 CONVERT_ARG_HANDLE_CHECKED(JSArray, array, 0); 452 CONVERT_ARG_HANDLE_CHECKED(JSArray, array, 0);
453 CONVERT_ARG_HANDLE_CHECKED(Object, value, 1); 453 CONVERT_ARG_HANDLE_CHECKED(Object, value, 1);
454 454
455 uint32_t index; 455 uint32_t index;
456 CHECK(array->length()->ToArrayIndex(&index)); 456 CHECK(array->length()->ToArrayIndex(&index));
457 457
458 RETURN_FAILURE_ON_EXCEPTION( 458 RETURN_FAILURE_ON_EXCEPTION(
459 isolate, JSObject::AddDataElement(array, index, value, NONE)); 459 isolate, JSObject::AddDataElement(array, index, value, NONE));
460 JSObject::ValidateElements(array); 460 JSObject::ValidateElements(array);
461 return *array; 461 return *array;
462 } 462 }
463 463
464 464
465 RUNTIME_FUNCTION(Runtime_SetProperty) { 465 RUNTIME_FUNCTION(Runtime_SetProperty) {
466 HandleScope scope(isolate); 466 HandleScope scope(isolate);
467 RUNTIME_ASSERT(args.length() == 4); 467 DCHECK_EQ(4, args.length());
468 468
469 CONVERT_ARG_HANDLE_CHECKED(Object, object, 0); 469 CONVERT_ARG_HANDLE_CHECKED(Object, object, 0);
470 CONVERT_ARG_HANDLE_CHECKED(Object, key, 1); 470 CONVERT_ARG_HANDLE_CHECKED(Object, key, 1);
471 CONVERT_ARG_HANDLE_CHECKED(Object, value, 2); 471 CONVERT_ARG_HANDLE_CHECKED(Object, value, 2);
472 CONVERT_LANGUAGE_MODE_ARG_CHECKED(language_mode_arg, 3); 472 CONVERT_LANGUAGE_MODE_ARG_CHECKED(language_mode_arg, 3);
473 LanguageMode language_mode = language_mode_arg; 473 LanguageMode language_mode = language_mode_arg;
474 474
475 RETURN_RESULT_OR_FAILURE( 475 RETURN_RESULT_OR_FAILURE(
476 isolate, 476 isolate,
477 Runtime::SetObjectProperty(isolate, object, key, value, language_mode)); 477 Runtime::SetObjectProperty(isolate, object, key, value, language_mode));
(...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after
627 627
628 return isolate->heap()->undefined_value(); 628 return isolate->heap()->undefined_value();
629 } 629 }
630 630
631 631
632 RUNTIME_FUNCTION(Runtime_LoadMutableDouble) { 632 RUNTIME_FUNCTION(Runtime_LoadMutableDouble) {
633 HandleScope scope(isolate); 633 HandleScope scope(isolate);
634 DCHECK(args.length() == 2); 634 DCHECK(args.length() == 2);
635 CONVERT_ARG_HANDLE_CHECKED(JSObject, object, 0); 635 CONVERT_ARG_HANDLE_CHECKED(JSObject, object, 0);
636 CONVERT_ARG_HANDLE_CHECKED(Smi, index, 1); 636 CONVERT_ARG_HANDLE_CHECKED(Smi, index, 1);
637 RUNTIME_ASSERT((index->value() & 1) == 1); 637 CHECK((index->value() & 1) == 1);
638 FieldIndex field_index = 638 FieldIndex field_index =
639 FieldIndex::ForLoadByFieldIndex(object->map(), index->value()); 639 FieldIndex::ForLoadByFieldIndex(object->map(), index->value());
640 if (field_index.is_inobject()) { 640 if (field_index.is_inobject()) {
641 RUNTIME_ASSERT(field_index.property_index() < 641 CHECK(field_index.property_index() <
642 object->map()->GetInObjectProperties()); 642 object->map()->GetInObjectProperties());
643 } else { 643 } else {
644 RUNTIME_ASSERT(field_index.outobject_array_index() < 644 CHECK(field_index.outobject_array_index() < object->properties()->length());
645 object->properties()->length());
646 } 645 }
647 return *JSObject::FastPropertyAt(object, Representation::Double(), 646 return *JSObject::FastPropertyAt(object, Representation::Double(),
648 field_index); 647 field_index);
649 } 648 }
650 649
651 650
652 RUNTIME_FUNCTION(Runtime_TryMigrateInstance) { 651 RUNTIME_FUNCTION(Runtime_TryMigrateInstance) {
653 HandleScope scope(isolate); 652 HandleScope scope(isolate);
654 DCHECK(args.length() == 1); 653 DCHECK(args.length() == 1);
655 CONVERT_ARG_HANDLE_CHECKED(Object, object, 0); 654 CONVERT_ARG_HANDLE_CHECKED(Object, object, 0);
(...skipping 24 matching lines...) Expand all
680 // Implements part of 8.12.9 DefineOwnProperty. 679 // Implements part of 8.12.9 DefineOwnProperty.
681 // There are 3 cases that lead here: 680 // There are 3 cases that lead here:
682 // Step 4b - define a new accessor property. 681 // Step 4b - define a new accessor property.
683 // Steps 9c & 12 - replace an existing data property with an accessor property. 682 // Steps 9c & 12 - replace an existing data property with an accessor property.
684 // Step 12 - update an existing accessor property with an accessor or generic 683 // Step 12 - update an existing accessor property with an accessor or generic
685 // descriptor. 684 // descriptor.
686 RUNTIME_FUNCTION(Runtime_DefineAccessorPropertyUnchecked) { 685 RUNTIME_FUNCTION(Runtime_DefineAccessorPropertyUnchecked) {
687 HandleScope scope(isolate); 686 HandleScope scope(isolate);
688 DCHECK(args.length() == 5); 687 DCHECK(args.length() == 5);
689 CONVERT_ARG_HANDLE_CHECKED(JSObject, obj, 0); 688 CONVERT_ARG_HANDLE_CHECKED(JSObject, obj, 0);
690 RUNTIME_ASSERT(!obj->IsNull()); 689 CHECK(!obj->IsNull());
691 CONVERT_ARG_HANDLE_CHECKED(Name, name, 1); 690 CONVERT_ARG_HANDLE_CHECKED(Name, name, 1);
692 CONVERT_ARG_HANDLE_CHECKED(Object, getter, 2); 691 CONVERT_ARG_HANDLE_CHECKED(Object, getter, 2);
693 RUNTIME_ASSERT(IsValidAccessor(isolate, getter)); 692 CHECK(IsValidAccessor(isolate, getter));
694 CONVERT_ARG_HANDLE_CHECKED(Object, setter, 3); 693 CONVERT_ARG_HANDLE_CHECKED(Object, setter, 3);
695 RUNTIME_ASSERT(IsValidAccessor(isolate, setter)); 694 CHECK(IsValidAccessor(isolate, setter));
696 CONVERT_PROPERTY_ATTRIBUTES_CHECKED(attrs, 4); 695 CONVERT_PROPERTY_ATTRIBUTES_CHECKED(attrs, 4);
697 696
698 RETURN_FAILURE_ON_EXCEPTION( 697 RETURN_FAILURE_ON_EXCEPTION(
699 isolate, JSObject::DefineAccessor(obj, name, getter, setter, attrs)); 698 isolate, JSObject::DefineAccessor(obj, name, getter, setter, attrs));
700 return isolate->heap()->undefined_value(); 699 return isolate->heap()->undefined_value();
701 } 700 }
702 701
703 702
704 RUNTIME_FUNCTION(Runtime_DefineDataPropertyInLiteral) { 703 RUNTIME_FUNCTION(Runtime_DefineDataPropertyInLiteral) {
705 HandleScope scope(isolate); 704 HandleScope scope(isolate);
(...skipping 269 matching lines...) Expand 10 before | Expand all | Expand 10 after
975 isolate, o, key, &success, LookupIterator::OWN); 974 isolate, o, key, &success, LookupIterator::OWN);
976 if (!success) return isolate->heap()->exception(); 975 if (!success) return isolate->heap()->exception();
977 MAYBE_RETURN( 976 MAYBE_RETURN(
978 JSReceiver::CreateDataProperty(&it, value, Object::THROW_ON_ERROR), 977 JSReceiver::CreateDataProperty(&it, value, Object::THROW_ON_ERROR),
979 isolate->heap()->exception()); 978 isolate->heap()->exception());
980 return *value; 979 return *value;
981 } 980 }
982 981
983 } // namespace internal 982 } // namespace internal
984 } // namespace v8 983 } // namespace v8
OLDNEW
« no previous file with comments | « src/runtime/runtime-generator.cc ('k') | src/runtime/runtime-scopes.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698