OLD | NEW |
1 // Copyright 2006-2009 the V8 project authors. All rights reserved. | 1 // Copyright 2006-2009 the V8 project authors. All rights reserved. |
2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
4 // met: | 4 // met: |
5 // | 5 // |
6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
(...skipping 887 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
898 | 898 |
899 ASSERT(current->GetPrototype()->IsJSObject()); | 899 ASSERT(current->GetPrototype()->IsJSObject()); |
900 JSObject* prototype = JSObject::cast(current->GetPrototype()); | 900 JSObject* prototype = JSObject::cast(current->GetPrototype()); |
901 if (!current->HasFastProperties() && | 901 if (!current->HasFastProperties() && |
902 !current->IsJSGlobalObject() && | 902 !current->IsJSGlobalObject() && |
903 !current->IsJSGlobalProxy()) { | 903 !current->IsJSGlobalProxy()) { |
904 if (!name->IsSymbol()) { | 904 if (!name->IsSymbol()) { |
905 MaybeObject* maybe_lookup_result = Heap::LookupSymbol(name); | 905 MaybeObject* maybe_lookup_result = Heap::LookupSymbol(name); |
906 Object* lookup_result = NULL; // Initialization to please compiler. | 906 Object* lookup_result = NULL; // Initialization to please compiler. |
907 if (!maybe_lookup_result->ToObject(&lookup_result)) { | 907 if (!maybe_lookup_result->ToObject(&lookup_result)) { |
908 set_failure(Failure::cast(lookup_result)); | 908 set_failure(Failure::cast(maybe_lookup_result)); |
909 return reg; | 909 return reg; |
910 } | 910 } |
911 name = String::cast(lookup_result); | 911 name = String::cast(lookup_result); |
912 } | 912 } |
913 ASSERT(current->property_dictionary()->FindEntry(name) == | 913 ASSERT(current->property_dictionary()->FindEntry(name) == |
914 StringDictionary::kNotFound); | 914 StringDictionary::kNotFound); |
915 | 915 |
916 GenerateDictionaryNegativeLookup(masm(), | 916 GenerateDictionaryNegativeLookup(masm(), |
917 miss, | 917 miss, |
918 reg, | 918 reg, |
(...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1070 Address getter_address = v8::ToCData<Address>(callback->getter()); | 1070 Address getter_address = v8::ToCData<Address>(callback->getter()); |
1071 ApiFunction fun(getter_address); | 1071 ApiFunction fun(getter_address); |
1072 ApiGetterEntryStub stub(callback_handle, &fun); | 1072 ApiGetterEntryStub stub(callback_handle, &fun); |
1073 // Emitting a stub call may try to allocate (if the code is not | 1073 // Emitting a stub call may try to allocate (if the code is not |
1074 // already generated). Do not allow the assembler to perform a | 1074 // already generated). Do not allow the assembler to perform a |
1075 // garbage collection but instead return the allocation failure | 1075 // garbage collection but instead return the allocation failure |
1076 // object. | 1076 // object. |
1077 Object* result = NULL; // Initialization to please compiler. | 1077 Object* result = NULL; // Initialization to please compiler. |
1078 { MaybeObject* try_call_result = masm()->TryCallStub(&stub); | 1078 { MaybeObject* try_call_result = masm()->TryCallStub(&stub); |
1079 if (!try_call_result->ToObject(&result)) { | 1079 if (!try_call_result->ToObject(&result)) { |
1080 *failure = Failure::cast(result); | 1080 *failure = Failure::cast(try_call_result); |
1081 return false; | 1081 return false; |
1082 } | 1082 } |
1083 } | 1083 } |
1084 __ LeaveInternalFrame(); | 1084 __ LeaveInternalFrame(); |
1085 | 1085 |
1086 __ ret(0); | 1086 __ ret(0); |
1087 return true; | 1087 return true; |
1088 } | 1088 } |
1089 | 1089 |
1090 | 1090 |
(...skipping 2007 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3098 // Return the generated code. | 3098 // Return the generated code. |
3099 return GetCode(); | 3099 return GetCode(); |
3100 } | 3100 } |
3101 | 3101 |
3102 | 3102 |
3103 #undef __ | 3103 #undef __ |
3104 | 3104 |
3105 } } // namespace v8::internal | 3105 } } // namespace v8::internal |
3106 | 3106 |
3107 #endif // V8_TARGET_ARCH_IA32 | 3107 #endif // V8_TARGET_ARCH_IA32 |
OLD | NEW |