Index: src/api.cc |
diff --git a/src/api.cc b/src/api.cc |
index 560dc34b3004860c59c24f2c60e10c0bef7ce342..84348c9c8b0474a119ca4b0789a17c7755079239 100644 |
--- a/src/api.cc |
+++ b/src/api.cc |
@@ -6259,6 +6259,70 @@ size_t v8::Map::Size() const { |
} |
+void Map::Clear() { |
+ auto self = Utils::OpenHandle(this); |
+ i::Isolate* isolate = self->GetIsolate(); |
+ LOG_API(isolate, "Map::Clear"); |
+ ENTER_V8(isolate); |
+ i::Runtime::JSMapClear(isolate, self); |
+} |
+ |
+ |
+MaybeLocal<Value> Map::Get(Local<Context> context, Local<Value> key) { |
+ PREPARE_FOR_EXECUTION(context, "Map::Get", Value); |
+ auto self = Utils::OpenHandle(this); |
+ Local<Value> result; |
+ i::Handle<i::Object> argv[] = {Utils::OpenHandle(*key)}; |
+ has_pending_exception = |
+ !ToLocal<Value>(i::Execution::Call(isolate, isolate->map_get(), self, |
+ arraysize(argv), argv, false), |
+ &result); |
+ RETURN_ON_FAILED_EXECUTION(Value); |
+ RETURN_ESCAPED(result); |
+} |
+ |
+ |
+MaybeLocal<Map> Map::Set(Local<Context> context, Local<Value> key, |
+ Local<Value> value) { |
+ PREPARE_FOR_EXECUTION(context, "Map::Set", Map); |
+ auto self = Utils::OpenHandle(this); |
+ i::Handle<i::Object> result; |
+ i::Handle<i::Object> argv[] = {Utils::OpenHandle(*key), |
+ Utils::OpenHandle(*value)}; |
+ has_pending_exception = |
+ !i::Execution::Call(isolate, isolate->map_set(), self, arraysize(argv), |
+ argv, false).ToHandle(&result); |
+ RETURN_ON_FAILED_EXECUTION(Map); |
+ RETURN_ESCAPED(Local<Map>::Cast(Utils::ToLocal(result))); |
+} |
+ |
+ |
+Maybe<bool> Map::Has(Local<Context> context, Local<Value> key) { |
+ PREPARE_FOR_EXECUTION_PRIMITIVE(context, "Map::Has", bool); |
+ auto self = Utils::OpenHandle(this); |
+ i::Handle<i::Object> result; |
+ i::Handle<i::Object> argv[] = {Utils::OpenHandle(*key)}; |
+ has_pending_exception = |
+ !i::Execution::Call(isolate, isolate->map_has(), self, arraysize(argv), |
+ argv, false).ToHandle(&result); |
+ RETURN_ON_FAILED_EXECUTION_PRIMITIVE(bool); |
+ return Just(result->IsTrue()); |
+} |
+ |
+ |
+Maybe<bool> Map::Delete(Local<Context> context, Local<Value> key) { |
+ PREPARE_FOR_EXECUTION_PRIMITIVE(context, "Map::Delete", bool); |
+ auto self = Utils::OpenHandle(this); |
+ i::Handle<i::Object> result; |
+ i::Handle<i::Object> argv[] = {Utils::OpenHandle(*key)}; |
+ has_pending_exception = |
+ !i::Execution::Call(isolate, isolate->map_delete(), self, arraysize(argv), |
+ argv, false).ToHandle(&result); |
+ RETURN_ON_FAILED_EXECUTION_PRIMITIVE(bool); |
+ return Just(result->IsTrue()); |
+} |
+ |
+ |
Local<Array> Map::AsArray() const { |
i::Handle<i::JSMap> obj = Utils::OpenHandle(this); |
i::Isolate* isolate = obj->GetIsolate(); |
@@ -6311,6 +6375,54 @@ size_t v8::Set::Size() const { |
} |
+void Set::Clear() { |
+ auto self = Utils::OpenHandle(this); |
+ i::Isolate* isolate = self->GetIsolate(); |
+ LOG_API(isolate, "Set::Clear"); |
+ ENTER_V8(isolate); |
+ i::Runtime::JSSetClear(isolate, self); |
+} |
+ |
+ |
+MaybeLocal<Set> Set::Add(Local<Context> context, Local<Value> key) { |
+ PREPARE_FOR_EXECUTION(context, "Set::Add", Set); |
+ auto self = Utils::OpenHandle(this); |
+ i::Handle<i::Object> result; |
+ i::Handle<i::Object> argv[] = {Utils::OpenHandle(*key)}; |
+ has_pending_exception = |
+ !i::Execution::Call(isolate, isolate->set_add(), self, arraysize(argv), |
+ argv, false).ToHandle(&result); |
+ RETURN_ON_FAILED_EXECUTION(Set); |
+ RETURN_ESCAPED(Local<Set>::Cast(Utils::ToLocal(result))); |
+} |
+ |
+ |
+Maybe<bool> Set::Has(Local<Context> context, Local<Value> key) { |
+ PREPARE_FOR_EXECUTION_PRIMITIVE(context, "Set::Has", bool); |
+ auto self = Utils::OpenHandle(this); |
+ i::Handle<i::Object> result; |
+ i::Handle<i::Object> argv[] = {Utils::OpenHandle(*key)}; |
+ has_pending_exception = |
+ !i::Execution::Call(isolate, isolate->set_has(), self, arraysize(argv), |
+ argv, false).ToHandle(&result); |
+ RETURN_ON_FAILED_EXECUTION_PRIMITIVE(bool); |
+ return Just(result->IsTrue()); |
+} |
+ |
+ |
+Maybe<bool> Set::Delete(Local<Context> context, Local<Value> key) { |
+ PREPARE_FOR_EXECUTION_PRIMITIVE(context, "Set::Delete", bool); |
+ auto self = Utils::OpenHandle(this); |
+ i::Handle<i::Object> result; |
+ i::Handle<i::Object> argv[] = {Utils::OpenHandle(*key)}; |
+ has_pending_exception = |
+ !i::Execution::Call(isolate, isolate->set_delete(), self, arraysize(argv), |
+ argv, false).ToHandle(&result); |
+ RETURN_ON_FAILED_EXECUTION_PRIMITIVE(bool); |
+ return Just(result->IsTrue()); |
+} |
+ |
+ |
Local<Array> Set::AsArray() const { |
i::Handle<i::JSSet> obj = Utils::OpenHandle(this); |
i::Isolate* isolate = obj->GetIsolate(); |