Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(459)

Unified Diff: test/mjsunit/harmony/symbols.js

Issue 203243004: Implement ES6 symbol registry and predefined symbols (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Test parameter types Created 6 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« src/symbol.js ('K') | « test/mjsunit/harmony/private.js ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: test/mjsunit/harmony/symbols.js
diff --git a/test/mjsunit/harmony/symbols.js b/test/mjsunit/harmony/symbols.js
index 26adb74660f3d7a05a8025db47a72eb072f47446..c617a9e993030e33fd9cf1a539dcad6b26cefe74 100644
--- a/test/mjsunit/harmony/symbols.js
+++ b/test/mjsunit/harmony/symbols.js
@@ -410,15 +410,39 @@ function TestGetOwnPropertySymbolsWithProto() {
TestGetOwnPropertySymbolsWithProto()
-function TestGetOwnPropertySymbolsWithPrivateSymbols() {
- var privateSymbol = %CreatePrivateSymbol("private")
- var publicSymbol = Symbol()
- var publicSymbol2 = Symbol()
- var obj = {}
- obj[publicSymbol] = 1
- obj[privateSymbol] = 2
- obj[publicSymbol2] = 3
- var syms = Object.getOwnPropertySymbols(obj)
- assertEquals(syms, [publicSymbol, publicSymbol2])
+function TestRegistry() {
+ assertFalse(Symbol.for("@@create") === Symbol.create)
sof 2014/03/19 09:06:47 Worth adding an initial test for keyFor() over wel
Michael Starzinger 2014/03/19 10:15:25 +1
rossberg 2014/03/20 10:40:13 Done. (But note that it just returns undefined.)
+ assertFalse(Symbol.for("@@iterator") === Symbol.iterator)
+
+ var symbol1 = Symbol.for("x1")
+ var symbol2 = Symbol.for("x2")
+ assertFalse(symbol1 === symbol2)
+
+ assertSame(symbol1, Symbol.for("x1"))
+ assertSame(symbol2, Symbol.for("x2"))
+ assertSame("x1", Symbol.keyFor(symbol1))
+ assertSame("x2", Symbol.keyFor(symbol2))
+
+ assertSame(Symbol.for("1"), Symbol.for(1))
+ assertThrows(function() { Symbol.keyFor("bla") }, TypeError)
+
+ var realm = Realm.create()
+ assertFalse(Symbol === Realm.eval(realm, "Symbol"))
+ assertFalse(Symbol.for === Realm.eval(realm, "Symbol.for"))
+ assertFalse(Symbol.keyFor === Realm.eval(realm, "Symbol.keyFor"))
+ assertSame(Symbol.create, Realm.eval(realm, "Symbol.create"))
+ assertSame(Symbol.iterator, Realm.eval(realm, "Symbol.iterator"))
+
+ assertSame(symbol1, Realm.eval(realm, "Symbol.for")("x1"))
+ assertSame(symbol1, Realm.eval(realm, "Symbol.for('x1')"))
+ assertSame("x1", Realm.eval(realm, "Symbol.keyFor")(symbol1))
+ Realm.shared = symbol1
+ assertSame("x1", Realm.eval(realm, "Symbol.keyFor(Realm.shared)"))
+
+ var symbol3 = Realm.eval(realm, "Symbol.for('x3')")
+ assertFalse(symbol1 === symbol3)
+ assertFalse(symbol2 === symbol3)
+ assertSame(symbol3, Symbol.for("x3"))
+ assertSame("x3", Symbol.keyFor(symbol3))
}
-TestGetOwnPropertySymbolsWithPrivateSymbols()
+TestRegistry()
« src/symbol.js ('K') | « test/mjsunit/harmony/private.js ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698