Revision: 22454
Author: [email protected]
Date: Thu Jul 17 16:43:52 2014 UTC
Log: Revert "Expose the content of Maps and WeakMaps through
MapMirror."
This reverts r22452.
[email protected]
Review URL: https://codereview.chromium.org/399963002
http://code.google.com/p/v8/source/detail?r=22454
Deleted:
/branches/bleeding_edge/test/mjsunit/harmony/mirror-collections.js
/branches/bleeding_edge/test/mjsunit/runtime-gen/getweakmapentries.js
Modified:
/branches/bleeding_edge/src/mirror-debugger.js
/branches/bleeding_edge/src/runtime.cc
/branches/bleeding_edge/src/runtime.h
/branches/bleeding_edge/tools/generate-runtime-tests.py
=======================================
--- /branches/bleeding_edge/test/mjsunit/harmony/mirror-collections.js Thu
Jul 17 15:07:59 2014 UTC
+++ /dev/null
@@ -1,95 +0,0 @@
-// Copyright 2014 the V8 project authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// Flags: --expose-debug-as debug --expose-gc --harmony-collections
-
-function testMapMirror(mirror) {
- // Create JSON representation.
- var serializer = debug.MakeMirrorSerializer();
- var json = JSON.stringify(serializer.serializeValue(mirror));
-
- // Check the mirror hierachy.
- assertTrue(mirror instanceof debug.Mirror);
- assertTrue(mirror instanceof debug.ValueMirror);
- assertTrue(mirror instanceof debug.ObjectMirror);
- assertTrue(mirror instanceof debug.MapMirror);
-
- assertTrue(mirror.isMap());
-
- // Parse JSON representation and check.
- var fromJSON = eval('(' + json + ')');
- assertEquals('map', fromJSON.type);
-}
-
-var o1 = new Object();
-var o2 = new Object();
-var o3 = new Object();
-
-// Test the mirror object for Maps
-var map = new Map();
-map.set(o1, 11);
-map.set(o2, 22);
-map.delete(o1);
-var mapMirror = debug.MakeMirror(map);
-testMapMirror(mapMirror);
-var entries = mapMirror.entries();
-assertEquals(1, entries.length);
-assertSame(o2, entries[0].key);
-assertEquals(22, entries[0].value);
-map.set(o1, 33);
-map.set(o3, o2);
-map.delete(o2);
-map.set(undefined, 44);
-entries = mapMirror.entries();
-assertEquals(3, entries.length);
-assertSame(o1, entries[0].key);
-assertEquals(33, entries[0].value);
-assertSame(o3, entries[1].key);
-assertSame(o2, entries[1].value);
-assertEquals(undefined, entries[2].key);
-assertEquals(44, entries[2].value);
-
-// Test the mirror object for WeakMaps
-var weakMap = new WeakMap();
-weakMap.set(o1, 11);
-weakMap.set(new Object(), 22);
-weakMap.set(o3, 33);
-var weakMapMirror = debug.MakeMirror(weakMap);
-testMapMirror(weakMapMirror);
-
-function testWeakMapEntries(entries, gcDone) {
- var found = 0;
- for (var i = 0; i < entries.length; i++) {
- if (Object.is(entries[i].key, o1)) {
- assertEquals(11, entries[i].value);
- found++;
- continue;
- }
- if (Object.is(entries[i].key, o3)) {
- assertEquals(33, entries[i].value);
- found++;
- continue;
- }
- if (!gcDone && entries[i].value == 22)
- found++;
- }
- return found;
-}
-
-function testWeakMapMirrorBeforeGC(mirror) {
- var entries = mirror.entries();
- assertEquals(3, entries.length);
- assertEquals(3, testWeakMapEntries(entries, false));
-}
-
-testWeakMapMirrorBeforeGC(weakMapMirror);
-gc();
-
-function testWeakMapMirrorAfterGC(mirror) {
- var entries = mirror.entries();
- assertEquals(2, entries.length);
- assertEquals(2, testWeakMapEntries(entries, true));
-}
-
-testWeakMapMirrorAfterGC(weakMapMirror);
=======================================
--- /branches/bleeding_edge/test/mjsunit/runtime-gen/getweakmapentries.js
Thu Jul 17 15:07:59 2014 UTC
+++ /dev/null
@@ -1,5 +0,0 @@
-// Copyright 2014 the V8 project authors. All rights reserved.
-// AUTO-GENERATED BY tools/generate-runtime-tests.py, DO NOT MODIFY
-// Flags: --allow-natives-syntax --harmony
-var _holder = new WeakMap();
-%GetWeakMapEntries(_holder);
=======================================
--- /branches/bleeding_edge/src/mirror-debugger.js Thu Jul 17 15:07:59 2014
UTC
+++ /branches/bleeding_edge/src/mirror-debugger.js Thu Jul 17 16:43:52 2014
UTC
@@ -81,8 +81,6 @@
mirror = new ErrorMirror(value);
} else if (IS_SCRIPT(value)) {
mirror = new ScriptMirror(value);
- } else if (IS_MAP(value) || IS_WEAKMAP(value)) {
- mirror = new MapMirror(value);
} else if (ObjectIsPromise(value)) {
mirror = new PromiseMirror(value);
} else {
@@ -157,7 +155,6 @@
var CONTEXT_TYPE = 'context';
var SCOPE_TYPE = 'scope';
var PROMISE_TYPE = 'promise';
-var MAP_TYPE = 'map';
// Maximum length when sending strings through the JSON protocol.
var kMaxProtocolStringLength = 80;
@@ -213,7 +210,6 @@
// - RegExpMirror
// - ErrorMirror
// - PromiseMirror
-// - MapMirror
// - PropertyMirror
// - InternalPropertyMirror
// - FrameMirror
@@ -424,15 +420,6 @@
};
-/**
- * Check whether the mirror reflects a map.
- * @returns {boolean} True if the mirror reflects a map
- */
-Mirror.prototype.isMap = function() {
- return this instanceof MapMirror;
-};
-
-
/**
* Allocate a handle id for this object.
*/
@@ -1266,44 +1253,6 @@
};
-function MapMirror(value) {
- %_CallFunction(this, value, MAP_TYPE, ObjectMirror);
-}
-inherits(MapMirror, ObjectMirror);
-
-
-/**
- * Returns an array of key/value pairs of a map.
- * This will keep keys alive for WeakMaps.
- *
- * @returns {Array.<Object>} Array of key/value pairs of a map.
- */
-MapMirror.prototype.entries = function() {
- var result = [];
-
- if (IS_WEAKMAP(this.value_)) {
- var entries = %GetWeakMapEntries(this.value_);
- for (var i = 0; i < entries.length; i += 2) {
- result.push({
- key: entries[i],
- value: entries[i + 1]
- });
- }
- return result;
- }
-
- var iter = %_CallFunction(this.value_, builtins.MapEntries);
- var next;
- while (!(next = iter.next()).done) {
- result.push({
- key: next.value[0],
- value: next.value[1]
- });
- }
- return result;
-};
-
-
/**
* Base mirror object for properties.
* @param {ObjectMirror} mirror The mirror object having this property
=======================================
--- /branches/bleeding_edge/src/runtime.cc Thu Jul 17 15:07:59 2014 UTC
+++ /branches/bleeding_edge/src/runtime.cc Thu Jul 17 16:43:52 2014 UTC
@@ -1704,29 +1704,6 @@
holder->set_kind(Smi::FromInt(kind));
return isolate->heap()->undefined_value();
}
-
-
-RUNTIME_FUNCTION(Runtime_GetWeakMapEntries) {
- HandleScope scope(isolate);
- ASSERT(args.length() == 1);
- CONVERT_ARG_HANDLE_CHECKED(JSWeakCollection, holder, 0);
- Handle<ObjectHashTable> table(ObjectHashTable::cast(holder->table()));
- Handle<FixedArray> entries =
- isolate->factory()->NewFixedArray(table->NumberOfElements() * 2);
- {
- DisallowHeapAllocation no_gc;
- int number_of_non_hole_elements = 0;
- for (int i = 0; i < table->Capacity(); i++) {
- Handle<Object> key(table->KeyAt(i), isolate);
- if (table->IsKey(*key)) {
- entries->set(number_of_non_hole_elements++, *key);
- entries->set(number_of_non_hole_elements++, table->Lookup(key));
- }
- }
- ASSERT_EQ(table->NumberOfElements() * 2, number_of_non_hole_elements);
- }
- return *isolate->factory()->NewJSArrayWithElements(entries);
-}
RUNTIME_FUNCTION(Runtime_MapIteratorNext) {
=======================================
--- /branches/bleeding_edge/src/runtime.h Thu Jul 17 15:07:59 2014 UTC
+++ /branches/bleeding_edge/src/runtime.h Thu Jul 17 16:43:52 2014 UTC
@@ -296,8 +296,6 @@
F(WeakCollectionDelete, 2, 1) \
F(WeakCollectionSet, 3, 1) \
\
- F(GetWeakMapEntries, 1, 1) \
- \
/* Harmony events */ \
F(EnqueueMicrotask, 1, 1) \
F(RunMicrotasks, 0, 1) \
=======================================
--- /branches/bleeding_edge/tools/generate-runtime-tests.py Thu Jul 17
15:07:59 2014 UTC
+++ /branches/bleeding_edge/tools/generate-runtime-tests.py Thu Jul 17
16:43:52 2014 UTC
@@ -47,11 +47,11 @@
# that the parser doesn't bit-rot. Change the values as needed when you
add,
# remove or change runtime functions, but make sure we don't lose our
ability
# to parse them!
-EXPECTED_FUNCTION_COUNT = 418
-EXPECTED_FUZZABLE_COUNT = 333
+EXPECTED_FUNCTION_COUNT = 417
+EXPECTED_FUZZABLE_COUNT = 332
EXPECTED_CCTEST_COUNT = 8
EXPECTED_UNKNOWN_COUNT = 4
-EXPECTED_BUILTINS_COUNT = 810
+EXPECTED_BUILTINS_COUNT = 809
# Don't call these at all.
--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
---
You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.