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

Side by Side Diff: src/ic/ic.cc

Issue 1126043004: Migrate error messages, part 10. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: fixed and rebased Created 5 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/ic/ic.h ('k') | src/isolate.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 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 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/v8.h" 5 #include "src/v8.h"
6 6
7 #include "src/accessors.h" 7 #include "src/accessors.h"
8 #include "src/api.h" 8 #include "src/api.h"
9 #include "src/arguments.h" 9 #include "src/arguments.h"
10 #include "src/base/bits.h" 10 #include "src/base/bits.h"
11 #include "src/codegen.h" 11 #include "src/codegen.h"
12 #include "src/conversions.h" 12 #include "src/conversions.h"
13 #include "src/execution.h" 13 #include "src/execution.h"
14 #include "src/ic/call-optimization.h" 14 #include "src/ic/call-optimization.h"
15 #include "src/ic/handler-compiler.h" 15 #include "src/ic/handler-compiler.h"
16 #include "src/ic/ic-inl.h" 16 #include "src/ic/ic-inl.h"
17 #include "src/ic/ic-compiler.h" 17 #include "src/ic/ic-compiler.h"
18 #include "src/ic/stub-cache.h" 18 #include "src/ic/stub-cache.h"
19 #include "src/messages.h"
20 #include "src/prototype.h" 19 #include "src/prototype.h"
21 #include "src/runtime/runtime.h" 20 #include "src/runtime/runtime.h"
22 21
23 namespace v8 { 22 namespace v8 {
24 namespace internal { 23 namespace internal {
25 24
26 char IC::TransitionMarkFromState(IC::State state) { 25 char IC::TransitionMarkFromState(IC::State state) {
27 switch (state) { 26 switch (state) {
28 case UNINITIALIZED: 27 case UNINITIALIZED:
29 return '0'; 28 return '0';
(...skipping 325 matching lines...) Expand 10 before | Expand all | Expand 10 after
355 // The builtins object is special. It only changes when JavaScript 354 // The builtins object is special. It only changes when JavaScript
356 // builtins are loaded lazily. It is important to keep inline 355 // builtins are loaded lazily. It is important to keep inline
357 // caches for the builtins object monomorphic. Therefore, if we get 356 // caches for the builtins object monomorphic. Therefore, if we get
358 // an inline cache miss for the builtins object after lazily loading 357 // an inline cache miss for the builtins object after lazily loading
359 // JavaScript builtins, we return uninitialized as the state to 358 // JavaScript builtins, we return uninitialized as the state to
360 // force the inline cache back to monomorphic state. 359 // force the inline cache back to monomorphic state.
361 if (receiver->IsJSBuiltinsObject()) state_ = PREMONOMORPHIC; 360 if (receiver->IsJSBuiltinsObject()) state_ = PREMONOMORPHIC;
362 } 361 }
363 362
364 363
365 MaybeHandle<Object> IC::TypeError(const char* type, Handle<Object> object, 364 MaybeHandle<Object> IC::TypeError(MessageTemplate::Template index,
366 Handle<Object> key) { 365 Handle<Object> object, Handle<Object> key) {
367 HandleScope scope(isolate()); 366 HandleScope scope(isolate());
368 Handle<Object> args[2] = {key, object}; 367 THROW_NEW_ERROR(isolate(), NewTypeError(index, key, object), Object);
369 THROW_NEW_ERROR(isolate(), NewTypeError(type, HandleVector(args, 2)), Object);
370 } 368 }
371 369
372 370
373 MaybeHandle<Object> IC::ReferenceError(Handle<Name> name) { 371 MaybeHandle<Object> IC::ReferenceError(Handle<Name> name) {
374 HandleScope scope(isolate()); 372 HandleScope scope(isolate());
375 THROW_NEW_ERROR( 373 THROW_NEW_ERROR(
376 isolate(), NewReferenceError(MessageTemplate::kNotDefined, name), Object); 374 isolate(), NewReferenceError(MessageTemplate::kNotDefined, name), Object);
377 } 375 }
378 376
379 377
(...skipping 309 matching lines...) Expand 10 before | Expand all | Expand 10 after
689 vector_set_ = true; 687 vector_set_ = true;
690 OnTypeFeedbackChanged(isolate(), get_host(), *vector(), saved_state(), 688 OnTypeFeedbackChanged(isolate(), get_host(), *vector(), saved_state(),
691 POLYMORPHIC); 689 POLYMORPHIC);
692 } 690 }
693 691
694 692
695 MaybeHandle<Object> LoadIC::Load(Handle<Object> object, Handle<Name> name) { 693 MaybeHandle<Object> LoadIC::Load(Handle<Object> object, Handle<Name> name) {
696 // If the object is undefined or null it's illegal to try to get any 694 // If the object is undefined or null it's illegal to try to get any
697 // of its properties; throw a TypeError in that case. 695 // of its properties; throw a TypeError in that case.
698 if (object->IsUndefined() || object->IsNull()) { 696 if (object->IsUndefined() || object->IsNull()) {
699 return TypeError("non_object_property_load", object, name); 697 return TypeError(MessageTemplate::kNonObjectPropertyLoad, object, name);
700 } 698 }
701 699
702 // Check if the name is trivially convertible to an index and get 700 // Check if the name is trivially convertible to an index and get
703 // the element or char if so. 701 // the element or char if so.
704 uint32_t index; 702 uint32_t index;
705 if (kind() == Code::KEYED_LOAD_IC && name->AsArrayIndex(&index)) { 703 if (kind() == Code::KEYED_LOAD_IC && name->AsArrayIndex(&index)) {
706 // Rewrite to the generic keyed load stub. 704 // Rewrite to the generic keyed load stub.
707 if (FLAG_use_ic) { 705 if (FLAG_use_ic) {
708 if (UseVector()) { 706 if (UseVector()) {
709 ConfigureVectorState(MEGAMORPHIC); 707 ConfigureVectorState(MEGAMORPHIC);
(...skipping 841 matching lines...) Expand 10 before | Expand all | Expand 10 after
1551 Handle<String> str_name = Handle<String>::cast(name); 1549 Handle<String> str_name = Handle<String>::cast(name);
1552 Handle<GlobalObject> global = Handle<GlobalObject>::cast(object); 1550 Handle<GlobalObject> global = Handle<GlobalObject>::cast(object);
1553 Handle<ScriptContextTable> script_contexts( 1551 Handle<ScriptContextTable> script_contexts(
1554 global->native_context()->script_context_table()); 1552 global->native_context()->script_context_table());
1555 1553
1556 ScriptContextTable::LookupResult lookup_result; 1554 ScriptContextTable::LookupResult lookup_result;
1557 if (ScriptContextTable::Lookup(script_contexts, str_name, &lookup_result)) { 1555 if (ScriptContextTable::Lookup(script_contexts, str_name, &lookup_result)) {
1558 Handle<Context> script_context = ScriptContextTable::GetContext( 1556 Handle<Context> script_context = ScriptContextTable::GetContext(
1559 script_contexts, lookup_result.context_index); 1557 script_contexts, lookup_result.context_index);
1560 if (lookup_result.mode == CONST) { 1558 if (lookup_result.mode == CONST) {
1561 return TypeError("const_assign", object, name); 1559 return TypeError(MessageTemplate::kConstAssign, object, name);
1562 } 1560 }
1563 1561
1564 Handle<Object> previous_value = 1562 Handle<Object> previous_value =
1565 FixedArray::get(script_context, lookup_result.slot_index); 1563 FixedArray::get(script_context, lookup_result.slot_index);
1566 1564
1567 if (*previous_value == *isolate()->factory()->the_hole_value()) { 1565 if (*previous_value == *isolate()->factory()->the_hole_value()) {
1568 // Do not install stubs and stay pre-monomorphic for 1566 // Do not install stubs and stay pre-monomorphic for
1569 // uninitialized accesses. 1567 // uninitialized accesses.
1570 return ReferenceError(name); 1568 return ReferenceError(name);
1571 } 1569 }
(...skipping 15 matching lines...) Expand all
1587 Handle<Object> result; 1585 Handle<Object> result;
1588 ASSIGN_RETURN_ON_EXCEPTION( 1586 ASSIGN_RETURN_ON_EXCEPTION(
1589 isolate(), result, 1587 isolate(), result,
1590 Object::SetProperty(object, name, value, language_mode()), Object); 1588 Object::SetProperty(object, name, value, language_mode()), Object);
1591 return result; 1589 return result;
1592 } 1590 }
1593 1591
1594 // If the object is undefined or null it's illegal to try to set any 1592 // If the object is undefined or null it's illegal to try to set any
1595 // properties on it; throw a TypeError in that case. 1593 // properties on it; throw a TypeError in that case.
1596 if (object->IsUndefined() || object->IsNull()) { 1594 if (object->IsUndefined() || object->IsNull()) {
1597 return TypeError("non_object_property_store", object, name); 1595 return TypeError(MessageTemplate::kNonObjectPropertyStore, object, name);
1598 } 1596 }
1599 1597
1600 // Check if the given name is an array index. 1598 // Check if the given name is an array index.
1601 uint32_t index; 1599 uint32_t index;
1602 if (name->AsArrayIndex(&index)) { 1600 if (name->AsArrayIndex(&index)) {
1603 // Ignore other stores where the receiver is not a JSObject. 1601 // Ignore other stores where the receiver is not a JSObject.
1604 // TODO(1475): Must check prototype chains of object wrappers. 1602 // TODO(1475): Must check prototype chains of object wrappers.
1605 if (!object->IsJSObject()) return value; 1603 if (!object->IsJSObject()) return value;
1606 Handle<JSObject> receiver = Handle<JSObject>::cast(object); 1604 Handle<JSObject> receiver = Handle<JSObject>::cast(object);
1607 1605
(...skipping 1444 matching lines...) Expand 10 before | Expand all | Expand 10 after
3052 static const Address IC_utilities[] = { 3050 static const Address IC_utilities[] = {
3053 #define ADDR(name) FUNCTION_ADDR(name), 3051 #define ADDR(name) FUNCTION_ADDR(name),
3054 IC_UTIL_LIST(ADDR) NULL 3052 IC_UTIL_LIST(ADDR) NULL
3055 #undef ADDR 3053 #undef ADDR
3056 }; 3054 };
3057 3055
3058 3056
3059 Address IC::AddressFromUtilityId(IC::UtilityId id) { return IC_utilities[id]; } 3057 Address IC::AddressFromUtilityId(IC::UtilityId id) { return IC_utilities[id]; }
3060 } 3058 }
3061 } // namespace v8::internal 3059 } // namespace v8::internal
OLDNEW
« no previous file with comments | « src/ic/ic.h ('k') | src/isolate.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698