OLD | NEW |
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/v8.h" | 5 #include "src/v8.h" |
6 | 6 |
7 #include "src/accessors.h" | 7 #include "src/accessors.h" |
8 #include "src/arguments.h" | 8 #include "src/arguments.h" |
9 #include "src/compiler.h" | 9 #include "src/compiler.h" |
10 #include "src/debug.h" | 10 #include "src/debug.h" |
(...skipping 293 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
304 } | 304 } |
305 | 305 |
306 // Check if the name is trivially convertible to an index and get the element | 306 // Check if the name is trivially convertible to an index and get the element |
307 // if so. | 307 // if so. |
308 uint32_t index; | 308 uint32_t index; |
309 // TODO(verwaest): Make sure DebugGetProperty can handle arrays, and remove | 309 // TODO(verwaest): Make sure DebugGetProperty can handle arrays, and remove |
310 // this special case. | 310 // this special case. |
311 if (name->AsArrayIndex(&index)) { | 311 if (name->AsArrayIndex(&index)) { |
312 Handle<FixedArray> details = isolate->factory()->NewFixedArray(2); | 312 Handle<FixedArray> details = isolate->factory()->NewFixedArray(2); |
313 Handle<Object> element_or_char; | 313 Handle<Object> element_or_char; |
314 ASSIGN_RETURN_FAILURE_ON_EXCEPTION( | 314 ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, element_or_char, |
315 isolate, element_or_char, | 315 Object::GetElement(isolate, obj, index)); |
316 Runtime::GetElementOrCharAt(isolate, obj, index)); | |
317 details->set(0, *element_or_char); | 316 details->set(0, *element_or_char); |
318 details->set(1, PropertyDetails::Empty().AsSmi()); | 317 details->set(1, PropertyDetails::Empty().AsSmi()); |
319 return *isolate->factory()->NewJSArrayWithElements(details); | 318 return *isolate->factory()->NewJSArrayWithElements(details); |
320 } | 319 } |
321 | 320 |
322 LookupIterator it(obj, name, LookupIterator::HIDDEN); | 321 LookupIterator it(obj, name, LookupIterator::HIDDEN); |
323 bool has_caught = false; | 322 bool has_caught = false; |
324 Handle<Object> value = DebugGetProperty(&it, &has_caught); | 323 Handle<Object> value = DebugGetProperty(&it, &has_caught); |
325 if (!it.IsFound()) return isolate->heap()->undefined_value(); | 324 if (!it.IsFound()) return isolate->heap()->undefined_value(); |
326 | 325 |
(...skipping 1532 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1859 // If our frame is a top frame and we are stepping, we can do step-in | 1858 // If our frame is a top frame and we are stepping, we can do step-in |
1860 // at this place. | 1859 // at this place. |
1861 accept = additional_frame_it.frame()->id() == id; | 1860 accept = additional_frame_it.frame()->id() == id; |
1862 } | 1861 } |
1863 } | 1862 } |
1864 if (accept) { | 1863 if (accept) { |
1865 if (location.IsStepInLocation()) { | 1864 if (location.IsStepInLocation()) { |
1866 Smi* position_value = Smi::FromInt(location.position()); | 1865 Smi* position_value = Smi::FromInt(location.position()); |
1867 RETURN_FAILURE_ON_EXCEPTION( | 1866 RETURN_FAILURE_ON_EXCEPTION( |
1868 isolate, | 1867 isolate, |
1869 JSObject::SetElement(array, index, handle(position_value, isolate), | 1868 Object::SetElement(isolate, array, index, |
1870 SLOPPY)); | 1869 handle(position_value, isolate), SLOPPY)); |
1871 index++; | 1870 index++; |
1872 } | 1871 } |
1873 } | 1872 } |
1874 } | 1873 } |
1875 return *array; | 1874 return *array; |
1876 } | 1875 } |
1877 | 1876 |
1878 | 1877 |
1879 static const int kScopeDetailsTypeIndex = 0; | 1878 static const int kScopeDetailsTypeIndex = 0; |
1880 static const int kScopeDetailsObjectIndex = 1; | 1879 static const int kScopeDetailsObjectIndex = 1; |
(...skipping 1341 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3222 return *isolate->factory()->undefined_value(); | 3221 return *isolate->factory()->undefined_value(); |
3223 } | 3222 } |
3224 | 3223 |
3225 | 3224 |
3226 RUNTIME_FUNCTION(Runtime_DebugBreakInOptimizedCode) { | 3225 RUNTIME_FUNCTION(Runtime_DebugBreakInOptimizedCode) { |
3227 UNIMPLEMENTED(); | 3226 UNIMPLEMENTED(); |
3228 return NULL; | 3227 return NULL; |
3229 } | 3228 } |
3230 } // namespace internal | 3229 } // namespace internal |
3231 } // namespace v8 | 3230 } // namespace v8 |
OLD | NEW |