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 685 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
696 i::HandleScope::DeleteExtensions(isolate_); | 696 i::HandleScope::DeleteExtensions(isolate_); |
697 } | 697 } |
698 | 698 |
699 #ifdef DEBUG | 699 #ifdef DEBUG |
700 i::HandleScope::ZapRange(prev_next_, prev_limit_); | 700 i::HandleScope::ZapRange(prev_next_, prev_limit_); |
701 #endif | 701 #endif |
702 } | 702 } |
703 | 703 |
704 | 704 |
705 int HandleScope::NumberOfHandles() { | 705 int HandleScope::NumberOfHandles() { |
706 EnsureInitializedForIsolate( | 706 i::Isolate* isolate = i::Isolate::Current(); |
707 i::Isolate::Current(), "HandleScope::NumberOfHandles"); | 707 if (!EnsureInitializedForIsolate(isolate, "HandleScope::NumberOfHandles")) { |
708 return i::HandleScope::NumberOfHandles(); | 708 return 0; |
| 709 } |
| 710 return i::HandleScope::NumberOfHandles(isolate); |
709 } | 711 } |
710 | 712 |
711 | 713 |
712 i::Object** HandleScope::CreateHandle(i::Object* value) { | 714 i::Object** HandleScope::CreateHandle(i::Object* value) { |
713 return i::HandleScope::CreateHandle(value, i::Isolate::Current()); | 715 return i::HandleScope::CreateHandle(i::Isolate::Current(), value); |
714 } | 716 } |
715 | 717 |
716 | 718 |
717 i::Object** HandleScope::CreateHandle(i::Isolate* isolate, i::Object* value) { | 719 i::Object** HandleScope::CreateHandle(i::Isolate* isolate, i::Object* value) { |
718 ASSERT(isolate == i::Isolate::Current()); | 720 ASSERT(isolate == i::Isolate::Current()); |
719 return i::HandleScope::CreateHandle(value, isolate); | 721 return i::HandleScope::CreateHandle(isolate, value); |
720 } | 722 } |
721 | 723 |
722 | 724 |
723 i::Object** HandleScope::CreateHandle(i::HeapObject* value) { | 725 i::Object** HandleScope::CreateHandle(i::HeapObject* value) { |
724 ASSERT(value->IsHeapObject()); | 726 ASSERT(value->IsHeapObject()); |
725 return reinterpret_cast<i::Object**>( | 727 return reinterpret_cast<i::Object**>( |
726 i::HandleScope::CreateHandle(value, value->GetIsolate())); | 728 i::HandleScope::CreateHandle(value->GetIsolate(), value)); |
727 } | 729 } |
728 | 730 |
729 | 731 |
730 void Context::Enter() { | 732 void Context::Enter() { |
731 i::Handle<i::Context> env = Utils::OpenHandle(this); | 733 i::Handle<i::Context> env = Utils::OpenHandle(this); |
732 i::Isolate* isolate = env->GetIsolate(); | 734 i::Isolate* isolate = env->GetIsolate(); |
733 if (IsDeadCheck(isolate, "v8::Context::Enter()")) return; | 735 if (IsDeadCheck(isolate, "v8::Context::Enter()")) return; |
734 ENTER_V8(isolate); | 736 ENTER_V8(isolate); |
735 | 737 |
736 isolate->handle_scope_implementer()->EnterContext(env); | 738 isolate->handle_scope_implementer()->EnterContext(env); |
(...skipping 193 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
930 that->set_tag(i::Smi::FromInt(type)); | 932 that->set_tag(i::Smi::FromInt(type)); |
931 } | 933 } |
932 | 934 |
933 | 935 |
934 void Template::Set(v8::Handle<String> name, v8::Handle<Data> value, | 936 void Template::Set(v8::Handle<String> name, v8::Handle<Data> value, |
935 v8::PropertyAttribute attribute) { | 937 v8::PropertyAttribute attribute) { |
936 i::Isolate* isolate = i::Isolate::Current(); | 938 i::Isolate* isolate = i::Isolate::Current(); |
937 if (IsDeadCheck(isolate, "v8::Template::Set()")) return; | 939 if (IsDeadCheck(isolate, "v8::Template::Set()")) return; |
938 ENTER_V8(isolate); | 940 ENTER_V8(isolate); |
939 i::HandleScope scope(isolate); | 941 i::HandleScope scope(isolate); |
940 i::Handle<i::Object> list(Utils::OpenHandle(this)->property_list()); | 942 i::Handle<i::Object> list(Utils::OpenHandle(this)->property_list(), isolate); |
941 if (list->IsUndefined()) { | 943 if (list->IsUndefined()) { |
942 list = NeanderArray().value(); | 944 list = NeanderArray().value(); |
943 Utils::OpenHandle(this)->set_property_list(*list); | 945 Utils::OpenHandle(this)->set_property_list(*list); |
944 } | 946 } |
945 NeanderArray array(list); | 947 NeanderArray array(list); |
946 array.add(Utils::OpenHandle(*name)); | 948 array.add(Utils::OpenHandle(*name)); |
947 array.add(Utils::OpenHandle(*value)); | 949 array.add(Utils::OpenHandle(*value)); |
948 array.add(Utils::OpenHandle(*v8::Integer::New(attribute))); | 950 array.add(Utils::OpenHandle(*v8::Integer::New(attribute))); |
949 } | 951 } |
950 | 952 |
951 | 953 |
952 // --- F u n c t i o n T e m p l a t e --- | 954 // --- F u n c t i o n T e m p l a t e --- |
953 static void InitializeFunctionTemplate( | 955 static void InitializeFunctionTemplate( |
954 i::Handle<i::FunctionTemplateInfo> info) { | 956 i::Handle<i::FunctionTemplateInfo> info) { |
955 info->set_tag(i::Smi::FromInt(Consts::FUNCTION_TEMPLATE)); | 957 info->set_tag(i::Smi::FromInt(Consts::FUNCTION_TEMPLATE)); |
956 info->set_flag(0); | 958 info->set_flag(0); |
957 } | 959 } |
958 | 960 |
959 | 961 |
960 Local<ObjectTemplate> FunctionTemplate::PrototypeTemplate() { | 962 Local<ObjectTemplate> FunctionTemplate::PrototypeTemplate() { |
961 i::Isolate* isolate = Utils::OpenHandle(this)->GetIsolate(); | 963 i::Isolate* isolate = Utils::OpenHandle(this)->GetIsolate(); |
962 if (IsDeadCheck(isolate, "v8::FunctionTemplate::PrototypeTemplate()")) { | 964 if (IsDeadCheck(isolate, "v8::FunctionTemplate::PrototypeTemplate()")) { |
963 return Local<ObjectTemplate>(); | 965 return Local<ObjectTemplate>(); |
964 } | 966 } |
965 ENTER_V8(isolate); | 967 ENTER_V8(isolate); |
966 i::Handle<i::Object> result(Utils::OpenHandle(this)->prototype_template()); | 968 i::Handle<i::Object> result(Utils::OpenHandle(this)->prototype_template(), |
| 969 isolate); |
967 if (result->IsUndefined()) { | 970 if (result->IsUndefined()) { |
968 result = Utils::OpenHandle(*ObjectTemplate::New()); | 971 result = Utils::OpenHandle(*ObjectTemplate::New()); |
969 Utils::OpenHandle(this)->set_prototype_template(*result); | 972 Utils::OpenHandle(this)->set_prototype_template(*result); |
970 } | 973 } |
971 return Local<ObjectTemplate>(ToApi<ObjectTemplate>(result)); | 974 return Local<ObjectTemplate>(ToApi<ObjectTemplate>(result)); |
972 } | 975 } |
973 | 976 |
974 | 977 |
975 void FunctionTemplate::Inherit(v8::Handle<FunctionTemplate> value) { | 978 void FunctionTemplate::Inherit(v8::Handle<FunctionTemplate> value) { |
976 i::Isolate* isolate = Utils::OpenHandle(this)->GetIsolate(); | 979 i::Isolate* isolate = Utils::OpenHandle(this)->GetIsolate(); |
(...skipping 159 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1136 if (IsDeadCheck(isolate, | 1139 if (IsDeadCheck(isolate, |
1137 "v8::FunctionTemplate::AddInstancePropertyAccessor()")) { | 1140 "v8::FunctionTemplate::AddInstancePropertyAccessor()")) { |
1138 return; | 1141 return; |
1139 } | 1142 } |
1140 ENTER_V8(isolate); | 1143 ENTER_V8(isolate); |
1141 i::HandleScope scope(isolate); | 1144 i::HandleScope scope(isolate); |
1142 | 1145 |
1143 i::Handle<i::AccessorInfo> obj = MakeAccessorInfo(name, getter, setter, data, | 1146 i::Handle<i::AccessorInfo> obj = MakeAccessorInfo(name, getter, setter, data, |
1144 settings, attributes, | 1147 settings, attributes, |
1145 signature); | 1148 signature); |
1146 i::Handle<i::Object> list(Utils::OpenHandle(this)->property_accessors()); | 1149 i::Handle<i::Object> list(Utils::OpenHandle(this)->property_accessors(), |
| 1150 isolate); |
1147 if (list->IsUndefined()) { | 1151 if (list->IsUndefined()) { |
1148 list = NeanderArray().value(); | 1152 list = NeanderArray().value(); |
1149 Utils::OpenHandle(this)->set_property_accessors(*list); | 1153 Utils::OpenHandle(this)->set_property_accessors(*list); |
1150 } | 1154 } |
1151 NeanderArray array(list); | 1155 NeanderArray array(list); |
1152 array.add(obj); | 1156 array.add(obj); |
1153 } | 1157 } |
1154 | 1158 |
1155 | 1159 |
1156 Local<ObjectTemplate> FunctionTemplate::InstanceTemplate() { | 1160 Local<ObjectTemplate> FunctionTemplate::InstanceTemplate() { |
(...skipping 529 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1686 | 1690 |
1687 Local<Value> Script::Id() { | 1691 Local<Value> Script::Id() { |
1688 i::Isolate* isolate = i::Isolate::Current(); | 1692 i::Isolate* isolate = i::Isolate::Current(); |
1689 ON_BAILOUT(isolate, "v8::Script::Id()", return Local<Value>()); | 1693 ON_BAILOUT(isolate, "v8::Script::Id()", return Local<Value>()); |
1690 LOG_API(isolate, "Script::Id"); | 1694 LOG_API(isolate, "Script::Id"); |
1691 i::Object* raw_id = NULL; | 1695 i::Object* raw_id = NULL; |
1692 { | 1696 { |
1693 i::HandleScope scope(isolate); | 1697 i::HandleScope scope(isolate); |
1694 i::Handle<i::SharedFunctionInfo> function_info = OpenScript(this); | 1698 i::Handle<i::SharedFunctionInfo> function_info = OpenScript(this); |
1695 i::Handle<i::Script> script(i::Script::cast(function_info->script())); | 1699 i::Handle<i::Script> script(i::Script::cast(function_info->script())); |
1696 i::Handle<i::Object> id(script->id()); | 1700 i::Handle<i::Object> id(script->id(), isolate); |
1697 raw_id = *id; | 1701 raw_id = *id; |
1698 } | 1702 } |
1699 i::Handle<i::Object> id(raw_id); | 1703 i::Handle<i::Object> id(raw_id, isolate); |
1700 return Utils::ToLocal(id); | 1704 return Utils::ToLocal(id); |
1701 } | 1705 } |
1702 | 1706 |
1703 | 1707 |
1704 void Script::SetData(v8::Handle<String> data) { | 1708 void Script::SetData(v8::Handle<String> data) { |
1705 i::Isolate* isolate = i::Isolate::Current(); | 1709 i::Isolate* isolate = i::Isolate::Current(); |
1706 ON_BAILOUT(isolate, "v8::Script::SetData()", return); | 1710 ON_BAILOUT(isolate, "v8::Script::SetData()", return); |
1707 LOG_API(isolate, "Script::SetData"); | 1711 LOG_API(isolate, "Script::SetData"); |
1708 { | 1712 { |
1709 i::HandleScope scope(isolate); | 1713 i::HandleScope scope(isolate); |
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1775 | 1779 |
1776 v8::Local<Value> v8::TryCatch::StackTrace() const { | 1780 v8::Local<Value> v8::TryCatch::StackTrace() const { |
1777 ASSERT(isolate_ == i::Isolate::Current()); | 1781 ASSERT(isolate_ == i::Isolate::Current()); |
1778 if (HasCaught()) { | 1782 if (HasCaught()) { |
1779 i::Object* raw_obj = reinterpret_cast<i::Object*>(exception_); | 1783 i::Object* raw_obj = reinterpret_cast<i::Object*>(exception_); |
1780 if (!raw_obj->IsJSObject()) return v8::Local<Value>(); | 1784 if (!raw_obj->IsJSObject()) return v8::Local<Value>(); |
1781 i::HandleScope scope(isolate_); | 1785 i::HandleScope scope(isolate_); |
1782 i::Handle<i::JSObject> obj(i::JSObject::cast(raw_obj), isolate_); | 1786 i::Handle<i::JSObject> obj(i::JSObject::cast(raw_obj), isolate_); |
1783 i::Handle<i::String> name = isolate_->factory()->stack_symbol(); | 1787 i::Handle<i::String> name = isolate_->factory()->stack_symbol(); |
1784 if (!obj->HasProperty(*name)) return v8::Local<Value>(); | 1788 if (!obj->HasProperty(*name)) return v8::Local<Value>(); |
1785 i::Handle<i::Object> value = i::GetProperty(obj, name); | 1789 i::Handle<i::Object> value = i::GetProperty(isolate_, obj, name); |
1786 if (value.is_null()) return v8::Local<Value>(); | 1790 if (value.is_null()) return v8::Local<Value>(); |
1787 return v8::Utils::ToLocal(scope.CloseAndEscape(value)); | 1791 return v8::Utils::ToLocal(scope.CloseAndEscape(value)); |
1788 } else { | 1792 } else { |
1789 return v8::Local<Value>(); | 1793 return v8::Local<Value>(); |
1790 } | 1794 } |
1791 } | 1795 } |
1792 | 1796 |
1793 | 1797 |
1794 v8::Local<v8::Message> v8::TryCatch::Message() const { | 1798 v8::Local<v8::Message> v8::TryCatch::Message() const { |
1795 ASSERT(isolate_ == i::Isolate::Current()); | 1799 ASSERT(isolate_ == i::Isolate::Current()); |
(...skipping 25 matching lines...) Expand all Loading... |
1821 | 1825 |
1822 // --- M e s s a g e --- | 1826 // --- M e s s a g e --- |
1823 | 1827 |
1824 | 1828 |
1825 Local<String> Message::Get() const { | 1829 Local<String> Message::Get() const { |
1826 i::Isolate* isolate = Utils::OpenHandle(this)->GetIsolate(); | 1830 i::Isolate* isolate = Utils::OpenHandle(this)->GetIsolate(); |
1827 ON_BAILOUT(isolate, "v8::Message::Get()", return Local<String>()); | 1831 ON_BAILOUT(isolate, "v8::Message::Get()", return Local<String>()); |
1828 ENTER_V8(isolate); | 1832 ENTER_V8(isolate); |
1829 HandleScope scope; | 1833 HandleScope scope; |
1830 i::Handle<i::Object> obj = Utils::OpenHandle(this); | 1834 i::Handle<i::Object> obj = Utils::OpenHandle(this); |
1831 i::Handle<i::String> raw_result = i::MessageHandler::GetMessage(obj); | 1835 i::Handle<i::String> raw_result = i::MessageHandler::GetMessage(isolate, obj); |
1832 Local<String> result = Utils::ToLocal(raw_result); | 1836 Local<String> result = Utils::ToLocal(raw_result); |
1833 return scope.Close(result); | 1837 return scope.Close(result); |
1834 } | 1838 } |
1835 | 1839 |
1836 | 1840 |
1837 v8::Handle<Value> Message::GetScriptResourceName() const { | 1841 v8::Handle<Value> Message::GetScriptResourceName() const { |
1838 i::Isolate* isolate = Utils::OpenHandle(this)->GetIsolate(); | 1842 i::Isolate* isolate = Utils::OpenHandle(this)->GetIsolate(); |
1839 if (IsDeadCheck(isolate, "v8::Message::GetScriptResourceName()")) { | 1843 if (IsDeadCheck(isolate, "v8::Message::GetScriptResourceName()")) { |
1840 return Local<String>(); | 1844 return Local<String>(); |
1841 } | 1845 } |
1842 ENTER_V8(isolate); | 1846 ENTER_V8(isolate); |
1843 HandleScope scope; | 1847 HandleScope scope; |
1844 i::Handle<i::JSMessageObject> message = | 1848 i::Handle<i::JSMessageObject> message = |
1845 i::Handle<i::JSMessageObject>::cast(Utils::OpenHandle(this)); | 1849 i::Handle<i::JSMessageObject>::cast(Utils::OpenHandle(this)); |
1846 // Return this.script.name. | 1850 // Return this.script.name. |
1847 i::Handle<i::JSValue> script = | 1851 i::Handle<i::JSValue> script = |
1848 i::Handle<i::JSValue>::cast(i::Handle<i::Object>(message->script())); | 1852 i::Handle<i::JSValue>::cast(i::Handle<i::Object>(message->script(), |
1849 i::Handle<i::Object> resource_name(i::Script::cast(script->value())->name()); | 1853 isolate)); |
| 1854 i::Handle<i::Object> resource_name(i::Script::cast(script->value())->name(), |
| 1855 isolate); |
1850 return scope.Close(Utils::ToLocal(resource_name)); | 1856 return scope.Close(Utils::ToLocal(resource_name)); |
1851 } | 1857 } |
1852 | 1858 |
1853 | 1859 |
1854 v8::Handle<Value> Message::GetScriptData() const { | 1860 v8::Handle<Value> Message::GetScriptData() const { |
1855 i::Isolate* isolate = Utils::OpenHandle(this)->GetIsolate(); | 1861 i::Isolate* isolate = Utils::OpenHandle(this)->GetIsolate(); |
1856 if (IsDeadCheck(isolate, "v8::Message::GetScriptResourceData()")) { | 1862 if (IsDeadCheck(isolate, "v8::Message::GetScriptResourceData()")) { |
1857 return Local<Value>(); | 1863 return Local<Value>(); |
1858 } | 1864 } |
1859 ENTER_V8(isolate); | 1865 ENTER_V8(isolate); |
1860 HandleScope scope; | 1866 HandleScope scope; |
1861 i::Handle<i::JSMessageObject> message = | 1867 i::Handle<i::JSMessageObject> message = |
1862 i::Handle<i::JSMessageObject>::cast(Utils::OpenHandle(this)); | 1868 i::Handle<i::JSMessageObject>::cast(Utils::OpenHandle(this)); |
1863 // Return this.script.data. | 1869 // Return this.script.data. |
1864 i::Handle<i::JSValue> script = | 1870 i::Handle<i::JSValue> script = |
1865 i::Handle<i::JSValue>::cast(i::Handle<i::Object>(message->script())); | 1871 i::Handle<i::JSValue>::cast(i::Handle<i::Object>(message->script(), |
1866 i::Handle<i::Object> data(i::Script::cast(script->value())->data()); | 1872 isolate)); |
| 1873 i::Handle<i::Object> data(i::Script::cast(script->value())->data(), isolate); |
1867 return scope.Close(Utils::ToLocal(data)); | 1874 return scope.Close(Utils::ToLocal(data)); |
1868 } | 1875 } |
1869 | 1876 |
1870 | 1877 |
1871 v8::Handle<v8::StackTrace> Message::GetStackTrace() const { | 1878 v8::Handle<v8::StackTrace> Message::GetStackTrace() const { |
1872 i::Isolate* isolate = Utils::OpenHandle(this)->GetIsolate(); | 1879 i::Isolate* isolate = Utils::OpenHandle(this)->GetIsolate(); |
1873 if (IsDeadCheck(isolate, "v8::Message::GetStackTrace()")) { | 1880 if (IsDeadCheck(isolate, "v8::Message::GetStackTrace()")) { |
1874 return Local<v8::StackTrace>(); | 1881 return Local<v8::StackTrace>(); |
1875 } | 1882 } |
1876 ENTER_V8(isolate); | 1883 ENTER_V8(isolate); |
1877 HandleScope scope; | 1884 HandleScope scope; |
1878 i::Handle<i::JSMessageObject> message = | 1885 i::Handle<i::JSMessageObject> message = |
1879 i::Handle<i::JSMessageObject>::cast(Utils::OpenHandle(this)); | 1886 i::Handle<i::JSMessageObject>::cast(Utils::OpenHandle(this)); |
1880 i::Handle<i::Object> stackFramesObj(message->stack_frames()); | 1887 i::Handle<i::Object> stackFramesObj(message->stack_frames(), isolate); |
1881 if (!stackFramesObj->IsJSArray()) return v8::Handle<v8::StackTrace>(); | 1888 if (!stackFramesObj->IsJSArray()) return v8::Handle<v8::StackTrace>(); |
1882 i::Handle<i::JSArray> stackTrace = | 1889 i::Handle<i::JSArray> stackTrace = |
1883 i::Handle<i::JSArray>::cast(stackFramesObj); | 1890 i::Handle<i::JSArray>::cast(stackFramesObj); |
1884 return scope.Close(Utils::StackTraceToLocal(stackTrace)); | 1891 return scope.Close(Utils::StackTraceToLocal(stackTrace)); |
1885 } | 1892 } |
1886 | 1893 |
1887 | 1894 |
1888 static i::Handle<i::Object> CallV8HeapFunction(const char* name, | 1895 static i::Handle<i::Object> CallV8HeapFunction(const char* name, |
1889 i::Handle<i::Object> recv, | 1896 i::Handle<i::Object> recv, |
1890 int argc, | 1897 int argc, |
(...skipping 531 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2422 i::Handle<i::Object> obj = Utils::OpenHandle(this); | 2429 i::Handle<i::Object> obj = Utils::OpenHandle(this); |
2423 if (obj->IsBoolean()) { | 2430 if (obj->IsBoolean()) { |
2424 return Local<Boolean>(ToApi<Boolean>(obj)); | 2431 return Local<Boolean>(ToApi<Boolean>(obj)); |
2425 } else { | 2432 } else { |
2426 i::Isolate* isolate = i::Isolate::Current(); | 2433 i::Isolate* isolate = i::Isolate::Current(); |
2427 if (IsDeadCheck(isolate, "v8::Value::ToBoolean()")) { | 2434 if (IsDeadCheck(isolate, "v8::Value::ToBoolean()")) { |
2428 return Local<Boolean>(); | 2435 return Local<Boolean>(); |
2429 } | 2436 } |
2430 LOG_API(isolate, "ToBoolean"); | 2437 LOG_API(isolate, "ToBoolean"); |
2431 ENTER_V8(isolate); | 2438 ENTER_V8(isolate); |
2432 i::Handle<i::Object> val = i::Execution::ToBoolean(obj); | 2439 i::Handle<i::Object> val = i::Execution::ToBoolean(isolate, obj); |
2433 return Local<Boolean>(ToApi<Boolean>(val)); | 2440 return Local<Boolean>(ToApi<Boolean>(val)); |
2434 } | 2441 } |
2435 } | 2442 } |
2436 | 2443 |
2437 | 2444 |
2438 Local<Number> Value::ToNumber() const { | 2445 Local<Number> Value::ToNumber() const { |
2439 i::Handle<i::Object> obj = Utils::OpenHandle(this); | 2446 i::Handle<i::Object> obj = Utils::OpenHandle(this); |
2440 i::Handle<i::Object> num; | 2447 i::Handle<i::Object> num; |
2441 if (obj->IsNumber()) { | 2448 if (obj->IsNumber()) { |
2442 num = obj; | 2449 num = obj; |
(...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2586 | 2593 |
2587 bool Value::BooleanValue() const { | 2594 bool Value::BooleanValue() const { |
2588 i::Handle<i::Object> obj = Utils::OpenHandle(this); | 2595 i::Handle<i::Object> obj = Utils::OpenHandle(this); |
2589 if (obj->IsBoolean()) { | 2596 if (obj->IsBoolean()) { |
2590 return obj->IsTrue(); | 2597 return obj->IsTrue(); |
2591 } else { | 2598 } else { |
2592 i::Isolate* isolate = i::Isolate::Current(); | 2599 i::Isolate* isolate = i::Isolate::Current(); |
2593 if (IsDeadCheck(isolate, "v8::Value::BooleanValue()")) return false; | 2600 if (IsDeadCheck(isolate, "v8::Value::BooleanValue()")) return false; |
2594 LOG_API(isolate, "BooleanValue"); | 2601 LOG_API(isolate, "BooleanValue"); |
2595 ENTER_V8(isolate); | 2602 ENTER_V8(isolate); |
2596 i::Handle<i::Object> value = i::Execution::ToBoolean(obj); | 2603 i::Handle<i::Object> value = i::Execution::ToBoolean(isolate, obj); |
2597 return value->IsTrue(); | 2604 return value->IsTrue(); |
2598 } | 2605 } |
2599 } | 2606 } |
2600 | 2607 |
2601 | 2608 |
2602 double Value::NumberValue() const { | 2609 double Value::NumberValue() const { |
2603 i::Handle<i::Object> obj = Utils::OpenHandle(this); | 2610 i::Handle<i::Object> obj = Utils::OpenHandle(this); |
2604 i::Handle<i::Object> num; | 2611 i::Handle<i::Object> num; |
2605 if (obj->IsNumber()) { | 2612 if (obj->IsNumber()) { |
2606 num = obj; | 2613 num = obj; |
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2689 ENTER_V8(isolate); | 2696 ENTER_V8(isolate); |
2690 EXCEPTION_PREAMBLE(isolate); | 2697 EXCEPTION_PREAMBLE(isolate); |
2691 i::Handle<i::Object> string_obj = | 2698 i::Handle<i::Object> string_obj = |
2692 i::Execution::ToString(obj, &has_pending_exception); | 2699 i::Execution::ToString(obj, &has_pending_exception); |
2693 EXCEPTION_BAILOUT_CHECK(isolate, Local<Uint32>()); | 2700 EXCEPTION_BAILOUT_CHECK(isolate, Local<Uint32>()); |
2694 i::Handle<i::String> str = i::Handle<i::String>::cast(string_obj); | 2701 i::Handle<i::String> str = i::Handle<i::String>::cast(string_obj); |
2695 uint32_t index; | 2702 uint32_t index; |
2696 if (str->AsArrayIndex(&index)) { | 2703 if (str->AsArrayIndex(&index)) { |
2697 i::Handle<i::Object> value; | 2704 i::Handle<i::Object> value; |
2698 if (index <= static_cast<uint32_t>(i::Smi::kMaxValue)) { | 2705 if (index <= static_cast<uint32_t>(i::Smi::kMaxValue)) { |
2699 value = i::Handle<i::Object>(i::Smi::FromInt(index)); | 2706 value = i::Handle<i::Object>(i::Smi::FromInt(index), isolate); |
2700 } else { | 2707 } else { |
2701 value = isolate->factory()->NewNumber(index); | 2708 value = isolate->factory()->NewNumber(index); |
2702 } | 2709 } |
2703 return Utils::Uint32ToLocal(value); | 2710 return Utils::Uint32ToLocal(value); |
2704 } | 2711 } |
2705 return Local<Uint32>(); | 2712 return Local<Uint32>(); |
2706 } | 2713 } |
2707 | 2714 |
2708 | 2715 |
2709 int32_t Value::Int32Value() const { | 2716 int32_t Value::Int32Value() const { |
(...skipping 188 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2898 } | 2905 } |
2899 | 2906 |
2900 | 2907 |
2901 Local<Value> v8::Object::Get(v8::Handle<Value> key) { | 2908 Local<Value> v8::Object::Get(v8::Handle<Value> key) { |
2902 i::Isolate* isolate = Utils::OpenHandle(this)->GetIsolate(); | 2909 i::Isolate* isolate = Utils::OpenHandle(this)->GetIsolate(); |
2903 ON_BAILOUT(isolate, "v8::Object::Get()", return Local<v8::Value>()); | 2910 ON_BAILOUT(isolate, "v8::Object::Get()", return Local<v8::Value>()); |
2904 ENTER_V8(isolate); | 2911 ENTER_V8(isolate); |
2905 i::Handle<i::Object> self = Utils::OpenHandle(this); | 2912 i::Handle<i::Object> self = Utils::OpenHandle(this); |
2906 i::Handle<i::Object> key_obj = Utils::OpenHandle(*key); | 2913 i::Handle<i::Object> key_obj = Utils::OpenHandle(*key); |
2907 EXCEPTION_PREAMBLE(isolate); | 2914 EXCEPTION_PREAMBLE(isolate); |
2908 i::Handle<i::Object> result = i::GetProperty(self, key_obj); | 2915 i::Handle<i::Object> result = i::GetProperty(isolate, self, key_obj); |
2909 has_pending_exception = result.is_null(); | 2916 has_pending_exception = result.is_null(); |
2910 EXCEPTION_BAILOUT_CHECK(isolate, Local<Value>()); | 2917 EXCEPTION_BAILOUT_CHECK(isolate, Local<Value>()); |
2911 return Utils::ToLocal(result); | 2918 return Utils::ToLocal(result); |
2912 } | 2919 } |
2913 | 2920 |
2914 | 2921 |
2915 Local<Value> v8::Object::Get(uint32_t index) { | 2922 Local<Value> v8::Object::Get(uint32_t index) { |
2916 i::Isolate* isolate = Utils::OpenHandle(this)->GetIsolate(); | 2923 i::Isolate* isolate = Utils::OpenHandle(this)->GetIsolate(); |
2917 ON_BAILOUT(isolate, "v8::Object::Get()", return Local<v8::Value>()); | 2924 ON_BAILOUT(isolate, "v8::Object::Get()", return Local<v8::Value>()); |
2918 ENTER_V8(isolate); | 2925 ENTER_V8(isolate); |
(...skipping 25 matching lines...) Expand all Loading... |
2944 return static_cast<PropertyAttribute>(result); | 2951 return static_cast<PropertyAttribute>(result); |
2945 } | 2952 } |
2946 | 2953 |
2947 | 2954 |
2948 Local<Value> v8::Object::GetPrototype() { | 2955 Local<Value> v8::Object::GetPrototype() { |
2949 i::Isolate* isolate = Utils::OpenHandle(this)->GetIsolate(); | 2956 i::Isolate* isolate = Utils::OpenHandle(this)->GetIsolate(); |
2950 ON_BAILOUT(isolate, "v8::Object::GetPrototype()", | 2957 ON_BAILOUT(isolate, "v8::Object::GetPrototype()", |
2951 return Local<v8::Value>()); | 2958 return Local<v8::Value>()); |
2952 ENTER_V8(isolate); | 2959 ENTER_V8(isolate); |
2953 i::Handle<i::Object> self = Utils::OpenHandle(this); | 2960 i::Handle<i::Object> self = Utils::OpenHandle(this); |
2954 i::Handle<i::Object> result(self->GetPrototype()); | 2961 i::Handle<i::Object> result(self->GetPrototype(), isolate); |
2955 return Utils::ToLocal(result); | 2962 return Utils::ToLocal(result); |
2956 } | 2963 } |
2957 | 2964 |
2958 | 2965 |
2959 bool v8::Object::SetPrototype(Handle<Value> value) { | 2966 bool v8::Object::SetPrototype(Handle<Value> value) { |
2960 i::Isolate* isolate = Utils::OpenHandle(this)->GetIsolate(); | 2967 i::Isolate* isolate = Utils::OpenHandle(this)->GetIsolate(); |
2961 ON_BAILOUT(isolate, "v8::Object::SetPrototype()", return false); | 2968 ON_BAILOUT(isolate, "v8::Object::SetPrototype()", return false); |
2962 ENTER_V8(isolate); | 2969 ENTER_V8(isolate); |
2963 i::Handle<i::JSObject> self = Utils::OpenHandle(this); | 2970 i::Handle<i::JSObject> self = Utils::OpenHandle(this); |
2964 i::Handle<i::Object> value_obj = Utils::OpenHandle(*value); | 2971 i::Handle<i::Object> value_obj = Utils::OpenHandle(*value); |
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3033 } | 3040 } |
3034 | 3041 |
3035 | 3042 |
3036 Local<String> v8::Object::ObjectProtoToString() { | 3043 Local<String> v8::Object::ObjectProtoToString() { |
3037 i::Isolate* isolate = Utils::OpenHandle(this)->GetIsolate(); | 3044 i::Isolate* isolate = Utils::OpenHandle(this)->GetIsolate(); |
3038 ON_BAILOUT(isolate, "v8::Object::ObjectProtoToString()", | 3045 ON_BAILOUT(isolate, "v8::Object::ObjectProtoToString()", |
3039 return Local<v8::String>()); | 3046 return Local<v8::String>()); |
3040 ENTER_V8(isolate); | 3047 ENTER_V8(isolate); |
3041 i::Handle<i::JSObject> self = Utils::OpenHandle(this); | 3048 i::Handle<i::JSObject> self = Utils::OpenHandle(this); |
3042 | 3049 |
3043 i::Handle<i::Object> name(self->class_name()); | 3050 i::Handle<i::Object> name(self->class_name(), isolate); |
3044 | 3051 |
3045 // Native implementation of Object.prototype.toString (v8natives.js): | 3052 // Native implementation of Object.prototype.toString (v8natives.js): |
3046 // var c = %ClassOf(this); | 3053 // var c = %ClassOf(this); |
3047 // if (c === 'Arguments') c = 'Object'; | 3054 // if (c === 'Arguments') c = 'Object'; |
3048 // return "[object " + c + "]"; | 3055 // return "[object " + c + "]"; |
3049 | 3056 |
3050 if (!name->IsString()) { | 3057 if (!name->IsString()) { |
3051 return v8::String::New("[object ]"); | 3058 return v8::String::New("[object ]"); |
3052 | 3059 |
3053 } else { | 3060 } else { |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3086 } | 3093 } |
3087 } | 3094 } |
3088 | 3095 |
3089 | 3096 |
3090 Local<Value> v8::Object::GetConstructor() { | 3097 Local<Value> v8::Object::GetConstructor() { |
3091 i::Isolate* isolate = Utils::OpenHandle(this)->GetIsolate(); | 3098 i::Isolate* isolate = Utils::OpenHandle(this)->GetIsolate(); |
3092 ON_BAILOUT(isolate, "v8::Object::GetConstructor()", | 3099 ON_BAILOUT(isolate, "v8::Object::GetConstructor()", |
3093 return Local<v8::Function>()); | 3100 return Local<v8::Function>()); |
3094 ENTER_V8(isolate); | 3101 ENTER_V8(isolate); |
3095 i::Handle<i::JSObject> self = Utils::OpenHandle(this); | 3102 i::Handle<i::JSObject> self = Utils::OpenHandle(this); |
3096 i::Handle<i::Object> constructor(self->GetConstructor()); | 3103 i::Handle<i::Object> constructor(self->GetConstructor(), isolate); |
3097 return Utils::ToLocal(constructor); | 3104 return Utils::ToLocal(constructor); |
3098 } | 3105 } |
3099 | 3106 |
3100 | 3107 |
3101 Local<String> v8::Object::GetConstructorName() { | 3108 Local<String> v8::Object::GetConstructorName() { |
3102 i::Isolate* isolate = Utils::OpenHandle(this)->GetIsolate(); | 3109 i::Isolate* isolate = Utils::OpenHandle(this)->GetIsolate(); |
3103 ON_BAILOUT(isolate, "v8::Object::GetConstructorName()", | 3110 ON_BAILOUT(isolate, "v8::Object::GetConstructorName()", |
3104 return Local<v8::String>()); | 3111 return Local<v8::String>()); |
3105 ENTER_V8(isolate); | 3112 ENTER_V8(isolate); |
3106 i::Handle<i::JSObject> self = Utils::OpenHandle(this); | 3113 i::Handle<i::JSObject> self = Utils::OpenHandle(this); |
(...skipping 610 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3717 i::Handle<i::JSFunction> fun = Utils::OpenHandle(this); | 3724 i::Handle<i::JSFunction> fun = Utils::OpenHandle(this); |
3718 i::Handle<i::Object> recv_obj = Utils::OpenHandle(*recv); | 3725 i::Handle<i::Object> recv_obj = Utils::OpenHandle(*recv); |
3719 STATIC_ASSERT(sizeof(v8::Handle<v8::Value>) == sizeof(i::Object**)); | 3726 STATIC_ASSERT(sizeof(v8::Handle<v8::Value>) == sizeof(i::Object**)); |
3720 i::Handle<i::Object>* args = reinterpret_cast<i::Handle<i::Object>*>(argv); | 3727 i::Handle<i::Object>* args = reinterpret_cast<i::Handle<i::Object>*>(argv); |
3721 EXCEPTION_PREAMBLE(isolate); | 3728 EXCEPTION_PREAMBLE(isolate); |
3722 i::Handle<i::Object> returned = | 3729 i::Handle<i::Object> returned = |
3723 i::Execution::Call(fun, recv_obj, argc, args, &has_pending_exception); | 3730 i::Execution::Call(fun, recv_obj, argc, args, &has_pending_exception); |
3724 EXCEPTION_BAILOUT_CHECK_DO_CALLBACK(isolate, Local<Object>()); | 3731 EXCEPTION_BAILOUT_CHECK_DO_CALLBACK(isolate, Local<Object>()); |
3725 raw_result = *returned; | 3732 raw_result = *returned; |
3726 } | 3733 } |
3727 i::Handle<i::Object> result(raw_result); | 3734 i::Handle<i::Object> result(raw_result, isolate); |
3728 return Utils::ToLocal(result); | 3735 return Utils::ToLocal(result); |
3729 } | 3736 } |
3730 | 3737 |
3731 | 3738 |
3732 void Function::SetName(v8::Handle<v8::String> name) { | 3739 void Function::SetName(v8::Handle<v8::String> name) { |
3733 i::Isolate* isolate = Utils::OpenHandle(this)->GetIsolate(); | 3740 i::Isolate* isolate = Utils::OpenHandle(this)->GetIsolate(); |
3734 ENTER_V8(isolate); | 3741 ENTER_V8(isolate); |
3735 USE(isolate); | 3742 USE(isolate); |
3736 i::Handle<i::JSFunction> func = Utils::OpenHandle(this); | 3743 i::Handle<i::JSFunction> func = Utils::OpenHandle(this); |
3737 func->shared()->set_name(*Utils::OpenHandle(*name)); | 3744 func->shared()->set_name(*Utils::OpenHandle(*name)); |
3738 } | 3745 } |
3739 | 3746 |
3740 | 3747 |
3741 Handle<Value> Function::GetName() const { | 3748 Handle<Value> Function::GetName() const { |
3742 i::Handle<i::JSFunction> func = Utils::OpenHandle(this); | 3749 i::Handle<i::JSFunction> func = Utils::OpenHandle(this); |
3743 return Utils::ToLocal(i::Handle<i::Object>(func->shared()->name())); | 3750 return Utils::ToLocal(i::Handle<i::Object>(func->shared()->name(), |
| 3751 func->GetIsolate())); |
3744 } | 3752 } |
3745 | 3753 |
3746 | 3754 |
3747 Handle<Value> Function::GetInferredName() const { | 3755 Handle<Value> Function::GetInferredName() const { |
3748 i::Handle<i::JSFunction> func = Utils::OpenHandle(this); | 3756 i::Handle<i::JSFunction> func = Utils::OpenHandle(this); |
3749 return Utils::ToLocal(i::Handle<i::Object>(func->shared()->inferred_name())); | 3757 return Utils::ToLocal(i::Handle<i::Object>(func->shared()->inferred_name(), |
| 3758 func->GetIsolate())); |
3750 } | 3759 } |
3751 | 3760 |
3752 | 3761 |
3753 ScriptOrigin Function::GetScriptOrigin() const { | 3762 ScriptOrigin Function::GetScriptOrigin() const { |
3754 i::Handle<i::JSFunction> func = Utils::OpenHandle(this); | 3763 i::Handle<i::JSFunction> func = Utils::OpenHandle(this); |
3755 if (func->shared()->script()->IsScript()) { | 3764 if (func->shared()->script()->IsScript()) { |
3756 i::Handle<i::Script> script(i::Script::cast(func->shared()->script())); | 3765 i::Handle<i::Script> script(i::Script::cast(func->shared()->script())); |
3757 i::Handle<i::Object> scriptName = GetScriptNameOrSourceURL(script); | 3766 i::Handle<i::Object> scriptName = GetScriptNameOrSourceURL(script); |
3758 v8::ScriptOrigin origin( | 3767 v8::ScriptOrigin origin( |
3759 Utils::ToLocal(scriptName), | 3768 Utils::ToLocal(scriptName), |
(...skipping 25 matching lines...) Expand all Loading... |
3785 return i::GetScriptColumnNumber(script, func->shared()->start_position()); | 3794 return i::GetScriptColumnNumber(script, func->shared()->start_position()); |
3786 } | 3795 } |
3787 return kLineOffsetNotFound; | 3796 return kLineOffsetNotFound; |
3788 } | 3797 } |
3789 | 3798 |
3790 Handle<Value> Function::GetScriptId() const { | 3799 Handle<Value> Function::GetScriptId() const { |
3791 i::Handle<i::JSFunction> func = Utils::OpenHandle(this); | 3800 i::Handle<i::JSFunction> func = Utils::OpenHandle(this); |
3792 if (!func->shared()->script()->IsScript()) | 3801 if (!func->shared()->script()->IsScript()) |
3793 return v8::Undefined(); | 3802 return v8::Undefined(); |
3794 i::Handle<i::Script> script(i::Script::cast(func->shared()->script())); | 3803 i::Handle<i::Script> script(i::Script::cast(func->shared()->script())); |
3795 return Utils::ToLocal(i::Handle<i::Object>(script->id())); | 3804 return Utils::ToLocal(i::Handle<i::Object>(script->id(), func->GetIsolate())); |
3796 } | 3805 } |
3797 | 3806 |
3798 int String::Length() const { | 3807 int String::Length() const { |
3799 i::Handle<i::String> str = Utils::OpenHandle(this); | 3808 i::Handle<i::String> str = Utils::OpenHandle(this); |
3800 if (IsDeadCheck(str->GetIsolate(), "v8::String::Length()")) return 0; | 3809 if (IsDeadCheck(str->GetIsolate(), "v8::String::Length()")) return 0; |
3801 return str->length(); | 3810 return str->length(); |
3802 } | 3811 } |
3803 | 3812 |
3804 bool String::MayContainNonAscii() const { | 3813 bool String::MayContainNonAscii() const { |
3805 i::Handle<i::String> str = Utils::OpenHandle(this); | 3814 i::Handle<i::String> str = Utils::OpenHandle(this); |
(...skipping 802 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4608 } | 4617 } |
4609 | 4618 |
4610 | 4619 |
4611 Handle<Value> v8::Context::GetSecurityToken() { | 4620 Handle<Value> v8::Context::GetSecurityToken() { |
4612 i::Isolate* isolate = i::Isolate::Current(); | 4621 i::Isolate* isolate = i::Isolate::Current(); |
4613 if (IsDeadCheck(isolate, "v8::Context::GetSecurityToken()")) { | 4622 if (IsDeadCheck(isolate, "v8::Context::GetSecurityToken()")) { |
4614 return Handle<Value>(); | 4623 return Handle<Value>(); |
4615 } | 4624 } |
4616 i::Handle<i::Context> env = Utils::OpenHandle(this); | 4625 i::Handle<i::Context> env = Utils::OpenHandle(this); |
4617 i::Object* security_token = env->security_token(); | 4626 i::Object* security_token = env->security_token(); |
4618 i::Handle<i::Object> token_handle(security_token); | 4627 i::Handle<i::Object> token_handle(security_token, isolate); |
4619 return Utils::ToLocal(token_handle); | 4628 return Utils::ToLocal(token_handle); |
4620 } | 4629 } |
4621 | 4630 |
4622 | 4631 |
4623 bool Context::HasOutOfMemoryException() { | 4632 bool Context::HasOutOfMemoryException() { |
4624 i::Handle<i::Context> env = Utils::OpenHandle(this); | 4633 i::Handle<i::Context> env = Utils::OpenHandle(this); |
4625 return env->has_out_of_memory(); | 4634 return env->has_out_of_memory(); |
4626 } | 4635 } |
4627 | 4636 |
4628 | 4637 |
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4744 Handle<String> error) { | 4753 Handle<String> error) { |
4745 i::Isolate* isolate = i::Isolate::Current(); | 4754 i::Isolate* isolate = i::Isolate::Current(); |
4746 if (IsDeadCheck(isolate, | 4755 if (IsDeadCheck(isolate, |
4747 "v8::Context::SetErrorMessageForCodeGenerationFromStrings()")) { | 4756 "v8::Context::SetErrorMessageForCodeGenerationFromStrings()")) { |
4748 return; | 4757 return; |
4749 } | 4758 } |
4750 ENTER_V8(isolate); | 4759 ENTER_V8(isolate); |
4751 i::Object** ctx = reinterpret_cast<i::Object**>(this); | 4760 i::Object** ctx = reinterpret_cast<i::Object**>(this); |
4752 i::Handle<i::Context> context = | 4761 i::Handle<i::Context> context = |
4753 i::Handle<i::Context>::cast(i::Handle<i::Object>(ctx)); | 4762 i::Handle<i::Context>::cast(i::Handle<i::Object>(ctx)); |
4754 i::Handle<i::Object> error_handle = Utils::OpenHandle(*error); | 4763 i::Handle<i::String> error_handle = Utils::OpenHandle(*error); |
4755 context->set_error_message_for_code_gen_from_strings(*error_handle); | 4764 context->set_error_message_for_code_gen_from_strings(*error_handle); |
4756 } | 4765 } |
4757 | 4766 |
4758 | 4767 |
4759 Local<v8::Object> ObjectTemplate::NewInstance() { | 4768 Local<v8::Object> ObjectTemplate::NewInstance() { |
4760 i::Isolate* isolate = i::Isolate::Current(); | 4769 i::Isolate* isolate = i::Isolate::Current(); |
4761 ON_BAILOUT(isolate, "v8::ObjectTemplate::NewInstance()", | 4770 ON_BAILOUT(isolate, "v8::ObjectTemplate::NewInstance()", |
4762 return Local<v8::Object>()); | 4771 return Local<v8::Object>()); |
4763 LOG_API(isolate, "ObjectTemplate::NewInstance"); | 4772 LOG_API(isolate, "ObjectTemplate::NewInstance"); |
4764 ENTER_V8(isolate); | 4773 ENTER_V8(isolate); |
(...skipping 264 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5029 i::Handle<i::JSValue> jsvalue = i::Handle<i::JSValue>::cast(obj); | 5038 i::Handle<i::JSValue> jsvalue = i::Handle<i::JSValue>::cast(obj); |
5030 return jsvalue->value()->Number(); | 5039 return jsvalue->value()->Number(); |
5031 } | 5040 } |
5032 | 5041 |
5033 | 5042 |
5034 Local<v8::Value> v8::BooleanObject::New(bool value) { | 5043 Local<v8::Value> v8::BooleanObject::New(bool value) { |
5035 i::Isolate* isolate = i::Isolate::Current(); | 5044 i::Isolate* isolate = i::Isolate::Current(); |
5036 EnsureInitializedForIsolate(isolate, "v8::BooleanObject::New()"); | 5045 EnsureInitializedForIsolate(isolate, "v8::BooleanObject::New()"); |
5037 LOG_API(isolate, "BooleanObject::New"); | 5046 LOG_API(isolate, "BooleanObject::New"); |
5038 ENTER_V8(isolate); | 5047 ENTER_V8(isolate); |
5039 i::Handle<i::Object> boolean(value ? isolate->heap()->true_value() | 5048 i::Handle<i::Object> boolean(value |
5040 : isolate->heap()->false_value()); | 5049 ? isolate->heap()->true_value() |
| 5050 : isolate->heap()->false_value(), |
| 5051 isolate); |
5041 i::Handle<i::Object> obj = isolate->factory()->ToObject(boolean); | 5052 i::Handle<i::Object> obj = isolate->factory()->ToObject(boolean); |
5042 return Utils::ToLocal(obj); | 5053 return Utils::ToLocal(obj); |
5043 } | 5054 } |
5044 | 5055 |
5045 | 5056 |
5046 bool v8::BooleanObject::BooleanValue() const { | 5057 bool v8::BooleanObject::BooleanValue() const { |
5047 i::Isolate* isolate = i::Isolate::Current(); | 5058 i::Isolate* isolate = i::Isolate::Current(); |
5048 if (IsDeadCheck(isolate, "v8::BooleanObject::BooleanValue()")) return 0; | 5059 if (IsDeadCheck(isolate, "v8::BooleanObject::BooleanValue()")) return 0; |
5049 LOG_API(isolate, "BooleanObject::BooleanValue"); | 5060 LOG_API(isolate, "BooleanObject::BooleanValue"); |
5050 i::Handle<i::Object> obj = Utils::OpenHandle(this); | 5061 i::Handle<i::Object> obj = Utils::OpenHandle(this); |
(...skipping 633 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5684 LOG_API(isolate, "RangeError"); | 5695 LOG_API(isolate, "RangeError"); |
5685 ON_BAILOUT(isolate, "v8::Exception::RangeError()", return Local<Value>()); | 5696 ON_BAILOUT(isolate, "v8::Exception::RangeError()", return Local<Value>()); |
5686 ENTER_V8(isolate); | 5697 ENTER_V8(isolate); |
5687 i::Object* error; | 5698 i::Object* error; |
5688 { | 5699 { |
5689 i::HandleScope scope(isolate); | 5700 i::HandleScope scope(isolate); |
5690 i::Handle<i::String> message = Utils::OpenHandle(*raw_message); | 5701 i::Handle<i::String> message = Utils::OpenHandle(*raw_message); |
5691 i::Handle<i::Object> result = isolate->factory()->NewRangeError(message); | 5702 i::Handle<i::Object> result = isolate->factory()->NewRangeError(message); |
5692 error = *result; | 5703 error = *result; |
5693 } | 5704 } |
5694 i::Handle<i::Object> result(error); | 5705 i::Handle<i::Object> result(error, isolate); |
5695 return Utils::ToLocal(result); | 5706 return Utils::ToLocal(result); |
5696 } | 5707 } |
5697 | 5708 |
5698 Local<Value> Exception::ReferenceError(v8::Handle<v8::String> raw_message) { | 5709 Local<Value> Exception::ReferenceError(v8::Handle<v8::String> raw_message) { |
5699 i::Isolate* isolate = i::Isolate::Current(); | 5710 i::Isolate* isolate = i::Isolate::Current(); |
5700 LOG_API(isolate, "ReferenceError"); | 5711 LOG_API(isolate, "ReferenceError"); |
5701 ON_BAILOUT(isolate, "v8::Exception::ReferenceError()", return Local<Value>()); | 5712 ON_BAILOUT(isolate, "v8::Exception::ReferenceError()", return Local<Value>()); |
5702 ENTER_V8(isolate); | 5713 ENTER_V8(isolate); |
5703 i::Object* error; | 5714 i::Object* error; |
5704 { | 5715 { |
5705 i::HandleScope scope(isolate); | 5716 i::HandleScope scope(isolate); |
5706 i::Handle<i::String> message = Utils::OpenHandle(*raw_message); | 5717 i::Handle<i::String> message = Utils::OpenHandle(*raw_message); |
5707 i::Handle<i::Object> result = | 5718 i::Handle<i::Object> result = |
5708 isolate->factory()->NewReferenceError(message); | 5719 isolate->factory()->NewReferenceError(message); |
5709 error = *result; | 5720 error = *result; |
5710 } | 5721 } |
5711 i::Handle<i::Object> result(error); | 5722 i::Handle<i::Object> result(error, isolate); |
5712 return Utils::ToLocal(result); | 5723 return Utils::ToLocal(result); |
5713 } | 5724 } |
5714 | 5725 |
5715 Local<Value> Exception::SyntaxError(v8::Handle<v8::String> raw_message) { | 5726 Local<Value> Exception::SyntaxError(v8::Handle<v8::String> raw_message) { |
5716 i::Isolate* isolate = i::Isolate::Current(); | 5727 i::Isolate* isolate = i::Isolate::Current(); |
5717 LOG_API(isolate, "SyntaxError"); | 5728 LOG_API(isolate, "SyntaxError"); |
5718 ON_BAILOUT(isolate, "v8::Exception::SyntaxError()", return Local<Value>()); | 5729 ON_BAILOUT(isolate, "v8::Exception::SyntaxError()", return Local<Value>()); |
5719 ENTER_V8(isolate); | 5730 ENTER_V8(isolate); |
5720 i::Object* error; | 5731 i::Object* error; |
5721 { | 5732 { |
5722 i::HandleScope scope(isolate); | 5733 i::HandleScope scope(isolate); |
5723 i::Handle<i::String> message = Utils::OpenHandle(*raw_message); | 5734 i::Handle<i::String> message = Utils::OpenHandle(*raw_message); |
5724 i::Handle<i::Object> result = isolate->factory()->NewSyntaxError(message); | 5735 i::Handle<i::Object> result = isolate->factory()->NewSyntaxError(message); |
5725 error = *result; | 5736 error = *result; |
5726 } | 5737 } |
5727 i::Handle<i::Object> result(error); | 5738 i::Handle<i::Object> result(error, isolate); |
5728 return Utils::ToLocal(result); | 5739 return Utils::ToLocal(result); |
5729 } | 5740 } |
5730 | 5741 |
5731 Local<Value> Exception::TypeError(v8::Handle<v8::String> raw_message) { | 5742 Local<Value> Exception::TypeError(v8::Handle<v8::String> raw_message) { |
5732 i::Isolate* isolate = i::Isolate::Current(); | 5743 i::Isolate* isolate = i::Isolate::Current(); |
5733 LOG_API(isolate, "TypeError"); | 5744 LOG_API(isolate, "TypeError"); |
5734 ON_BAILOUT(isolate, "v8::Exception::TypeError()", return Local<Value>()); | 5745 ON_BAILOUT(isolate, "v8::Exception::TypeError()", return Local<Value>()); |
5735 ENTER_V8(isolate); | 5746 ENTER_V8(isolate); |
5736 i::Object* error; | 5747 i::Object* error; |
5737 { | 5748 { |
5738 i::HandleScope scope(isolate); | 5749 i::HandleScope scope(isolate); |
5739 i::Handle<i::String> message = Utils::OpenHandle(*raw_message); | 5750 i::Handle<i::String> message = Utils::OpenHandle(*raw_message); |
5740 i::Handle<i::Object> result = isolate->factory()->NewTypeError(message); | 5751 i::Handle<i::Object> result = isolate->factory()->NewTypeError(message); |
5741 error = *result; | 5752 error = *result; |
5742 } | 5753 } |
5743 i::Handle<i::Object> result(error); | 5754 i::Handle<i::Object> result(error, isolate); |
5744 return Utils::ToLocal(result); | 5755 return Utils::ToLocal(result); |
5745 } | 5756 } |
5746 | 5757 |
5747 Local<Value> Exception::Error(v8::Handle<v8::String> raw_message) { | 5758 Local<Value> Exception::Error(v8::Handle<v8::String> raw_message) { |
5748 i::Isolate* isolate = i::Isolate::Current(); | 5759 i::Isolate* isolate = i::Isolate::Current(); |
5749 LOG_API(isolate, "Error"); | 5760 LOG_API(isolate, "Error"); |
5750 ON_BAILOUT(isolate, "v8::Exception::Error()", return Local<Value>()); | 5761 ON_BAILOUT(isolate, "v8::Exception::Error()", return Local<Value>()); |
5751 ENTER_V8(isolate); | 5762 ENTER_V8(isolate); |
5752 i::Object* error; | 5763 i::Object* error; |
5753 { | 5764 { |
5754 i::HandleScope scope(isolate); | 5765 i::HandleScope scope(isolate); |
5755 i::Handle<i::String> message = Utils::OpenHandle(*raw_message); | 5766 i::Handle<i::String> message = Utils::OpenHandle(*raw_message); |
5756 i::Handle<i::Object> result = isolate->factory()->NewError(message); | 5767 i::Handle<i::Object> result = isolate->factory()->NewError(message); |
5757 error = *result; | 5768 error = *result; |
5758 } | 5769 } |
5759 i::Handle<i::Object> result(error); | 5770 i::Handle<i::Object> result(error, isolate); |
5760 return Utils::ToLocal(result); | 5771 return Utils::ToLocal(result); |
5761 } | 5772 } |
5762 | 5773 |
5763 | 5774 |
5764 // --- D e b u g S u p p o r t --- | 5775 // --- D e b u g S u p p o r t --- |
5765 | 5776 |
5766 #ifdef ENABLE_DEBUGGER_SUPPORT | 5777 #ifdef ENABLE_DEBUGGER_SUPPORT |
5767 | 5778 |
5768 static void EventCallbackWrapper(const v8::Debug::EventDetails& event_details) { | 5779 static void EventCallbackWrapper(const v8::Debug::EventDetails& event_details) { |
5769 i::Isolate* isolate = i::Isolate::Current(); | 5780 i::Isolate* isolate = i::Isolate::Current(); |
(...skipping 183 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5953 i::Isolate* isolate = i::Isolate::Current(); | 5964 i::Isolate* isolate = i::Isolate::Current(); |
5954 if (!isolate->IsInitialized()) return Local<Value>(); | 5965 if (!isolate->IsInitialized()) return Local<Value>(); |
5955 ON_BAILOUT(isolate, "v8::Debug::GetMirror()", return Local<Value>()); | 5966 ON_BAILOUT(isolate, "v8::Debug::GetMirror()", return Local<Value>()); |
5956 ENTER_V8(isolate); | 5967 ENTER_V8(isolate); |
5957 v8::HandleScope scope; | 5968 v8::HandleScope scope; |
5958 i::Debug* isolate_debug = isolate->debug(); | 5969 i::Debug* isolate_debug = isolate->debug(); |
5959 isolate_debug->Load(); | 5970 isolate_debug->Load(); |
5960 i::Handle<i::JSObject> debug(isolate_debug->debug_context()->global_object()); | 5971 i::Handle<i::JSObject> debug(isolate_debug->debug_context()->global_object()); |
5961 i::Handle<i::String> name = isolate->factory()->LookupOneByteSymbol( | 5972 i::Handle<i::String> name = isolate->factory()->LookupOneByteSymbol( |
5962 STATIC_ASCII_VECTOR("MakeMirror")); | 5973 STATIC_ASCII_VECTOR("MakeMirror")); |
5963 i::Handle<i::Object> fun_obj = i::GetProperty(debug, name); | 5974 i::Handle<i::Object> fun_obj = i::GetProperty(isolate, debug, name); |
5964 i::Handle<i::JSFunction> fun = i::Handle<i::JSFunction>::cast(fun_obj); | 5975 i::Handle<i::JSFunction> fun = i::Handle<i::JSFunction>::cast(fun_obj); |
5965 v8::Handle<v8::Function> v8_fun = Utils::ToLocal(fun); | 5976 v8::Handle<v8::Function> v8_fun = Utils::ToLocal(fun); |
5966 const int kArgc = 1; | 5977 const int kArgc = 1; |
5967 v8::Handle<v8::Value> argv[kArgc] = { obj }; | 5978 v8::Handle<v8::Value> argv[kArgc] = { obj }; |
5968 EXCEPTION_PREAMBLE(isolate); | 5979 EXCEPTION_PREAMBLE(isolate); |
5969 v8::Handle<v8::Value> result = v8_fun->Call(Utils::ToLocal(debug), | 5980 v8::Handle<v8::Value> result = v8_fun->Call(Utils::ToLocal(debug), |
5970 kArgc, | 5981 kArgc, |
5971 argv); | 5982 argv); |
5972 EXCEPTION_BAILOUT_CHECK(isolate, Local<Value>()); | 5983 EXCEPTION_BAILOUT_CHECK(isolate, Local<Value>()); |
5973 return scope.Close(result); | 5984 return scope.Close(result); |
(...skipping 730 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6704 | 6715 |
6705 v->VisitPointers(blocks_.first(), first_block_limit_); | 6716 v->VisitPointers(blocks_.first(), first_block_limit_); |
6706 | 6717 |
6707 for (int i = 1; i < blocks_.length(); i++) { | 6718 for (int i = 1; i < blocks_.length(); i++) { |
6708 v->VisitPointers(blocks_[i], &blocks_[i][kHandleBlockSize]); | 6719 v->VisitPointers(blocks_[i], &blocks_[i][kHandleBlockSize]); |
6709 } | 6720 } |
6710 } | 6721 } |
6711 | 6722 |
6712 | 6723 |
6713 } } // namespace v8::internal | 6724 } } // namespace v8::internal |
OLD | NEW |