This test checks whether various forms of preincrement expression are allowed.

On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".


PASS ++x is 1
PASS ++window.x is 2
PASS ++window["x"] is 3
PASS ++(x) is 4
PASS ++(window.x) is 5
PASS ++(window["x"]) is 6
PASS (y, ++x) is 7
PASS ++((x)) is 8
PASS ++((window.x)) is 9
PASS ++((window["x"])) is 10
PASS ++(y, x) threw exception SyntaxError: Prefix ++ operator applied to value that is not a reference..
PASS ++(true ? x : y) threw exception SyntaxError: Prefix ++ operator applied to value that is not a reference..
PASS ++++x threw exception SyntaxError: The prefix-increment operator requires a reference expression..
PASS successfullyParsed is true

TEST COMPLETE

