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 867 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
878 | 878 |
879 // This method cannot easily return an error value, therefore it is necessary | 879 // This method cannot easily return an error value, therefore it is necessary |
880 // to check for a dead VM with ON_BAILOUT before calling it. To remind you | 880 // to check for a dead VM with ON_BAILOUT before calling it. To remind you |
881 // about this there is no HandleScope in this method. When you add one to the | 881 // about this there is no HandleScope in this method. When you add one to the |
882 // site calling this method you should check that you ensured the VM was not | 882 // site calling this method you should check that you ensured the VM was not |
883 // dead first. | 883 // dead first. |
884 void NeanderArray::add(i::Handle<i::Object> value) { | 884 void NeanderArray::add(i::Handle<i::Object> value) { |
885 int length = this->length(); | 885 int length = this->length(); |
886 int size = obj_.size(); | 886 int size = obj_.size(); |
887 if (length == size - 1) { | 887 if (length == size - 1) { |
888 i::Handle<i::FixedArray> new_elms = FACTORY->NewFixedArray(2 * size); | 888 i::Factory* factory = i::Isolate::Current()->factory(); |
| 889 i::Handle<i::FixedArray> new_elms = factory->NewFixedArray(2 * size); |
889 for (int i = 0; i < length; i++) | 890 for (int i = 0; i < length; i++) |
890 new_elms->set(i + 1, get(i)); | 891 new_elms->set(i + 1, get(i)); |
891 obj_.value()->set_elements(*new_elms); | 892 obj_.value()->set_elements(*new_elms); |
892 } | 893 } |
893 obj_.set(length + 1, *value); | 894 obj_.set(length + 1, *value); |
894 obj_.set(0, i::Smi::FromInt(length + 1)); | 895 obj_.set(0, i::Smi::FromInt(length + 1)); |
895 } | 896 } |
896 | 897 |
897 | 898 |
898 void NeanderArray::set(int index, i::Object* value) { | 899 void NeanderArray::set(int index, i::Object* value) { |
(...skipping 2949 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3848 } | 3849 } |
3849 | 3850 |
3850 | 3851 |
3851 v8::Local<v8::Value> v8::Object::GetHiddenValue(v8::Handle<v8::String> key) { | 3852 v8::Local<v8::Value> v8::Object::GetHiddenValue(v8::Handle<v8::String> key) { |
3852 i::Isolate* isolate = Utils::OpenHandle(this)->GetIsolate(); | 3853 i::Isolate* isolate = Utils::OpenHandle(this)->GetIsolate(); |
3853 ON_BAILOUT(isolate, "v8::Object::GetHiddenValue()", | 3854 ON_BAILOUT(isolate, "v8::Object::GetHiddenValue()", |
3854 return Local<v8::Value>()); | 3855 return Local<v8::Value>()); |
3855 ENTER_V8(isolate); | 3856 ENTER_V8(isolate); |
3856 i::Handle<i::JSObject> self = Utils::OpenHandle(this); | 3857 i::Handle<i::JSObject> self = Utils::OpenHandle(this); |
3857 i::Handle<i::String> key_obj = Utils::OpenHandle(*key); | 3858 i::Handle<i::String> key_obj = Utils::OpenHandle(*key); |
3858 i::Handle<i::String> key_string = FACTORY->InternalizeString(key_obj); | 3859 i::Handle<i::String> key_string = |
| 3860 isolate->factory()->InternalizeString(key_obj); |
3859 i::Handle<i::Object> result(self->GetHiddenProperty(*key_string), isolate); | 3861 i::Handle<i::Object> result(self->GetHiddenProperty(*key_string), isolate); |
3860 if (result->IsUndefined()) return v8::Local<v8::Value>(); | 3862 if (result->IsUndefined()) return v8::Local<v8::Value>(); |
3861 return Utils::ToLocal(result); | 3863 return Utils::ToLocal(result); |
3862 } | 3864 } |
3863 | 3865 |
3864 | 3866 |
3865 bool v8::Object::DeleteHiddenValue(v8::Handle<v8::String> key) { | 3867 bool v8::Object::DeleteHiddenValue(v8::Handle<v8::String> key) { |
3866 i::Isolate* isolate = Utils::OpenHandle(this)->GetIsolate(); | 3868 i::Isolate* isolate = Utils::OpenHandle(this)->GetIsolate(); |
3867 ON_BAILOUT(isolate, "v8::DeleteHiddenValue()", return false); | 3869 ON_BAILOUT(isolate, "v8::DeleteHiddenValue()", return false); |
3868 ENTER_V8(isolate); | 3870 ENTER_V8(isolate); |
3869 i::HandleScope scope(isolate); | 3871 i::HandleScope scope(isolate); |
3870 i::Handle<i::JSObject> self = Utils::OpenHandle(this); | 3872 i::Handle<i::JSObject> self = Utils::OpenHandle(this); |
3871 i::Handle<i::String> key_obj = Utils::OpenHandle(*key); | 3873 i::Handle<i::String> key_obj = Utils::OpenHandle(*key); |
3872 i::Handle<i::String> key_string = FACTORY->InternalizeString(key_obj); | 3874 i::Handle<i::String> key_string = |
| 3875 isolate->factory()->InternalizeString(key_obj); |
3873 self->DeleteHiddenProperty(*key_string); | 3876 self->DeleteHiddenProperty(*key_string); |
3874 return true; | 3877 return true; |
3875 } | 3878 } |
3876 | 3879 |
3877 | 3880 |
3878 namespace { | 3881 namespace { |
3879 | 3882 |
3880 static i::ElementsKind GetElementsKindFromExternalArrayType( | 3883 static i::ElementsKind GetElementsKindFromExternalArrayType( |
3881 ExternalArrayType array_type) { | 3884 ExternalArrayType array_type) { |
3882 switch (array_type) { | 3885 switch (array_type) { |
(...skipping 2006 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5889 i::Execution::TryCall(func, | 5892 i::Execution::TryCall(func, |
5890 isolate->js_builtins_object(), | 5893 isolate->js_builtins_object(), |
5891 0, | 5894 0, |
5892 NULL, | 5895 NULL, |
5893 &caught_exception); | 5896 &caught_exception); |
5894 } | 5897 } |
5895 } | 5898 } |
5896 | 5899 |
5897 | 5900 |
5898 static i::Handle<i::String> RegExpFlagsToString(RegExp::Flags flags) { | 5901 static i::Handle<i::String> RegExpFlagsToString(RegExp::Flags flags) { |
| 5902 i::Isolate* isolate = i::Isolate::Current(); |
5899 uint8_t flags_buf[3]; | 5903 uint8_t flags_buf[3]; |
5900 int num_flags = 0; | 5904 int num_flags = 0; |
5901 if ((flags & RegExp::kGlobal) != 0) flags_buf[num_flags++] = 'g'; | 5905 if ((flags & RegExp::kGlobal) != 0) flags_buf[num_flags++] = 'g'; |
5902 if ((flags & RegExp::kMultiline) != 0) flags_buf[num_flags++] = 'm'; | 5906 if ((flags & RegExp::kMultiline) != 0) flags_buf[num_flags++] = 'm'; |
5903 if ((flags & RegExp::kIgnoreCase) != 0) flags_buf[num_flags++] = 'i'; | 5907 if ((flags & RegExp::kIgnoreCase) != 0) flags_buf[num_flags++] = 'i'; |
5904 ASSERT(num_flags <= static_cast<int>(ARRAY_SIZE(flags_buf))); | 5908 ASSERT(num_flags <= static_cast<int>(ARRAY_SIZE(flags_buf))); |
5905 return FACTORY->InternalizeOneByteString( | 5909 return isolate->factory()->InternalizeOneByteString( |
5906 i::Vector<const uint8_t>(flags_buf, num_flags)); | 5910 i::Vector<const uint8_t>(flags_buf, num_flags)); |
5907 } | 5911 } |
5908 | 5912 |
5909 | 5913 |
5910 Local<v8::RegExp> v8::RegExp::New(Handle<String> pattern, | 5914 Local<v8::RegExp> v8::RegExp::New(Handle<String> pattern, |
5911 Flags flags) { | 5915 Flags flags) { |
5912 i::Isolate* isolate = Utils::OpenHandle(*pattern)->GetIsolate(); | 5916 i::Isolate* isolate = Utils::OpenHandle(*pattern)->GetIsolate(); |
5913 EnsureInitializedForIsolate(isolate, "v8::RegExp::New()"); | 5917 EnsureInitializedForIsolate(isolate, "v8::RegExp::New()"); |
5914 LOG_API(isolate, "RegExp::New"); | 5918 LOG_API(isolate, "RegExp::New"); |
5915 ENTER_V8(isolate); | 5919 ENTER_V8(isolate); |
(...skipping 1936 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
7852 | 7856 |
7853 v->VisitPointers(blocks_.first(), first_block_limit_); | 7857 v->VisitPointers(blocks_.first(), first_block_limit_); |
7854 | 7858 |
7855 for (int i = 1; i < blocks_.length(); i++) { | 7859 for (int i = 1; i < blocks_.length(); i++) { |
7856 v->VisitPointers(blocks_[i], &blocks_[i][kHandleBlockSize]); | 7860 v->VisitPointers(blocks_[i], &blocks_[i][kHandleBlockSize]); |
7857 } | 7861 } |
7858 } | 7862 } |
7859 | 7863 |
7860 | 7864 |
7861 } } // namespace v8::internal | 7865 } } // namespace v8::internal |
OLD | NEW |