| OLD | NEW |
| 1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 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 10810 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 10821 } | 10821 } |
| 10822 return value; | 10822 return value; |
| 10823 } | 10823 } |
| 10824 case CONSTANT: | 10824 case CONSTANT: |
| 10825 return result->GetConstant(); | 10825 return result->GetConstant(); |
| 10826 case CALLBACKS: { | 10826 case CALLBACKS: { |
| 10827 Object* structure = result->GetCallbackObject(); | 10827 Object* structure = result->GetCallbackObject(); |
| 10828 if (structure->IsForeign() || structure->IsAccessorInfo()) { | 10828 if (structure->IsForeign() || structure->IsAccessorInfo()) { |
| 10829 Isolate* isolate = heap->isolate(); | 10829 Isolate* isolate = heap->isolate(); |
| 10830 HandleScope scope(isolate); | 10830 HandleScope scope(isolate); |
| 10831 Handle<Object> value = JSObject::GetPropertyWithCallback( | 10831 MaybeHandle<Object> maybe_value = JSObject::GetPropertyWithCallback( |
| 10832 handle(result->holder(), isolate), | 10832 handle(result->holder(), isolate), |
| 10833 handle(receiver, isolate), | 10833 handle(receiver, isolate), |
| 10834 handle(structure, isolate), | 10834 handle(structure, isolate), |
| 10835 handle(name, isolate)); | 10835 handle(name, isolate)); |
| 10836 if (value.is_null()) { | 10836 Handle<Object> value; |
| 10837 MaybeObject* exception = heap->isolate()->pending_exception(); | 10837 if (maybe_value.ToHandle(&value)) return *value; |
| 10838 heap->isolate()->clear_pending_exception(); | 10838 MaybeObject* exception = heap->isolate()->pending_exception(); |
| 10839 if (caught_exception != NULL) *caught_exception = true; | 10839 heap->isolate()->clear_pending_exception(); |
| 10840 return exception; | 10840 if (caught_exception != NULL) *caught_exception = true; |
| 10841 } | 10841 return exception; |
| 10842 return *value; | |
| 10843 } else { | 10842 } else { |
| 10844 return heap->undefined_value(); | 10843 return heap->undefined_value(); |
| 10845 } | 10844 } |
| 10846 } | 10845 } |
| 10847 case INTERCEPTOR: | 10846 case INTERCEPTOR: |
| 10848 return heap->undefined_value(); | 10847 return heap->undefined_value(); |
| 10849 case HANDLER: | 10848 case HANDLER: |
| 10850 case NONEXISTENT: | 10849 case NONEXISTENT: |
| 10851 UNREACHABLE(); | 10850 UNREACHABLE(); |
| 10852 return heap->undefined_value(); | 10851 return heap->undefined_value(); |
| (...skipping 162 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 11015 // args[0]: object | 11014 // args[0]: object |
| 11016 // args[1]: property name | 11015 // args[1]: property name |
| 11017 RUNTIME_FUNCTION(MaybeObject*, Runtime_DebugNamedInterceptorPropertyValue) { | 11016 RUNTIME_FUNCTION(MaybeObject*, Runtime_DebugNamedInterceptorPropertyValue) { |
| 11018 HandleScope scope(isolate); | 11017 HandleScope scope(isolate); |
| 11019 ASSERT(args.length() == 2); | 11018 ASSERT(args.length() == 2); |
| 11020 CONVERT_ARG_HANDLE_CHECKED(JSObject, obj, 0); | 11019 CONVERT_ARG_HANDLE_CHECKED(JSObject, obj, 0); |
| 11021 RUNTIME_ASSERT(obj->HasNamedInterceptor()); | 11020 RUNTIME_ASSERT(obj->HasNamedInterceptor()); |
| 11022 CONVERT_ARG_HANDLE_CHECKED(Name, name, 1); | 11021 CONVERT_ARG_HANDLE_CHECKED(Name, name, 1); |
| 11023 | 11022 |
| 11024 PropertyAttributes attributes; | 11023 PropertyAttributes attributes; |
| 11025 Handle<Object> result = | 11024 Handle<Object> result; |
| 11026 JSObject::GetPropertyWithInterceptor(obj, obj, name, &attributes); | 11025 ASSIGN_RETURN_FAILURE_ON_EXCEPTION( |
| 11027 RETURN_IF_EMPTY_HANDLE(isolate, result); | 11026 isolate, result, |
| 11027 JSObject::GetPropertyWithInterceptor(obj, obj, name, &attributes)); |
| 11028 return *result; | 11028 return *result; |
| 11029 } | 11029 } |
| 11030 | 11030 |
| 11031 | 11031 |
| 11032 // Return element value from indexed interceptor. | 11032 // Return element value from indexed interceptor. |
| 11033 // args[0]: object | 11033 // args[0]: object |
| 11034 // args[1]: index | 11034 // args[1]: index |
| 11035 RUNTIME_FUNCTION(MaybeObject*, Runtime_DebugIndexedInterceptorElementValue) { | 11035 RUNTIME_FUNCTION(MaybeObject*, Runtime_DebugIndexedInterceptorElementValue) { |
| 11036 HandleScope scope(isolate); | 11036 HandleScope scope(isolate); |
| 11037 ASSERT(args.length() == 2); | 11037 ASSERT(args.length() == 2); |
| (...skipping 4220 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 15258 } | 15258 } |
| 15259 } | 15259 } |
| 15260 | 15260 |
| 15261 | 15261 |
| 15262 void Runtime::OutOfMemory() { | 15262 void Runtime::OutOfMemory() { |
| 15263 Heap::FatalProcessOutOfMemory("CALL_AND_RETRY_LAST", true); | 15263 Heap::FatalProcessOutOfMemory("CALL_AND_RETRY_LAST", true); |
| 15264 UNREACHABLE(); | 15264 UNREACHABLE(); |
| 15265 } | 15265 } |
| 15266 | 15266 |
| 15267 } } // namespace v8::internal | 15267 } } // namespace v8::internal |
| OLD | NEW |