This page tests for assertion failures in edge cases of property lookup on primitive values.

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


PASS checkGet(1, Number) is true
PASS checkGet('hello', String) is true
PASS checkGet(true, Boolean) is true
PASS checkSet(1, Number) is true
PASS checkSet('hello', String) is true
PASS checkSet(true, Boolean) is true
PASS checkGetStrict(1, Number) is true
PASS checkGetStrict('hello', String) is true
PASS checkGetStrict(true, Boolean) is true
PASS checkSetStrict(1, Number) is true
PASS checkSetStrict('hello', String) is true
PASS checkSetStrict(true, Boolean) is true
PASS checkRead(1, Number) is true
PASS checkRead('hello', String) is true
PASS checkRead(true, Boolean) is true
PASS checkWrite(1, Number) is true
PASS checkWrite('hello', String) is true
PASS checkWrite(true, Boolean) is true
PASS checkReadStrict(1, Number) is true
PASS checkReadStrict('hello', String) is true
PASS checkReadStrict(true, Boolean) is true
PASS checkWriteStrict(1, Number) threw exception TypeError: Attempted to assign to readonly property..
PASS checkWriteStrict('hello', String) threw exception TypeError: Attempted to assign to readonly property..
PASS checkWriteStrict(true, Boolean) threw exception TypeError: Attempted to assign to readonly property..
PASS checkNumericGet(1, Number) is true
PASS checkNumericGet('hello', String) is true
PASS checkNumericGet(true, Boolean) is true
PASS checkNumericSet(1, Number) is true
PASS checkNumericSet('hello', String) is true
PASS checkNumericSet(true, Boolean) is true
PASS checkNumericGetStrict(1, Number) is true
PASS checkNumericGetStrict('hello', String) is true
PASS checkNumericGetStrict(true, Boolean) is true
PASS checkNumericSetStrict(1, Number) is true
PASS checkNumericSetStrict('hello', String) is true
PASS checkNumericSetStrict(true, Boolean) is true
PASS checkNumericRead(1, Number) is true
PASS checkNumericRead('hello', String) is true
PASS checkNumericRead(true, Boolean) is true
PASS checkNumericWrite(1, Number) is true
PASS checkNumericWrite('hello', String) is true
PASS checkNumericWrite(true, Boolean) is true
PASS checkNumericReadStrict(1, Number) is true
PASS checkNumericReadStrict('hello', String) is true
PASS checkNumericReadStrict(true, Boolean) is true
PASS checkNumericWriteStrict(1, Number) threw exception TypeError: Attempted to assign to readonly property..
PASS checkNumericWriteStrict('hello', String) threw exception TypeError: Attempted to assign to readonly property..
PASS checkNumericWriteStrict(true, Boolean) threw exception TypeError: Attempted to assign to readonly property..
PASS didNotCrash is true
PASS successfullyParsed is true

TEST COMPLETE

