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