| Index: src/runtime.cc
|
| diff --git a/src/runtime.cc b/src/runtime.cc
|
| index f9652769886c91333542e3a268f3728fed334310..383717e605fe63d2cbbecd1e0a6b366efe57d471 100644
|
| --- a/src/runtime.cc
|
| +++ b/src/runtime.cc
|
| @@ -635,6 +635,36 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_Fix) {
|
| }
|
|
|
|
|
| +RUNTIME_FUNCTION(MaybeObject*, Runtime_WeakMapCreate) {
|
| + HandleScope scope(isolate);
|
| + ASSERT(args.length() == 1);
|
| + CONVERT_ARG_CHECKED(JSWeakMap, weakmap, 0);
|
| + Handle<ObjectHashTable> table = isolate->factory()->NewObjectHashTable(0);
|
| + weakmap->set_table(*table);
|
| + return *weakmap;
|
| +}
|
| +
|
| +
|
| +RUNTIME_FUNCTION(MaybeObject*, Runtime_WeakMapGet) {
|
| + ASSERT(args.length() == 2);
|
| + CONVERT_ARG_CHECKED(JSWeakMap, weakmap, 0);
|
| + CONVERT_ARG_CHECKED(JSObject, key, 1);
|
| + Handle<ObjectHashTable> table(weakmap->table());
|
| + return table->Lookup(*key);
|
| +}
|
| +
|
| +
|
| +RUNTIME_FUNCTION(MaybeObject*, Runtime_WeakMapSet) {
|
| + ASSERT(args.length() == 3);
|
| + CONVERT_ARG_CHECKED(JSWeakMap, weakmap, 0);
|
| + CONVERT_ARG_CHECKED(JSObject, key, 1);
|
| + Handle<Object> value(args[2]);
|
| + Handle<ObjectHashTable> table(weakmap->table());
|
| + weakmap->set_table(*PutIntoObjectHashTable(table, key, value));
|
| + return *value;
|
| +}
|
| +
|
| +
|
| RUNTIME_FUNCTION(MaybeObject*, Runtime_ClassOf) {
|
| NoHandleAllocation ha;
|
| ASSERT(args.length() == 1);
|
|
|