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(x) { } }) is ['foo', undefined]
PASS forIn5({get foo() { return 'called getter'}, set foo(x) { }}) is ['foo', 'called getter']
PASS successfullyParsed is true

TEST COMPLETE

