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 6135 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6146 i::Handle<i::JSMap> obj = Utils::OpenHandle(this); | 6146 i::Handle<i::JSMap> obj = Utils::OpenHandle(this); |
6147 return i::OrderedHashMap::cast(obj->table())->NumberOfElements(); | 6147 return i::OrderedHashMap::cast(obj->table())->NumberOfElements(); |
6148 } | 6148 } |
6149 | 6149 |
6150 | 6150 |
6151 void Map::Clear() { | 6151 void Map::Clear() { |
6152 auto self = Utils::OpenHandle(this); | 6152 auto self = Utils::OpenHandle(this); |
6153 i::Isolate* isolate = self->GetIsolate(); | 6153 i::Isolate* isolate = self->GetIsolate(); |
6154 LOG_API(isolate, "Map::Clear"); | 6154 LOG_API(isolate, "Map::Clear"); |
6155 ENTER_V8(isolate); | 6155 ENTER_V8(isolate); |
6156 i::Runtime::JSMapClear(isolate, self); | 6156 i::JSMap::Clear(self); |
6157 } | 6157 } |
6158 | 6158 |
6159 | 6159 |
6160 MaybeLocal<Value> Map::Get(Local<Context> context, Local<Value> key) { | 6160 MaybeLocal<Value> Map::Get(Local<Context> context, Local<Value> key) { |
6161 PREPARE_FOR_EXECUTION(context, "Map::Get", Value); | 6161 PREPARE_FOR_EXECUTION(context, "Map::Get", Value); |
6162 auto self = Utils::OpenHandle(this); | 6162 auto self = Utils::OpenHandle(this); |
6163 Local<Value> result; | 6163 Local<Value> result; |
6164 i::Handle<i::Object> argv[] = {Utils::OpenHandle(*key)}; | 6164 i::Handle<i::Object> argv[] = {Utils::OpenHandle(*key)}; |
6165 has_pending_exception = | 6165 has_pending_exception = |
6166 !ToLocal<Value>(i::Execution::Call(isolate, isolate->map_get(), self, | 6166 !ToLocal<Value>(i::Execution::Call(isolate, isolate->map_get(), self, |
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6262 i::Handle<i::JSSet> obj = Utils::OpenHandle(this); | 6262 i::Handle<i::JSSet> obj = Utils::OpenHandle(this); |
6263 return i::OrderedHashSet::cast(obj->table())->NumberOfElements(); | 6263 return i::OrderedHashSet::cast(obj->table())->NumberOfElements(); |
6264 } | 6264 } |
6265 | 6265 |
6266 | 6266 |
6267 void Set::Clear() { | 6267 void Set::Clear() { |
6268 auto self = Utils::OpenHandle(this); | 6268 auto self = Utils::OpenHandle(this); |
6269 i::Isolate* isolate = self->GetIsolate(); | 6269 i::Isolate* isolate = self->GetIsolate(); |
6270 LOG_API(isolate, "Set::Clear"); | 6270 LOG_API(isolate, "Set::Clear"); |
6271 ENTER_V8(isolate); | 6271 ENTER_V8(isolate); |
6272 i::Runtime::JSSetClear(isolate, self); | 6272 i::JSSet::Clear(self); |
6273 } | 6273 } |
6274 | 6274 |
6275 | 6275 |
6276 MaybeLocal<Set> Set::Add(Local<Context> context, Local<Value> key) { | 6276 MaybeLocal<Set> Set::Add(Local<Context> context, Local<Value> key) { |
6277 PREPARE_FOR_EXECUTION(context, "Set::Add", Set); | 6277 PREPARE_FOR_EXECUTION(context, "Set::Add", Set); |
6278 auto self = Utils::OpenHandle(this); | 6278 auto self = Utils::OpenHandle(this); |
6279 i::Handle<i::Object> result; | 6279 i::Handle<i::Object> result; |
6280 i::Handle<i::Object> argv[] = {Utils::OpenHandle(*key)}; | 6280 i::Handle<i::Object> argv[] = {Utils::OpenHandle(*key)}; |
6281 has_pending_exception = | 6281 has_pending_exception = |
6282 !i::Execution::Call(isolate, isolate->set_add(), self, arraysize(argv), | 6282 !i::Execution::Call(isolate, isolate->set_add(), self, arraysize(argv), |
(...skipping 245 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6528 void v8::ArrayBuffer::Neuter() { | 6528 void v8::ArrayBuffer::Neuter() { |
6529 i::Handle<i::JSArrayBuffer> obj = Utils::OpenHandle(this); | 6529 i::Handle<i::JSArrayBuffer> obj = Utils::OpenHandle(this); |
6530 i::Isolate* isolate = obj->GetIsolate(); | 6530 i::Isolate* isolate = obj->GetIsolate(); |
6531 Utils::ApiCheck(obj->is_external(), | 6531 Utils::ApiCheck(obj->is_external(), |
6532 "v8::ArrayBuffer::Neuter", | 6532 "v8::ArrayBuffer::Neuter", |
6533 "Only externalized ArrayBuffers can be neutered"); | 6533 "Only externalized ArrayBuffers can be neutered"); |
6534 Utils::ApiCheck(obj->is_neuterable(), "v8::ArrayBuffer::Neuter", | 6534 Utils::ApiCheck(obj->is_neuterable(), "v8::ArrayBuffer::Neuter", |
6535 "Only neuterable ArrayBuffers can be neutered"); | 6535 "Only neuterable ArrayBuffers can be neutered"); |
6536 LOG_API(obj->GetIsolate(), "v8::ArrayBuffer::Neuter()"); | 6536 LOG_API(obj->GetIsolate(), "v8::ArrayBuffer::Neuter()"); |
6537 ENTER_V8(isolate); | 6537 ENTER_V8(isolate); |
6538 i::Runtime::NeuterArrayBuffer(obj); | 6538 obj->Neuter(); |
6539 } | 6539 } |
6540 | 6540 |
6541 | 6541 |
6542 size_t v8::ArrayBuffer::ByteLength() const { | 6542 size_t v8::ArrayBuffer::ByteLength() const { |
6543 i::Handle<i::JSArrayBuffer> obj = Utils::OpenHandle(this); | 6543 i::Handle<i::JSArrayBuffer> obj = Utils::OpenHandle(this); |
6544 return static_cast<size_t>(obj->byte_length()->Number()); | 6544 return static_cast<size_t>(obj->byte_length()->Number()); |
6545 } | 6545 } |
6546 | 6546 |
6547 | 6547 |
6548 Local<ArrayBuffer> v8::ArrayBuffer::New(Isolate* isolate, size_t byte_length) { | 6548 Local<ArrayBuffer> v8::ArrayBuffer::New(Isolate* isolate, size_t byte_length) { |
(...skipping 1859 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
8408 Address callback_address = | 8408 Address callback_address = |
8409 reinterpret_cast<Address>(reinterpret_cast<intptr_t>(callback)); | 8409 reinterpret_cast<Address>(reinterpret_cast<intptr_t>(callback)); |
8410 VMState<EXTERNAL> state(isolate); | 8410 VMState<EXTERNAL> state(isolate); |
8411 ExternalCallbackScope call_scope(isolate, callback_address); | 8411 ExternalCallbackScope call_scope(isolate, callback_address); |
8412 callback(info); | 8412 callback(info); |
8413 } | 8413 } |
8414 | 8414 |
8415 | 8415 |
8416 } // namespace internal | 8416 } // namespace internal |
8417 } // namespace v8 | 8417 } // namespace v8 |
OLD | NEW |