| OLD | NEW | 
|---|
| 1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. | 
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be | 
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. | 
| 4 | 4 | 
| 5 #include "src/api.h" | 5 #include "src/api.h" | 
| 6 | 6 | 
| 7 #include <string.h>  // For memcpy, strlen. | 7 #include <string.h>  // For memcpy, strlen. | 
| 8 #ifdef V8_USE_ADDRESS_SANITIZER | 8 #ifdef V8_USE_ADDRESS_SANITIZER | 
| 9 #include <sanitizer/asan_interface.h> | 9 #include <sanitizer/asan_interface.h> | 
| 10 #endif  // V8_USE_ADDRESS_SANITIZER | 10 #endif  // V8_USE_ADDRESS_SANITIZER | 
| (...skipping 6113 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 6124   return Utils::ToLocal(obj); | 6124   return Utils::ToLocal(obj); | 
| 6125 } | 6125 } | 
| 6126 | 6126 | 
| 6127 | 6127 | 
| 6128 size_t v8::Map::Size() const { | 6128 size_t v8::Map::Size() const { | 
| 6129   i::Handle<i::JSMap> obj = Utils::OpenHandle(this); | 6129   i::Handle<i::JSMap> obj = Utils::OpenHandle(this); | 
| 6130   return i::OrderedHashMap::cast(obj->table())->NumberOfElements(); | 6130   return i::OrderedHashMap::cast(obj->table())->NumberOfElements(); | 
| 6131 } | 6131 } | 
| 6132 | 6132 | 
| 6133 | 6133 | 
|  | 6134 Local<Array> Map::AsArray() const { | 
|  | 6135   i::Handle<i::JSMap> obj = Utils::OpenHandle(this); | 
|  | 6136   i::Isolate* isolate = obj->GetIsolate(); | 
|  | 6137   i::Factory* factory = isolate->factory(); | 
|  | 6138   LOG_API(isolate, "Map::AsArray"); | 
|  | 6139   ENTER_V8(isolate); | 
|  | 6140   i::Handle<i::OrderedHashMap> table(i::OrderedHashMap::cast(obj->table())); | 
|  | 6141   int length = table->NumberOfElements(); | 
|  | 6142   i::Handle<i::FixedArray> result = factory->NewFixedArray(length); | 
|  | 6143   for (int i = 0; i < length; ++i) { | 
|  | 6144     if (table->KeyAt(i)->IsTheHole()) continue; | 
|  | 6145     i::HandleScope handle_scope(isolate); | 
|  | 6146     i::Handle<i::FixedArray> entry = factory->NewFixedArray(2); | 
|  | 6147     entry->set(0, table->KeyAt(i)); | 
|  | 6148     entry->set(1, table->ValueAt(i)); | 
|  | 6149     i::Handle<i::JSArray> entry_array = | 
|  | 6150         factory->NewJSArrayWithElements(entry, i::FAST_ELEMENTS, 2); | 
|  | 6151     result->set(i, *entry_array); | 
|  | 6152   } | 
|  | 6153   i::Handle<i::JSArray> result_array = | 
|  | 6154       factory->NewJSArrayWithElements(result, i::FAST_ELEMENTS, length); | 
|  | 6155   return Utils::ToLocal(result_array); | 
|  | 6156 } | 
|  | 6157 | 
|  | 6158 | 
| 6134 Local<v8::Set> v8::Set::New(Isolate* isolate) { | 6159 Local<v8::Set> v8::Set::New(Isolate* isolate) { | 
| 6135   i::Isolate* i_isolate = reinterpret_cast<i::Isolate*>(isolate); | 6160   i::Isolate* i_isolate = reinterpret_cast<i::Isolate*>(isolate); | 
| 6136   LOG_API(i_isolate, "Set::New"); | 6161   LOG_API(i_isolate, "Set::New"); | 
| 6137   ENTER_V8(i_isolate); | 6162   ENTER_V8(i_isolate); | 
| 6138   i::Handle<i::JSSet> obj = i_isolate->factory()->NewJSSet(); | 6163   i::Handle<i::JSSet> obj = i_isolate->factory()->NewJSSet(); | 
| 6139   return Utils::ToLocal(obj); | 6164   return Utils::ToLocal(obj); | 
| 6140 } | 6165 } | 
| 6141 | 6166 | 
| 6142 | 6167 | 
| 6143 size_t v8::Set::Size() const { | 6168 size_t v8::Set::Size() const { | 
| 6144   i::Handle<i::JSSet> obj = Utils::OpenHandle(this); | 6169   i::Handle<i::JSSet> obj = Utils::OpenHandle(this); | 
| 6145   return i::OrderedHashSet::cast(obj->table())->NumberOfElements(); | 6170   return i::OrderedHashSet::cast(obj->table())->NumberOfElements(); | 
| 6146 } | 6171 } | 
| 6147 | 6172 | 
| 6148 | 6173 | 
|  | 6174 Local<Array> Set::AsArray() const { | 
|  | 6175   i::Handle<i::JSSet> obj = Utils::OpenHandle(this); | 
|  | 6176   i::Isolate* isolate = obj->GetIsolate(); | 
|  | 6177   i::Factory* factory = isolate->factory(); | 
|  | 6178   LOG_API(isolate, "Set::AsArray"); | 
|  | 6179   ENTER_V8(isolate); | 
|  | 6180   i::Handle<i::OrderedHashSet> table(i::OrderedHashSet::cast(obj->table())); | 
|  | 6181   int length = table->NumberOfElements(); | 
|  | 6182   i::Handle<i::FixedArray> result = factory->NewFixedArray(length); | 
|  | 6183   for (int i = 0; i < length; ++i) { | 
|  | 6184     i::Object* key = table->KeyAt(i); | 
|  | 6185     if (!key->IsTheHole()) { | 
|  | 6186       result->set(i, key); | 
|  | 6187     } | 
|  | 6188   } | 
|  | 6189   i::Handle<i::JSArray> result_array = | 
|  | 6190       factory->NewJSArrayWithElements(result, i::FAST_ELEMENTS, length); | 
|  | 6191   return Utils::ToLocal(result_array); | 
|  | 6192 } | 
|  | 6193 | 
|  | 6194 | 
| 6149 bool Value::IsPromise() const { | 6195 bool Value::IsPromise() const { | 
| 6150   auto self = Utils::OpenHandle(this); | 6196   auto self = Utils::OpenHandle(this); | 
| 6151   return i::Object::IsPromise(self); | 6197   return i::Object::IsPromise(self); | 
| 6152 } | 6198 } | 
| 6153 | 6199 | 
| 6154 | 6200 | 
| 6155 MaybeLocal<Promise::Resolver> Promise::Resolver::New(Local<Context> context) { | 6201 MaybeLocal<Promise::Resolver> Promise::Resolver::New(Local<Context> context) { | 
| 6156   PREPARE_FOR_EXECUTION(context, "Promise::Resolver::New", Resolver); | 6202   PREPARE_FOR_EXECUTION(context, "Promise::Resolver::New", Resolver); | 
| 6157   i::Handle<i::Object> result; | 6203   i::Handle<i::Object> result; | 
| 6158   has_pending_exception = !i::Execution::Call( | 6204   has_pending_exception = !i::Execution::Call( | 
| (...skipping 1994 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 8153   Isolate* isolate = reinterpret_cast<Isolate*>(info.GetIsolate()); | 8199   Isolate* isolate = reinterpret_cast<Isolate*>(info.GetIsolate()); | 
| 8154   Address callback_address = | 8200   Address callback_address = | 
| 8155       reinterpret_cast<Address>(reinterpret_cast<intptr_t>(callback)); | 8201       reinterpret_cast<Address>(reinterpret_cast<intptr_t>(callback)); | 
| 8156   VMState<EXTERNAL> state(isolate); | 8202   VMState<EXTERNAL> state(isolate); | 
| 8157   ExternalCallbackScope call_scope(isolate, callback_address); | 8203   ExternalCallbackScope call_scope(isolate, callback_address); | 
| 8158   callback(info); | 8204   callback(info); | 
| 8159 } | 8205 } | 
| 8160 | 8206 | 
| 8161 | 8207 | 
| 8162 } }  // namespace v8::internal | 8208 } }  // namespace v8::internal | 
| OLD | NEW | 
|---|