| OLD | NEW |
| 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 <stdlib.h> | 5 #include <stdlib.h> |
| 6 #include <limits> | 6 #include <limits> |
| 7 | 7 |
| 8 #include "src/v8.h" | 8 #include "src/v8.h" |
| 9 | 9 |
| 10 #include "src/accessors.h" | 10 #include "src/accessors.h" |
| (...skipping 10877 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 10888 | 10888 |
| 10889 | 10889 |
| 10890 RUNTIME_FUNCTION(Runtime_Break) { | 10890 RUNTIME_FUNCTION(Runtime_Break) { |
| 10891 SealHandleScope shs(isolate); | 10891 SealHandleScope shs(isolate); |
| 10892 DCHECK(args.length() == 0); | 10892 DCHECK(args.length() == 0); |
| 10893 isolate->stack_guard()->RequestDebugBreak(); | 10893 isolate->stack_guard()->RequestDebugBreak(); |
| 10894 return isolate->heap()->undefined_value(); | 10894 return isolate->heap()->undefined_value(); |
| 10895 } | 10895 } |
| 10896 | 10896 |
| 10897 | 10897 |
| 10898 static Handle<Object> DebugLookupResultValue(LookupIterator* it, | 10898 static Handle<Object> DebugGetProperty(LookupIterator* it, |
| 10899 bool* has_caught = NULL) { | 10899 bool* has_caught = NULL) { |
| 10900 for (; it->IsFound(); it->Next()) { | 10900 for (; it->IsFound(); it->Next()) { |
| 10901 switch (it->state()) { | 10901 switch (it->state()) { |
| 10902 case LookupIterator::NOT_FOUND: | 10902 case LookupIterator::NOT_FOUND: |
| 10903 case LookupIterator::TRANSITION: | 10903 case LookupIterator::TRANSITION: |
| 10904 UNREACHABLE(); | 10904 UNREACHABLE(); |
| 10905 case LookupIterator::ACCESS_CHECK: | 10905 case LookupIterator::ACCESS_CHECK: |
| 10906 // Ignore access checks. | 10906 // Ignore access checks. |
| 10907 break; | 10907 break; |
| 10908 case LookupIterator::INTERCEPTOR: | 10908 case LookupIterator::INTERCEPTOR: |
| 10909 case LookupIterator::JSPROXY: | 10909 case LookupIterator::JSPROXY: |
| (...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 10975 isolate, element_or_char, | 10975 isolate, element_or_char, |
| 10976 Runtime::GetElementOrCharAt(isolate, obj, index)); | 10976 Runtime::GetElementOrCharAt(isolate, obj, index)); |
| 10977 details->set(0, *element_or_char); | 10977 details->set(0, *element_or_char); |
| 10978 details->set( | 10978 details->set( |
| 10979 1, PropertyDetails(NONE, NORMAL, Representation::None()).AsSmi()); | 10979 1, PropertyDetails(NONE, NORMAL, Representation::None()).AsSmi()); |
| 10980 return *isolate->factory()->NewJSArrayWithElements(details); | 10980 return *isolate->factory()->NewJSArrayWithElements(details); |
| 10981 } | 10981 } |
| 10982 | 10982 |
| 10983 LookupIterator it(obj, name, LookupIterator::CHECK_HIDDEN); | 10983 LookupIterator it(obj, name, LookupIterator::CHECK_HIDDEN); |
| 10984 bool has_caught = false; | 10984 bool has_caught = false; |
| 10985 Handle<Object> value = DebugLookupResultValue(&it, &has_caught); | 10985 Handle<Object> value = DebugGetProperty(&it, &has_caught); |
| 10986 if (!it.IsFound()) return isolate->heap()->undefined_value(); | 10986 if (!it.IsFound()) return isolate->heap()->undefined_value(); |
| 10987 | 10987 |
| 10988 Handle<Object> maybe_pair; | 10988 Handle<Object> maybe_pair; |
| 10989 if (it.state() == LookupIterator::PROPERTY && | 10989 if (it.state() == LookupIterator::PROPERTY && |
| 10990 it.property_kind() == LookupIterator::ACCESSOR) { | 10990 it.property_kind() == LookupIterator::ACCESSOR) { |
| 10991 maybe_pair = it.GetAccessors(); | 10991 maybe_pair = it.GetAccessors(); |
| 10992 } | 10992 } |
| 10993 | 10993 |
| 10994 // If the callback object is a fixed array then it contains JavaScript | 10994 // If the callback object is a fixed array then it contains JavaScript |
| 10995 // getter and/or setter. | 10995 // getter and/or setter. |
| (...skipping 19 matching lines...) Expand all Loading... |
| 11015 | 11015 |
| 11016 RUNTIME_FUNCTION(Runtime_DebugGetProperty) { | 11016 RUNTIME_FUNCTION(Runtime_DebugGetProperty) { |
| 11017 HandleScope scope(isolate); | 11017 HandleScope scope(isolate); |
| 11018 | 11018 |
| 11019 DCHECK(args.length() == 2); | 11019 DCHECK(args.length() == 2); |
| 11020 | 11020 |
| 11021 CONVERT_ARG_HANDLE_CHECKED(JSObject, obj, 0); | 11021 CONVERT_ARG_HANDLE_CHECKED(JSObject, obj, 0); |
| 11022 CONVERT_ARG_HANDLE_CHECKED(Name, name, 1); | 11022 CONVERT_ARG_HANDLE_CHECKED(Name, name, 1); |
| 11023 | 11023 |
| 11024 LookupIterator it(obj, name, LookupIterator::CHECK_DERIVED); | 11024 LookupIterator it(obj, name, LookupIterator::CHECK_DERIVED); |
| 11025 return *DebugLookupResultValue(&it); | 11025 return *DebugGetProperty(&it); |
| 11026 } | 11026 } |
| 11027 | 11027 |
| 11028 | 11028 |
| 11029 // Return the property type calculated from the property details. | 11029 // Return the property type calculated from the property details. |
| 11030 // args[0]: smi with property details. | 11030 // args[0]: smi with property details. |
| 11031 RUNTIME_FUNCTION(Runtime_DebugPropertyTypeFromDetails) { | 11031 RUNTIME_FUNCTION(Runtime_DebugPropertyTypeFromDetails) { |
| 11032 SealHandleScope shs(isolate); | 11032 SealHandleScope shs(isolate); |
| 11033 DCHECK(args.length() == 1); | 11033 DCHECK(args.length() == 1); |
| 11034 CONVERT_PROPERTY_DETAILS_CHECKED(details, 0); | 11034 CONVERT_PROPERTY_DETAILS_CHECKED(details, 0); |
| 11035 return Smi::FromInt(static_cast<int>(details.type())); | 11035 return Smi::FromInt(static_cast<int>(details.type())); |
| (...skipping 4610 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 15646 } | 15646 } |
| 15647 return NULL; | 15647 return NULL; |
| 15648 } | 15648 } |
| 15649 | 15649 |
| 15650 | 15650 |
| 15651 const Runtime::Function* Runtime::FunctionForId(Runtime::FunctionId id) { | 15651 const Runtime::Function* Runtime::FunctionForId(Runtime::FunctionId id) { |
| 15652 return &(kIntrinsicFunctions[static_cast<int>(id)]); | 15652 return &(kIntrinsicFunctions[static_cast<int>(id)]); |
| 15653 } | 15653 } |
| 15654 | 15654 |
| 15655 } } // namespace v8::internal | 15655 } } // namespace v8::internal |
| OLD | NEW |