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 "src/api.h" | 5 #include "src/api.h" |
6 | 6 |
7 #include <string.h> // For memcpy, strlen. | 7 #include <string.h> // For memcpy, strlen. |
8 #ifdef V8_USE_ADDRESS_SANITIZER | 8 #ifdef V8_USE_ADDRESS_SANITIZER |
9 #include <sanitizer/asan_interface.h> | 9 #include <sanitizer/asan_interface.h> |
10 #endif // V8_USE_ADDRESS_SANITIZER | 10 #endif // V8_USE_ADDRESS_SANITIZER |
(...skipping 2880 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2891 RETURN_ESCAPED(result); | 2891 RETURN_ESCAPED(result); |
2892 } | 2892 } |
2893 | 2893 |
2894 | 2894 |
2895 Local<String> Value::ToString(Isolate* isolate) const { | 2895 Local<String> Value::ToString(Isolate* isolate) const { |
2896 RETURN_TO_LOCAL_UNCHECKED(ToString(isolate->GetCurrentContext()), String); | 2896 RETURN_TO_LOCAL_UNCHECKED(ToString(isolate->GetCurrentContext()), String); |
2897 } | 2897 } |
2898 | 2898 |
2899 | 2899 |
2900 MaybeLocal<String> Value::ToDetailString(Local<Context> context) const { | 2900 MaybeLocal<String> Value::ToDetailString(Local<Context> context) const { |
2901 i::Handle<i::Object> obj = Utils::OpenHandle(this); | 2901 auto obj = Utils::OpenHandle(this); |
2902 if (obj->IsString()) return ToApiHandle<String>(obj); | 2902 if (obj->IsString()) return ToApiHandle<String>(obj); |
2903 PREPARE_FOR_EXECUTION(context, "ToDetailString", String); | 2903 PREPARE_FOR_EXECUTION(context, "ToDetailString", String); |
2904 Local<String> result; | 2904 Local<String> result; |
2905 i::Handle<i::Object> args[] = {obj}; | 2905 has_pending_exception = |
2906 has_pending_exception = !ToLocal<String>( | 2906 !ToLocal<String>(i::Execution::ToDetailString(isolate, obj), &result); |
2907 i::Execution::TryCall(isolate, isolate->no_side_effects_to_string_fun(), | |
2908 isolate->factory()->undefined_value(), | |
2909 arraysize(args), args), | |
2910 &result); | |
2911 RETURN_ON_FAILED_EXECUTION(String); | 2907 RETURN_ON_FAILED_EXECUTION(String); |
2912 RETURN_ESCAPED(result); | 2908 RETURN_ESCAPED(result); |
2913 } | 2909 } |
2914 | 2910 |
2915 | 2911 |
2916 Local<String> Value::ToDetailString(Isolate* isolate) const { | 2912 Local<String> Value::ToDetailString(Isolate* isolate) const { |
2917 RETURN_TO_LOCAL_UNCHECKED(ToDetailString(isolate->GetCurrentContext()), | 2913 RETURN_TO_LOCAL_UNCHECKED(ToDetailString(isolate->GetCurrentContext()), |
2918 String); | 2914 String); |
2919 } | 2915 } |
2920 | 2916 |
(...skipping 5612 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
8533 Address callback_address = | 8529 Address callback_address = |
8534 reinterpret_cast<Address>(reinterpret_cast<intptr_t>(callback)); | 8530 reinterpret_cast<Address>(reinterpret_cast<intptr_t>(callback)); |
8535 VMState<EXTERNAL> state(isolate); | 8531 VMState<EXTERNAL> state(isolate); |
8536 ExternalCallbackScope call_scope(isolate, callback_address); | 8532 ExternalCallbackScope call_scope(isolate, callback_address); |
8537 callback(info); | 8533 callback(info); |
8538 } | 8534 } |
8539 | 8535 |
8540 | 8536 |
8541 } // namespace internal | 8537 } // namespace internal |
8542 } // namespace v8 | 8538 } // namespace v8 |
OLD | NEW |