Chromium Code Reviews| 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 5590 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 5601 i::Isolate* isolate = obj->GetIsolate(); | 5601 i::Isolate* isolate = obj->GetIsolate(); |
| 5602 | 5602 |
| 5603 if (isolate->string_tracker()->IsFreshUnusedString(obj)) return false; | 5603 if (isolate->string_tracker()->IsFreshUnusedString(obj)) return false; |
| 5604 int size = obj->Size(); // Byte size of the original string. | 5604 int size = obj->Size(); // Byte size of the original string. |
| 5605 if (size < i::ExternalString::kShortSize) return false; | 5605 if (size < i::ExternalString::kShortSize) return false; |
| 5606 i::StringShape shape(*obj); | 5606 i::StringShape shape(*obj); |
| 5607 return !shape.IsExternal(); | 5607 return !shape.IsExternal(); |
| 5608 } | 5608 } |
| 5609 | 5609 |
| 5610 | 5610 |
| 5611 Isolate* v8::Object::GetIsolate() { | |
|
aandrey
2014/10/01 13:21:02
v8::Value ?
| |
| 5612 i::Isolate* i_isolate = Utils::OpenHandle(this)->GetIsolate(); | |
| 5613 return reinterpret_cast<Isolate*>(i_isolate); | |
| 5614 } | |
| 5615 | |
| 5616 | |
| 5611 Local<v8::Object> v8::Object::New(Isolate* isolate) { | 5617 Local<v8::Object> v8::Object::New(Isolate* isolate) { |
| 5612 i::Isolate* i_isolate = reinterpret_cast<i::Isolate*>(isolate); | 5618 i::Isolate* i_isolate = reinterpret_cast<i::Isolate*>(isolate); |
| 5613 LOG_API(i_isolate, "Object::New"); | 5619 LOG_API(i_isolate, "Object::New"); |
| 5614 ENTER_V8(i_isolate); | 5620 ENTER_V8(i_isolate); |
| 5615 i::Handle<i::JSObject> obj = | 5621 i::Handle<i::JSObject> obj = |
| 5616 i_isolate->factory()->NewJSObject(i_isolate->object_function()); | 5622 i_isolate->factory()->NewJSObject(i_isolate->object_function()); |
| 5617 return Utils::ToLocal(obj); | 5623 return Utils::ToLocal(obj); |
| 5618 } | 5624 } |
| 5619 | 5625 |
| 5620 | 5626 |
| (...skipping 2086 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 7707 Isolate* isolate = reinterpret_cast<Isolate*>(info.GetIsolate()); | 7713 Isolate* isolate = reinterpret_cast<Isolate*>(info.GetIsolate()); |
| 7708 Address callback_address = | 7714 Address callback_address = |
| 7709 reinterpret_cast<Address>(reinterpret_cast<intptr_t>(callback)); | 7715 reinterpret_cast<Address>(reinterpret_cast<intptr_t>(callback)); |
| 7710 VMState<EXTERNAL> state(isolate); | 7716 VMState<EXTERNAL> state(isolate); |
| 7711 ExternalCallbackScope call_scope(isolate, callback_address); | 7717 ExternalCallbackScope call_scope(isolate, callback_address); |
| 7712 callback(info); | 7718 callback(info); |
| 7713 } | 7719 } |
| 7714 | 7720 |
| 7715 | 7721 |
| 7716 } } // namespace v8::internal | 7722 } } // namespace v8::internal |
| OLD | NEW |