Index: test/mjsunit/object-literal.js |
=================================================================== |
--- test/mjsunit/object-literal.js (revision 5181) |
+++ test/mjsunit/object-literal.js (working copy) |
@@ -103,110 +103,3 @@ |
b = makeRegexpInObject(); |
assertTrue(a.a.b === b.a.b); |
assertFalse(a.a.c === b.a.c); |
- |
- |
-// Test keywords valid as property names in initializers and dot-access. |
-var keywords = [ |
- "break", |
- "case", |
- "catch", |
- "const", |
- "continue", |
- "debugger", |
- "default", |
- "delete", |
- "do", |
- "else", |
- "false", |
- "finally", |
- "for", |
- "function", |
- "if", |
- "in", |
- "instanceof", |
- "native", |
- "new", |
- "null", |
- "return", |
- "switch", |
- "this", |
- "throw", |
- "true", |
- "try", |
- "typeof", |
- "var", |
- "void", |
- "while", |
- "with", |
-]; |
- |
-function testKeywordProperty(keyword) { |
- try { |
- // Sanity check that what we get is a keyword. |
- eval("var " + keyword + " = 42;"); |
- assertUnreachable("Not a keyword: " + keyword); |
- } catch (e) { } |
- |
- // Simple property, read and write. |
- var x = eval("({" + keyword + ": 42})"); |
- assertEquals(42, x[keyword]); |
- assertEquals(42, eval("x." + keyword)); |
- eval("x." + keyword + " = 37"); |
- assertEquals(37, x[keyword]); |
- assertEquals(37, eval("x." + keyword)); |
- |
- // Getter/setter property, read and write. |
- var y = eval("({value : 42, get " + keyword + "(){return this.value}," + |
- " set " + keyword + "(v) { this.value = v; }})"); |
- assertEquals(42, y[keyword]); |
- assertEquals(42, eval("y." + keyword)); |
- eval("y." + keyword + " = 37"); |
- assertEquals(37, y[keyword]); |
- assertEquals(37, eval("y." + keyword)); |
- |
- // Quoted keyword works is read back by unquoted as well. |
- var z = eval("({\"" + keyword + "\": 42})"); |
- assertEquals(42, z[keyword]); |
- assertEquals(42, eval("z." + keyword)); |
- |
- // Function property, called. |
- var was_called; |
- function test_call() { this.was_called = true; was_called = true; } |
- var w = eval("({" + keyword + ": test_call, was_called: false})"); |
- eval("w." + keyword + "();"); |
- assertTrue(was_called); |
- assertTrue(w.was_called); |
- |
- // Function property, constructed. |
- function construct() { this.constructed = true; } |
- var v = eval("({" + keyword + ": construct})"); |
- var vo = eval("new v." + keyword + "()"); |
- assertTrue(vo instanceof construct); |
- assertTrue(vo.constructed); |
-} |
- |
-for (var i = 0; i < keywords.length; i++) { |
- testKeywordProperty(keywords[i]); |
-} |
- |
-// Test getter and setter properties with string/number literal names. |
- |
-var obj = {get 42() { return 42; }, |
- get 3.14() { return "PI"; }, |
- get "PI"() { return 3.14; }, |
- readback: 0, |
- set 37(v) { this.readback = v; }, |
- set 1.44(v) { this.readback = v; }, |
- set "Poo"(v) { this.readback = v; }} |
- |
-assertEquals(42, obj[42]); |
-assertEquals("PI", obj[3.14]); |
-assertEquals(3.14, obj["PI"]); |
-obj[37] = "t1"; |
-assertEquals("t1", obj.readback); |
-obj[1.44] = "t2"; |
-assertEquals("t2", obj.readback); |
-obj["Poo"] = "t3"; |
-assertEquals("t3", obj.readback); |
- |
- |