| description( |
| "This test checks whether various forms of assignment expression are allowed." |
| ); |
| |
| var x = 0; |
| var y = 0; |
| |
| shouldBe('x = 1; x', '1'); |
| |
| shouldBe('window.x = 2; x', '2'); |
| shouldBe('window["x"] = 3; x', '3'); |
| shouldBe('(x) = 4; x', "4"); |
| shouldBe('(window.x) = 5; x', '5'); |
| shouldBe('(window["x"]) = 6; x', '6'); |
| shouldBe('y, x = 7; x', '7'); |
| shouldBe('((x)) = 8; x', '8'); |
| shouldBe('((window.x)) = 9; x', '9'); |
| shouldBe('((window["x"])) = 10; x', '10'); |
| |
| shouldThrow('(y, x) = "FAIL";'); |
| shouldThrow('(true ? x : y) = "FAIL";'); |
| shouldThrow('x++ = "FAIL";'); |