This tests that for/in statements behave correctly when cached.

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


PASS forIn1() is ['x', 'y']
PASS forIn2() is ['x']
PASS forIn3({ __proto__: { y1: 2 } }) is ['x', 'y1']
PASS forIn3({ y2 : 2, __proto__: null }) is ['x', 'y2']
PASS forIn3({ __proto__: { __proto__: { y3 : 2 } } }) is ['x', 'y3']
PASS forIn4(objectWithArrayAsProto) is []
PASS forIn4(objectWithArrayAsProto) is ['0']
PASS forIn5({get foo() { return 'called getter'} }) is ['foo', 'called getter']
PASS forIn5({set foo() { } }) is ['foo', undefined]
PASS forIn5({get foo() { return 'called getter'}, set foo() { }}) is ['foo', 'called getter']
PASS successfullyParsed is true

TEST COMPLETE

