Bug 1377007 - Tests: Parsing ECMA2-level tests with binjs;r?jorendorff,arai draft
authorDavid Teller <dteller@mozilla.com>
Tue, 19 Sep 2017 20:50:21 +0200
changeset 678730 71a4c2071e4e004ab8a7d207fca43b85015a56be
parent 678729 a2a399275e57863a868868447e54b8915b89ba17
child 735417 b5fad7a34de71564c9d38b72d7326818275278fb
push id84019
push userdteller@mozilla.com
push dateWed, 11 Oct 2017 19:54:33 +0000
reviewersjorendorff, arai
bugs1377007
milestone58.0a1
Bug 1377007 - Tests: Parsing ECMA2-level tests with binjs;r?jorendorff,arai MozReview-Commit-ID: 2DysquT2BdD
js/src/jsapi-tests/binast/parser/tester/StrictEquality-001.binjs
js/src/jsapi-tests/binast/parser/tester/StrictEquality-001.js
js/src/jsapi-tests/binast/parser/tester/apply-001-n.binjs
js/src/jsapi-tests/binast/parser/tester/apply-001-n.js
js/src/jsapi-tests/binast/parser/tester/boolean-001.binjs
js/src/jsapi-tests/binast/parser/tester/boolean-001.js
js/src/jsapi-tests/binast/parser/tester/boolean-002.binjs
js/src/jsapi-tests/binast/parser/tester/boolean-002.js
js/src/jsapi-tests/binast/parser/tester/call-1.binjs
js/src/jsapi-tests/binast/parser/tester/call-1.js
js/src/jsapi-tests/binast/parser/tester/constructor-001.binjs
js/src/jsapi-tests/binast/parser/tester/constructor-001.js
js/src/jsapi-tests/binast/parser/tester/date-002.binjs
js/src/jsapi-tests/binast/parser/tester/date-002.js
js/src/jsapi-tests/binast/parser/tester/date-003.binjs
js/src/jsapi-tests/binast/parser/tester/date-003.js
js/src/jsapi-tests/binast/parser/tester/date-004.binjs
js/src/jsapi-tests/binast/parser/tester/date-004.js
js/src/jsapi-tests/binast/parser/tester/dowhile-001.binjs
js/src/jsapi-tests/binast/parser/tester/dowhile-001.js
js/src/jsapi-tests/binast/parser/tester/dowhile-002.binjs
js/src/jsapi-tests/binast/parser/tester/dowhile-002.js
js/src/jsapi-tests/binast/parser/tester/dowhile-003.binjs
js/src/jsapi-tests/binast/parser/tester/dowhile-003.js
js/src/jsapi-tests/binast/parser/tester/dowhile-004.binjs
js/src/jsapi-tests/binast/parser/tester/dowhile-004.js
js/src/jsapi-tests/binast/parser/tester/dowhile-005.binjs
js/src/jsapi-tests/binast/parser/tester/dowhile-005.js
js/src/jsapi-tests/binast/parser/tester/dowhile-006.binjs
js/src/jsapi-tests/binast/parser/tester/dowhile-006.js
js/src/jsapi-tests/binast/parser/tester/dowhile-007.binjs
js/src/jsapi-tests/binast/parser/tester/dowhile-007.js
js/src/jsapi-tests/binast/parser/tester/exception-001.binjs
js/src/jsapi-tests/binast/parser/tester/exception-001.js
js/src/jsapi-tests/binast/parser/tester/exception-002.binjs
js/src/jsapi-tests/binast/parser/tester/exception-002.js
js/src/jsapi-tests/binast/parser/tester/exception-003.binjs
js/src/jsapi-tests/binast/parser/tester/exception-003.js
js/src/jsapi-tests/binast/parser/tester/exception-004.binjs
js/src/jsapi-tests/binast/parser/tester/exception-004.js
js/src/jsapi-tests/binast/parser/tester/exception-005.binjs
js/src/jsapi-tests/binast/parser/tester/exception-005.js
js/src/jsapi-tests/binast/parser/tester/exception-006.binjs
js/src/jsapi-tests/binast/parser/tester/exception-006.js
js/src/jsapi-tests/binast/parser/tester/exception-007.binjs
js/src/jsapi-tests/binast/parser/tester/exception-007.js
js/src/jsapi-tests/binast/parser/tester/exception-008.binjs
js/src/jsapi-tests/binast/parser/tester/exception-008.js
js/src/jsapi-tests/binast/parser/tester/exception-009.binjs
js/src/jsapi-tests/binast/parser/tester/exception-009.js
js/src/jsapi-tests/binast/parser/tester/exception-010-n.binjs
js/src/jsapi-tests/binast/parser/tester/exception-010-n.js
js/src/jsapi-tests/binast/parser/tester/exception-011-n.binjs
js/src/jsapi-tests/binast/parser/tester/exception-011-n.js
js/src/jsapi-tests/binast/parser/tester/exec-002.binjs
js/src/jsapi-tests/binast/parser/tester/exec-002.js
js/src/jsapi-tests/binast/parser/tester/expression-001.binjs
js/src/jsapi-tests/binast/parser/tester/expression-001.js
js/src/jsapi-tests/binast/parser/tester/expression-002.binjs
js/src/jsapi-tests/binast/parser/tester/expression-002.js
js/src/jsapi-tests/binast/parser/tester/expression-003.binjs
js/src/jsapi-tests/binast/parser/tester/expression-003.js
js/src/jsapi-tests/binast/parser/tester/expression-004.binjs
js/src/jsapi-tests/binast/parser/tester/expression-004.js
js/src/jsapi-tests/binast/parser/tester/expression-005.binjs
js/src/jsapi-tests/binast/parser/tester/expression-005.js
js/src/jsapi-tests/binast/parser/tester/expression-006.binjs
js/src/jsapi-tests/binast/parser/tester/expression-006.js
js/src/jsapi-tests/binast/parser/tester/expression-007.binjs
js/src/jsapi-tests/binast/parser/tester/expression-007.js
js/src/jsapi-tests/binast/parser/tester/expression-008.binjs
js/src/jsapi-tests/binast/parser/tester/expression-008.js
js/src/jsapi-tests/binast/parser/tester/expression-009.binjs
js/src/jsapi-tests/binast/parser/tester/expression-009.js
js/src/jsapi-tests/binast/parser/tester/expression-010.binjs
js/src/jsapi-tests/binast/parser/tester/expression-010.js
js/src/jsapi-tests/binast/parser/tester/expression-011.binjs
js/src/jsapi-tests/binast/parser/tester/expression-011.js
js/src/jsapi-tests/binast/parser/tester/expression-012.binjs
js/src/jsapi-tests/binast/parser/tester/expression-012.js
js/src/jsapi-tests/binast/parser/tester/expression-013.binjs
js/src/jsapi-tests/binast/parser/tester/expression-013.js
js/src/jsapi-tests/binast/parser/tester/expression-014.binjs
js/src/jsapi-tests/binast/parser/tester/expression-014.js
js/src/jsapi-tests/binast/parser/tester/expression-015.binjs
js/src/jsapi-tests/binast/parser/tester/expression-015.js
js/src/jsapi-tests/binast/parser/tester/expression-016.binjs
js/src/jsapi-tests/binast/parser/tester/expression-016.js
js/src/jsapi-tests/binast/parser/tester/expression-017.binjs
js/src/jsapi-tests/binast/parser/tester/expression-017.js
js/src/jsapi-tests/binast/parser/tester/expression-019.binjs
js/src/jsapi-tests/binast/parser/tester/expression-019.js
js/src/jsapi-tests/binast/parser/tester/forin-001.binjs
js/src/jsapi-tests/binast/parser/tester/forin-001.js
js/src/jsapi-tests/binast/parser/tester/forin-002.binjs
js/src/jsapi-tests/binast/parser/tester/forin-002.js
js/src/jsapi-tests/binast/parser/tester/function-001.binjs
js/src/jsapi-tests/binast/parser/tester/function-001.js
js/src/jsapi-tests/binast/parser/tester/global-001.binjs
js/src/jsapi-tests/binast/parser/tester/global-001.js
js/src/jsapi-tests/binast/parser/tester/global-002.binjs
js/src/jsapi-tests/binast/parser/tester/global-002.js
js/src/jsapi-tests/binast/parser/tester/hex-001.binjs
js/src/jsapi-tests/binast/parser/tester/hex-001.js
js/src/jsapi-tests/binast/parser/tester/if-001.binjs
js/src/jsapi-tests/binast/parser/tester/if-001.js
js/src/jsapi-tests/binast/parser/tester/instanceof-001.binjs
js/src/jsapi-tests/binast/parser/tester/instanceof-001.js
js/src/jsapi-tests/binast/parser/tester/instanceof-002.binjs
js/src/jsapi-tests/binast/parser/tester/instanceof-002.js
js/src/jsapi-tests/binast/parser/tester/instanceof-003-n.binjs
js/src/jsapi-tests/binast/parser/tester/instanceof-003-n.js
js/src/jsapi-tests/binast/parser/tester/instanceof-003.binjs
js/src/jsapi-tests/binast/parser/tester/instanceof-003.js
js/src/jsapi-tests/binast/parser/tester/instanceof-004-n.binjs
js/src/jsapi-tests/binast/parser/tester/instanceof-004-n.js
js/src/jsapi-tests/binast/parser/tester/instanceof-005-n.binjs
js/src/jsapi-tests/binast/parser/tester/instanceof-005-n.js
js/src/jsapi-tests/binast/parser/tester/instanceof-006.binjs
js/src/jsapi-tests/binast/parser/tester/instanceof-006.js
js/src/jsapi-tests/binast/parser/tester/keywords-001.binjs
js/src/jsapi-tests/binast/parser/tester/keywords-001.js
js/src/jsapi-tests/binast/parser/tester/label-001.binjs
js/src/jsapi-tests/binast/parser/tester/label-001.js
js/src/jsapi-tests/binast/parser/tester/label-002.binjs
js/src/jsapi-tests/binast/parser/tester/label-002.js
js/src/jsapi-tests/binast/parser/tester/label-003.binjs
js/src/jsapi-tests/binast/parser/tester/label-003.js
js/src/jsapi-tests/binast/parser/tester/lexical-001.binjs
js/src/jsapi-tests/binast/parser/tester/lexical-001.js
js/src/jsapi-tests/binast/parser/tester/lexical-002.binjs
js/src/jsapi-tests/binast/parser/tester/lexical-002.js
js/src/jsapi-tests/binast/parser/tester/lexical-003.binjs
js/src/jsapi-tests/binast/parser/tester/lexical-003.js
js/src/jsapi-tests/binast/parser/tester/lexical-004.binjs
js/src/jsapi-tests/binast/parser/tester/lexical-004.js
js/src/jsapi-tests/binast/parser/tester/lexical-005.binjs
js/src/jsapi-tests/binast/parser/tester/lexical-005.js
js/src/jsapi-tests/binast/parser/tester/lexical-006.binjs
js/src/jsapi-tests/binast/parser/tester/lexical-006.js
js/src/jsapi-tests/binast/parser/tester/lexical-007.binjs
js/src/jsapi-tests/binast/parser/tester/lexical-007.js
js/src/jsapi-tests/binast/parser/tester/lexical-008.binjs
js/src/jsapi-tests/binast/parser/tester/lexical-008.js
js/src/jsapi-tests/binast/parser/tester/lexical-009.binjs
js/src/jsapi-tests/binast/parser/tester/lexical-009.js
js/src/jsapi-tests/binast/parser/tester/lexical-011.binjs
js/src/jsapi-tests/binast/parser/tester/lexical-011.js
js/src/jsapi-tests/binast/parser/tester/lexical-012.binjs
js/src/jsapi-tests/binast/parser/tester/lexical-012.js
js/src/jsapi-tests/binast/parser/tester/lexical-013.binjs
js/src/jsapi-tests/binast/parser/tester/lexical-013.js
js/src/jsapi-tests/binast/parser/tester/lexical-014.binjs
js/src/jsapi-tests/binast/parser/tester/lexical-014.js
js/src/jsapi-tests/binast/parser/tester/lexical-015.binjs
js/src/jsapi-tests/binast/parser/tester/lexical-015.js
js/src/jsapi-tests/binast/parser/tester/lexical-016.binjs
js/src/jsapi-tests/binast/parser/tester/lexical-016.js
js/src/jsapi-tests/binast/parser/tester/lexical-017.binjs
js/src/jsapi-tests/binast/parser/tester/lexical-017.js
js/src/jsapi-tests/binast/parser/tester/lexical-018.binjs
js/src/jsapi-tests/binast/parser/tester/lexical-018.js
js/src/jsapi-tests/binast/parser/tester/lexical-019.binjs
js/src/jsapi-tests/binast/parser/tester/lexical-019.js
js/src/jsapi-tests/binast/parser/tester/lexical-020.binjs
js/src/jsapi-tests/binast/parser/tester/lexical-020.js
js/src/jsapi-tests/binast/parser/tester/lexical-021.binjs
js/src/jsapi-tests/binast/parser/tester/lexical-021.js
js/src/jsapi-tests/binast/parser/tester/lexical-023.binjs
js/src/jsapi-tests/binast/parser/tester/lexical-023.js
js/src/jsapi-tests/binast/parser/tester/lexical-024.binjs
js/src/jsapi-tests/binast/parser/tester/lexical-024.js
js/src/jsapi-tests/binast/parser/tester/lexical-025.binjs
js/src/jsapi-tests/binast/parser/tester/lexical-025.js
js/src/jsapi-tests/binast/parser/tester/lexical-026.binjs
js/src/jsapi-tests/binast/parser/tester/lexical-026.js
js/src/jsapi-tests/binast/parser/tester/lexical-027.binjs
js/src/jsapi-tests/binast/parser/tester/lexical-027.js
js/src/jsapi-tests/binast/parser/tester/lexical-028.binjs
js/src/jsapi-tests/binast/parser/tester/lexical-028.js
js/src/jsapi-tests/binast/parser/tester/lexical-029.binjs
js/src/jsapi-tests/binast/parser/tester/lexical-029.js
js/src/jsapi-tests/binast/parser/tester/lexical-030.binjs
js/src/jsapi-tests/binast/parser/tester/lexical-030.js
js/src/jsapi-tests/binast/parser/tester/lexical-031.binjs
js/src/jsapi-tests/binast/parser/tester/lexical-031.js
js/src/jsapi-tests/binast/parser/tester/lexical-032.binjs
js/src/jsapi-tests/binast/parser/tester/lexical-032.js
js/src/jsapi-tests/binast/parser/tester/lexical-033.binjs
js/src/jsapi-tests/binast/parser/tester/lexical-033.js
js/src/jsapi-tests/binast/parser/tester/lexical-034.binjs
js/src/jsapi-tests/binast/parser/tester/lexical-034.js
js/src/jsapi-tests/binast/parser/tester/lexical-035.binjs
js/src/jsapi-tests/binast/parser/tester/lexical-035.js
js/src/jsapi-tests/binast/parser/tester/lexical-036.binjs
js/src/jsapi-tests/binast/parser/tester/lexical-036.js
js/src/jsapi-tests/binast/parser/tester/lexical-037.binjs
js/src/jsapi-tests/binast/parser/tester/lexical-037.js
js/src/jsapi-tests/binast/parser/tester/lexical-038.binjs
js/src/jsapi-tests/binast/parser/tester/lexical-038.js
js/src/jsapi-tests/binast/parser/tester/lexical-039.binjs
js/src/jsapi-tests/binast/parser/tester/lexical-039.js
js/src/jsapi-tests/binast/parser/tester/lexical-040.binjs
js/src/jsapi-tests/binast/parser/tester/lexical-040.js
js/src/jsapi-tests/binast/parser/tester/lexical-041.binjs
js/src/jsapi-tests/binast/parser/tester/lexical-041.js
js/src/jsapi-tests/binast/parser/tester/lexical-042.binjs
js/src/jsapi-tests/binast/parser/tester/lexical-042.js
js/src/jsapi-tests/binast/parser/tester/lexical-047.binjs
js/src/jsapi-tests/binast/parser/tester/lexical-047.js
js/src/jsapi-tests/binast/parser/tester/lexical-048.binjs
js/src/jsapi-tests/binast/parser/tester/lexical-048.js
js/src/jsapi-tests/binast/parser/tester/lexical-049.binjs
js/src/jsapi-tests/binast/parser/tester/lexical-049.js
js/src/jsapi-tests/binast/parser/tester/lexical-050.binjs
js/src/jsapi-tests/binast/parser/tester/lexical-050.js
js/src/jsapi-tests/binast/parser/tester/lexical-051.binjs
js/src/jsapi-tests/binast/parser/tester/lexical-051.js
js/src/jsapi-tests/binast/parser/tester/lexical-052.binjs
js/src/jsapi-tests/binast/parser/tester/lexical-052.js
js/src/jsapi-tests/binast/parser/tester/lexical-053.binjs
js/src/jsapi-tests/binast/parser/tester/lexical-053.js
js/src/jsapi-tests/binast/parser/tester/lexical-054.binjs
js/src/jsapi-tests/binast/parser/tester/lexical-054.js
js/src/jsapi-tests/binast/parser/tester/match-001.binjs
js/src/jsapi-tests/binast/parser/tester/match-001.js
js/src/jsapi-tests/binast/parser/tester/match-002.binjs
js/src/jsapi-tests/binast/parser/tester/match-002.js
js/src/jsapi-tests/binast/parser/tester/match-003.binjs
js/src/jsapi-tests/binast/parser/tester/match-003.js
js/src/jsapi-tests/binast/parser/tester/match-004.binjs
js/src/jsapi-tests/binast/parser/tester/match-004.js
js/src/jsapi-tests/binast/parser/tester/multiline-001.binjs
js/src/jsapi-tests/binast/parser/tester/multiline-001.js
js/src/jsapi-tests/binast/parser/tester/number-001.binjs
js/src/jsapi-tests/binast/parser/tester/number-001.js
js/src/jsapi-tests/binast/parser/tester/number-002.binjs
js/src/jsapi-tests/binast/parser/tester/number-002.js
js/src/jsapi-tests/binast/parser/tester/number-003.binjs
js/src/jsapi-tests/binast/parser/tester/number-003.js
js/src/jsapi-tests/binast/parser/tester/octal-001.binjs
js/src/jsapi-tests/binast/parser/tester/octal-001.js
js/src/jsapi-tests/binast/parser/tester/octal-002.binjs
js/src/jsapi-tests/binast/parser/tester/octal-002.js
js/src/jsapi-tests/binast/parser/tester/octal-003.binjs
js/src/jsapi-tests/binast/parser/tester/octal-003.js
js/src/jsapi-tests/binast/parser/tester/properties-001.binjs
js/src/jsapi-tests/binast/parser/tester/properties-001.js
js/src/jsapi-tests/binast/parser/tester/properties-002.binjs
js/src/jsapi-tests/binast/parser/tester/properties-002.js
js/src/jsapi-tests/binast/parser/tester/regexp-enumerate-001.binjs
js/src/jsapi-tests/binast/parser/tester/regexp-enumerate-001.js
js/src/jsapi-tests/binast/parser/tester/regexp-literals-001.binjs
js/src/jsapi-tests/binast/parser/tester/regexp-literals-001.js
js/src/jsapi-tests/binast/parser/tester/regexp-literals-002.binjs
js/src/jsapi-tests/binast/parser/tester/regexp-literals-002.js
js/src/jsapi-tests/binast/parser/tester/regress-001.binjs
js/src/jsapi-tests/binast/parser/tester/regress-001.js
js/src/jsapi-tests/binast/parser/tester/regress-7635.binjs
js/src/jsapi-tests/binast/parser/tester/regress-7635.js
js/src/jsapi-tests/binast/parser/tester/split-001.binjs
js/src/jsapi-tests/binast/parser/tester/split-001.js
js/src/jsapi-tests/binast/parser/tester/split-002.binjs
js/src/jsapi-tests/binast/parser/tester/split-002.js
js/src/jsapi-tests/binast/parser/tester/split-003.binjs
js/src/jsapi-tests/binast/parser/tester/split-003.js
js/src/jsapi-tests/binast/parser/tester/statement-001.binjs
js/src/jsapi-tests/binast/parser/tester/statement-001.js
js/src/jsapi-tests/binast/parser/tester/statement-002.binjs
js/src/jsapi-tests/binast/parser/tester/statement-002.js
js/src/jsapi-tests/binast/parser/tester/statement-003.binjs
js/src/jsapi-tests/binast/parser/tester/statement-003.js
js/src/jsapi-tests/binast/parser/tester/statement-004.binjs
js/src/jsapi-tests/binast/parser/tester/statement-004.js
js/src/jsapi-tests/binast/parser/tester/statement-005.binjs
js/src/jsapi-tests/binast/parser/tester/statement-005.js
js/src/jsapi-tests/binast/parser/tester/statement-006.binjs
js/src/jsapi-tests/binast/parser/tester/statement-006.js
js/src/jsapi-tests/binast/parser/tester/statement-007.binjs
js/src/jsapi-tests/binast/parser/tester/statement-007.js
js/src/jsapi-tests/binast/parser/tester/statement-008.binjs
js/src/jsapi-tests/binast/parser/tester/statement-008.js
js/src/jsapi-tests/binast/parser/tester/statement-009.binjs
js/src/jsapi-tests/binast/parser/tester/statement-009.js
js/src/jsapi-tests/binast/parser/tester/string-001.binjs
js/src/jsapi-tests/binast/parser/tester/string-001.js
js/src/jsapi-tests/binast/parser/tester/string-002.binjs
js/src/jsapi-tests/binast/parser/tester/string-002.js
js/src/jsapi-tests/binast/parser/tester/switch-001.binjs
js/src/jsapi-tests/binast/parser/tester/switch-001.js
js/src/jsapi-tests/binast/parser/tester/switch-002.binjs
js/src/jsapi-tests/binast/parser/tester/switch-002.js
js/src/jsapi-tests/binast/parser/tester/switch-003.binjs
js/src/jsapi-tests/binast/parser/tester/switch-003.js
js/src/jsapi-tests/binast/parser/tester/switch-004.binjs
js/src/jsapi-tests/binast/parser/tester/switch-004.js
js/src/jsapi-tests/binast/parser/tester/try-001.binjs
js/src/jsapi-tests/binast/parser/tester/try-001.js
js/src/jsapi-tests/binast/parser/tester/try-003.binjs
js/src/jsapi-tests/binast/parser/tester/try-003.js
js/src/jsapi-tests/binast/parser/tester/try-004.binjs
js/src/jsapi-tests/binast/parser/tester/try-004.js
js/src/jsapi-tests/binast/parser/tester/try-005.binjs
js/src/jsapi-tests/binast/parser/tester/try-005.js
js/src/jsapi-tests/binast/parser/tester/try-006.binjs
js/src/jsapi-tests/binast/parser/tester/try-006.js
js/src/jsapi-tests/binast/parser/tester/try-007.binjs
js/src/jsapi-tests/binast/parser/tester/try-007.js
js/src/jsapi-tests/binast/parser/tester/try-008.binjs
js/src/jsapi-tests/binast/parser/tester/try-008.js
js/src/jsapi-tests/binast/parser/tester/try-009.binjs
js/src/jsapi-tests/binast/parser/tester/try-009.js
js/src/jsapi-tests/binast/parser/tester/try-010.binjs
js/src/jsapi-tests/binast/parser/tester/try-010.js
js/src/jsapi-tests/binast/parser/tester/try-012.binjs
js/src/jsapi-tests/binast/parser/tester/try-012.js
js/src/jsapi-tests/binast/parser/tester/unicode-001.binjs
js/src/jsapi-tests/binast/parser/tester/unicode-001.js
js/src/jsapi-tests/binast/parser/tester/while-001.binjs
js/src/jsapi-tests/binast/parser/tester/while-001.js
js/src/jsapi-tests/binast/parser/tester/while-002.binjs
js/src/jsapi-tests/binast/parser/tester/while-002.js
js/src/jsapi-tests/binast/parser/tester/while-003.binjs
js/src/jsapi-tests/binast/parser/tester/while-003.js
js/src/jsapi-tests/binast/parser/tester/while-004.binjs
js/src/jsapi-tests/binast/parser/tester/while-004.js
js/src/jsapi-tests/moz.build
js/src/jsapi-tests/testBinASTReader.cpp
js/src/jsapi-tests/testBinTokenReaderTester.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..925b6d52d433c088dc5154744a079d04e936aeef
GIT binary patch
literal 7935
zc%1E7%W~5&6jdJ-*cA4#@Pb7drY{!E&~eg9Lm0x8lp&c8J4UtDL{r5MvfRh7uw}<@
z@E5S;1K6=*!IkoI5?OH_yFi;PlK5IWx{q_O<ZD}m9Y%_Fi(t3-mitYP+h`FXbmY4i
zXs=p(UEirYeup4?Q;o414Mef@5TR8VWk;tUVovc9BQJ=<Fvo)Wo`Q0R*8w`Ao;!;5
z6NW5I!}7U;qAsEy6$60il&VWSL60fn3eLmrq0)ii)N2-RgS=iTH>w9Ud$T9AH+vva
zth&0lPX*zaDY#S2!U?<w5)b}5qVh4sjEal(t*vcq-P+#Xc)sy$a*e^Svb+zor0}^}
zrIg<NcD3F;th}pd<=qvyQ7OMEeR%pWIP%xkIr0|B8`Z{sB@;J3l4vbr1&XK^=`q!U
zq*fYRYgVC9upVdX<jQ%6lOO<J)&&-%4K^zc$w01kP8l;coT_FxAR;8KEAN6l5SWVw
z353DI+)P*;nt*vTlqf-3WA20ej6=L%ft2uuzwb9EZBoJdw4h<@9`!K4h$tsR*{1<w
z<X9k1n=LWEt^|5ATqtMAzfi~J4J)1<*`@DTM*Uy(Tb<bLV#v1(2ul;>^L<9J7aNNO
ztru$KEGKIuhk822n6aa)_{q%}i?IPje)`(o42Jwb8itI<diL6HjBv`Z%%d2I;%{9P
z6PDbrw@kG=YdWm-%<?pQ<~+Qb@V0biJimf$ijUIgKv$0w(oHJbqME?R7wH+1=TwS>
z?yIg+Bv?Ssso^PyysU6;e3ZWA8KoK+0Xob#*I9ybNhe;%%$WTkuncl>>2|=&&~s#O
zDB3oXNYq6gxNZmWEz`Ux@;zm~O8NQBHC4(rnx)wFfdItOg`>-<5hgO<IT_MtdZ&5~
zp2io)eUy@kCAih}<mhw_k3#B(hx8IG7&48QvS`Q1VTD3^{c>egj?KFKPP2DFE_;q;
z9FUmwJ%#m_Q>1U=?$@>H_a&fL!qd9!&8c>GX5GFiq|LA#W>_;~c57Y1jTBbxzOUn5
z!Z}lxlj+#KKE%Ac?Gm>JmIgg>8FxfDkd2i6&)}7Na%od9DDDVk%CiJ}wBdO+zC&y*
u8xe&jUa%R6V<3Y0^+@bNDbb4vebUCHOP2!b`+fg7lfeH*KWUk-W&9rz$qDoT
new file mode 100644
--- /dev/null
+++ b/js/src/jsapi-tests/binast/parser/tester/StrictEquality-001.js
@@ -0,0 +1,73 @@
+/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+
+/**
+ *  File Name:          StrictEquality-001.js
+ *  ECMA Section:       11.9.6.js
+ *  Description:
+ *
+ *  Author:             christine@netscape.com
+ *  Date:               4 september 1998
+ */
+var SECTION = "StrictEquality-001 - 11.9.6";
+var VERSION = "ECMA_2";
+var TITLE   =  "The strict equality operator ( === )";
+
+startTest();
+writeHeaderToLog( SECTION + " "+ TITLE);
+
+
+// 1. If Type(x) is different from Type(y) return false
+
+StrictEquality( true, new Boolean(true), false );
+StrictEquality( new Boolean(), false, false );
+StrictEquality( "", new String(),    false );
+StrictEquality( new String("hi"), "hi", false );
+
+// 2. If Type(x) is not Number go to step 9.
+
+// 3. If x is NaN, return false
+StrictEquality( NaN, NaN,   false );
+StrictEquality( NaN, 0,     false );
+
+// 4. If y is NaN, return false.
+StrictEquality( 0,  NaN,    false );
+
+// 5. if x is the same number value as y, return true
+
+// 6. If x is +0 and y is -0, return true
+
+// 7. If x is -0 and y is +0, return true
+
+// 8. Return false.
+
+
+// 9.  If Type(x) is String, then return true if x and y are exactly
+//  the same sequence of characters ( same length and same characters
+//  in corresponding positions.) Otherwise return false.
+
+//  10. If Type(x) is Boolean, return true if x and y are both true or
+//  both false. otherwise return false.
+
+
+//  Return true if x and y refer to the same object.  Otherwise return
+//  false.
+
+// Return false.
+
+
+test();
+
+function StrictEquality( x, y, expect ) {
+  result = ( x === y );
+
+  new TestCase(
+    SECTION,
+    x +" === " + y,
+    expect,
+    result );
+}
+
new file mode 100644
index 0000000000000000000000000000000000000000..f94932cbb4a44f278460e80be0fb269addbe2dff
GIT binary patch
literal 4825
zc%0o>&yUhT6drc{8Ta5>FWl7VE(<2ckV?Xj>S9<Vv~2WX%xpWrWJ}x346ghu{%Kyk
z8;|}0zA2R!XbW2ktL|mty_q*N-}~l!Z&1Y8wMa!75^PpF%o#8|LVF0IbH|*ZTC@FD
zD{F@15~LKoF^WaGsQkE(&;g86!qe3+E+d>%$JPWEWJGL%axjR@?6V-@X?1K_!BlT?
z15AV<%m!l_g-6b7n&6^+N|?8bjYq*IxnR^DRBnRZg-=2$_!gz$hwzRu1b=Sv7@9Y-
zMFnBl^4y=XHC~GS5FDCb)q7ew-#@~xYfbV7!+e+*go~r)6${>y!B_wPzm4F>4G;tl
zp<3@vyLVbsyXAbT`11LSRIt4s+lGLXH;7?jhUG`J55cJ!Pva}%AnpC-&4r`XEXTN*
z&)cen!+!bqXH3#z)66-;jN)^PgaMK)F@x_MT~OPczvbVflDinoVO}V}n%Y#P#rL+n
zO=?|lzH29=ye7Bqfy29#hsVdoLpy?2^YrrF`(8YjyoHo#e%mdYXKGi=3e8*KQ0u4F
zPsL1u%tr2Vf!w8p>n_;2z)a|%+zBVljtf6`#|5e2dQ)$ynK0pj)WK=Bdt7=}dXhIC
z!tF<5TKfJ%c4S!$Wx={+0MQ9p3DcdHGl;2+Uvm)&u2CDaNoaEt2hj0pt}W6Rh|$4N
zL=~T>!9rUOc@1hU9r<|jWXJgJ_hMCW4Qx3&T~c19PKqpf4OOdmo1M%Ollr><4}jj0
zRquTVc&;`wK~oZwFy=%E-xh#tlglmXpae#i$~xvGM*n`n+#8GfcMZyNRRU+5)g9F(
z2{eJd#pL3{25+>31^iaO&vy07-MsCSu!*%gKL1d0&#=AOQx96WY4=9VHmt~f^9kk+
z%7`IU0C~O>RA6^fxmT)qq9`TZp7^Smc%74;648(1_@4}t`|Q|stk-sVFy<C>_8SAz
B7q<Wa
new file mode 100644
--- /dev/null
+++ b/js/src/jsapi-tests/binast/parser/tester/apply-001-n.js
@@ -0,0 +1,29 @@
+/* -*- indent-tabs-mode: nil; js-indent-level: 4 -*-
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+
+print("STATUS: f.apply crash test.");
+
+print("BUGNUMBER: 21836");
+
+function f ()
+{
+}
+
+var SECTION = "apply-001-n";
+var VERSION = "ECMA_1";
+startTest();
+var TITLE   = "f.apply(2,2) doesn't crash";
+
+writeHeaderToLog( SECTION + " "+ TITLE);
+
+DESCRIPTION = "f.apply(2,2) doesn't crash";
+EXPECTED = "error";
+
+new TestCase( SECTION,  "f.apply(2,2) doesn't crash",     "error",    eval("f.apply(2,2)") );
+
+test();
+
+
new file mode 100644
index 0000000000000000000000000000000000000000..a724010a7b3799aefaa8ad782dab6ceca9bd139e
GIT binary patch
literal 7700
zc%0o?OK;Oa5Ozy>REUSf4LF2b5uy)?141DZNdu&c(yF$4;8JbvA#uC)M(YhB{1ko!
zzk|QPl^Yk-pTO=q4>wt_U3Z;^=HhrC-|o!Ld^0;PvtAcNrQ8AJRrV-pQ*>%ATb6Z1
zyn$71w07(_woAHTl{e&=GWJ7O`T4}M?($LP`1AureRPCj8(fSiVm=8Zls9<~trI`+
z&SU-NLzdF82$fL2XZeB8#sKjt4G#k5fA)b&xB#6_HXSnR2kpvj-fq`xPGh%K-Wax(
zH-;c_EL-+9eFhX^3HJrz-VEM-sVIU01ur)@x7LrtS=jMY3Oky4LqbyhE^;dL*L)Rv
zP~W#rDfA}q*s-?`UoC<j|ISa3LT;zwH0wsR_>^~4BePuZQo;xubYY#5X!_c7qspy+
z?NSIsu0xw42B%zBxic8IE0t117*D3k87^-E$g9Ft-X1bUnFAryNLZK%%M%e0ZTAF9
zm{*vGyuDBPIe+A>KpoN~?OB=RVSQgxSZUP{5FNxeCytV{cx12`J~NB@?GBq>R{*`3
zEL1S$6)?8wC?#8mIk%niDBVIi>FLk>=xJ3tg9}};7bEBJh<CI|X$)Fo9ZLEN>}wr9
zZ}E2SPCcw3tQ<-eaPN_i!CM49o~ekbIQw*V4{c|^(fXhlW}C1n&L&64;4+H`N={~M
zpxi^gSsD3l7^?OA&ZvcPxHraecX<0Kbx04ZIn2wUgGtzxR}W0w6RU#)5A%Jg6k8P|
zrY33cD`zW~j8`V?`rG{MTC^*!6mgUm^b5*C1e+usyHvy{6;WoSs(X_ESqYUAtv?}h
z&M!rM$Gh5r7@aTcd8^KP3geOt)?&=x%@TC+$$85C;#!<Zf~TA#&KN<8#iDmkUJ-AB
z*W#;(=lSmO$juW(N>6ZWh`F5_M!gWE|8$Y4G9@y04iziH-KFBiCg0}rG_@@jjm$s2
z6uHVC3PbRo&BcYUPH`8w?<^3{q&PuwJd=%Y#Ba2o&RWzQ)dY4yj)GK<GH9#CrD5Vs
zL`kcLLd5|~!GJr($~0S<EUx??<)i{2Gcx0A-Vw1Ce=8-IUQ3MdjCc4y@_a=xDkn9s
zu?~g4x#Cs|30|@Yrzt|44owE5W`<;EQR?A>5Ll*CxS>4p2Osz##=*+chK_kO_s-;c
rtNwza<<Qt(X1-zReL!Du(b$nXg^s}~zF;Jtr#5I0pD7;_l;->ojUC2I
new file mode 100644
--- /dev/null
+++ b/js/src/jsapi-tests/binast/parser/tester/boolean-001.js
@@ -0,0 +1,47 @@
+/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+
+/**
+   File Name:          boolean-001.js
+   Description:        Corresponds to ecma/Boolean/15.6.4.2-4-n.js
+
+   The toString function is not generic; it generates
+   a runtime error if its this value is not a Boolean
+   object.  Therefore it cannot be transferred to other
+   kinds of objects for use as a method.
+
+   Author:             christine@netscape.com
+   Date:               june 27, 1997
+*/
+var SECTION = "boolean-001.js";
+var VERSION = "JS1_4";
+var TITLE   = "Boolean.prototype.toString()";
+startTest();
+writeHeaderToLog( SECTION +" "+ TITLE );
+
+var exception = "No exception thrown";
+var result = "Failed";
+
+var TO_STRING = Boolean.prototype.toString;
+
+try {
+  var s = new String("Not a Boolean");
+  s.toString = TO_STRING;
+  s.toString();
+} catch ( e ) {
+  result = "Passed!";
+  exception = e.toString();
+}
+
+new TestCase(
+  SECTION,
+  "Assigning Boolean.prototype.toString to a String object "+
+  "(threw " +exception +")",
+  "Passed!",
+  result );
+
+test();
+
new file mode 100644
index 0000000000000000000000000000000000000000..a52b8a39dfdd3439994c3e4fee0861d161194ac1
GIT binary patch
literal 7749
zc%0o?PjAyO6!*qpOb7(x2A6OfLTm*gA)!!d?K;t^Y9~^5;4*oQ+h+6P$Z;v<qwsC`
z7+g6ZaTuQg+v%UIb(}0qva(*PIQGx)J-_#R&o3q$co>z<K7w}nfRY}CXJ8coa7^qG
zsMMSL);p_1JOs>bImg6~&&ofZ0&tJdGQ-OcA$8y}M!TqkA%)B#u7t8@&ptSHT>B!{
zFFs`@4vSC;<=DV+9X16BFR9zeWlq;YRKmINY$mkNsN?p^>wMg*RonGe)7&19ncHKK
zFqS3XH5`U0#1ifc#DfLA2hvakBj~;?m0oY1_=~X9f2r(b<t+(G^-`oX=+9yedRY5t
zWo6LY{KdZY>gdff*zvqLI|{wq^>(9{i4}Qpf=b|)TOK8hu#tzh<kVJo^LeJWt$p<<
z@_lYXi$R9YxT;bxG#yvkqzW;fEtM-ed<dbm7Tn<DK7*9Ck<T<5=BC2xOa(}L1A*eF
zRpucdA5wnIANVMuZPFmUMV;hfeP2;HX~l6N9fgDwN6AS%@K=nw3{a=nXY>0Cpck`^
za)!JH!WJ)#Xz$1_YUd(Kw^2%V`coV`ZOCBgAWz7W$vHgcFPg-df*Pz($xwlPqqFB7
zKF-5wfE9$5!l(jn4>}mx%V5X9Dq_mVj(0^BveWofJ8JFeb=f6sj<U(|3F<Jw(<J9I
zHd2a^ZdF2h8z*YL+zEqpn(Q;9xb=y%wYu?1HHCAv>1dX8<-G%w&MD|a*T!5dm0c@h
z#@r(9W#xPg$ZVB`SAQ$ctHrqDJ`qM~qG3)Ih~Scdb|UJI&nlWsNL2SF`!fR?k<K5H
zH;XG!clfKGD`uywdETpQp4_M;fwyE8?y1?iq+sX#3-g$}#Z5Soh%mXpnjv-+dj-#&
zxdPHcc9U=JUnILHlNgWCD89C>Le}Y5F&y|v29F0te<_l#Q&?D$>aLV5N?gp<d0tyC
z4k^B}6i#>meIMD+3W?zBGu$PvI!i<|F+q@!q#23I_*di`@tf?Y^A<HnH4wWbN1<4b
z%FtKytHH#Xh;CLD`icXVirG9U*5=tN%f8D0(MieyG9fd*<u3xZ;!j3o)74;vSGxhG
z5d^-X4V99aH(8&eVRmh;7!JH*`%Tk+&N?$?m^2gAI?K`t7kt1HHNi6~6MyrGk3tlz
z>}u$UM|0<l?zC!2QhW8#c8x-EE_~S1$A`WTqwz6ybsd6JeAkFPYi&N)-6_WZF`pik
GVek)i5!6Ni
new file mode 100644
--- /dev/null
+++ b/js/src/jsapi-tests/binast/parser/tester/boolean-002.js
@@ -0,0 +1,51 @@
+/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+
+/**
+   File Name:          boolean-001.js
+   Description:        Corresponds to ecma/Boolean/15.6.4.3-4-n.js
+
+   15.6.4.3 Boolean.prototype.valueOf()
+   Returns this boolean value.
+
+   The valueOf function is not generic; it generates
+   a runtime error if its this value is not a Boolean
+   object.  Therefore it cannot be transferred to other
+   kinds of objects for use as a method.
+
+   Author:             christine@netscape.com
+   Date:               09 september 1998
+*/
+var SECTION = "boolean-002.js";
+var VERSION = "JS1_4";
+var TITLE   = "Boolean.prototype.valueOf()";
+startTest();
+writeHeaderToLog( SECTION +" "+ TITLE );
+
+
+var exception = "No exception thrown";
+var result = "Failed";
+
+var VALUE_OF = Boolean.prototype.valueOf;
+
+try {
+  var s = new String("Not a Boolean");
+  s.valueOf = VALUE_0F;
+  s.valueOf();
+} catch ( e ) {
+  result = "Passed!";
+  exception = e.toString();
+}
+
+new TestCase(
+  SECTION,
+  "Assigning Boolean.prototype.valueOf to a String object "+
+  "(threw " +exception +")",
+  "Passed!",
+  result );
+
+test();
+
new file mode 100644
index 0000000000000000000000000000000000000000..c695c8be4ef547bd7005592da25172bb4ad5f837
GIT binary patch
literal 6585
zc%1E6-EtB!6b>y~^+LV#mP<O;qRx2J*<q$oR2-yEVYqby8))pZVX~o>7w`d`@y18<
z3G^*I$pX79*|4l^shx5GY&JPR-#O<?ax5_(Iizfz6Kt11aW>$1h;|S{U1m>ErQZC|
zI%@UUh#;$^=2#B(METn@gdV{xE4;jeImKOvoRFS_ITn<;N|YTud+36?_M)s`FeSH2
z7UN13wGnlxm<tFmsoTUAv`-0F;#@oojP?Yl?x4H}<E>h?T|aGFrRkVenhFWaYN>Y(
zDhS7p5_gH6@shmz@S=wu=f$gKar0m0<ZQ*R62;Bh{|_KLwX@bHfvi<O9)Es)6M+14
zeL&uW@pir4sBHvBs7my9?DnK%ha=7e6O$1+lqtGVTx(xPoOm8+X$dUI5ZqKok@>h5
zk1E&^ELAI{X@sOj?;(tP0&~$Oo-lZrnF~9C3z!eaQi_+>nWr#*#UaG+VU+MTYp}tx
zPbyeHbD9LLP#5z_$T%5FU~WHG9nu$w)4{oj>Xm|?2Z}NlxdoP%FADM5vAK$kR8$7(
z*CbaNW#0qo7F1Ccdn6|7zJtDeH0!ny&jP%tGWU`|-7|lUqPU_sr`|z9e(#$VB`{j<
zNbee_mE(q4R9ZqfVIs1Ob-$3FKtS72U}BOskWZG;`DZZlQ?KGvUL{BurtL%%qz&N+
zc`83M={jo?Oplh=?X0$o-J4NuFXO7M!k9y_dr+AE2@V`9sxP5pNwj_J=m5GaKz#ug
zbD9E7m^0HTnoZ3Nw8R!9JQdD!G5IciJ89%i{$|j~(fTxUs05w%i~DzkvL!<Koi(AX
zcO^^*@ogfl6c$daX!Z5@+6ZyueE^xwV(k{dtWy&14(0up&Iq1|UVIZYiwah7H*~G1
z1R8eztkwYFM{(g+@37uQ5U|zV-hExW;f#nekHmdOkXoF!(@cm3CdCHgUq%v^(SqwC
zWVJUMjZI0{tWYPN@t-@G`<YJcCIICv#`p(Jd@R+NxGhOK8}84hqeXmo#dy{+^`m3A
Xy13LZQ?a?{7|TQ^CQjD*)AI0NYkpiu
new file mode 100644
--- /dev/null
+++ b/js/src/jsapi-tests/binast/parser/tester/call-1.js
@@ -0,0 +1,42 @@
+/* -*- tab-width: 2; indent-tabs-mode: nil; js-indent-level: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+
+/**
+   File Name:          call-1.js
+   Section:            Function.prototype.call
+   Description:
+
+
+   Author:             christine@netscape.com
+   Date:               12 november 1997
+*/
+var SECTION = "call-1";
+var VERSION = "ECMA_2";
+var TITLE   = "Function.prototype.call";
+
+startTest();
+writeHeaderToLog( SECTION + " "+ TITLE);
+
+new TestCase( SECTION,
+	      "ConvertToString.call(this, this)",
+	      GLOBAL,
+	      ConvertToString.call(this, this));
+
+new TestCase( SECTION,
+	      "ConvertToString.call(Boolean, Boolean.prototype)",
+	      "false",
+	      ConvertToString.call(Boolean, Boolean.prototype));
+
+new TestCase( SECTION,
+	      "ConvertToString.call(Boolean, Boolean.prototype.valueOf())",
+	      "false",
+	      ConvertToString.call(Boolean, Boolean.prototype.valueOf()));
+
+test();
+
+function ConvertToString(obj) {
+  return obj +"";
+}
new file mode 100644
index 0000000000000000000000000000000000000000..0fb83e3759f878f95966ec2a96c440197bd6bf63
GIT binary patch
literal 7148
zc%1E7%~BIV5MDs>ztn@4+~N(&lAuRiLWPh+EDRJ$aj`6GvfC`9lbzJ;M99hK@>M+e
z0QwU4%;slFHj_=V#6aXirDx`w{(8Rd`B_^w8w_&x84x#jB)BI?-CDLRtH#}ywO1;?
zuWVNw-T=$a>OMB3fy_B;mh}jG+0o%AL{L&=un!I+f=J4J4dwQJ2i8~WyO*(kW0$2-
zSX^i*>RQyNvI`I$QgXqU^pt|oa6YN`oDQU*zL&d$_DZo(EghEaY};mM+aOV_if%ig
z5(Hry?i*pv0leqfa137YqLFowoD@w5J$=2k^=1&h`(KmpAgpL;VfJRi!2X<VU{8w2
zm9zr8iVelWhy3Ta^AN~ivkT;Hv{y^jgJLRSe5huD^GvAG^^H`6iHHJ%0Ap5>L_!_8
zX-}YQj}1bBFxDHYM>uE#m^5Vf&>l!4WEBEwV3;0-JT`g0>K!4XVup1xR04xjX$k6`
z$$oDY{7%oyDC|Cu;wdrl+81!7)es6;wql)`Y*d1{u6B!?SqBN12;Grfwi+;eiN-{I
zf_4vNfsr6MYLiU{K8KM$)KGI8>APr`JS;k+Gc3i*ySg;9%BvtmOvs`zWjIf@beU3Y
zZYuP0k0udbQ=tTt5`KX8yz8n;T_8bBv^B{eIOR(Js_#*sh}L8U_f>qsO}LBhc2{Y$
zn_8Rwg(tI<2~#-Ir;{@8GO6t5FR@`gx}9$fcwyS&Cz$auHhc_=Tzk?_W+vlp?pIb&
zljL&h8%$rKUctHJpC{(`rI^G_sHJCv>J4~PI3t!RA^I(azPlYG|LY_;wI2)%$^yuX
zq$@9v@fu;~McLz=0r5NV>aPQQT?I6Z_5uiqP9dPRK>^_<j|+&O?*@zLzB)`Bs4sw!
zyeWkAVo*r+CX<v=f3b9=?xF_f|7A3;jPM*POTG&iBW|fkO;G11$;iNb<}#Z8+OH0)
zGSOpYo7ANu5&0&gCJ29@5D`9yfLq2Hd%D&Df3V|IC4*7wH9SZeo-9mXSBAf9n?4;R
kx_}wZJR^28v$D+P%lyzbMEZvFz4;Y;sA9}7bFsPb7jDra4gdfE
new file mode 100644
--- /dev/null
+++ b/js/src/jsapi-tests/binast/parser/tester/constructor-001.js
@@ -0,0 +1,66 @@
+/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+
+/**
+ *  File Name:          RegExp/constructor-001.js
+ *  ECMA Section:       15.7.3.3
+ *  Description:        Based on ECMA 2 Draft 7 February 1999
+ *
+ *  Author:             christine@netscape.com
+ *  Date:               19 February 1999
+ */
+var SECTION = "RegExp/constructor-001";
+var VERSION = "ECMA_2";
+var TITLE   = "new RegExp()";
+
+startTest();
+
+/*
+ * for each test case, verify:
+ * - verify that [[Class]] property is RegExp
+ * - prototype property should be set to RegExp.prototype
+ * - source is set to the empty string
+ * - global property is set to false
+ * - ignoreCase property is set to false
+ * - multiline property is set to false
+ * - lastIndex property is set to 0
+ */
+
+RegExp.prototype.getClassProperty = Object.prototype.toString;
+var re = new RegExp();
+
+AddTestCase(
+  "RegExp.prototype.getClassProperty = Object.prototype.toString; " +
+  "(new RegExp()).getClassProperty()",
+  "[object RegExp]",
+  re.getClassProperty() );
+
+AddTestCase(
+  "(new RegExp()).source",
+  "(?:)",
+  re.source );
+
+AddTestCase(
+  "(new RegExp()).global",
+  false,
+  re.global );
+
+AddTestCase(
+  "(new RegExp()).ignoreCase",
+  false,
+  re.ignoreCase );
+
+AddTestCase(
+  "(new RegExp()).multiline",
+  false,
+  re.multiline );
+
+AddTestCase(
+  "(new RegExp()).lastIndex",
+  0,
+  re.lastIndex );
+
+test()
new file mode 100644
index 0000000000000000000000000000000000000000..f79e4756def10a0baceafd9b732d10b198773592
GIT binary patch
literal 8840
zc%0o?%Wl&^6m=gIidcZyAS6^TQ&qI(v4S*Go1`LD2&J(qu|iXOnhbSpYdj(3SNIvk
zf{#FA#|plJJL5bYXEJddI}ObuQD!{%&V8LZbDd{x&&Gv(6C<l|O5FxUEp1iPv<uhj
zYDbmYN&QvbbUm!)_rx=KoA|8oV@uQS!BhG0@^eH9y0CExn>M0|5!Vr-tl@uOyCRM?
zD(e?KvNBDUONA(6X~ZFHARxS?Vqu4oOM<Bo=b+Yb(>|lbX%ue5c)eUSD(`Cfz1~=U
zuO}odt1jlMgkg$oA?`D>+hg+XaO)7mPxtqqj|&|93N!m_)`T#s)}PRoKNsuD^YU3e
zEmz)xiIe)Xk1v<OkAD~EM{c)KF{<TMy!Z$vN|2Dd9(9?^x*p#3F*8UD=eARIZ25~v
zvG0Tb>J0R?z)rC%JQ$Zcq=;;LxKyk#VF=@-?%RZMpCQT&>@$UhnVGOUGy%~@n@jPN
z8gn1UI}~F421YS8+^X9cw@C!+>xv{pkBEb4H?%n(O2F<QS#5mDG)fvx7S+oI?F<!V
zEb<y~nosDHvm?EdjZ~CM(egw528=`4+qR^z5(I&ZJ4VFD)-pi+pT+rcQ-F$zJ-(Mz
zT=@_tYOX#Is<S3_I}+J9nu2TuV2#c6^79n=e#-f2(C+Yj5zN|l%`2^m9LomdWVRpi
zCnAfKbo?9aWHlu^ephy~WEa4<A4-SD6!KHUom5GK(A(uaX*y$A95*_IsfNR!PIlZL
zBtCBA0)0~IQ*v2knS1dG%2orG3bwIs)(I4oa`dS3<fIU}@Ir=gH87tNvkx--(^oKs
z6GWy*a3ECgTx0MbYB4B7Y}LRJf3$qJ`nyxPXgWJ7B4##=HfsA=<e-OmV_+f*&FE}V
z4eF51jDb5c47{<WIOp-0!M*7Ed^Q8Wn(h9X8E(bM{}@tu_ldayyNPj-&4xEp1e4XN
z6r-w`DKP4B1f!zvPy=NOxjITH(!9d+nDACa5&4n;3&Y++QLIOSD$Psr|Ir4>Kx9m!
zpBo&B`ho7?jvjEq-1cid7#{S@_9acT1PXal=sCEffv(iL5K~ZZ&TfgKTbR);ZO+3n
z2B%q;o+U4SHgmi3xb2uc)Zy#gdT<95<jhZvovE%z!pk)o1CH4^6B#!#d~-3t@8FKL
z<z|4%7=_U!erTEOXihN_nMquJvbikbiFFyBf8&|)TaHU|{77)f4PIrXmaDPctI~0X
zS(`>Owoe_Crbvdod=7Q1liLo#a1nXn3n|V24Q_c5qWR-lq3BU4&LR~bp8SeNNzg+g
z$6jiy`Ids^sB>7sX;f(%5-NG`Igw!~uZ)u+y!Sih#bl5|;`>SDY9~PgDN*|e+5<5m
new file mode 100644
--- /dev/null
+++ b/js/src/jsapi-tests/binast/parser/tester/date-002.js
@@ -0,0 +1,54 @@
+/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+
+/**
+   File Name:          date-002.js
+   Corresponds To:     15.9.5.23-3-n.js
+   ECMA Section:       15.9.5.23
+   Description:        Date.prototype.setTime
+
+   1.  If the this value is not a Date object, generate a runtime error.
+   2.  Call ToNumber(time).
+   3.  Call TimeClip(Result(1)).
+   4.  Set the [[Value]] property of the this value to Result(2).
+   5.  Return the value of the [[Value]] property of the this value.
+
+   Author:             christine@netscape.com
+   Date:               12 november 1997
+*/
+var SECTION = "date-002";
+var VERSION = "JS1_4";
+var TITLE   = "Date.prototype.setTime()";
+
+startTest();
+writeHeaderToLog( SECTION + " "+ TITLE);
+
+var result = "Failed";
+var exception = "No exception thrown";
+var expect = "Passed";
+
+try {
+  var MYDATE = new MyDate();
+  result = MYDATE.setTime(0);
+} catch ( e ) {
+  result = expect;
+  exception = e.toString();
+}
+
+new TestCase(
+  SECTION,
+  "MYDATE = new MyDate(); MYDATE.setTime(0)" +
+  " (threw " + exception +")",
+  expect,
+  result );
+
+test();
+
+function MyDate(value) {
+  this.value = value;
+  this.setTime = Date.prototype.setTime;
+  return this;
+}
new file mode 100644
index 0000000000000000000000000000000000000000..206cfa318f41de9cc31b42acb195b2a1bb5ff0f6
GIT binary patch
literal 8996
zc%0o?&2G~`5O&*8sKfz;!~uciW2%a#sGJ~;MAB5G3Q5&ORc~lxZ<D32ZLK$iyb5o_
z8*oM9#0l;^0JH1-xX#*foOK(TLoDyl?9S}$H{XnltnXU5RP147mQJYCrRYjq*EFr;
zm_w~xYaF-Uv<%0^TCpI;6fNShQb*UchcK!boPLHVK^+SpV#7idG2+-llsSF(v`b=}
z*Jb^LA#3wwIaG)urbcYSCIW&}Y9_WBxgeMdaW=Y|ZrWp%*xk~7Xm3?3?OL-@ER5QU
zg^`e;td{7j6NV|Wgt*Vh>d(k~z_mjRzueo~pA|TH3N^=bHiR%5zkW(n{<v9Fo>fm<
zs!VwgI*wbfKE7TBJN~{oJ953-wRXL##EMU$;}9Hj*QE|~*wDqhVqEh=sadOET#7vp
ztk+_&+7)Oi_Jk+xQgc+0Wlg7w83r_AoYr_-(C#rrSsQySM#IchSf8qZXt&R$cxjb+
z1nmO~C;T2-F>O0_r#q{YIIOR068|g{8_{84bNna)xqVl)@CDN->GoK7T`p*6x=_X<
zZvmxwhaT-6>Mm^PM#U|(`T)NP?QraUOLDPN90C`2gouUBRRH)uH)qE!0V)P|`CgQm
z@(FY_9DO2GXFci+B(m=`0onAy8XM~T^8|UGV*hN@;WWMoUTrzXrPf2XX@PPw-OGGL
zXi_X0KhJ4ml!^oVD~l}I93Zz}vwR$HzXl#;6mB_p|1fNJK1n@D7~{Llo3q<dZbaT9
zcC#<t4J=8CF?MhM8%vFfM)Kfvb1d*3baib$Ivue%NKGt~hP1_a>Y>9z4&ex=(tv}5
zMr@er1xd)K=4Sy>Pv0-D0aO5p_?rGZfP{|^*lfTiyz98~eC)iDy3OZI6~v5Q#X@}#
z3x9DDFIGfi<APQao*QrLg^_t@LxRkA_S!5Nv@^)oZqH^5u)Y;Rn*{!!Fsd@g=UmFc
zMjG8@_f!f{b<AP_>RAY&!sdvGn(BNtTc*PcBo*XEaf@@f6uB@^sZ7=XkK#lIA`_+`
z1wS6@2fB?1`k0sI#T(~@`MvG!w>pd%*Yon*$|~4;9ui1cM_Gwv4)`ru%8@9ZK{Qer
zBNI@YRVk=)3}6e_Qjhw!!H+taYv%j}QE)U*8A(f!v^8XDQo_2P@VUqXT#5>Q1A}a=
zHWf@qE!sWe1*XYjw8E3fOycUZ&Q&>{MCs)68_$gBMweMqgt^IgHf6q=Dq9b(af(@=
zhCFu6A=A1@h6H_y<<_H%4}Nn6xnK(^-~R<>c^u&TvtAJ!a-zx@alAPC15zwe4~U%k
x;2ux7VrWjh3&)U}z(mQH*GL)>n;u4^blja7J?DHj^*u=ZzX+vx5+IN=wSO<5WBdRB
new file mode 100644
--- /dev/null
+++ b/js/src/jsapi-tests/binast/parser/tester/date-003.js
@@ -0,0 +1,56 @@
+/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+
+/**
+   File Name:          date-003.js
+   Corresponds To      15.9.5.3-1.js
+   ECMA Section:       15.9.5.3-1 Date.prototype.valueOf
+   Description:
+
+   The valueOf function returns a number, which is this time value.
+
+   The valueOf function is not generic; it generates a runtime error if
+   its this value is not a Date object.  Therefore it cannot be transferred
+   to other kinds of objects for use as a method.
+
+   Author:             christine@netscape.com
+   Date:               12 november 1997
+*/
+var SECTION = "date-003";
+var VERSION = "JS1_4";
+var TITLE   = "Date.prototype.valueOf";
+
+startTest();
+writeHeaderToLog( SECTION + " "+ TITLE);
+
+var result = "Failed";
+var exception = "No exception thrown";
+var expect = "Passed";
+
+try {
+  var OBJ = new MyObject( new Date(0) );
+  result = OBJ.valueOf();
+} catch ( e ) {
+  result = expect;
+  exception = e.toString();
+}
+
+new TestCase(
+  SECTION,
+  "OBJ = new MyObject( new Date(0)); OBJ.valueOf()" +
+  " (threw " + exception +")",
+  expect,
+  result );
+
+test();
+
+function MyObject( value ) {
+  this.value = value;
+  this.valueOf = Date.prototype.valueOf;
+//  The following line causes an infinte loop
+//    this.toString = new Function( "return this+\"\";");
+  return this;
+}
new file mode 100644
index 0000000000000000000000000000000000000000..75e32116f50ba886aaca695cd325485fd07f71c1
GIT binary patch
literal 8655
zc%0o?PjAyO6wk&O4DA3y;(&yf8=EG!A#sAP($;pOQz;XTChdg0#B0scB-k#cUxjam
z#ElDl3v6d?)6{j+)ak-{XjMCY_WSpHzvq-_FK}VG)PcY$pJBg^LDyI{4CB&w2F7u{
zdD?p0vi$%WrG4>C$wh>gH@6I9lRZ_6E<XntflC)wq3r?;DDpia${GJB#x?SsNm;+x
zBP&U=d@MvE$3PyUBLUGRbq9JBT_K2tI1hBkhb9ywuU&q?##^<DRsYy5?ca=*_HTql
zWwpdy15t>9E5v;RZf{E7L#`d5@YTV=n`wcgU!mr3%{?IutM|`n%Ad<M<$3K>OP49{
zvx(Ez>(7O-<Dcc(k?U>Mtwv3Y6`!$*DhtTH0Q=OZg8=TeA+=B!YBg)^dw?M!%z7=#
zcIz@N#hKt}TxyOAaNY4zvBG9U5N0*r1{)_7U}`}^6&mKI!s=KBfZIJTg=AIcF&pn=
z=Hd5j6k^M7`0Z((gtLCENaFJtc>oV0hvTkf$Q_2N3$LhwQM*Iq`*K0M<Bf6_c?&4b
zC(PN=p)X-$8Kv5&_yE7o#+loDt|YNCIDv~h0my|;5di-0^6a=FK*fduKZ_PqK4lY4
z-y8`wX$Sj#iR?Q~K-NRBhPJ-=JOhMij!z2@#`Q(;YS*`~jSlb}mnkRH{g^)yTcjl8
zU)f1kHIea0vdWU513z3;kE{gh(}aDkq(SUE;4CSbF)WW89kHpl$DhttZVxk;+q6JG
zAA76%G{%$s%P%Zh4aQ8FMs$#O*rX&H$@Ewq8WWit$xyy$_@8A@m^jdBvO|!`gxeY-
zrb@kJK2ZVG?o?dRBTz(50C*!m6F25Gl!#xox#vc$T^VZK+2mQUpyklX+@8(mU_=GM
zoD}h&LJGevqJGFnwBrr`4EIw-iyWgGkSZ|hc?_fC=8(ga##o)C06Lp)?h}4_Pys~Z
zV4>I<ONzBPQ0Z)A|BuE!2azeM`O8sBG!IP=_RWyJZSTA@!{Ol_*Y=LKTU~RTHC1dY
zZPx|~pts=lhD7lks*uLon1a$2<&u%-KAro1@ucV3+||+kYb|V=1UDnv$eF625ms)>
zn(~x4T_WOUx^E!@c(GP^0+@|ZSRF(n%Vd>VqbG8cSbVNo6!)a+BNsn-ZuFMpk{mxW
z6uHrxCvCBstxeZYmsM*Lwp*Qj8xRgxKtOwP_WhgL<w=BnPkT#ob)cvbDw;a`U5Ao4
zM?_A&8&>lm1^ZA%fjaIKJS4JE@&a*Y<yUrcv!V6oH{lIm7((LvMXckJWT=!t{R0K~
B^Yj1!
new file mode 100644
--- /dev/null
+++ b/js/src/jsapi-tests/binast/parser/tester/date-004.js
@@ -0,0 +1,50 @@
+/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+
+/**
+   File Name:          date-004.js
+   Corresponds To:     15.9.5.4-2-n.js
+   ECMA Section:       15.9.5.4-1 Date.prototype.getTime
+   Description:
+
+   1.  If the this value is not an object whose [[Class]] property is "Date",
+   generate a runtime error.
+   2.  Return this time value.
+   Author:             christine@netscape.com
+   Date:               12 november 1997
+*/
+var SECTION = "date-004";
+var VERSION = "JS1_4";
+var TITLE   = "Date.prototype.getTime";
+
+startTest();
+writeHeaderToLog( SECTION + " "+ TITLE);
+
+var result = "Failed";
+var exception = "No exception thrown";
+var expect = "Passed";
+
+try {
+  var MYDATE = new MyDate();
+  result = MYDATE.getTime();
+} catch ( e ) {
+  result = expect;
+  exception = e.toString();
+}
+
+new TestCase(
+  SECTION,
+  "MYDATE = new MyDate(); MYDATE.getTime()" +
+  " (threw " + exception +")",
+  expect,
+  result );
+
+test();
+
+function MyDate( value ) {
+  this.value = value;
+  this.getTime = Date.prototype.getTime;
+}
new file mode 100644
index 0000000000000000000000000000000000000000..c606d8345fbfeb7256a42cccf4d6285fda744ecb
GIT binary patch
literal 7058
zc%1E7&2G~`5O&&7Kp??^3pYz#K&3z8h)keOg9wCxa9YF(ZS766>c(rWH>ADr9`Hmw
z0|$5oo&d4CP8`QsZyd)iRJ4ay9`DZ1eDlqCW^1vbk73Q~L*UllQqrSfV5}L2aZKDZ
zW53ycX+O3d;zPsQk!viB0#>_s*D!AIRaSia5ugYhV|V}^3@BiTcv6)+eGZHh<hirD
ze)1)iMY;%;s*r0S53xu=d`r`X9z$IOsZ{5I!PMx0QRMY%SGnA7)H}^LZEI&Nvv$Tx
z;<{}4u7wz+084eB03Oci6A-v$)JGU@?e0FB*BSklo=&!{OMO&tLQXWlpD&t6jdylY
zXm0Qqjr!}okN*Uazt0cID_q`bc3O=>V0<V^xxKwDd1;Oi>zlyD;22`)nhxRCctdCg
z3@|w0wiOC?<J6}x2sozpM8C8YMsg)cb%617tK8vm5rlamz0T#_L&`cZ(0N#z3u{vs
z0PPKhmLRV)x4C>odE8%cDWo0JBE5N^WU#(g6s+Ax9-wD2<3uQVO%Dl-VV4;c_4+J%
zu28f&J*Z@rf1!Sh7iKy;ic8}}MqMoW-Qx0ASU&3G>XE`epRZg?vaiigr^uNEL;Oq*
zQ2C!&J{LQw!1(p_f5G%~222-&bct{}!ar09AL{BGmv+%<WTUFAY(<AvRs{btf@S8&
zoo6c`9NT<u2(R87Rk@rk-4;C`dXDIo<85>`?0tRyJP6W9#?s>cMHTmqUuuj7NCCl;
znl{4tK}UsVNQs%Y2@~gJ8vVtC_AB1Vt|vXrNu)jgs^^K-`TDjex%)ODM|!L?bO}0k
zj`=bRt(<v6fOAq&gm*+ppAfzE2jsmNwiJ;SiKaY#X)1Ip3bN;<!lCc-)rq<t(ID-+
zCKhex@7_~bpbP6H|7V>G<61&Ub(tFri;kQ{4M|p+$+lXFEOCf#!%<1i#5FOT@m#Ef
zAnj}Njfbb2<7<+6D!mwU_{C7U)D5i}UWMIP%=*RFupAZ&C`_x^TZjdTo5M<xispmD
zjMTMF1w};Nj~7+hGwxY%oIo{vJ_0mstfAZHP6lIf9r$b*$!6Mt58Uya;^-`0v#wI5
w-(G1;r|zEsnkcKImd;)MeQxSRqxslpyHpJWCx6?<xChUGq86(pRh1O|1I>!&I{*Lx
new file mode 100644
--- /dev/null
+++ b/js/src/jsapi-tests/binast/parser/tester/dowhile-001.js
@@ -0,0 +1,44 @@
+/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+
+/**
+ *  File Name:          dowhile-001
+ *  ECMA Section:
+ *  Description:        do...while statements
+ *
+ *
+ *
+ *  Author:             christine@netscape.com
+ *  Date:               11 August 1998
+ */
+var SECTION = "dowhile-002";
+var VERSION = "ECMA_2";
+var TITLE   = "do...while with a labeled continue statement";
+
+startTest();
+writeHeaderToLog( SECTION + " "+ TITLE);
+
+LabeledContinue( 0, 1 );
+LabeledContinue( 1, 1 );
+LabeledContinue( -1, 1 );
+LabeledContinue( 5, 5 );
+
+test();
+
+function LabeledContinue( limit, expect ) {
+  i = 0;
+woohoo:
+  do {
+    i++;
+    continue woohoo;
+  } while ( i < limit );
+
+  new TestCase(
+    SECTION,
+    "do while ( " + i +" < " + limit +" )",
+    expect,
+    i );
+}
new file mode 100644
index 0000000000000000000000000000000000000000..9b80e1fcd76b00b0e9aae05ef5531336982e6ed0
GIT binary patch
literal 10101
zc%1E8Pm|L&6nC}@TZS3h10O&z9QeCSd+O|%rECbpGTW4C!uHTZN3oSevx?=)GJy+U
zfD;#H;KOj{!WZBGH_m*5PM>5aaT3`{96S4`>|ry0lAfgB`|0VuXWKIL8QHPB1iL$r
z1@8#lv(_xjYH|0uwYyh;)Yxt~+$Wa3rTf^726E^170Wsgz3k-h11u<RF>;?c3=1qN
z_p~Z^^c+}+)N{vmeTFWTS-QB;s;FyGkIJEf<d8j=c#^g$5n7#xd!t1MQc$n6vjOr(
zt=ioCy>4&CGJ7jllGN4EZTnObftgnK6ti$jpMt>U{VrwX*6rIrPwO21>YWaTeW&$_
z>?Pzx^W$pKJgEKAC<@K9&`_)XcJJ?F0p!1{1M&>Wn|sauS|Kpr)TG?p+|;~8eJZ;M
zBZgaq5f?ceR^x>P1rkfrgS8b3cI}xjNDu&~je&l>QZkeqL8@ZLMnm-o2SkMAh4dWA
zVTVFCNszU}(zdWR+5#4xP-zMBZstdj_XXJfAxMd6@_pW!-jg=g+lqm;yVS$td17(O
zl;G1N0yEN<mY|)koSauFx-pulWR*wYzf}WDXGd|zc;ZBzEc*Qb^8LttRAcXv!ag5*
zu1&J94zmmD42+@v1{0X}Khb^4c3Oe;_3r-#(-(7KIvb>K2&W_b$%OEeEdK`5Hhnf+
zqsgt@8ctSO68vu#Ec1+9{B;S06N6WV@ba<II>_b1VbO!ob5yLH45Qbh*w=^WUXY$L
zmS*=iCcDphQ#0D51_&0^bT+adaZG4Nlo$(}7<Udw)}Nhdzq@Ez8<RWCNu+zw)bUjB
zd~w^I+;N+d(`>Bgh!RRTTSo_pGAc|MGWk;>p{zQJJ`RGF<T}RzHbaqMWw6EGY5XAT
z3_Ci`IUS#JCVkGkoM-QCVJ~uh!{8_H^FLLAz@SH64#qt!Jn@Hh!^AmB_r!Oh_e88Q
zBwSi7raIlopK+#muFOoaJ&uq@)8Sq~{t1%{EHc`>loD+&lcw8cy8GoW=`8pc=IED-
zfup;E;KOlxM(4YPqkYO8b20bX7BsXmW!s3TcEG?Ll`Ii%!|+5^v!%>6n<u7-EJ2HT
zf{rCrjE&)(5$vVHP&uvaDCXM!C1wY4w-Feh9}>hviFg|^&i$LH1rHvVL*alX$~UZp
zCIwilPWmM!*589%)y1ngNXx9=11;8bWL9%mXir8>`edkF=xrs6UJG3{)V+(1jdH9|
zL4oXIEAlf!h#ad_M-g2sY>`<dgn}$mT5ak`eN?kjvX7dR50_PlsR9sq7~D7*=~uAv
zVN;h<$?0m5;o2$X%U{QYFV~EG8N?`wSNF%6Hl}Yh%(N*gVxBhw%bregE_yz|BC2H*
zw+>qkVsRDwG91drGR0Q_%LO&{Jca5k@}$2o&SY~!<<xgK8JCIqa!9`-vs^?L58~gH
pPcITwl%@t#h8+LS`2Ha>xc>hVdY(yGC=2~ejLl#z42k(j{0Dv;&PM<M
new file mode 100644
--- /dev/null
+++ b/js/src/jsapi-tests/binast/parser/tester/dowhile-002.js
@@ -0,0 +1,71 @@
+/* -*- tab-width: 2; indent-tabs-mode: nil; js-indent-level: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+
+/**
+ *  File Name:          dowhile-002
+ *  ECMA Section:
+ *  Description:        do...while statements
+ *
+ *  Verify that code after a labeled break is not executed.  Verify that
+ *  a labeled break breaks you out of the whole labeled block, and not
+ *  just the current iteration statement.
+ *
+ *  Author:             christine@netscape.com
+ *  Date:               11 August 1998
+ */
+var SECTION = "dowhile-002";
+var VERSION = "ECMA_2";
+var TITLE   = "do...while with a labeled continue statement";
+
+startTest();
+writeHeaderToLog( SECTION + " "+ TITLE);
+
+LabeledContinue( 0, 1 );
+LabeledContinue( 1, 1 );
+LabeledContinue( -1, 1 );
+LabeledContinue( 5, 5 );
+
+test();
+
+// The labeled statement contains statements after the labeled break.
+// Verify that the statements after the break are not executed.
+
+function LabeledContinue( limit, expect ) {
+  i = 0;
+  result1 = "pass";
+  result2 = "pass";
+
+woohoo: {
+    do {
+      i++;
+      if ( ! (i < limit) ) {
+	break woohoo;
+	result1 = "fail: evaluated statement after a labeled break";
+      }
+    } while ( true );
+
+    result2 = "failed:  broke out of loop, but not out of labeled block";
+  }
+
+  new TestCase(
+    SECTION,
+    "do while ( " + i +" < " + limit +" )",
+    expect,
+    i );
+
+  new TestCase(
+    SECTION,
+    "breaking out of a do... while loop",
+    "pass",
+    result1 );
+
+
+  new TestCase(
+    SECTION,
+    "breaking out of a labeled do...while loop",
+    "pass",
+    result2 );
+}
new file mode 100644
index 0000000000000000000000000000000000000000..57436770bd007f90b3e4420eb03ed8e7257e2be7
GIT binary patch
literal 11729
zc%1E8PjAyO6i>S`{th@JA(iuJH^B{+vaKsx(dZ`H4Q|Ly+}12jisRBvd<f3)9k_Ah
z&IjOv#DzNtG`;}BcGEU(?IcZ;{@Z$J6es@qz31P1&(BVpG#fh1q-zjpnFDNAF{mqX
zMN!J8cB*XW3(ty=imKUwN_w5Ylh%<%GI!S$WtF~_c6L7k7=f}5cc7{R3<xp}4yE<(
zE#(*)T0hn=`bx|T%fuWCX$mqB=>j;r<TYpzR6!7PI0MvsLR$nQqnf!)+l#quDZgJx
zuiI_ubsNNqRpih15P=xz9PS;^n?rclnRaHYhIE+R*myXM*}Za2JKdHz9(ETYpf!I^
z)|yAT7sarwxk4Z0vd_0(KbQqW{+pa3FVXf=zO<JM#f<kkDO0Hw=VhXWNG$;pIw(UO
zY6;b((ilycum~WqPGt+#*twGihL%NbTI}F+Nny8LXrwIA^<G!rL#0g+1~utb+D<jZ
zqy#ND4I@(_-cteKYLlT@L6x~p+gq5<`z~#TxMc2`)nT3ZWPOSWSi6l3fKMI5v8kjn
zy-i>pR)~U8wMGWVWk74afg*;SLi}bA5^{Eg=f(pbHDB~&R^KsSvS=b<T~Wlk0&GPj
z&}vVh{qh^A3LKn^^_jl6G$a-s8zWW94Tb;Co(Lx=%+BoBQB1~<3%bk&T{b^#2B(Y9
z&KGo97`p6^Ll>W&&o5oTY|`axV7eSkfG*yd?0k^tUVJ9W^FAgZ&!O8AoVHfbNmoMA
z$~V~^EH)-J!Y1cbHFLV#w8=kyA-qi6$;dVE)25-ajS=Ub2}44f(xCTsOTIrCkq7)1
zg-@SF8J}bKg3$-kHKso!4&N~v8}14tgP}=evl-S`a_gpg+#{3sChgy4fyn~$a*IBy
z8tm<0HUDFA&A(%kfyiod5>O{+z~odYOsR$}M>o+@Cp?x!hZthmSn%oba=nOQFD5Fa
zpcW;lTjX>^NMT(hkSj=^$z@INh3vi}SjhT7Ug>ftnxu3_6aMm`Tmg@0zKC>;=7@&1
zBln!|rvUFa<R}L#_G}AG%~p3pwML$s?~A%%7?bzWE+!5e8nvs;O5HNYE_(*XVirgy
z7ui;^DAVzf?c+k*3yi)N{1i(POI)*LrQeUa&#N>l!naMQfPL;i#t~g6Y~@C-!Z!s~
zc%OC{0!MK35pBoK?u+40VR}z=`(kX#$4>6Ez>+O+zQqI!i7A{R-=Yt6(`+RC?hVWX
zk0L6#WRWkj?X;;f^iO;?7<!}2i<FO@uz8^8=w)VvhYCzDn$pTpu!842_#rA&=E2N<
zvWc&aagPkl#&6%#;;mh`L9IXq>dgrUxYIGDB%FAMk;#qfp>kY4c)K|Z8l))}=p&Wj
zrb8g%W`Othx(j{X0+IY<C)dd6fE@Z})YYp!GLj4H?W^QdK<W92oc#9H<8!?B#Pk1G
Pid|5TXKP8W5fbk|Lod^R
new file mode 100644
--- /dev/null
+++ b/js/src/jsapi-tests/binast/parser/tester/dowhile-003.js
@@ -0,0 +1,63 @@
+/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+
+/**
+ *  File Name:          dowhile-003
+ *  ECMA Section:
+ *  Description:        do...while statements
+ *
+ *  Test do while, when the while expression is a JavaScript Number object.
+ *
+ *
+ *  Author:             christine@netscape.com
+ *  Date:               11 August 1998
+ */
+var SECTION = "dowhile-003";
+var VERSION = "ECMA_2";
+var TITLE   = "do...while with a labeled continue statement";
+
+startTest();
+writeHeaderToLog( SECTION + " "+ TITLE);
+
+DoWhile( new DoWhileObject( 1, 1, 0 ));
+DoWhile( new DoWhileObject( 1000, 1000, 0 ));
+DoWhile( new DoWhileObject( 1001, 1001, 0 ));
+DoWhile( new DoWhileObject( 1002, 1001, 1 ));
+DoWhile( new DoWhileObject( -1, 1001, -1002 ));
+
+test();
+
+function DoWhileObject( value, iterations, endvalue ) {
+  this.value = value;
+  this.iterations = iterations;
+  this.endvalue = endvalue;
+}
+
+function DoWhile( object ) {
+  var i = 0;
+
+  do {
+    object.value =  --object.value;
+    i++;
+    if ( i > 1000 )
+      break;
+  } while( object.value );
+
+  new TestCase(
+    SECTION,
+    "loop iterations",
+    object.iterations,
+    i
+    );
+
+  new TestCase(
+    SECTION,
+    "object.value",
+    object.endvalue,
+    Number( object.value )
+    );
+
+}
new file mode 100644
index 0000000000000000000000000000000000000000..e2b7f4de99b53c54df059a4e92ca524cd9878d59
GIT binary patch
literal 9961
zc%1E8&2rN^6n07}FwERx0ei!+fB{<mRvlBIAq-_o?i~`!f(4`4N~)=18Cj-uhGEHu
zH4E7DE<6JZcm<w-xkqy1IEm~ej@%!nT{Pn(=}6~0pN`Iv?T9F#c+J_y$Xol5vkpgH
zYr(Rt7W4M3^^N+|#%jZ50k)hK)yJVE6l)hQTh>|V<)nviAx=<>;z!t}h$BImuT*)1
z=g`_AzBjDv7j&si(#5z^MLdi6L?jB*LpD6@3(_W-D|J5V4i+5>PW;Z=DUdg6)#k>(
zb!Vj~b5?pv(z+U|ZIcMh5moBmA{ve9lMr}pcbiar<L1q~<2sXHWodud38jzcFQFis
zKlT^Rt=jX3DKwX$p;mqN@b&G(0OX(j1M(!un;Xr|nh_YUD^e~mFDqW!yF_f;$fl@;
zDfVoa!D{>n+o3=LcVTTt!LGdvI1WR=w9(hER*Dn37NjbobTCwna6yD|QAp2#94zFb
ziNib#OEY0%U;^TuNNNd-8gmZhyBz%f1f-ZZ*(U3Z+oYWJwW49|I`I+TOD#^i5@LEx
zV2azq;-s@JM(34^t_>zCS>*x5Z`ojHv%}mr9@$Yxi+&RIN9?7HCK;>?pvS@}>*_Eo
zCvM*f@~^L0XZJ|=F`p>~*6;g&JC+}&z;ZG;$H<N&`%{PPi@Z1n(l&XQtW6g_ZX}ac
z<^=uNb7ky_^AF}gHZ^$PkexsGSp>P5Iqi8I`L4``(`oWzoZANQ+zqo!LgW7aqVxBZ
zCom;lqA`6&O-r%gu&YBcrovD<M47uY@cQHe8lShUQ==9ZB+x@>>iDvEv3%@a;e1TW
zNj}z7WC11Yse^+=Iu$02sJLY$MU`7HKw-EqHOygvO;h|Afb9-6v=KxYZ`E#bwu5aJ
z37fT(IyfnR?Z}TeI`-(^Y$$KWx`y|?njqf&1>>Uxyv<lX4l_rbZ%dk(+6%)PJ@Nq2
z8Zh(3?-w-_7bNJ5z=Pf+c}POetUOJ2x>mgE%!qQi)na=XA%&*P{1Cs1(hD@1iC)ae
zMCU2hoidMx`403v_-E$m=Zc1->l~w$mPrNd5stZLj;fVj%w4syYzGX|VHUMvc<Lgu
zCDEPiR$a1{^5Qi4#2hMy#xO=P@-tzm9G}Q$5*Y(7H-LN{@0L{Wo(8$Rmad{Os{r~A
zE?z8908M>CdNi(tkA}*bUKZN%TbV1GYiF}*Nr4qgC~U{<h4_TiyTB^tR<y4gTV!6P
zZ^$F1T^${0jA~X&j!{$c;gZbmWHJE{{VEUH>J4abvr)!^lFu-csn=i1msf{`FITmE
z>8GWsH|K|$Ho8wF^t3UR{Z5;K<xeL$7e8+y9$z(MuMVb$J#iHUB1&XKMcPMz<sUh9
z-aT?2X|mtb=CU}Ya_n=LoI@n*Hb;M0WFMJ%AtR3$z2A&4AyU*7x`qkg9K>E$|35*`
UlOt})f<6~uJt8yPt=|X#13xI71^@s6
new file mode 100644
--- /dev/null
+++ b/js/src/jsapi-tests/binast/parser/tester/dowhile-004.js
@@ -0,0 +1,67 @@
+/* -*- tab-width: 2; indent-tabs-mode: nil; js-indent-level: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+
+/**
+ *  File Name:          dowhile-004
+ *  ECMA Section:
+ *  Description:        do...while statements
+ *
+ *  Test a labeled do...while.  Break out of the loop with no label
+ *  should break out of the loop, but not out of the label.
+ *
+ *  Author:             christine@netscape.com
+ *  Date:               11 August 1998
+ */
+var SECTION = "dowhile-004";
+var VERSION = "ECMA_2";
+var TITLE   = "do...while with a labeled continue statement";
+
+startTest();
+writeHeaderToLog( SECTION + " "+ TITLE);
+
+DoWhile( 0, 1 );
+DoWhile( 1, 1 );
+DoWhile( -1, 1 );
+DoWhile( 5, 5 );
+
+test();
+
+function DoWhile( limit, expect ) {
+  i = 0;
+  result1 = "pass";
+  result2 = "failed: broke out of labeled statement unexpectedly";
+
+foo: {
+    do {
+      i++;
+      if ( ! (i < limit) ) {
+	break;
+	result1 = "fail: evaluated statement after a labeled break";
+      }
+    } while ( true );
+
+    result2 = "pass";
+  }
+
+  new TestCase(
+    SECTION,
+    "do while ( " + i +" < " + limit +" )",
+    expect,
+    i );
+
+  new TestCase(
+    SECTION,
+    "breaking out of a do... while loop",
+    "pass",
+    result1 );
+
+
+  new TestCase(
+    SECTION,
+    "breaking out of a labeled do...while loop",
+    "pass",
+    result2 );
+}
new file mode 100644
index 0000000000000000000000000000000000000000..3e1e3c360f294c87ce6f2ddd74357e174153ce5f
GIT binary patch
literal 9175
zc%1E7%Wl&^6m=g^5F0iKv9nmvMWIg>iONJYX@FE|Kuuc23QgikGOA-+<1wK>!3XdU
zd;m)p`~yNr{0ZXDI1f7+JFR28DQy>NGLJhmXU;uy?~KM=+rT-kjgg*vORW|~9c5lo
zl)9y#D)~}nzq(UxST<I)HPJ>hh{JN9RYkcCtu%l4V?+t68+Z>l3`7wlmMKi>!{3f_
zLQFkq>kl-Un`FzP!W7XJViGnm;O|n>vB^l2U@FX+s56|j!zeLZxg{vC77Mk~n~Jv9
zE7R6`M*Oy_qOMFBrpOTHJ|e>%vv-HD&g!;_fuF3eZ;#s?{1+?jcUutlX!I0fqWLRZ
zG>?mi)uhn82^Gb{!S096Spf2Hc0k^M@>;1@E+zuwV?oN*)m6buwM$rAMXG`7*uc8l
zuwXW(i&cjqhC48~SpfTYc3^Ya${)R|93A9~hl%laYvbwWv#ms-EPk>nb{s&g+TSWM
z2Rta3LQp`4G3+XOG@uCMX#fMVP*%fE6j@SR!u)Uvh_+mA#fiI^yHMVxu%oY`6w{hj
zwp!zB5}Wm9PQuANF%doWO^$CR9FHD74cuf3C9O6a9hVzg84i@P$qP6Nd4(Fzj^q?^
z#G}%u-}D~D!-NVr57x_Eg)hQ~reDM&l(Tayz)RO`aMAal2MeBvhenu5qZ@EG!)lxi
zft(!aZr_tcx-s`;7pht&ZynFupU3ugUQVKsserIj(&#%n|LYq`k){_12^T;Z&^6db
zA_B<$!$yviiFeNeY?3HF25iev(L}`9QFWrLrp44YVGyP2SVc|fs}j?MPs6h8D}$^g
zj?9dZWiL+%N~B00JfWN-#j#wNal-Qabx9JW?OE@5>Lank4>0Kx&OPuqSkdC>z$t<!
z+#q4_e!_tBV-YUJ=p^Ve-U^bR{D0=Q$($n(1A<uRyP<;Ts8+Ktg=dQ)d+~8#Ykfqx
zLg#xj2UR>dO~ac)bo6p0;Cul#e3Rr6g0TCto1pj+Zb+6mg>xj8x@&S~AK5x=)Cl+k
zlYRI{4e~}S@h=0yz?+;VjJb=zPI>?0T9+~k^B#=_(19~Uh{ajYj0AwK;BHFFaf{yx
zLHt%g4h|8I<vB@Eb^(`R5BNB4rw+)&7Vz9f6<x&j_ta^4s>*oTDNvdb3f$+>w<LIz
z=CO%}BT2@u*Cff7Bt5mBVUoz+X48$a&Kev<562ni{XRz2yN$+r1(xdciVMhQ?w~A?
zC;tFg_`}hJC&Wqj(NQD{fA@%Fwa?_(OT1kE!?W`63?n>rkJ6AR>O{ptK9D8Pjy`5H
fS;d40K93~g^E<R$^6hHWzC@xQj&KHO$(`>XWaOwH
new file mode 100644
--- /dev/null
+++ b/js/src/jsapi-tests/binast/parser/tester/dowhile-005.js
@@ -0,0 +1,73 @@
+/* -*- tab-width: 2; indent-tabs-mode: nil; js-indent-level: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+
+/**
+ *  File Name:          dowhile-005
+ *  ECMA Section:
+ *  Description:        do...while statements
+ *
+ *  Test a labeled do...while.  Break out of the loop with no label
+ *  should break out of the loop, but not out of the label.
+ *
+ *  Currently causes an infinite loop in the monkey.  Uncomment the
+ *  print statement below and it works OK.
+ *
+ *  Author:             christine@netscape.com
+ *  Date:               26 August 1998
+ */
+var SECTION = "dowhile-005";
+var VERSION = "ECMA_2";
+var TITLE   = "do...while with a labeled continue statement";
+var BUGNUMBER = "316293";
+
+startTest();
+writeHeaderToLog( SECTION + " "+ TITLE);
+
+NestedLabel();
+
+
+test();
+
+function NestedLabel() {
+  i = 0;
+  result1 = "pass";
+  result2 = "fail: did not hit code after inner loop";
+  result3 = "pass";
+
+outer: {
+    do {
+    inner: {
+//                    print( i );
+	break inner;
+	result1 = "fail: did break out of inner label";
+      }
+      result2 = "pass";
+      break outer;
+      print(i);
+    } while ( i++ < 100 );
+
+  }
+
+  result3 = "fail: did not break out of outer label";
+
+  new TestCase(
+    SECTION,
+    "number of loop iterations",
+    0,
+    i );
+
+  new TestCase(
+    SECTION,
+    "break out of inner loop",
+    "pass",
+    result1 );
+
+  new TestCase(
+    SECTION,
+    "break out of outer loop",
+    "pass",
+    result2 );
+}
new file mode 100644
index 0000000000000000000000000000000000000000..7ab5fde070571e7caa03a24269f94f48da7076e1
GIT binary patch
literal 15060
zc%1E9Pj4eN6nB%BEufVa!3PKuoKV|^!>)uv#WoEhD5Pi;iZ~&6#!XD!aqxI3mG(<;
z<-&~{Uw|ujJ^(`Ej>MTOwrA3r&UpT2oPV3DY8sE{+3&sI`#YXC_of6Lw<ieN$6qiy
zX7Cy`000-%z6B?}!Dqt{hZdb8&^}Ug+624&_>ZRmJQTCq(c8}<!|;NjQ)CgyAji~E
zr0np!3$CzZ->3Drn6i^ci!wzD+W<S5-w}x3(zB7n@g+t~k#pd6xM`O&?2L~ei1A^!
zGwPiU+DE}y`zRn1r8QL7`j{gIi6ZwsBwm8v>ykTqGr<HMJbwHnN%QVgaXP!Lspzrn
zEmV}|pNo~|dH4CSE@{3ZE_6GeKl|o`RS@J~ixcFY7$5aU{cbH{d`*G!@bFOKvQ|-c
zf0#1lx<X<@4mr9OoT+`FyK$`uI*^d?R&|FZh7hVMuvf*n%OT?<<njy-jj_-OS%7Tp
zNh)qtW*&+08z!{+sTf6UMEi7{<Vh*(ryUI@Pp|{oZDey&mBM5D@FeJx1BS;F9$!}y
zdM{kaFv%r&XL+HOj*j|_G-grj1wSeEQ~H(OS15+MI@Ar&jiC)a3^#Ok@h!462ClaC
zvzXUR7z3pQL1%^y`7<N0Q%A|^1Hl=?Rx0uo0r1YpsfgH2fb>@rAiop<NJ51>i^B=n
z;$&@bQqqwWgjF$|?7wU{8LlQyel_M#YK6<A<-=wE41ZUQ^U}%vC!S-;dM;Y(?fUiE
zRD8d7)7u&qKujo|ivLs4a;B>v3s9C-FinABpul@bBGkGHb(P<``A-O>5#LuuwSPIa
z#q5|_-qi^+!;Et%CmkH<%Y;+P<K&bqz?4b4{I;sXvcy`Flq|57398mXK0>w2T!w;f
z23QA{Acwy5<QODk0Y}Wx@>{h&Q+oes^Ch3*G<AVo>!Hiq717!IbHqIsv#EqxluSFa
zoIzxB#u#-?Fq#noYv8wTkyW^7aiOVbI`c#j*sTzt_9a3Xf>&qW{1*LSMy%%;_YNh=
z?FAuT=Vxk&!%u}A_iBp6&%~v%BWG9Z+0_~nMicBtZp*8j47q&+aeS+&c}&I_#jSek
z@!Up<Zk1F^L^MfrtD;(pf0Hy{sysHoPq?ZrmfJTqsa?fm2*2rgG<TjuScymY``O8J
z`66`z=QWlhD9uTg#R;kpFAzcYePj|j=;L#a(<s#ASYvf_S;brXn#Q9+9<bxo&cnZZ
z8Xf{CrJ<v`dfM(s*@fS2Y8H+*5#_~r6H&MFI<)!9=cy-h_Wcya2T}btP_(PNNeU^Q
zlbX;+iai_3jSN2kUD~sw^~v@PW-LXz&GW-)!$e#z*I7Fen>$}1!<js&+JSCbCG&f;
zS}(rtBa?573lq#+7PV0eUW(Z*>8V=S5x-9GEqkR7b!;q?bVy=YRnahfu$dDV`*e)0
z1dW0ZIbXb3--n!~gY7ynRlQ4S?7-d}>Pd|`=7Q`}-P4bam3L1fTVJSq+8m=>4`b84
z6Qnn`oOD7i<$phi%<l^!dmz>h4ag?|f{HuK?lZTU?+aFGUpZoHq;Jn3?!YPc^jrQ%
z@b*S*%Zbiz{^^A*rxK|XV=rlBdbtS6#G7nc;W*R4(reb72hUmcVfypX48M`y%?LhI
jUZe^>lZP;a&zx75d?cyAUxVPxYysuvswi1BYoYu<)>9TL
new file mode 100644
--- /dev/null
+++ b/js/src/jsapi-tests/binast/parser/tester/dowhile-006.js
@@ -0,0 +1,89 @@
+/* -*- tab-width: 2; indent-tabs-mode: nil; js-indent-level: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+
+/**
+ *  File Name:          dowhile-006
+ *  ECMA Section:
+ *  Description:        do...while statements
+ *
+ *  A general do...while test.
+ *
+ *  Author:             christine@netscape.com
+ *  Date:               26 August 1998
+ */
+var SECTION = "dowhile-006";
+var VERSION = "ECMA_2";
+var TITLE   = "do...while";
+
+startTest();
+writeHeaderToLog( SECTION + " "+ TITLE);
+
+DoWhile( new DoWhileObject( false, false, 10 ) );
+DoWhile( new DoWhileObject( true, false, 2 ) );
+DoWhile( new DoWhileObject( false, true, 3 ) );
+DoWhile( new DoWhileObject( true, true, 4 ) );
+
+test();
+
+function looping( object ) {
+  object.iterations--;
+
+  if ( object.iterations <= 0 ) {
+    return false;
+  } else {
+    return true;
+  }
+}
+function DoWhileObject( breakOut, breakIn, iterations, loops ) {
+  this.iterations = iterations;
+  this.loops = loops;
+  this.breakOut = breakOut;
+  this.breakIn  = breakIn;
+  this.looping  = looping;
+}
+function DoWhile( object ) {
+  var result1 = false;
+  var result2 = false;
+
+outie: {
+  innie: {
+      do {
+	if ( object.breakOut )
+	  break outie;
+
+	if ( object.breakIn )
+	  break innie;
+
+      } while ( looping(object) );
+
+      //  statements should be executed if:
+      //  do...while exits normally
+      //  do...while exits abruptly with no label
+
+      result1 = true;
+
+    }
+
+//  statements should be executed if:
+//  do...while breaks out with label "innie"
+//  do...while exits normally
+//  do...while does not break out with "outie"
+
+    result2 = true;
+  }
+
+  new TestCase(
+    SECTION,
+    "hit code after loop in inner loop",
+    ( object.breakIn || object.breakOut ) ? false : true ,
+    result1 );
+
+  new TestCase(
+    SECTION,
+    "hit code after loop in outer loop",
+    ( object.breakOut ) ? false : true,
+    result2 );
+}
new file mode 100644
index 0000000000000000000000000000000000000000..6e4eae5cd16fa481ce41886a094ae1193b2930f3
GIT binary patch
literal 21270
zc%1EAPmkj?6!*;T3@oq+ZXD;f2gJ;>i-fc)Bkgnw6qOdyYB(adaa-@Cc5xiah!qF;
z1c)2ofg2xy8#iuT&`Mmn@Bz4CyPY;ooWD)lBuy_-o%q>)@ArOw_H$C>_S8h@wK0Om
z`Dcud7@UAZ06?D_H{hb#{-pb)JD^hpYG>-1nu#rb{$Cq_H^oymXZ0({FzlP?5)Dkq
zAjgy_QO4@O1+FnM)@A)I9yth;MVS(X4S)&eO99R*O#=~*hZr#>j=;&P(-vo#jLu&Y
z<=sZT*X*=wXN$7h*+Pg@R#)9?VU8FymAJ2=X?x_oDo00WV{D>#9zJ~ED|2~OBfYJ5
zN6BNsT}Y_SzqYH*tH$Tuw6u9FZZztjKK=4h9u)avdx|^~<-KOF)ksB+uP9KSo}MaP
zrmD)uH&cczOK7aiAx9H2GSv^XEZ3@_4o!1aRn-`XB7~AE?4BsMIApwsEFLhz%!Y8d
z8Ukb^TS~E#4(1I}K4ZeFAB$4NdbCAH-Z3d-{d}Oo<OL>>-8ecYO(__A4o?#eIbe7+
z=I(Z-ptn~IWh`<B>@07b_@g5|Cv|yLvEV1Qeo4R3bA=kvP=~rUnq}0X`>PIh`p?in
z<KU`WzlrDWdYpk$6G3u|4f(qjuQSKaA9q8hoCuoa6G6X6K#+%B4k{q+4oEzoK>8yy
zAngo(`+=u#^NFWFbB3q%P`Dqk`aYkqdQl2k1=QLPbQL(7%2hnR_dqIeG_^BiRCp?7
zG_`AhRIsY%yDgzGPht7ysQ_sK9y<&0p-l!d@#D-1NlDlMQ}KUd`R6|~Leql-4Vog3
zpW6K0;2rbmf;73eWP%=VEJ!9DFwu-`0naszn{;r!LSlFZ`^RIAz7vA_skk*F^66wL
zlMnPMlS|576h{?;z?4bB{6^cE-WXesYGITT!45LZ-De11cWmAv0U5>Apql~l?2(On
zGn%%If->@zjbcm%OB;<DO5Kw*lv`OTNj$2o)Fi3d$A2bsUo|tEV+PZPZn}ssL7nY|
zMBx#C2WTSx2$GMNsL3X1_~`)v_wpSyMAW}%&^E)O#wZJi!thHh#e_t``>U9csD6JH
z^IoQkX~8}+k+IHIrYxK@RzfB|n#T=T!^7)Svm$E^Q_7XMw(;21`qAqE9C;{zxGq99
zH=x8qU)i!u*K)ErV#CR08!M{VD*Zt>i(bfP*S%|wqx2z^LQqpOl886o25tQAhAS{3
zdEkm?y1koy;EKpA`-&?H&lT}P(1cu3R;P)*h|jOX_;7CJFq<t+VmM4%n=+d%0m|yC
z33o;F>#)@fm&ua3a1NW$GT9w$cv+Oo7v}2F^4oa*?l4&vI*S);6)Buhf}WfN%dAsk
zV7XrnO&6FIM?zCHMuY{*z?R8&4l+A7k~})|T@Yt?_GG7?_3NFyc^041ZFyFUj_|-E
zBf?Z8jr9C^nhC=KxNFe{7Pu=>EI!hmb0{Yt{c|@Td~|=sM>6;?G$U0sSJ7O-1{i6h
ztXLebI|Wrv4*xeN9RAvp!-v#n6@^z6p3{MqlEPzbpcaeBHT#1;M84%?lOfGXn9ToQ
zK{h{5iHx=ws<kMt!zs6yWox_Czlh3j$)+9J@SK%&7~bdAk|3gYY*o9yXB0T|I7E6r
z`W6&Sgz-x_io+avarGRs^-rP&IN{>zeK%qK#v{KQkG1W)asom7U_oorpjao!eHK@r
j&!#yBz;!o5K2SDyhB<o0lgBRf`r$7WWn0mVo>2Y=TALMt
new file mode 100644
--- /dev/null
+++ b/js/src/jsapi-tests/binast/parser/tester/dowhile-007.js
@@ -0,0 +1,97 @@
+/* -*- tab-width: 2; indent-tabs-mode: nil; js-indent-level: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+
+/**
+ *  File Name:          dowhile-007
+ *  ECMA Section:
+ *  Description:        do...while statements
+ *
+ *  A general do...while test.
+ *
+ *  Author:             christine@netscape.com
+ *  Date:               26 August 1998
+ */
+var SECTION = "dowhile-007";
+var VERSION = "ECMA_2";
+var TITLE   = "do...while";
+
+startTest();
+writeHeaderToLog( SECTION + " "+ TITLE);
+
+DoWhile( new DoWhileObject( false, false, false, false ));
+DoWhile( new DoWhileObject( true, false, false, false ));
+DoWhile( new DoWhileObject( true, true, false, false ));
+DoWhile( new DoWhileObject( true, true, true, false ));
+DoWhile( new DoWhileObject( true, true, true, true ));
+DoWhile( new DoWhileObject( false, false, false, true ));
+DoWhile( new DoWhileObject( false, false, true, true ));
+DoWhile( new DoWhileObject( false, true, true, true ));
+DoWhile( new DoWhileObject( false, false, true, false ));
+
+test();
+
+function DoWhileObject( out1, out2, out3, in1 ) {
+  this.breakOutOne = out1;
+  this.breakOutTwo = out2;
+  this.breakOutThree = out3;
+  this.breakIn = in1;
+}
+function DoWhile( object ) {
+  result1 = false;
+  result2 = false;
+  result3 = false;
+  result4 = false;
+
+outie:
+  do {
+    if ( object.breakOutOne ) {
+      break outie;
+    }
+    result1 = true;
+
+  innie:
+    do {
+      if ( object.breakOutTwo ) {
+	break outie;
+      }
+      result2 = true;
+
+      if ( object.breakIn ) {
+	break innie;
+      }
+      result3 = true;
+
+    } while ( false );
+    if ( object.breakOutThree ) {
+      break outie;
+    }
+    result4 = true;
+  } while ( false );
+
+  new TestCase(
+    SECTION,
+    "break one: ",
+    (object.breakOutOne) ? false : true,
+    result1 );
+
+  new TestCase(
+    SECTION,
+    "break two: ",
+    (object.breakOutOne||object.breakOutTwo) ? false : true,
+    result2 );
+
+  new TestCase(
+    SECTION,
+    "break three: ",
+    (object.breakOutOne||object.breakOutTwo||object.breakIn) ? false : true,
+    result3 );
+
+  new TestCase(
+    SECTION,
+    "break four: ",
+    (object.breakOutOne||object.breakOutTwo||object.breakOutThree) ? false: true,
+    result4 );
+}
new file mode 100644
index 0000000000000000000000000000000000000000..8ab757348fe2a72cf382c4fdf4aaffb7d1fbe7af
GIT binary patch
literal 6518
zc%0o>%We}f6rH9mv{I2+RR}h-1R>N`>Z%HnXc|PS5D*hZLI_pPjFY%^$Aj%@8a{yy
zdp?1WU;#_MfF*x|?MX6|>BLE<P9J2^G=AL2x%VDlyU4=;!&0#efmeD<Nr!?{t6*7H
zi+Fu&zgj<Z_8gZ4&?;`JHARdVFa6%MtTnN!nB3k36oD3o2hhcU0*;8UM0xRVW}P74
z8<+K0ELoZ+i%=yBc^2{!9|=fqsd~`osEr_1;(Tx#8_hUHey4O-j60Qbqxz;^+!~A(
zw+2FzvK%#6LmX0omAEs2!wd56i3xb_!a(}=Y<qj>qSVp1@^!dzSxKaNBXZ*T=W6k6
zR^B<L@LUxW$86_l_a@+YXX(mtlzum=jatPBin~%8WSrS;LhVCv1{{~7fZGlSz6Yph
zSB5#u_H4ThFs@KaGElq(=#}$;LdJv+p_Ri^fq}9Zj>a>=QpUtf<PKL1L6{fXburF3
zpj;xN@o-@-6k-<u?SxVa%j?X2G2Wvh{;$L+qzzIdor^xHV13KV-hJc)+D{lKLn+8T
zN@NV%+@h${<!QZA(9>Aaf<;~fk;@5ta(0+2=Tt>4KK(9VL3hNs6ndmP-EOe`D`K3_
zUHmUY-<1rRJT#Ugrk~gv83cB$#4vGBVhpEuXFoP9WvhvBybx0zU#`wq<Ii)~xP(V2
z3~@%}a+LTZG0_GHLvPRai9KrDY~H1$=U+)~Umuw3$xc;|XFbGth^G7uCC!3MgZ5)U
zq+>0ayH;299avb`7Ka5!pT&P!=**qxKeIaBn?yUW0q;&vtif3@21UYUT@1!O;BL2!
zLCBzjJ^=DAXNs&8gob&lxoj?e4*V2C--W3d#=F?K?q9;ZLR$BKLv{~T{27yECkYPr
zY)$oNDY_L@HDA#l5T5GGN$VK8+zP04iuV^-8#73e?<t%_0iJ<0^o^t;PD$>Oc1OQ!
zkVkD1^y<QqRAoIJvhoCUrgy$`6Ui5YL{f*n1>N4(2KVwZU>Vt>9QiKvt)v|>c^|qR
zH^3QLZgX(NK7L|<NHlbaWnAUVlF%inS!R^|(WuDz*xumDWS)E$$X{BudUb^n^)&$<
zr@m;o3<4fz)8Tso>_&nPvu=G8TSi@ZPkwCB@{R84R-gQugwQ{>O}vO}PrljSyrRIV
VzhA}5)dbSH;M9UPKQP%9@(&WULYx2q
new file mode 100644
--- /dev/null
+++ b/js/src/jsapi-tests/binast/parser/tester/exception-001.js
@@ -0,0 +1,45 @@
+/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+
+/**
+ *  File Name:          exception-001
+ *  ECMA Section:
+ *  Description:        Tests for JavaScript Standard Exceptions
+ *
+ *  Call error.
+ *
+ *  Author:             christine@netscape.com
+ *  Date:               31 August 1998
+ */
+var SECTION = "exception-001";
+var VERSION = "js1_4";
+var TITLE   = "Tests for JavaScript Standard Exceptions:  CallError";
+
+startTest();
+writeHeaderToLog( SECTION + " "+ TITLE);
+
+Call_1();
+
+test();
+
+function Call_1() {
+  result = "failed: no exception thrown";
+  exception = null;
+
+  try {
+    Math();
+  } catch ( e ) {
+    result = "passed:  threw exception",
+      exception = e.toString();
+  } finally {
+    new TestCase(
+      SECTION,
+      "Math() [ exception is " + exception +" ]",
+      "passed:  threw exception",
+      result );
+  }
+}
+
new file mode 100644
index 0000000000000000000000000000000000000000..2a03114aa34971b4bab34be4985c222a69e171fa
GIT binary patch
literal 6710
zc%0Q(&2AGh5Z)#&wERfiKycY32%)x!1FDutGz}tE2#AexK~OonPU6<xU2JdD@Bkd)
z&O`7LJOxMIgt60PH`|SqY&QMrAx*~ijOUw~&tqF63@9#HU5wn)2j+JeIyMT1VYGa=
zZ|qj<`}U6Q_yIPoO*O}&gp1Pm`-ZU&v#j{?CSnA&DBi;kMGOhzdrFlX{pQ9I@!WA;
z|6t0>G+jPZs)%b4kBE_i_>!uNJwe(8Go{W$$I+&_V8rW`Zi3vdlpEFeb!+oXW^JA+
ziR-e}Sd9qG5LN0<5Dm}iy9)#O)WL!D?b+7W^YdCq|CO)9g+-;2={J!P&%YOoXS4Fr
z&I`{q7&zqH2QRJyj<;4W3`gmAquQudazXK>)P}j>X4_}xJ~~0R!$=@ZTOiLx%rz^+
zoaH-a89oII9Z_M-PeF14;47yA!<>U1uq^N~;GlMmNAgs_%81fvsaoNH2;;2qZh)K%
z#Dqje<Kfa=C`2wG)(NE+p4FLqAn!5Afwv&Vtl`)E&Uv3yuzsaw@GkKX>&G@HLkR>w
zNM?%L!eFG+6-m2N(bLG#l2u*;nacrla(3ib(us;%e)=t5LAOCZB8r3U%c!Bnomd6A
zn41CKgq|a*GJbj#2b4dtN6H)Bv0|gXa})tNy;nPeE~S`cfs8SE4MQDI&dyftuQFHr
z4UmJukfww$L$N=Cfi@x(yE~@mo1-Sq6kX=`ybDS2%L8*G-nZ)UtcR2i(UgBfO|#(A
zVEqUX=~zqVuF-`qgu?FHaBNWW4ZfwJGk>0^op#qQG_&S;9rto4$9G6{r)PfR_!^5@
zEH=7i8K-&SbjuWl94mwaB(I=(QLBn|&V<@5=9g$T{u*M>!HHN#tN6I>Kd`+*()QKQ
z))`s(fr>xpl9eSB<DRLZsWd~^f>Y<~Z1#MSxJvk~L+l76VA3hkUt(>{phZ3d34aja
zxyfTmoDyFn_dWPs!(!0HVYd#BBr5CS@Y!SnI@6o=xryXQjzltk9^`r9Tt9nGC?lSd
zEy|JKU~e_)NS;@?>v3tFk>zBjc|dLQxPAP@{1odx2~W9!=1W8i(6h`c^K-5$=VSaF
zPpA9|Xo(!AHLEvQ7|~x7v2pqvh|4GtVLBy#0buXMC~@LFbz%>xtMkbZC0gRqJw59y
nK$8{vhr)^P2ihZWw)eV0^wj51n7I~%I}@B*(B=mwy-fZCEF^>+
new file mode 100644
--- /dev/null
+++ b/js/src/jsapi-tests/binast/parser/tester/exception-002.js
@@ -0,0 +1,45 @@
+/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+
+/**
+ *  File Name:          exception-002
+ *  ECMA Section:
+ *  Description:        Tests for JavaScript Standard Exceptions
+ *
+ *  Construct error.
+ *
+ *  Author:             christine@netscape.com
+ *  Date:               31 August 1998
+ */
+var SECTION = "exception-002";
+var VERSION = "js1_4";
+var TITLE   = "Tests for JavaScript Standard Exceptions: ConstructError";
+
+startTest();
+writeHeaderToLog( SECTION + " "+ TITLE);
+
+Construct_1();
+
+test();
+
+function Construct_1() {
+  result = "failed: no exception thrown";
+  exception = null;
+
+  try {
+    result = new Math();
+  } catch ( e ) {
+    result = "passed:  threw exception",
+      exception = e.toString();
+  } finally {
+    new TestCase(
+      SECTION,
+      "new Math() [ exception is " + exception +" ]",
+      "passed:  threw exception",
+      result );
+  }
+}
+
new file mode 100644
index 0000000000000000000000000000000000000000..f7fe5ad49b047e9d21df6a68485602b5fa80e5fc
GIT binary patch
literal 8413
zc%0o?$!-%d7@lslJs^;{pdzH9Tv`EL1YAm5iKaoMidw`(y&zP%Gfv{x9S^prZFmSC
zfD_NaD{$czIPw_WusvBOiQ`O?nQlEai9P<8&;Rn-ljC84;a08&fw%R6k}3tK)}&=w
zN5rdJ+r_<IXTxzx0Il4rdM1Yv<6A!-Th^R-Di>dV04M@S816t90}41Iz7plNe>3X@
z`Cg~2zv7XJL9z%{qL61HAMuue_>!UreU2&!QYFp@r){Gdr^v5v&5CiSkS`ba_j0R^
zvD|7yNL-eq=1Pb|3a}D)25{IT@2;4D7cLB>Z!gx?UiM0DeJWp@3#XJsYBpj-JpWuS
zo(F}GPFi@*h>2sie)#G-;5a*RX*f#1%f)i3kP3>gr8LMmvnzz!yWk8sE=2*i9S(dC
zP|q$jW0q~$Wk9Qt7bqnf7{@@pa1l_*m{20ra(F60P$t9HxE8HEz_`6st#HK<grj0R
zFUA=MluJkq9%kmkWZMM+btt8<QJuLj#?Pq;fcIh)(lRNLYOhafv%c%XcN_VD)?>!W
ztrXQgiewBc+@h#j<K23tpl5AG8H>DvN-iht{?U<MK6hnQ_Te{v2FXSrRf)s(t4N^n
zJ(w2beCYIl7y7O&lJUMV6&3rw>?l=eJJJjj_oR*DV2bwbfu*cXV?*AGsj4rZ9xcx|
zN6zy*Vq7Q;v1ac^Nb^Txq5=?x-iGZHyT#pXUZdpPzm({{Ixy$sbk&UKUWjoMP5IZ9
zlmwSDt+xS@jvdL^wQ7QVU}0TFGz^Tsif=k}hK}=pGq)wqqpt(@1)gU_Eu;lb9}5)F
z`?_;Q!n~7)){rK>^j+}!XWI_pUHd?ej-kt~fJ(u<KF&5I350~rg_C}JsuMbzSD9fU
zN!~Ug7=i)SDq-yt_He@M0ZfhPC4>0NDbnqU);=`4ql3gcg{gIQ!pYrQ9)plURU85!
z@4?byd1^mXrgsNZnrb{^Fgfr`2z?iJ1yp+#>(u>Am^az2`_^#8hid;BlN?d<LU?W)
zNRv*{jbM1!q=F>KjjW4DMl~hAM%o?yE<qlhC!x0|9O=reg(k=9gU;YfgP{w_)0y-N
zNp|dXu5qWC2TT(!%8|S{<xh7zlIB&?&A2?f86p$b;)NE!us3aARN`pe(qauQF26~o
z+&^!rSZP)ep{qeVS6Y;DWjH3CQ2CQy<x9)<r`W{=V(DE=4(JYJ_#so>{+z1F;o5MD
zlp+1DkYQsnsx_;dZ1toAKs$R<G@J(k5A}WOrvUa|tWRlAYNq;XxOC`$hi<$yH8zTv
zDLwBi&B<XtJ{rO)wovo>$#8yZeD>a18@W#7bHEFtC?eGV-{Q&HY`4(37iPQ-h-%NA
H+MN9l<rBGO
new file mode 100644
--- /dev/null
+++ b/js/src/jsapi-tests/binast/parser/tester/exception-003.js
@@ -0,0 +1,49 @@
+/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+
+/**
+ *  File Name:          exception-003
+ *  ECMA Section:
+ *  Description:        Tests for JavaScript Standard Exceptions
+ *
+ *  Target error.
+ *
+ *  Author:             christine@netscape.com
+ *  Date:               31 August 1998
+ */
+var SECTION = "exception-003";
+var VERSION = "js1_4";
+var TITLE   = "Tests for JavaScript Standard Exceptions: TargetError";
+
+startTest();
+writeHeaderToLog( SECTION + " "+ TITLE);
+
+Target_1();
+
+test();
+
+function Target_1() {
+  result = "failed: no exception thrown";
+  exception = null;
+
+  try {
+    string = new String("hi");
+    string.toString = Boolean.prototype.toString;
+    string.toString();
+  } catch ( e ) {
+    result = "passed:  threw exception",
+      exception = e.toString();
+  } finally {
+    new TestCase(
+      SECTION,
+      "string = new String(\"hi\");"+
+      "string.toString = Boolean.prototype.toString" +
+      "string.toString() [ exception is " + exception +" ]",
+      "passed:  threw exception",
+      result );
+  }
+}
+
new file mode 100644
index 0000000000000000000000000000000000000000..c8b2db4aad276c6a2ce96e58306b214ca8c2a35a
GIT binary patch
literal 6792
zc%0Q(-EP`26i%Vt+G&$^x2d~{dOJ;RrAd=2hO|<qQ6V}lh?}meOk%*Ti8I?NWe>3j
z*hB0k_7u~u_9n9(AR!GQ1k)dG0RNoh^PO|PbL<lLJq*jG9t2MLGbLRL`bNPpj5cwG
z#$l~-Y#mrO@t{%KRclHZF<$=r!Z0?)s#0`&3s3~w7#=|z0}41It`g;h|Cw=#TxVL=
zKe1$Oo-9I@DC8K(MSLP4x~1kom!l4XREcvzKRh(!6uI5<V=-=3E6v(TqqI93EA5Vi
zL}giOu8ugQ04s4<0Q)!OJrfh~+J>IA?akia+nZ7+-^$kU#-fr)(+`mo&p)?|XRG?f
z(uL=Sn7Cm3=l24~t+iXjQQF<CHS1L^D87@@AmhyJ5NaNSD`43adEB%(a2-G$vpSAh
zc3?KiN&5oYyh<ra0CEZ3tJfZdj0rVDF^7EtgE};vj3?q%0T_o{)ec(>L6{faEiukG
zpj?8IV&Te6D1;^e+V!Orme-i)VthbF2z(NwkTyx3bZ^?Eob@v)fDe%i=rD3P=}N)x
zK`dj~;RZ$B9*^slf?kJ;RxI)kxLi({v!g>_M#nO0_2IXC20fA1jCkUF|1MH!c^lTn
zIA53mKKiaLi85L{iUHxz?2t5rJC$mf*q0%W^Bc9_qD3jjIUuJ?K8UHVD_7^s_4m1R
z{gD_K3Vod5y&S3jN=$SB!q7P|U1Cl;IFt7%8MwC+-**S*R<vnN$Ft#MJVsM~#*(t&
z(xk%>5NTLj#;(y5EeIB;>xiO((RcAH37y5`JgL?_IM-y2^Fs>kOUPp_22m7ZcvPN~
z5A*Vow6sHrmP}KAPwEqAeg{Qy%Gij{(}HlidT_f}!N6xwdCmj!UaO0-RSan+>Q+%-
z09){z4_zC^>Swr%#ga!HuMpRL|Fa-t48BzUXH2raWOz6*Q|K>A(SzXX#Tup~vLg1#
zkQ*7K$hRd<0tYWl9xLLM=pK3Q;C~(Rpf`k0Ll_dvtnKkz%nWqqUjY^-k{=q0qyYyj
zy2fsf-Y6=7B}9ud<d@L59ydhi#qeQVg)_3;c2KoXcSO0}IWtcqT`gh>_gcL~v;;lN
zs4~yAid>BGHC8A61hhg9OI4e$t}vm$7NFDg7YtW`$NgkV{3?Kb8ll9*be;W*lFA=*
uZq#Y7*6DFRt2IuEiS)<EnU4~w1u)wiVBou;7>Jb{8Np74R39$MIr1OA9G{#3
new file mode 100644
--- /dev/null
+++ b/js/src/jsapi-tests/binast/parser/tester/exception-004.js
@@ -0,0 +1,45 @@
+/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+
+/**
+ *  File Name:          exception-004
+ *  ECMA Section:
+ *  Description:        Tests for JavaScript Standard Exceptions
+ *
+ *  ToObject error.
+ *
+ *  Author:             christine@netscape.com
+ *  Date:               31 August 1998
+ */
+var SECTION = "exception-004";
+var VERSION = "js1_4";
+var TITLE   = "Tests for JavaScript Standard Exceptions: ToObjectError";
+
+startTest();
+writeHeaderToLog( SECTION + " "+ TITLE);
+
+ToObject_1();
+
+test();
+
+function ToObject_1() {
+  result = "failed: no exception thrown";
+  exception = null;
+
+  try {
+    result = foo["bar"];
+  } catch ( e ) {
+    result = "passed:  threw exception",
+      exception = e.toString();
+  } finally {
+    new TestCase(
+      SECTION,
+      "foo[\"bar\"] [ exception is " + exception +" ]",
+      "passed:  threw exception",
+      result );
+  }
+}
+
new file mode 100644
index 0000000000000000000000000000000000000000..7bb22fc467a9c75fc8dcdcef3e7ce6f17305f212
GIT binary patch
literal 6792
zc%0Q(-EPw`6wcZWHUtuPpm7uJ7NKnt2x%&nwyuayRfkB`n=wsp;<nzrIM~j*@(?@#
z55Y_D6o@O{1lwtwG)vPob@$Vow*EQC=R4<o=h!9gdl;5WJqVogXG*#hTp9(#Fxtc!
z7zee+k+o;p#Dhj@TdgT!#CZAd3&U6!t4h)BEkF@yV|WN{3@G4;xJr~0{%6Joa-B(8
z|HP7&S+WRKqL5=C7xA%x=$4uTU5+{kQYFp>m*Jrqr^xM=AB%CTT4~mf8>Q{xSZRAG
zBr3~Nb9KZa1z3r@0@%MH@0pl@*EaN|ZEtpV-rbZs{#Le*HWrmcntq6!c>cLvJX_T-
zmM%Qk#Kbw<J$ri}aNJnAH5{eg&04cw)q>)CDGf5t%nqUE5x4@DO_9e<iv!mI)G@20
zm}PrrlN`6tq0Ot5k^~?Zz`c6yQOKB3BNTIZDPT~ChU4)>yea_WaI4y3iy;W}qPro+
z83&Y0P*N;hnhAx_1VFpKl)~~F^IVMgsR)5jVieLQsgv$ao0PMDCI#>TaseGg4kukH
z_&tba3_IMQsN3Uly;9KYP|=b_-T{}(33GaM=*#F>MlC=57SEt3(wZSpobBF43N3EK
zsu<^U6TnB`wIxwTYez94{HYz1W^gA`4HNq!#Bp|`_FJ?l#W)A#bjiM$>bi1uzFhy1
zJJ%nHaiP%13Es<*>aWB^2OtccJ<}!TxPvo!kCMK7EAf4IU~WX4)^t1@KE@+7<!2-*
z3ocDM2mz6XwPoxYJ<)<-ak`Eu8W?>Szmm|IKhBeC-Gg&Y);K?)z`lSy)?yGvA%;ig
zIr$(jA4y9)glNe$<@cmMaq4$a6eo<0_&hBLC#wgydld|P29@VLAn&!h7+b}VW}<Et
z^#!m6zxmL$VXS_JyI3rF#PJGo-S<BWGRELb<$uN`+e?OreKUprk`z4%uAZ-9IwVVC
zj|{nyL5h4^;v{hJ+~lz&PKoZ3=MMhYArE>(=rn{OvCP^Wy~RvHXZ96fZX)@ikw_Y_
zzocvI`tXgS0$4({C_{b;eXDUpbY2V}##J~Y%WVc#`(#U$+pSacB+}I)mT<4tOGFFM
zvy3Y9RIAAO7++&`(oaB3<giq=>FNq&`fC9?Nq@m`1$f*~ro^uT*ryRnOib75uPCYf
wG2=#^_G+CT=hIr_l$c0=e4P3yky-$=y#WTk3yOhQxt0;^R7myVlAI&|0oPWaod5s;
new file mode 100644
--- /dev/null
+++ b/js/src/jsapi-tests/binast/parser/tester/exception-005.js
@@ -0,0 +1,45 @@
+/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+
+/**
+ *  File Name:          exception-005
+ *  ECMA Section:
+ *  Description:        Tests for JavaScript Standard Exceptions
+ *
+ *  ToObject error.
+ *
+ *  Author:             christine@netscape.com
+ *  Date:               31 August 1998
+ */
+var SECTION = "exception-005";
+var VERSION = "js1_4";
+var TITLE   = "Tests for JavaScript Standard Exceptions: ToObjectError";
+
+startTest();
+writeHeaderToLog( SECTION + " "+ TITLE);
+
+ToObject_1();
+
+test();
+
+function ToObject_1() {
+  result = "failed: no exception thrown";
+  exception = null;
+
+  try {
+    result = foo["bar"];
+  } catch ( e ) {
+    result = "passed:  threw exception",
+      exception = e.toString();
+  } finally {
+    new TestCase(
+      SECTION,
+      "foo[\"bar\"] [ exception is " + exception +" ]",
+      "passed:  threw exception",
+      result );
+  }
+}
+
new file mode 100644
index 0000000000000000000000000000000000000000..6413d212c5b6e39c3a490590cb5c06cfdad69b46
GIT binary patch
literal 8294
zc%0o?Pj3=I6yMU;+Cz;;qcPc|rZKe9cxaHsQj9c68$m9{G{f!y(+)f9%q$d7egqS5
zUi~P32;<Rj;>_@Gp~JGk0L32K@@D4E`}=!u9w{F97^YKo2;B5JB{d2fR>HEZ3US-k
zajtM$JSsZGhgK@7_M|XkJpJvlW$lVxsqpbKpa@hjJb?}d6mUd5#mXIgX4Vz*++kjS
z#g>gpya-jSkZU0i@jip_k(>)Xj;aV!#m)nbfzXUo<kiwUf?mvKO1ZN_D%qu_l3gZY
zUPZN*M;uas6}u+D!3}<UVgX(|(3iSBJ2-fGlWYI4(zSPRQ*orxLd<B-Kg+deIs3k7
z%AVU|;gTI*ytoZ^+}>E49i`r-Tq&P5V#Vi@8)Tf>RYL7k&;&(?BA?qu4m=l7*Ut80
zmL1upwhyzE5{(h(uzB{{r;ssmg}9W%hA@E=820H}TV(*ogQMz%BS;X=YFP<Vj04K0
zK_WC<m<ox33V_xE$%W0T%zZ&`QQ`i#f(mJg<Vo$OPRdz7bisR!JV4ta;iM}Cws+zf
z!z#BZs@3`Ey^_)X;GzYyTmg>D1$%sSn9Jsoj9Ps7&7VQC#+Ar9MGeGJ6J8vyB8%o%
zV@uHa)EMw4@EnPg;nK0$!TYfd(v*VT74&!Qv&toOG{Oz#8Ya%wz>1T*wBJJ1#3%^N
z=#bZ9spiSuvnBg0eX^erJ_43RS;F$EWX#)IVM=wxLdWD!Z`+JHE4{!;2QK0P!G|c|
z6VxiY?jyb~7@GvS{hKz1SQo@0iku#7>C{_b>iy@Q-su&Av+6oKx?4ep@F9c)QLN@Y
zvjk9#QFP`)MsUwkBH!YCiD9KXf-Wu$@Pxt<vkQ787ODVY=pNY~vHK5Oo7X96c}uDL
zt25?q_$?o8&q9FlG&ws2XtX^rh*Yd1W7n#Sml+n)RYgCI(HHTb&N@@ac|M_e2CSWH
z;>P&`9wP<VGTMelcYE4kTZse<E;|{(oq7g?fI;OXAIQ0*sp_GE*>J@uZ<@=bBK#ac
z&w(R;9h_prcmGOg`uN+Qjxo#51Lc3lWZ99W2Da=79M)a57DZ#a7wv4_vYFg4_FRfN
z^;keFE9LHd&O_emQ=wZBii~8|L#vzBW2`fIOfxl*{4@w8!?nTWs8Kptj!ZLvX`-c%
zN?W6fm>k}%$G9>k$|a>W1hn-^?~|wYzCA+t80xtZ(+nidqSG9hEkn)zWR&G}Wx!y`
zGLK3tdZSOcF44!tGN8kl*db?t&jUS9eieq@3*n@`iHu6{@w4$r#F;z~i25orIu9aZ
mBl_E;u_NWk>KHYDiuVOi$G__Lcd>KZghL|DKE2`e$@CA}*pB)D
new file mode 100644
--- /dev/null
+++ b/js/src/jsapi-tests/binast/parser/tester/exception-006.js
@@ -0,0 +1,56 @@
+/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+
+/**
+ *  File Name:          exception-006
+ *  ECMA Section:
+ *  Description:        Tests for JavaScript Standard Exceptions
+ *
+ *  ToPrimitive error.
+ *
+ *  Author:             christine@netscape.com
+ *  Date:               31 August 1998
+ */
+var SECTION = "exception-006";
+var VERSION = "js1_4";
+var TITLE   = "Tests for JavaScript Standard Exceptions: TypeError";
+
+startTest();
+writeHeaderToLog( SECTION + " "+ TITLE);
+
+ToPrimitive_1();
+
+test();
+
+
+/**
+ * Getting the [[DefaultValue]] of any instances of MyObject
+ * should result in a runtime error in ToPrimitive.
+ */
+
+function MyObject() {
+  this.toString = void 0;
+  this.valueOf = void 0;
+}
+
+function ToPrimitive_1() {
+  result = "failed: no exception thrown";
+  exception = null;
+
+  try {
+    result = new MyObject() + new MyObject();
+  } catch ( e ) {
+    result = "passed:  threw exception",
+      exception = e.toString();
+  } finally {
+    new TestCase(
+      SECTION,
+      "new MyObject() + new MyObject() [ exception is " + exception +" ]",
+      "passed:  threw exception",
+      result );
+  }
+}
+
new file mode 100644
index 0000000000000000000000000000000000000000..163354107106e1edded8bcad68be50472d9f090d
GIT binary patch
literal 8695
zc%0o?-EI;=6y8E@t%*OEMiaA_n#R!j6HS98LQ!cbHHC6xOf%gbVA|>KIx|~}kK(QO
zK7hBzJ72)W8{fn;OM!(h!vX_s?L~q4IWy-w=X~ev*|hLIiZkg3Mt0^sbL$Kp8wtZO
z4qUrsWDBLO@<!QmJ#3^?!J0HBTx5PdFpL|pDjnWlMU0>WiZ`)E5krEwP9Vze{pQ9I
zaqNCse__eOC|NEGL=oE{4iQ}e;VlIlJA%{*W`Q^d9rrHH1tU&9vkc?qe6CX1DWy|q
zW9ihHkg%+BFjpi3GeiS%Cy4sz<lTe`d}?7&>h^eT?ZtVi-OoVR&c<XQk*O~+A)deI
zi)S^zTh@i=HJCW$>-*0x1CC1zbHh>UT`5$Gc`YbDlhQC3+^o6G+(IX)Y%$^qvn-Hf
zBW9cVj?eN9)2y^SoM+69Kym({|CyijuE2P9?`>&sJDcCt0{jw8JY9eJ<oTLbDD$Tt
z!<++RU_gP7L9^fvxH}#RK@L&c+Zyb!U<l)B0OJBNA)QO1;mlM>^i)8s?n^0rQf2PI
zc$0xe-@zzm6}RZt&+8Nz>q`_7WQl`VD|9(&O30IK_oTQc3`Xh=F?g;NwAwpp#v(5u
zC&~$PxOeDd#({{Mz57icLAPLh6W5SWMO9+AzkU&6G`${+FfPU>fj7QmN!|~qgk+n?
zhgO?oUhF!IZ?|?14zU$+xxQedu65KyadgT16Rw&VWPu3{@*1Y<j$A!iw7-gu_Dxp|
zu%#OyVR%dm7Olw3R2qbbw#mQFvI&D$T0yvNzKF*Jdn)FG(Hc4JQht;(p18#Bp0v;>
zx&)gTu{yjJrQQrf??1QnawiMy)Z!VsgqvEKNS0i~!hPsxJ7M&(K`81~9y0BoIZ$An
z95WRWA~+#=xrs2Q<G_J{l9sCHK1|dQq1fIq9oOtO1x(RkZqu1dn!h+OSHgV|HJ&A(
z(s8)BkH1)}2Z&VcK>DuHfTvmtx2r+@Ovz{X7KP5(eqKyOl>JxEG;#fW1`i*)xn5n|
z%_G~yyTOd}P7VpHk)z1xI53ijWY1Pt`Usp^bH=D9^+i${fAX<o;Q_n$cJcnRe<UKx
z_RAlRG1Jc7!2X=ev?EguZkh@njymW{B#rSNU?(e%^~8p@r=yr%jv3Ul^4{&=MJ(Ed
zDz;0Y$UtP>GtQ!V2s)$NGGi0TSB*r{pBr?x7Nvn@i!_ILgtv5AX>m{yoz1$d(VmRS
zaw&-hP+KSUK73@ZngatLLNzzx5e-Pa>@)>uOII^LY85$N8qk=s^s~|hJ*1B~F45)0
zDq{Vd*dERyPx#S1`5l109pcF$@10^izALLxMMFeI9>e?WN;V6LJof@v9YG4OQom;!
k+Iv>!RaK)Z-m9RtX9WMh!OEqODQ95`CEnv>8Xckk0I_%tB>(^b
new file mode 100644
--- /dev/null
+++ b/js/src/jsapi-tests/binast/parser/tester/exception-007.js
@@ -0,0 +1,57 @@
+/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+
+/**
+ *  File Name:          exception-007
+ *  ECMA Section:
+ *  Description:        Tests for JavaScript Standard Exceptions
+ *
+ *  DefaultValue error.
+ *
+ *  Author:             christine@netscape.com
+ *  Date:               31 August 1998
+ */
+var SECTION = "exception-007";
+var VERSION = "js1_4";
+var TITLE   = "Tests for JavaScript Standard Exceptions:  TypeError";
+var BUGNUMBER="318250";
+
+startTest();
+writeHeaderToLog( SECTION + " "+ TITLE);
+
+DefaultValue_1();
+
+test();
+
+
+/**
+ * Getting the [[DefaultValue]] of any instances of MyObject
+ * should result in a runtime error in ToPrimitive.
+ */
+
+function MyObject() {
+  this.toString = void 0;
+  this.valueOf = new Object();
+}
+
+function DefaultValue_1() {
+  result = "failed: no exception thrown";
+  exception = null;
+
+  try {
+    result = new MyObject() + new MyObject();
+  } catch ( e ) {
+    result = "passed:  threw exception",
+      exception = e.toString();
+  } finally {
+    new TestCase(
+      SECTION,
+      "new MyObject() + new MyObject() [ exception is " + exception +" ]",
+      "passed:  threw exception",
+      result );
+  }
+}
+
new file mode 100644
index 0000000000000000000000000000000000000000..9e6209ca559176801ced6461aa9b9f0e425e4bce
GIT binary patch
literal 6852
zc%0Q(&2G~`5O$kFTOlNl6<n;IKnS&!iiAptMAM+AiUPt>E(lc{dy_2Pdd=>-X?PA!
zJO^*UQ*hwGTX1A{oy3mgIDbys=Fl{=-ud}<=9^jPrSDN($hR?a3LiLYadc^{8-~$f
zPS-dtSI?{?%Vr)n@_YK3JS9RF4tES=3!chHx7QITs6p`wwkhIB66R`EPWW3G7sPdj
zb^V1$)+Xs<T&p6EL0lpS3Zh%e4t6DJ63n$a7hQ%<3(1MwDr|z>Div$x_tpGfPnO^7
zDT(T`^jd{T%n{Y<t`PM{^gV<Hd~IV-#r9%<|JA70!MBdJzcHsZ@^mNW#Pj!R@vN6V
zT3O+F4;H?NgY(1NfaB)c%5YS1*UGg@DH9Z5Ds5OuVKx~z&(IaJY)(9BS`xVq;*MGB
z=d3s~t*$H4b%}G90OJCvm##gIg#aU9R^m$lLA#6x@<g<Xh|+MY-eH3X<9V^&2Dy-k
zO9e?vgi8xyJq!Wymanvkd4qWb@(zatI0Y%@HCAD*(U|mM{YXmRW8xy-jX0-{64*V+
zWQv>8;H1@-al1;<^U%<eRo(!Ts|9m>c4Sx2v5H!L`Ym2Ts?i55aei<U1+;hs8z7f6
zm;XE8wG~N5`$jGx`?1qerqB+R8D;iGh~nfC?H>#$xp@80c_43LspYDt=d1HKbJzKO
zkb^;=CY;?IW&Q*fnut*B9GNaN2eX?g+njaWm1OtLfw>(WSJUyV`jqz3RG+@4X>h6W
zZU~49tf6w(Xv6S9!Mi3j3`)Mie@W=foacX%`rMs6nrZWViL-?wNeoppW}c`gT`Q(6
zJC%4g0|#6mzfLH!<X#wC9?FtPHYlsX?^7gB2*<W8ffs!r)>3n|h@{;vQsfJ)586ZO
z0-P1S>y*ow*Xz0L^4-E;eeBve)@;LFV%YXCaBn?s`}P;jlv%o?&tC}D98^QV9W#Y3
zlMLMnYM*VoI$<)#H>~jmO3d)M3QBgDSQ}FgP?7})Jh^*MBAj%hN$Z1?$*F>6Fi2vj
z3W3Bb>v5l5$DlL$wlFi1e9w?bs<^YHuC&#AnNdU{AzO4HKf&HcJdiB!kay$OJSEGS
zy*B@Jx8IR>pP8Q`qc9N(7vXH_XaSN|xn+LNROM{EpJ9*6o`zO2GA*QNf@8UXzB=N=
zbQy??$di6dmS{SlhGTH>L4;NlOFs23KK_kPDnX^aAWyH6l)OoQqdE3nM{28_?!{to
XYWnY$(PP^wAsvg&?C}R~j3m{6DeAFW
new file mode 100644
--- /dev/null
+++ b/js/src/jsapi-tests/binast/parser/tester/exception-008.js
@@ -0,0 +1,44 @@
+/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+
+/**
+ *  File Name:          exception-008
+ *  ECMA Section:
+ *  Description:        Tests for JavaScript Standard Exceptions
+ *
+ *  SyntaxError.
+ *
+ *  Author:             christine@netscape.com
+ *  Date:               31 August 1998
+ */
+var SECTION = "exception-008";
+var VERSION = "js1_4";
+var TITLE   = "Tests for JavaScript Standard Exceptions: SyntaxError";
+
+startTest();
+writeHeaderToLog( SECTION + " "+ TITLE);
+
+Syntax_1();
+
+test();
+
+function Syntax_1() {
+  result = "failed: no exception thrown";
+  exception = null;
+
+  try {
+    result = eval("continue;");
+  } catch ( e ) {
+    result = "passed:  threw exception",
+      exception = e.toString();
+  } finally {
+    new TestCase(
+      SECTION,
+      "eval(\"continue\") [ exception is " + exception +" ]",
+      "passed:  threw exception",
+      result );
+  }
+}
new file mode 100644
index 0000000000000000000000000000000000000000..d53a931f8fb59f88eca6725b946088ccb6b25fbd
GIT binary patch
literal 7026
zc%0o?OK;Oa5O!Po00iP%#KCuj+VYZGnFtaLO%(#F(_X8My-8Nx+Scy6Y4{zS_-9C5
zIPgE1-8}53_NGbfv^1B*`<U7J=9|YlmWV=%OI8OXuk?)tZHCT_Wy3I<f!8z2)%t<6
z=eR+L4QorSu_)o9^kdU7?!zi8x&0V1f|?Y6#4be)2@?29lovm9<COT`Wm$h<$<icQ
z0aK!gXAqx=k$~ius)v0+S_CsC&PQkQp}AnhZ<p3#+_5W->esrpH5jwD211gu95q)X
z0y9LFxN}6KEAk$}1io-_C~bSOy}f%?>gZe9I^4LTBr^RWX2kQ?V(~n-51qX5T!o1P
zXXoVgZNPDTX<;}@yBpO;&CUhIH&Pnrf}5>?nFr_`IW8liFdcz>4>8ZQhn(emrqlBU
zy094wQea#>>c1DqUYWqkN1y9QU&{7jF37LJ#H*c`yKnO)uze9S%sC(i9u)WtEK_H|
zqw!P-Du~i}tJ>kh5XSQW#sy+RvP)xOVJ0lcCLq?1q!d1@F;8H;%fO@iFp60ts0Hn-
zHYsQQOv?mi;v?2e98S6t3T2<36t{%INV_A(^-4j{V?_mvyn&)9C(LYi<d+)9B1)&I
z!Fn<8B&tmsxTi)3@*xG~EdZX9@9-;)Ol7$?-affI+6N6Q<9wMh0zSZ0+n1|n<Hfs~
zd9l_%9ClMeeFj=QgNYDvj=eq8^aFF$H<_Ztg08=id~&mBg2ISSKyyyV6rY3VFC!Z;
zUWW>Ty_22E77U{MQa~mGPkx5-b;ehaa61)>B94{ALnLoHnQ=U&NeV{2W2ep{f77bY
zo#lN2weOmV=`l>S5TP<LK`O%Cl;V{S9SWv+a*sSg|G9=mziq}|9gfN`lkDlR-Of1q
z<kC7duQ!+T<8>W(3u+HH2A8M`;whd~hU~)Ld*g=OK*RMw>QVXB6s%WhdC4*OGpIF3
zEZpXrCwU^KzBPS{d{?$e$vgB)|Kgih<<b}9xdPo-O$qeHcH&W5uF3NVah}cg!tHEV
z&{W<o%FeuM7MiDK<!Ri1*S0qA6c3trln2*Vt5+9Wc#N0^+V`;VVFKEWSEbq-qU(0D
dU+!qzFWuh`n(jr@jp*NOW)|=3y+ceT;6Di7(Ru&?
new file mode 100644
--- /dev/null
+++ b/js/src/jsapi-tests/binast/parser/tester/exception-009.js
@@ -0,0 +1,53 @@
+/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+
+/**
+ *  File Name:          exception-009
+ *  ECMA Section:
+ *  Description:        Tests for JavaScript Standard Exceptions
+ *
+ *  Regression test for nested try blocks.
+ *
+ *  http://scopus.mcom.com/bugsplat/show_bug.cgi?id=312964
+ *
+ *  Author:             christine@netscape.com
+ *  Date:               31 August 1998
+ */
+var SECTION = "exception-009";
+var VERSION = "JS1_4";
+var TITLE   = "Tests for JavaScript Standard Exceptions: SyntaxError";
+var BUGNUMBER= "312964";
+
+startTest();
+writeHeaderToLog( SECTION + " "+ TITLE);
+
+try {
+  expect = "passed:  no exception thrown";
+  result = expect;
+  Nested_1();
+} catch ( e ) {
+  result = "failed: threw " + e;
+} finally {
+  new TestCase(
+    SECTION,
+    "nested try",
+    expect,
+    result );
+}
+
+
+test();
+
+function Nested_1() {
+  try {
+    try {
+    } catch (a) {
+    } finally {
+    }
+  } catch (b) {
+  } finally {
+  }
+}
new file mode 100644
index 0000000000000000000000000000000000000000..d6bb139bdc18614dd026a7afe89baec814b4d603
GIT binary patch
literal 4817
zc%1E6%Wl&^6m`n`C9!2^Hn2dDwn9R!Or*py)F?GkoEA0+P2*d8gkwkJag#3j4L*$>
zZ219}+?j+tZ6_p7S`e!w_j-=!o;h=7ZZsZud?;xi5T{gUq02~H*-{kcBy`S|ifO&E
z_w82L0YxjyXEdKiy!7+FqTI!&wDIA`gi&(hLls&+VT98#kWkL(ccgrxfisEq4Ie4Y
z!wQ*%qK-lX%7*~sLrez(PERQ?2^Wy|Xwng9G;m8dFm4-q(|l`b#X(Ff4nW4SY?-T3
z4vhE`?u_{H4BkCVK(7TIQQOn)o$XoF;is(i_rNO>k!4R}Nj|@Bmd|6OVdur?bxaug
zVfo{3u0$HW4udE{zHCl7w6QKZ2N=c^3DAk}kA}(-EeruHOV=%oN1QO;gotNUn4cDY
zY)%W;Fy1tqH6s@#JitUX3?6e;XC(4e?y<0o2{nj){}PI0Ya|ZB+*qJQ%QA`Hs&pAL
zbbwJ{&9D}_vo**{zZ4SIw?YHL&c`Mvct8v9FSQS+Tw&Dp`1E@P(38=N)(m+8b}bTW
zx_I&v{FEHCUUd27C+h0pw*-fh<$Or;lm%BnNZZ04+~3bCM<0BaK;M7bW@)P&y|#`H
zD@J2q-Q9Vyx3@{!%9wHk@$_;Q@N#JjxFgO1!`2&SJvSS;jfuYg<{T#f0)aQhmFj&R
zUDT-N!k*AMFcu~pt7{<6g6^93s~|?)!*mis%9j0(W3Ntc*$X(g<_R|6RoswY3St50
zmcsqJ73^~E2A?v@O&vF@cMyU!{>RP3-*;GkUSaj0W8ziWtQpmZ`>O4QvG1rJIRh1X
zIMh+QlzVC%v`CC*s}9@u#qS}5@WlOi?2i(`Q~x(MTKygi91BT^2H^t|RVjlOH*o%w
r{n{g}N~m}4@t5iDSvHh@dCm02tcE{*O|$#nR823|2T8&T)2s6f)3qI;
new file mode 100644
--- /dev/null
+++ b/js/src/jsapi-tests/binast/parser/tester/exception-010-n.js
@@ -0,0 +1,25 @@
+/* -*- indent-tabs-mode: nil; js-indent-level: 4 -*-
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+
+var SECTION = "exception-010";
+var VERSION = "ECMA_2";
+startTest();
+var TITLE   = "Don't Crash throwing null";
+
+writeHeaderToLog( SECTION + " "+ TITLE);
+print("Null throw test.");
+print("BUGNUMBER: 21799");
+
+DESCRIPTION = "throw null";
+EXPECTED = "error";
+
+new TestCase( SECTION,  "throw null",     "error",    eval("throw null" ));
+
+test();
+
+print("FAILED!: Should have exited with uncaught exception.");
+
+
new file mode 100644
index 0000000000000000000000000000000000000000..8397356dc8f41ffc250635ba4bddcfc1ea417b31
GIT binary patch
literal 4530
zc%0o>%Wl&^6m`lQ#ACx2nGFviNQ+oiCQ@n})hL9h4iyp$G_`N+5sn>=$4R>6H~2Hy
zv1Y?3aA%U{X*(ft(!wgqy`JN_XU?3t6OAXG04kaf#H}<~<T27#b`(W9iQH4=z^cEs
z_iZQYfTES<Gg?4nUip4kQEuT=+T`$K!YDZjzyK#8jBpx-63QL_j+HMobf>X?;v=O+
zSP_#@)KzFm`3PWgh~+}aX^R4ra3N`rCmnM}L$7iT<F=_ct@m}UJdA1OA;=__Eps)>
zfssJMbxDxS;oZgr^d0Dk+Me(3?aiZ(K4q<E120KLmOqIV`TVh6K99{KyC^=dV#3tl
zRX@Khlt{DRVGzg2m(2->Hr6HQ0Hb&+0XhkS@lZL!!4SZzblt#s%n9R7h<Q$h#cAR9
z_Ox&X<4vnsGYe6|156lE_?W9YBeAb?pG7@Ps7dHTi-zD{K!xm#6+)Po2$XnLI`3h;
z$B?E&i~?&$waA;VL00;$l(NVNG$ibFVse59^zp%Z2hidQqn^)a-z$KgjbF53$aC;)
zkx;Y6Q=IB&<e2xOizh!(R|mhP*pw{iB+XcsT!H(T_;9w32RmEk=!h>;INTU_RZMxI
zczQKKzg}6;qHi)xTR*ZIg^3#5F=asHGXD5Kuy|dx3LhJ245m>Cg+lSbSd?;7Y=F2r
z^ft6}1u>$(&`As#oA(!vy*#^l&%uh9Qf;wIxh4A)>;ld$V*x&`;huL!q&?|I)Kzz%
zF1F2Woj~ii$bvZj*WK~IcYc0dLjkWa@uq6kOyl9cYWq<VxT;UOph6#qx@wPdA9s{P
z5_Da4bU$7GcpZkPdcTQ(0t8Qk-*}T4Tq3}&BMI>^d`M!0GH|$w^Pj$uJi@AOin<pa
jhPgJM=SSI%S*}6m-DtDdH2-3ksp;i<d`Vboc6I&$Nr%D=
new file mode 100644
--- /dev/null
+++ b/js/src/jsapi-tests/binast/parser/tester/exception-011-n.js
@@ -0,0 +1,26 @@
+/* -*- indent-tabs-mode: nil; js-indent-level: 4 -*-
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+
+var SECTION = "exception-011";
+var VERSION = "ECMA_2";
+startTest();
+var TITLE   = "Don't Crash throwing undefined";
+
+writeHeaderToLog( SECTION + " "+ TITLE);
+
+print("Undefined throw test.");
+
+DESCRIPTION = "throw undefined";
+EXPECTED = "error";
+
+new TestCase( SECTION,  "throw undefined",  "error", eval("throw (void 0)") );
+
+test();
+
+print("FAILED!: Should have exited with uncaught exception.");
+
+
+
new file mode 100644
index 0000000000000000000000000000000000000000..bb8d1ab9678f78bbefa6ea0bc9ce0e749117b10a
GIT binary patch
literal 23367
zc%1EAPjBNy6!-QITe|G>M;!J5D-<{+t+rhjR!AsY(QS)VRLas+6;j(>jXl%U)UgwL
zf*dJ)1`wAD5S-x3f$zd)uW(rjiLb!CaoRY^*s<erHmRLMtc*R+^WOWt-@JMDq)eN2
zgRGTL3BqfSZL4adnlhs(ifZAO@@RYav&zR6&8icnyvnaB8@fZ+{`^W&ZnLY({_Y3J
z){$zEO`;jdMpU;<E(&*lJIa}E;$B&QvrDcGlV#all#UhM)aj)Ff0u1cOsb#g#OC5m
zRO=4fp|);T*RHen%GSpI_7}V5)lOS^wIjqYtHRIi=#<#V;NrePMsq;ktL(%cscyOT
zRpJuu?!9~W2jyNKxwaQwXSqx}d>A8I^x1eVda$)uk!8`B*om!;&)1($gdzVMpCRX2
z`~LR+&XyE2zI_SImAY+Fi?-@y1t41VE+|R0F1w9Q9ETaPLJ=i3rYs*Cxoj6&Wdj*T
zw=3_Vu_i)Bwc*RG-J!^)`^2Fk8m6YgOjiYDSDPTk8C98EtbHA0&x;$#A<m#i+*SWD
z33L4*^}1c)1jbcIl>IQ369ZKpk>!f0joXcO$?e{!bA%!4Qg8`$p=xN;ZM4GW?K0!p
zx)vx<;h%+1gq_!I8@2k7MGVsG4sN?2*_oMs+eOp``fa*W%mODi1%UNJG3e*jg7LRA
z$zgoUgK?3x8>LdwZMRATSO(Zg@!5h0WsD_Z`F2t)-xcvd3@i^*BL<cm6DUcbU8dse
zj)Z9fk`%P8F5~pV>IU2bsVX7xEl?&Tvb;ff;>4F5M%cAi8vy4L008MAT2j+<{~~uk
z!p!;XAcI$5OUkQ{MT>xl>dbm*&N%gaHx0;x0b+~=zIp+9>23nd!HKLR?#*dH9NfTl
zhpZs-DK3WFf0f{Ns6e?#_z1Vs^ZZSKma4fQK4>|PbN_<}6G1v(CLkTKI;fLz-uX=e
z0HLUS_=LgZ7?YDjI4-BVibbl+?xaeY`IMv}tRw&-58VJ&G6lnbCBP6$bw#vPQvGST
zZ1{mjn#QtymhQVe=a&J(LQ)X^qKsY^ocB`xVVcA!%!ou~3eJB`3!EeRK4wmr<914M
z`&<HUVS;WHQClr7HPQp_B43I$nETa6OG-IAaUzfe%a90o%1A38XFa7TN_aeTlXGx!
zrG5AWAD6V!QhI;}1R$&-S9?KJ{G6ScO#t60gO5{$lq3sI2r3qt3WaAf(~+b1(=Icx
z<l0NEV-mZ(SokRcmCt%QNCR)ybCMjqIe4cQyi)5LX@d84uugAbLrz+q_$`qf&XWUY
z8SBHb!?__7&Tl1!^LYX|2Q2GGkR&#Arm(C?SRcZZj{;vF7LM5GxU^JA57TeJO2#eJ
z&{-2(CbHRgVM0nDzb61SIILGGX>@I69O5#vkFi30;R5250_>j?0DH~@wmdjbQ1)?6
zNxJm`tV3h(dib<yYOwdkzbytN>6oF|Ml~mR8(3OF_K_&aBHRFKW;UrZyN3fL;-02X
z5GR%ePgQgilOb>UM34mQ;TodaDRG`6h`2!b`UO8SEbXid&EY%y^mi0xe!%`Gy&?c<
zie{M(X*8it1d1K2sxwUcP!7unc0X^+ltE6YV(ZmY+OH_wpxy3j*Q1WkCbiaRG9Nw^
z%N%uT*|cb1H%tARXjG}&Fe2I-HC7}-d5%*N5!8Nrf=>8~Ytl&RW6$2{X2@G=f<9@u
zUQXDJqM1;`xUqU?UND_bUV?SQ<9^tb2h1Np{EKsf2PUIB9fq<jmqNxXQX)-6Oo>38
zw?#CVETqyyvg|En2Wz?!o=+EJnJyya-g|^LZ6C`C`Bsn;`RFt*MNccazB`|jYfi3_
ziw30?gP2u%8clF&%odZGBf2$x)$%D~>?;aMzMskhX0$2b`#itSr+{cfz0RkAfU;G(
zg|M7(uMXjcxI6=V`$NvRIp4<P+j=wP`Hjr6=8Sul88;M0SD10n^CCyixY36C3TIqu
zd6yR>7L(&WwV$H02-JKoj1lh*f^nE6pKB&@u8D`4fN3W|d47~WLv9BU@qQm5+j}R5
z;9aJ>(`nv7b=tga>v<OY2eT8r+!f`8mtnJ-&v^s?R_vSU`~EK0*K6P(c>~cFyi^NL
pDMIRL!x<_Jm?7cSIR^a0t4}>DIuU?X4-NeLy^8=FnsEq${6AhBi{}6U
new file mode 100644
--- /dev/null
+++ b/js/src/jsapi-tests/binast/parser/tester/exec-002.js
@@ -0,0 +1,188 @@
+/* -*- tab-width: 2; indent-tabs-mode: nil; js-indent-level: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+
+/**
+ *  File Name:          RegExp/exec-002.js
+ *  ECMA Section:       15.7.5.3
+ *  Description:        Based on ECMA 2 Draft 7 February 1999
+ *
+ *  Test cases provided by rogerl@netscape.com
+ *
+ *  Author:             christine@netscape.com
+ *  Date:               19 February 1999
+ */
+var SECTION = "RegExp/exec-002";
+var VERSION = "ECMA_2";
+var TITLE   = "RegExp.prototype.exec(string)";
+
+startTest();
+
+/*
+ * for each test case, verify:
+ * - type of object returned
+ * - length of the returned array
+ * - value of lastIndex
+ * - value of index
+ * - value of input
+ * - value of the array indices
+ */
+
+AddRegExpCases(
+  /(a|d|q|)x/i,
+  "bcaDxqy",
+  3,
+  ["Dx", "D"] );
+
+AddRegExpCases(
+  /(a|(e|q))(x|y)/,
+  "bcaddxqy",
+  6,
+  ["qy","q","q","y"] );
+
+
+AddRegExpCases(
+  /a+b+d/,
+  "aabbeeaabbs",
+  0,
+  null );
+
+AddRegExpCases(
+  /a*b/,
+  "aaadaabaaa",
+  4,
+  ["aab"] );
+
+AddRegExpCases(
+  /a*b/,
+  "dddb",
+  3,
+  ["b"] );
+
+AddRegExpCases(
+  /a*b/,
+  "xxx",
+  0,
+  null );
+
+AddRegExpCases(
+  /x\d\dy/,
+  "abcx45ysss235",
+  3,
+  ["x45y"] );
+
+AddRegExpCases(
+  /[^abc]def[abc]+/,
+  "abxdefbb",
+  2,
+  ["xdefbb"] );
+
+AddRegExpCases(
+  /(a*)baa/,
+  "ccdaaabaxaabaa",
+  9,
+  ["aabaa", "aa"] );
+
+AddRegExpCases(
+  /(a*)baa/,
+  "aabaa",
+  0,
+  ["aabaa", "aa"] );
+
+AddRegExpCases(
+  /q(a|b)*q/,
+  "xxqababqyy",
+  2,
+  ["qababq", "b"] );
+
+AddRegExpCases(
+  /(a(.|[^d])c)*/,
+  "adcaxc",
+  0,
+  ["adcaxc", "axc", "x"] );
+
+AddRegExpCases(
+  /(a*)b\1/,
+  "abaaaxaabaayy",
+  0,
+  ["aba", "a"] );
+
+AddRegExpCases(
+  /(a*)b\1/,
+  "abaaaxaabaayy",
+  0,
+  ["aba", "a"] );
+
+AddRegExpCases(
+  /(a*)b\1/,
+  "cccdaaabaxaabaayy",
+  6,
+  ["aba", "a"] );
+
+AddRegExpCases(
+  /(a*)b\1/,
+  "cccdaaabqxaabaayy",
+  7,
+  ["b", ""] );
+
+AddRegExpCases(
+  /"(.|[^"\\\\])*"/,
+        'xx\"makudonarudo\"yy',
+        2,
+        ["\"makudonarudo\"", "o"] );
+
+    AddRegExpCases(
+        /"(.|[^"\\\\])*"/,
+	      "xx\"ma\"yy",
+	      2,
+	      ["\"ma\"", "a"] );
+
+	   test();
+
+	   function AddRegExpCases(
+	     regexp, pattern, index, matches_array ) {
+
+// prevent a runtime error
+
+	     if ( regexp.exec(pattern) == null || matches_array == null ) {
+	       AddTestCase(
+		 regexp + ".exec(" + pattern +")",
+		 matches_array,
+		 regexp.exec(pattern) );
+
+	       return;
+	     }
+	     AddTestCase(
+	       regexp + ".exec(" + pattern +").length",
+	       matches_array.length,
+	       regexp.exec(pattern).length );
+
+	     AddTestCase(
+	       regexp + ".exec(" + pattern +").index",
+	       index,
+	       regexp.exec(pattern).index );
+
+	     AddTestCase(
+	       regexp + ".exec(" + pattern +").input",
+	       pattern,
+	       regexp.exec(pattern).input );
+
+	     AddTestCase(
+	       regexp + ".exec(" + pattern +").toString()",
+	       matches_array.toString(),
+	       regexp.exec(pattern).toString() );
+/*
+  var limit = matches_array.length > regexp.exec(pattern).length
+  ? matches_array.length
+  : regexp.exec(pattern).length;
+
+  for ( var matches = 0; matches < limit; matches++ ) {
+  AddTestCase(
+  regexp + ".exec(" + pattern +")[" + matches +"]",
+  matches_array[matches],
+  regexp.exec(pattern)[matches] );
+  }
+*/
+	   }
new file mode 100644
index 0000000000000000000000000000000000000000..bbc38b49e83cc5ec1f2c0641e99f6be1bf4db9a8
GIT binary patch
literal 6002
zc%0Q(%We}f6rF_fC=0{}At4r4B%~q=X@ONW4QkV%rV62IqN=Pacg9UjopEG4gor=k
z&)BkuZ{XUKWb&9ek51Z<O_FQ-_`ZCuuU*w@GLm!a1pB#T!D|9HoV4RO7u@eS`^EB6
zWvAltCUM-Xnd34lRqp2#$9V{|+`;9iSWtYy$N}*f7Fbap7$`sbFP$qI_`_JgVM=Nm
z78eGJ`VI}K>H`ceDf%Q(^pX-`-~!x;l$J`+pq9H2@=76JEq*S$*{;mZc0mTQDrT%i
z6%m*jxNn%X#_%4&0Que&L`pF3_14z*IBfsh7~5NU$3P0Z77IG`*UdWgv~W^M%At2*
z;Ha{F{(cqw`1j`gsO_#6tEECBUVIJ%c^>#wTZS2e<7+fU8|VYtK`#?^ZlRz56@?XP
zfUQQe=v>4)C65`4mYNkFhzMEKh3g=f3JX;wQdulqnhEL11T1PTjUpE{<}t|I0^)oK
zQX;Cn#B1X=g;bo1$<loqV9^;+PKUCW1`Z>a$`Q0ySEKuCpjXjGONP7!#?}L9a&{zl
zY)4L%ZKKtv`FkLTu(w#u!CD{)8tx;ejQFcS^M7v6kL!k1Jkr#<B;v}aFi_^G4~p7Y
zB2^c>9fN-j-&RE@;zn~nWZb)Q>NxNj7#!!1eLZ7jk@Zq}7RO|($IWYccL>G=KK>Dx
zPBTXHO&ALF>C5@)-U-@8O0)>n>`dY8_+&e?8UA>ifg)~xz01S|Ii7I3;-LTy1VXD6
z{y)U>fC}QN0;t$iFl8mMJXT&k&u~i;Qx%$6cM%hVJ*U4-wC&kBcdBJU&2&Pkwg*GC
zK+j&RIPNZ79G5`L$5=`$Ehl$<x;?+mLBsQ1QxCWrAsv446^@eA6xt}&S>hR(0p$V6
z6%VsvdWh#_5dG=xXUmp&)+rGcmRjPML325LT%Ywgb%Hx4P+oGmS|;r!RTCW(-Ld4c
zj0td97vWH>jgnQ8cjy13TUY|*jKsL9<INiljG{C_G(Z@616{W4B~(m*vB0J}dK++)
zBkkn+l_|t`&A!U=u8?pwO0Z7O(4Vc!3y0<aHPhq96sk`5X&2g@VcNCa0Yfr+k?Owu
k+DK+{du(Mr+oPgAgDru!KMzfGt+iy%_DW;?HFk6U2c;F58UO$Q
new file mode 100644
--- /dev/null
+++ b/js/src/jsapi-tests/binast/parser/tester/expression-001.js
@@ -0,0 +1,50 @@
+/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+
+/**
+   File Name:          expression-001.js
+   Corresponds to:     ecma/Expressions/11.12-2-n.js
+   ECMA Section:       11.12
+   Description:
+
+   The grammar for a ConditionalExpression in ECMAScript is a little bit
+   different from that in C and Java, which each allow the second
+   subexpression to be an Expression but restrict the third expression to
+   be a ConditionalExpression.  The motivation for this difference in
+   ECMAScript is to allow an assignment expression to be governed by either
+   arm of a conditional and to eliminate the confusing and fairly useless
+   case of a comma expression as the center expression.
+
+   Author:             christine@netscape.com
+   Date:               09 september 1998
+*/
+var SECTION = "expression-001";
+var VERSION = "JS1_4";
+var TITLE   = "Conditional operator ( ? : )"
+  startTest();
+writeHeaderToLog( SECTION + " " + TITLE );
+
+// the following expression should be an error in JS.
+
+var result = "Failed"
+  var exception = "No exception was thrown";
+
+try {
+  eval("var MY_VAR = true ? \"EXPR1\", \"EXPR2\" : \"EXPR3\"");
+} catch ( e ) {
+  result = "Passed";
+  exception = e.toString();
+}
+
+new TestCase(
+  SECTION,
+  "comma expression in a conditional statement "+
+  "(threw "+ exception +")",
+  "Passed",
+  result );
+
+
+test();
new file mode 100644
index 0000000000000000000000000000000000000000..a4cf82517a8870c0e15aefd19ea5d46a4e8b34bf
GIT binary patch
literal 11122
zc%1E8&2AGh5Z?aKA8`P|1##LNpbA=0PgSVYrYW?l(y9rSkdTnO>m+Ws>y_<onj7LV
z`W!q1?|`@>B;Eqs+a%k>>ufgOG^O;=DE4~n8GkeL&14HK3_Q4AXh7hu9}rw8;LMt~
zEbAD%Eo*b9yjxkTI5>b-VOc&?@DOF|Kc89F1O8MYzWfLf1dctp1sx9%z!3JOD7X8a
zTBpc&ugm()ADJ2?3lk{{xfb#f>j;Q1*>R!IPz^yM#rfc@duYlC^6TsKe7sUBR(JNx
zh2^WU!t#}nxU7nt+d~Wz;7M`kzzh52J>nDaA|Q}bq1?-rl{c?WXus&rr&PGTdPa&R
z`jccd>W}dn^{8}MF=f<yd}6oq`t#}}*zwo+>?riE?o{_m#-PdlIe>(<><!1^5XHnS
zG)o=iR~TUMjB6;*)Ab0YDT=`Jx=W?y96ki01xP&<QfO8aKIG#~!cFs@k3v$#d$``O
zgVgkLN^!B9$OohqJDjkCu%WzT57wAPP`$x=_Z5Pcx*O#z@&*E(n6Q(<V-D#(aMW#N
z27Xgr_+<p$A|Iy=5LShhX*4nyl<uprn@><$5MktS|DbeO{isJ$88(fYRe)rJ5YQTI
z(($E(Z{te`VmugNavm)Sa@yW2{@OxrF1&B>sk$$o&KC6EW)6CDe0+a%mxsM!kZLmj
zEX0y-Lf-kx*Ut7LC}k8DktXzASVKN^^*VmgWgR|RLl+%&d$$qCJIAQI!&Fw(<*Q?g
z3lVCUfg%Sc<d@sYzy<L6MTedu{baZTA#NKWPi6n{hulBov*V(SZVn8@S&W$SvA`d;
zJ3?*NAh@ZJ{ZChjb5YiSjyZfD07?zxvr1asL?>Gy9(GQx2Jl^vE2q+ZQ#{eLNZU90
zGOaNBtxU9O;>~bWdkeFkw2Y5WIA(adiZZIfRR-BaN-8UnY^;KsZ%f>-rJ%=Z-?#?k
z7+}*T^dewRqv(N<LJ7M7h~8l${xi^Dg}p}dz9oLl={w_nBL?OiO7EMq*$|n196`$r
z{!<nt3`cqO#sWorjW}rZeGjsTWk9#gPfoA9>eDtmNiaux`koQ1`4)+yRa692alult
zPcw=l(PZ22b~HM35Sfx<uJVa@ka4;WZTWzWYc}xh$hqxi1Jm{dqIRcVRkTPmY%Xr`
zIWH7o(_G7SKmZ)EHT=TZIn$O3Bj(9l)Ls^GfDPSQ-VS|7Ty?xCoQ*0u$<wGYqL!lP
zwXEuSrM$t&<MO2784g7g5^4rfet32a6_u$f_YTW<zt1b|K3Uu?8-J=c5RENU5fOt>
z%TeUylj}*kpd`0TLE}vlIB}FDN-h1atZJ=|*eA%H@ZJIZB*xnD<ENZ(l>hjdQ2eCo
zxEZ{!{7Z4&ngQEQcdGa!K(1Hu(Qpw2EL2zamwfS)SY@yHoj>WvJB|NnnznJC+V>`d
zmc;6+YE3SPDc19ri?#z0+pX_)I(-$Vshu>@PeW5;ZW$;S^ww3e^C@11(WLOiB1hZ6
fO7<U}w_be?cu6cmzWl#tUG<C80k4k}C}Zwl;s+si
new file mode 100644
--- /dev/null
+++ b/js/src/jsapi-tests/binast/parser/tester/expression-002.js
@@ -0,0 +1,60 @@
+/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+
+/**
+   File Name:          expressions-002.js
+   Corresponds to:     ecma/Expressions/11.2.1-3-n.js
+   ECMA Section:       11.2.1 Property Accessors
+   Description:
+
+   Try to access properties of an object whose value is undefined.
+
+   Author:             christine@netscape.com
+   Date:               09 september 1998
+*/
+var SECTION = "expressions-002.js";
+var VERSION = "JS1_4";
+var TITLE   = "Property Accessors";
+writeHeaderToLog( SECTION + " "+TITLE );
+
+startTest();
+
+// go through all Native Function objects, methods, and properties and get their typeof.
+
+var PROPERTY = new Array();
+var p = 0;
+
+// try to access properties of primitive types
+
+OBJECT = new Property(  "undefined",    void 0,   "undefined",   NaN );
+
+var result = "Failed";
+var exception = "No exception thrown";
+var expect = "Passed";
+
+try {
+  result = OBJECT.value.valueOf();
+} catch ( e ) {
+  result = expect;
+  exception = e.toString();
+}
+
+
+new TestCase(
+  SECTION,
+  "Get the value of an object whose value is undefined "+
+  "(threw " + exception +")",
+  expect,
+  result );
+
+test();
+
+function Property( object, value, string, number ) {
+  this.object = object;
+  this.string = String(value);
+  this.number = Number(value);
+  this.valueOf = value;
+}
new file mode 100644
index 0000000000000000000000000000000000000000..dc2656b14bf3bc14b01d1945d35c943063c2e4d6
GIT binary patch
literal 10356
zc%1E8K~LK-6i$JSahNo1JMEOqq)li8w4G2vf&yDnRnXdTolN4kh7eb_L+Nq*8T&o^
z6T457_Ah2TZIiZ+n+B(AVH~Jx$ItIQfA9HwuPL&i?ZMq*3j%ldl;9=-SJskcS?Ad8
zTKnbdac#Ti;5M|18}gZ=hbY@UdTCjY`BTOC@-sjXIQQTIbUZ)+L)e$1+~_;CE|KpJ
z%lge9DNK@ui4=ug3;Bo*1jLt=UFb8^K#)jrKDdgMri>uJxx328Ylo$J`J`Ih=#3RO
zdP3r|YI3fE7$m@x;;w-gjLCb-C*Vz+KuU#iZ#FmIy}h90q6eSS;Qs1mDVFFp$>`Ld
zvvum(;isA@r#|2l$F;35@8`jfzh>u0VRyY;uN)eKCXeSfB&=)iISz*?CT5{|I6!`l
z0S2$Qg;Jj=B9yKu0ndw;O3yib2to^xW+0@{tS)@Q$2)|(<|7}4q>d}NIc|fr^m{>Z
zu=~gdq#ILC_(Awkp0NiT%p$1SVx#*CLF>^*Ig9)UiB3$|$>1@E^bt7fHZlXhLIl5z
zpj+ePlmWu(kTQ)$=1kb*Q%zqyoeftznQ`@ykDu%xb7bjZRfV0LLi|xIuO)=`H@<dd
zG_+F!T^wfMyRd<L=<03!tP5;D+CVo0b4Rxk>Rn?L?NAtYA74a})7Mt~^#$nQWZuRU
z2O`X_0!5lh2;s#fIRg0npaV}4;TeuVh&uwvQ~7`PB<IiU{J18wn*-ZI7bC8GCh&*t
zfl!;Z2<|9k-)R#5FuXOOV-BCEfKtQwtdnkZ(a9>)!_KAE0>0~U<5afqizh}FX-m_u
zOA4ni<VBk%-%Q754lo<Jmht%o#|*!&!W-4#DuZkyC8d-|Hbznf(O@`?m&vRyAvlJR
z97Al{8@&XW(<*r&pittj4Mcw?F#x7CQAU8?^;3u6I#+Y)-h|&RGxMFQ4W_u-XOXqc
z;D1pPMSP7=H2hwHETkFGt#ZxjaHziM(~|^ur04G$v6^p{D9Z5?po#;QhQVb;m1wfH
zvKY;z97Lw%m^*yp17w`9L%Sb8wtUjY4IB7&80B`Sg(>V!AZiaPS4BT6gBIdAU-6Ow
zcFgs+CS<}}_TgR|(=%<+aLWsGfqHo&A+V|2ct?Tnh@*~|hbv)CCkY!h#@JGHzcy6e
zuaqYkMqHj`JcCj+;bzSs$`7v2p`u1rUBc56-yf?Azt0zm%SNQ?Ekt9>RE)$R)N&L#
z|15i+4k#(?Qt)|`Oirkh#I0rARaH&4TXqa`XTJ9UKZ&_^_V}qLsPZ2_bBZ7H-MkbM
zbF9d9YbI>BG$`iJ02wak!{HKWvp`+oZ}G*?V+H=$Pj#9Y(X?o_TvS&jYf^gbm`2_V
z&{p)Z-Ns%)(idZz5=fK8G;Bjt2*or}yeOc#a}%o)ZR;r+^1aUqugQdfl>fJ_UN<)#
LQpPT7Wg`3wP=YJX
new file mode 100644
--- /dev/null
+++ b/js/src/jsapi-tests/binast/parser/tester/expression-003.js
@@ -0,0 +1,55 @@
+/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+
+/**
+   File Name:          expressions-003.js
+   Corresponds to:     ecma/Expressions/11.2.1-3-n.js
+   ECMA Section:       11.2.1 Property Accessors
+   Description:
+
+   Try to access properties of an object whose value is undefined.
+
+   Author:             christine@netscape.com
+   Date:               09 september 1998
+*/
+var SECTION = "expressions-003.js";
+var VERSION = "JS1_4";
+var TITLE   = "Property Accessors";
+writeHeaderToLog( SECTION + " "+TITLE );
+
+startTest();
+
+// try to access properties of primitive types
+
+OBJECT = new Property(  "undefined",    void 0,   "undefined",   NaN );
+
+var result    = "Failed";
+var exception = "No exception thrown";
+var expect    = "Passed";
+
+try {
+  result = OBJECT.value.toString();
+} catch ( e ) {
+  result = expect;
+  exception = e.toString();
+}
+
+
+new TestCase(
+  SECTION,
+  "Get the toString value of an object whose value is undefined "+
+  "(threw " + exception +")",
+  expect,
+  result );
+
+test();
+
+function Property( object, value, string, number ) {
+  this.object = object;
+  this.string = String(value);
+  this.number = Number(value);
+  this.value = value;
+}
new file mode 100644
index 0000000000000000000000000000000000000000..2a5ba62ca9bb7bbb0d238ede3f9f18bfde38c89b
GIT binary patch
literal 10202
zc%1E8&2AGh5Z<(f(gO(56P)(I0aT$Bi36%aq$W)vRg_jF>J^+_H!<C;Bil>Jk=NjP
z`Vw3b7aoBdw)3}1yv}ChP1BYh8r47J@%WpWZ>GtypyR=Ot_6XcKO?wFK-=1|EUSUt
zo>eGUPihA>2X~;A%gQx54^fuCdTv<{`Knxa`#B&8G(30&9S;z|5cZ`gcl<ZCE|Kp}
z%KF8ZWai1jM2bSLg?z+D0>WF$F7z3?K#)jrK4_1Xri>uJncwE)wNkNOKCR}mgRxw8
zAS5iSCg&=MK>|D}?kn(u8F`QR1pL+^kWzlRSNr>KX2p&^<z<IEH>F6T*CL@of3DV`
z=cSJ|QwF`qCr)awKdprwf3MDt;@<Ugy;3q_#V34%`*H^o*0T>Chr<&SYSg5q5$bCU
zFxcidl=_UlL1~I2@VxO>X*q`vL1+Qe41^S#)P#@uc$aX~eBh&y)NutjXYU|y`Xi%w
z*aGqa>4lUNb`Um{Z|uPfW)akEvFUS#puO=yDT};@ASWj5Xz-Xr`V<^>2bqCiW(>cC
zpxfc&lmWu(kTT7U%mpQTV`V|<J|90VoNy@Vaa4uflzjR@D3C??@?XAWYuX+$kuCQ5
zf#=P+9$zsOC4PoNmT;-K2e%<Xj_&LTSGkp3L%@-PEbtVLmf#J9xMP4k=&l3T__I1Y
z?#MXlz>d(xh$(mZL>1d3p*Cv~+*QcF_4wrZ2Ri2Pc?KvojL$mhjZ>y9^gQfbS}owa
z9>1LG?gg=8YLm7){I1GT2~+kVpKAJIbuu3HE-{aa8*dgP6-Ss&B}?4+!ZBlY26@il
zE`vEfCbN@BHpUf2`e(TBFZ0P&gmX+FIfPhcI#oU|b6Q0Y1Qbf#b%1D*L^{BNSCk&0
zH~qryx5w4oxHImzWModE%D6t8Es)w*5w*<V|E2_r@E)OP|L+Q9eVPH?D%YG&y6Uqb
zJ&7<!1id$h)pTn&Q56>fRXnh~*yl|}?PjvWaWi^4DTs{8G2ilu_mFYE4(*};*m9+f
zFKpo3eJ{7WEllBH0#RF(u8NLO0tLiNzTnjY?3(K^%?W}_cEVm7(=%?puw<^hLESVF
z3)sSqwBx{c#8ZbW!>xWfC%GCmM%H4qqq3P~A?^MsrKZWl6DUO^l4=4`e$Z|}MR}^q
zzl(C-t8Ind*NeX;<52Y$qM>anGGY*FDT-Wwg1t@;6y<g?sJuxMCsc`|)za^(s{Y!N
z&4ScP?;XHTWUO61eyS0w{KwCl;>Ua=FNVYvi*enaImc~`>iBa&ChPeAa1nG^pswwo
z^3A)U+Fs=gnl7xCbLt9VP3R6i$JGDewMBdAw3#pa=!-5*siO&28djkxctV;e{w1%;
jt&!D-w!0J!?ZM}qFQoK=Cx0JUgNAK9q|78_Wx)Ff&9U{u
new file mode 100644
--- /dev/null
+++ b/js/src/jsapi-tests/binast/parser/tester/expression-004.js
@@ -0,0 +1,49 @@
+/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+
+/**
+   File Name:          expression-004.js
+   Corresponds To:     11.2.1-4-n.js
+   ECMA Section:       11.2.1 Property Accessors
+   Description:
+
+   Author:             christine@netscape.com
+   Date:               09 september 1998
+*/
+var SECTION = "expression-004";
+var VERSION = "JS1_4";
+var TITLE   = "Property Accessors";
+writeHeaderToLog( SECTION + " "+TITLE );
+startTest();
+
+var OBJECT = new Property( "null", null, "null", 0 );
+
+var result    = "Failed";
+var exception = "No exception thrown";
+var expect    = "Passed";
+
+try {
+  result = OBJECT.value.toString();
+} catch ( e ) {
+  result = expect;
+  exception = e.toString();
+}
+
+new TestCase(
+  SECTION,
+  "Get the toString value of an object whose value is null "+
+  "(threw " + exception +")",
+  expect,
+  result );
+
+test();
+
+function Property( object, value, string, number ) {
+  this.object = object;
+  this.string = String(value);
+  this.number = Number(value);
+  this.value = value;
+}
new file mode 100644
index 0000000000000000000000000000000000000000..16c76c4bf70218318d8e3d56d62a1f949fb366c2
GIT binary patch
literal 6146
zc%0=}O>Yx15OquWsEQC05{I60Y*nEa2`*?GiKaoM3ZY`7N}Q0h>t;=y^~!b#`6WpF
zGp^kD7mVE|yGb_AX0u6y$R%2TJbT`Z-;C|3Uc^Y*2?+Mfmx8wi?xJmkP>cHmbXIFz
zxNlsKM+7;?W{ktAROP+r2<^crCprBJ3yNEeoD+{>ffePUf%4;Ti8?g&$FY9Hkga)G
zTo@?oBN|dQ0!U7&`6N{Ini65)LfnlvEtQ~QyZjK^-D;&-``B=fZ`+*XTaYA{Yx?R`
z5rLV3`-WL>3hxPYknfQoQi5?WPEKA=!;b!qvBR1745YB{A}680)=TJB^^;o^q4%NV
z!hQMW)h6(`#=z8eH*3v$wGbAcYP5iqLeek6(KWj)l+fxZ=3Rvq>4JS`H}P3WC8B~E
zi>I0y9yAe>m$qGKmkJBjBvM%{T$u^mu?bkTdm2UNHAZ`_FTl6&p_Paxuk-e_O~zS2
zw^AbWjD}bY5}VVm9J(Jda;=b{?LbYgtAUQ<g;orC2P&;QO0%P*xT898qHGIozO+Ap
zc5r)-r5vmrPS9}gFlEHw1ZiJ0k02_<D~`uYEahhK_-B1Q?iwCF66w7ZLgh2)Xz<bq
zw4?&T`zhE<@Y)oEIKP;>nsKj#0v!4bj7{U>OplnDWG%)!Y1trWetQdD?NE=-r~0S4
zRX?lVG)TYD8e#|9KVTKiFCQktV9aL;-{{|P4O<GRVC4lBhI^72h9j)+UNc?2pjpP(
zb|x1Nv?JK&_J0#-OKSTHiqE^_Yyt6ItjIs-YNDLxt*^i*ii9>w4OSTc8BiWUyW%(b
zWC4LFRw$Bl^hR&K>qOloSmHNe=W_h0?hh053_8*))B<C5T&9b>CuyJP`(6dh6bBo_
ze!zM=lR{PG&Ewy=Yh|p1_D6zvYMu;qHas{i9Y8q*UrV2%Ioh%0#qO}Mi(S@2eaRG)
z;c~bs&nx-}sZ1{`bCfPtEw~$4RO>Sge4J3N>DtV8P-kDzt;%70%Cv{DC2%Z(V1K)s
ONxd~AWqU$Ojl93M8p%xn
new file mode 100644
--- /dev/null
+++ b/js/src/jsapi-tests/binast/parser/tester/expression-005.js
@@ -0,0 +1,41 @@
+/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+
+/**
+   File Name:          expression-005.js
+   Corresponds To:     11.2.2-10-n.js
+   ECMA Section:       11.2.2. The new operator
+   Description:
+
+   Author:             christine@netscape.com
+   Date:               12 november 1997
+*/
+
+var SECTION = "expression-005";
+var VERSION = "JS1_4";
+var TITLE   = "The new operator";
+
+startTest();
+writeHeaderToLog( SECTION + " "+ TITLE);
+
+var result = "Failed";
+var expect = "Passed";
+var exception = "No exception thrown";
+
+try {
+  result = new Math();
+} catch ( e ) {
+  result = expect;
+  exception = e.toString();
+}
+
+new TestCase(
+  SECTION,
+  "result= new Math() (threw " + exception + ")",
+  expect,
+  result );
+
+test();
new file mode 100644
index 0000000000000000000000000000000000000000..d19dd551a8d26becf3efb5d3867e9dc4cc9e56c6
GIT binary patch
literal 7177
zc%0o?TW`}a6!tb47a;`V30}zKV1f-8n*>=U+7;+jx@qb5ioC>Yy?IGxyL9~@Jn_d6
z5>H4V@h`C5wMo;|O*^M6>q}K%KKtChbB=5CW`m%dT}RN%?b4t|;VGC002~Hh8{|us
zZRd^S1`P!46}84DnDN~AhXC9WtL*6Z14uDEBxnn{1X9Rx;43IE{LR1#_Pu_r-(tz!
zD6D`gDC`03W8MRZZYg=l=lBRCs^ENh8eW=liv3#dh8TB>g=%T1Vy~Q!*(>KDQ7lKz
zl`%&Y5(W1KlI8&3eKCQ~8Wb@mgnPESy8ir_4I=lxmAu`}3ksF$FEXJ{e@s`W2gN<d
zluoaUiEZb_=e1eT<FD!IQOaE{Rm(*qTD&LG>d5j@%M#J6ZaE7I{W(2_-V)>a{STG>
zPx<1W5v4AQiB~T-Hr8JoRb{cqAP$EdoeIg+9YSVFR6zj}5^hyHTrq^uMHI$3q`Zn4
z*GQO|2=k!`kk*<Kg-t4q41g9D7X2tj5v>O0pf)IzGS;`b1fR@fAJTT@a?+IDNCE^M
zaX@jc&g17wpylwOj3F-}=gA3cxObRiy;wx)4x0TeDXBx4y-5-RYeFV^4>3XBERg!&
z>5@7+b5TRy#fT~&h>1#I^*}9Nr$H+L`$|`Fiyg8?t~vkQg^U^Y&nj()`9*apBydka
z9r_*-!X?R`mn&kMw5`n_v1Hy*YjZm(vt(z$o&2^Sdc6uOsAaThQ0E>VCpymM)kg2c
zRLz&GCrh`R6Q|p>M4yQrhS-0EJ^I2W5*G5P&Trwe9dAWmMV!t0z5H>PrgT>sox}@}
zyY&KrO@@@I8c@DP3=P&X^`o3dZ<4X8VtFBfDz2=@UNDPf&^}zA&c-N1#%t5I0v>CK
z0!6N%L8VZ<ouU7yK)ET#dC(~W#^9NBd?P>I^K{;l%u!{;H5~OQ#!+!~B-4{YU+w36
zlbx=#iR{=5kR=#c3Fe5PxE3cWlfC2r(Jf~HnX(>!+DnPnrh1d>luU1}4)Jye)rzGj
zMoMt$7S@tzW(2UYc6|izUGP~ULGTO`k-_wsqN<sd$2}STJk`6Np{nq!Sa>(WxI>;}
sH8rEA!_e{5@RubmVMZVa{?5>QzsBb@KBRwi9cndgB2M@Andr3t08Dfc!vFvP
new file mode 100644
--- /dev/null
+++ b/js/src/jsapi-tests/binast/parser/tester/expression-006.js
@@ -0,0 +1,46 @@
+/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+
+/**
+   File Name:          expression-006.js
+   Corresponds to:     11.2.2-1-n.js
+   ECMA Section:       11.2.2. The new operator
+   Description:
+
+   http://scopus/bugsplat/show_bug.cgi?id=327765
+
+   Author:             christine@netscape.com
+   Date:               12 november 1997
+*/
+var SECTION = "expression-006.js";
+var VERSION = "JS1_4";
+var TITLE   = "The new operator";
+var BUGNUMBER="327765";
+
+startTest();
+writeHeaderToLog( SECTION + " "+ TITLE);
+
+var result = "Failed";
+var exception = "No exception thrown";
+var expect = "Passed";
+
+try {
+  var OBJECT = new Object();
+  result = new OBJECT();
+} catch ( e ) {
+  result = expect;
+  exception = e.toString();
+}
+
+new TestCase(
+  SECTION,
+  "OBJECT = new Object; result = new OBJECT()" +
+  " (threw " + exception +")",
+  expect,
+  result );
+
+test();
+
new file mode 100644
index 0000000000000000000000000000000000000000..39c1bbdedc646eceaf3a19d9e7b7ec56770932c7
GIT binary patch
literal 6728
zc%0o>TW`}a6wWRTCJ;j6W#TE1Lj!e4NJx-XVr?fnRbe9C9zkB>wPs#iIWArQ3jd5(
z-gx0RaO|#4nk8<Uxm#IZqWbdL=k}d*?1+Ak;;PfdD5xHB*5T;FTD2_elm$a;zv&)&
z?>(ROu;o<L8i$fdR9jn?^%zz;$?YeI6Ld;(9s3k<BnS%?R1p7<taB0u(^$V@$;vD&
z#uXF^ED{ni0Z49X1~?Stj9{+dLUa*dIue|Oo$5mv_Zqc!^Rw$zuEw0o6-W}xQ*$jM
zFh^9u{Xn#T4eu#T;L9GzQ3S%h-raq79d`0n!j5;YDM+rrMM;JJx?P2yG`@JI6#4)r
z4!t+u-Y$b4Z_zQO-0fz&)i9#PXA-T8?GO)a2wincqY7<IeBKjC;0usX-6oEOOhwcX
zrSVp^!-pY^%c^Y?#v_5aXyZs|BwUyXtFZ`(clr_~Dl3e%+JJ*?Kfx&GZPsF)>oO^0
z{anfL%zY9fK1^IrnsRJ@i{dk3ank9E^tlpfCq8Jwkaxh+a>CB{4s)TJiYVPd%TMha
zFb-z#(~Q6>VFU?xfC$CGGEn=U+tcHwA{8I^<Xw!Y@;OYn%$|VSqRZJJ1N&Z=9vdUF
z#=bfKJVH@q*gxBR80QyNS5xMnTU`_e6oku?eP6CfZPFIwe__dLTInV8+eet{gmQH`
z*5515`Z7+A-FoAo={D+mr5@|D5{#aa%Sk#;AG0p4#z<`Cl__W!HgV#Q-9`S!0C`n~
z!Rq4fv|p6%T|6*e!D+0X`yEB%RM;fKLua<>YEJmw8b$pGD>e6!Y=3j3ZBE&g!S(8#
zJJxsB?nA5>^|l+PfqNC9bJP*@^;vZ$QXLID{SNvBCY3^o;R5}?0Lmj67i^Tp=O75P
zM3LMhFFN|)!eUg@;J}5ON7JGDVq6R5s3W^cFzBn(Ty3&dl{S$rcMU}u23CR{Lr|=z
ziOOX2_kXmz3xF(G(7sA$R(sEuMUTDv!5;B049M4^$%5^dMyhD(81^>wBY<tJ<DS8M
zH+&h$5PSit$Y6pj@Vc-p?{ks>M4_j-89W_xE;N%G&ix7tpCmXplTGp;a<ufOuUK^t
a;(9;Uc#p;#^e>>f`qw7aVh@p-?)MMl)rS87
new file mode 100644
--- /dev/null
+++ b/js/src/jsapi-tests/binast/parser/tester/expression-007.js
@@ -0,0 +1,44 @@
+/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+
+/**
+   File Name:          expression-007.js
+   Corresponds To:     11.2.2-2-n.js
+   ECMA Section:       11.2.2. The new operator
+   Description:
+
+
+   Author:             christine@netscape.com
+   Date:               12 november 1997
+*/
+var SECTION = "expression-007";
+var VERSION = "JS1_4";
+var TITLE   = "The new operator";
+
+startTest();
+writeHeaderToLog( SECTION + " "+ TITLE);
+
+var result = "Failed";
+var exception = "No exception thrown";
+var expect = "Passed";
+
+try {
+  UNDEFINED = void 0;
+  result = new UNDEFINED();
+} catch ( e ) {
+  result = expect;
+  exception = e.toString();
+}
+
+new TestCase(
+  SECTION,
+  "UNDEFINED = void 0; result = new UNDEFINED()" +
+  " (threw " + exception +")",
+  expect,
+  result );
+
+test();
+
new file mode 100644
index 0000000000000000000000000000000000000000..f09c68a792ac9181f4be0977fd7a753f1c417fe0
GIT binary patch
literal 6615
zc%0=~%We}f6m?5^R6+=e1rn=S7FDQ4Vu4^9iKaoMibBPNO01AObDNktGm-5O@+*7?
zKf?~O<1e^&9+RXqZZdV!LbDl-A7}34_&yw8bvqnNehX++Iuc1!&^B2ogq$Q%pX^ub
zhrz2LOgcdP9ka&gOsdka$AsL+RsQ7mV=5Ru;cx&Ur-CY$#0Dx#-z7O?aWswf8<(tI
zgp~*b#UjFDrp5r1TdEPnik&hL1}>)URA{LLi<_mpI385Wjq3ZlzcU>3cZML7Sb>?V
zF$IEh1NW8k?m4^%I04@}0;ELcp6%|wJP$j58f8a2Zy88om!hCSf3DV`$CVF(D}&y~
ziNoOe=NH$(jw>Xl*1J({)GAJ__)w#@z>A^h;n6ixIyGoz%=ti31#Q&NNRyt0Ohc3@
z=jm3nBg7$qqGsE~ajB?K4Uo#B;nGxCPgS6z+0`hrs507XJ%PS`hoc}GNiAuf*U32R
z`&tGw_gPFue?mCz%8~mChf_raYqr$vcQw#<`k^I5UO|-B6J9<$+#S`K6J`5Q!I1Q0
zbs=d3$Lk+!HM<MyUCu`i(7zGLjmUm?a2!uYmuJMD0zB1lZz<ytU5D)VXLWYmG;ueC
zj+VuVDIaO_Cf*p-Q!SD7GO+)9equg@&>cUIsFaTR*%19S1)J7`C*c`s(KzC$T$b+p
zdd18pYrk@ql`spI0B>-r8SB->660Rs#5ixfsYB0cnU$Xka-RblO!;iWH?~YMU2Unb
zRpzuS!C1IMb$goY>IKy@zP4L(VWMrLnCmx&XqSvZOQ_GU&SncFvBmnJgG9}A9LdQS
zv?u8Zt(597k^gg`+{1B|3{uDf0m5ydnB1cU9lX~-4H7Cub(CCAAJr$LM4V%e>>}PF
zSEs|Y%T`kRM7P9cDl;5x6szK)*q9AeE}OG|qa9rW<eb%%H%zMDo)=>i_1YT*T>T0?
zPtR;UbyBuzGI(2903)okF8G3Icgb!&L-8e~ABRbCj*kDj+?nY^ujaZgyC62FaTdE5
uOPu|*HvF$3x0<wtmi${6Ypk=~PunSMA&!Lz_6x~e(_3@seD{Kx%=-(wZC}a&
new file mode 100644
--- /dev/null
+++ b/js/src/jsapi-tests/binast/parser/tester/expression-008.js
@@ -0,0 +1,41 @@
+/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+
+/**
+   File Name:          expression-008
+   Corresponds To:     11.2.2-3-n.js
+   ECMA Section:       11.2.2. The new operator
+   Description:
+   Author:             christine@netscape.com
+   Date:               12 november 1997
+*/
+var SECTION = "expression-008";
+var VERSION = "JS1_4";
+var TITLE   = "The new operator";
+
+startTest();
+writeHeaderToLog( SECTION + " "+ TITLE);
+
+var NULL = null;
+var result = "Failed";
+var exception = "No exception thrown";
+var expect = "Passed";
+
+try {
+  result = new NULL();
+} catch ( e ) {
+  result = expect;
+  exception = e.toString();
+}
+
+new TestCase(
+  SECTION,
+  "NULL = null; result = new NULL()" +
+  " (threw " + exception +")",
+  expect,
+  result );
+
+test();
new file mode 100644
index 0000000000000000000000000000000000000000..392209cb016b9160ae3878ab88d350a07f9f1307
GIT binary patch
literal 6652
zc%0=~O>Yx15OrI=Dj|f#1#wz&X;Fn*Brd=<5=jH3M4{@gdf|ZFT{m&-tRveY<gf6z
zIC161zhLZbvq`#fldY2mI7Mr(-_E=lzwtP}>UJ0@`7MIu(t+Sjf!k;mA#}{+J}TE5
z`@!oV;vItgZS#)Ls8pr3#|YhrxBTJdM_5pN%*Y;z7#3Jjo*1Y&dzR>oCh;iNFL-6;
zDl9Gx6pay0s2TtaFR8^OQS^ioVc-(n&Wx5y(4<+q3*$kx64pL7{O$8GfBPI{7%MPy
zb*hNK%)oucta}OX0Zfo@9YLf7=brEEyt)iK_%+U6tXwmY!fr)DLVqrn(4*>M;EK@O
zFtH!J`0{cYcwAs&YQMu;Sg$%^@u5a*5icP<54Ntc(kY?ULCyyXE7Au4j5XO_$R(nJ
z8OxTM6%h;(Qk1rJ7?%nQ6%wf|9?s2$)yxGfnq7?|i#nsD))Nrh4=_qZ$m_g$*(VdM
z?<+Z(S*8gV{UPIYC@;c~7&%c$&}K`Ge^&!-WgnU|<PE5_p717Thr6vhwxetxDkw=m
z7AHw}bQHqFTI0QwARuk^5{UW&i=$=`Hcpr2NK*j@HQYN)8HtyH$KQ+NaoxyrL^|3Q
zCsaOyi3axupq^?8-pj%M=kpWF9f{oK=K+?|aejuPpH*nnnJ^xmp%zYJ2F~UAUe<4n
zEwZ*V?Yw$g@PzOdrkaU<yI9@aEnGLJ)td(CIX#8hD#gU#G!aIkHWZz-TBKjGmC*`T
zQLDmmR}#Z<2kZWIVz6g)%tYJH<;<zJ1!k`PH>q|_6`I2V{^mHFp^VMeDD81I){^k!
zQ{WSIgmy~x=a~OfpxlFT#nU1(gFv_yis3cd(Db=ZR9aF=+yKkv=vIAlQHm$fk$=i}
zn5&~g?XuU@G0{D91<RZO8^=DvrnogOR4%)>zoTEB1LTzFsi%Xo>g{?P8*jW+aN$AU
z>!dTA&zv0HbUJvOa0muqXN~d|dUwr+KF9Gn6d;FXaf(ZUWw}<<+g?p|qjrTlXG#kl
vj74cbubls#VABxGX>;<`j8*S!m)Q0swxo_F73{Z`6Un#M(djM^b93(x7-MP%
new file mode 100644
--- /dev/null
+++ b/js/src/jsapi-tests/binast/parser/tester/expression-009.js
@@ -0,0 +1,42 @@
+/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+
+/**
+   File Name:          expression-009
+   Corresponds to:     ecma/Expressions/11.2.2-4-n.js
+   ECMA Section:       11.2.2. The new operator
+   Description:
+   Author:             christine@netscape.com
+   Date:               12 november 1997
+*/
+var SECTION = "expression-009";
+var VERSION = "JS1_4";
+var TITLE   = "The new operator";
+
+startTest();
+writeHeaderToLog( SECTION + " "+ TITLE);
+
+var STRING = "";
+
+var result = "Failed";
+var exception = "No exception thrown";
+var expect = "Passed";
+
+try {
+  result = new STRING();
+} catch ( e ) {
+  result = expect;
+  exception = e.toString();
+}
+
+new TestCase(
+  SECTION,
+  "STRING = ''; result = new STRING()" +
+  " (threw " + exception +")",
+  expect,
+  result );
+
+test();
new file mode 100644
index 0000000000000000000000000000000000000000..988918403d223d43870d24304b8f5479ef43e1c4
GIT binary patch
literal 6623
zc%0=~O>YuG7@p#16Jty~n0RrIHPy6DJeh^0P)unMn=ba^!3?`o7(48cnL*^Q_)q*P
zUOkxjFMMYxEYM{N+kv9xvf24~_WgL~{TO`J?J!dCTLediW5JsOw^0ru)ZkGc6)Ux)
z;B64{4nh8oS>rP*RpIwDgdV{ve|-BX78ExaIUpg!0xQa60~ICj5}ngHn#B4AOE#{;
z;=(}D2+^3T5y1GCN<?Bs&nOWFF2?OdXsHB^n}r839+XS<%7>c2b1~-cT!4&Y1!k^F
z6%m*jxUZOXFX26g3G%HYh?Jn*>)pNG%dn%TQFgfVj)4?*DKZ-L=V}dlT0RL}8T1}Z
z90hxy->icjS4d2)cfC@tmYrDfiAHM?FD5+?j;@i?sX@yl&IbxB(gyvEG|5>=HAD$B
zmTWaULKq?>tJyYTTq-P7ok(TTaA_*!5*4s$b~TF3s*LtpPk?U^VU&nEukz+)os6@-
zZ=^7@NMkJeW5Q`y4&9F!Ia5f`W=l<fR|9P)A6hcx4Mb@@;mu};yQ4aFqHG_^7?OUh
zE+pND@!H4t#qx>W2{mB7pyAL9`Zq+n6)8~L364jXr39c1WYuu*Fl8iKhZOi{b#~k|
z!8arwEsGOVKGh87-U!rFEx~&!*#A90A*qqj9Y2q;l#cmX7yTp;oBo6G@Eo;p95GNX
zP4}W+F}2Csw6xQ*X2v>TAEuhIUY#vF<}+u<dE-ru^qkgOwtO)2IUvG>*T%eK%N3JF
zmkL`YhP#p&8+WkoQfE4QLB))>?Y3N)YTF=Y?$%K4no(#8W%|w8Y=JbkSUYsU)l}ob
z8(+Yls3Wves=q}3&w=s~#uXnVkp%*T+dwhCM+-W5uM#y#sU)g_<Z|+;J|Cvy8Rkf@
z<sEW$GElqhD78;?XI#QE#lc3gLpT(7rvsJC9_`=gN|yjRXFc^|lveY*ue?FD_44NG
zW-z?<(n;N>x!`R<1q{H>df_XA-8Fmm6vda2eH`Y*Ir{!}xjEBkUd?rBc137T!Ys5e
umN5Hi<KiC!OF3zaEwgW5tijH9Pi-f$g*p~0*e@n$8sC~k=er+F<=$WY@L~D@
new file mode 100644
--- /dev/null
+++ b/js/src/jsapi-tests/binast/parser/tester/expression-010.js
@@ -0,0 +1,43 @@
+/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+
+/**
+   File Name:          expression-010.js
+   Corresponds To:     11.2.2-5-n.js
+   ECMA Section:       11.2.2. The new operator
+   Description:
+   Author:             christine@netscape.com
+   Date:               12 november 1997
+*/
+var SECTION = "expression-010";
+var VERSION = "JS1_4";
+var TITLE   = "The new operator";
+
+startTest();
+writeHeaderToLog( SECTION + " "+ TITLE);
+
+var NUMBER = 0;
+
+var result = "Failed";
+var exception = "No exception thrown";
+var expect = "Passed";
+
+try {
+  result = new NUMBER();
+} catch ( e ) {
+  result = expect;
+  exception = e.toString();
+}
+
+new TestCase(
+  SECTION,
+  "NUMBER=0, result = new NUMBER()" +
+  " (threw " + exception +")",
+  expect,
+  result );
+
+test();
+
new file mode 100644
index 0000000000000000000000000000000000000000..b61edd52d2096810afab769b198edb0674802dc6
GIT binary patch
literal 6754
zc%0=}%We}f6m`q9;vpn9hz+wsMHMQQSiv+>lLnC}Boz~Ni`*GEF?Gg~$020HhwwLi
z23vOg1=r4FlF7uGOr5kqH&y&N<9qJ)x%b+Yy)GjKw@q+RI1#)ha0hK8gwA*{K*dVE
z>b>!N-X+N0*K1rxBU$+H1flz|%AMYRiUq}Ij2si6VSy#(p@s_L-x0c?VK9sJ3zlpx
z!{S0i(E!nq$_c>qmP$ZENzW+}8ZN}0_|TCQG;9^_z_?c~H7kv}yFVIp_eUVpSe~A%
zQAq@58tw~by*a#xFhRa{1&Jas?&Yh4gL&A=e{Jk|=M4=h%%{jn=+Dg(dRqSI*&_57
zOjNytPp_{7j~fh3Wp}gEtd*^>_(-9(i4&5(16Nm{(kh|lNz8i^OVR=R^l9R|kV-@e
zGZt^vJA4=-Brk0{Fdj)PWRpbFVBy+K*p5xWqSaF<QC?$|*ZKl{`yNJ#X!06w&D*4%
z^?fTPGK)0CVlZ_$<;t=95hLdk3EFDQ<aZU&Ui_goLtcSOs|jaublAJ9i5q45P)<qu
zu~}&^HX60^(Go8dIcEfi3*E5wf26|OFb>zG$5MnSN6;#`cbGB~T!&QndviSQXc6{F
zSDnQQm5*Vf&YcOUBin-aQ?UQ}_=My}e0%YEf}_ZCd^W`(&d0hBVcfq!Z5##+j7zh<
zs8%F48Jm}HY1uQU1Mg+Qvgg1?u?mUNOkth$trl6vM3B?vqh&L0oN|{s%J4T(Ib@Lp
zbvRoz%l@<R^)XSjJQ<g;^xGwddlAtUP8X{#cwrE&$e*q%m!!~DLwFC4xt$EVoF(lM
zOtnI_I$xo8n7h!+nldk`Zfj@*u8y-6(&K9F)-jif#)hAL20l?&D5K<Hjq#rW<t~g%
zK1@y-WGG#h7U_-p8-LFfE$JFnBhsKzPZJuIq$6FPEXL|=KCs!bDxav%yM&_@2W!I`
za4Bvkh010R_;+-@Yk<sHr#+9ew{z%7(Iao2q2|I*^*}V5+<jrCEL0)k>_UMJ$ktl!
zC7O51r-2m1*N}uPrp62v&2@R8Q&(SRdYiLU5%yu>gDJI5EnW@PqDg)hKL8o^(DYPp
Z4sb(Q8N$T;HoDL;#yp$ti83`V{{W?3giinf
new file mode 100644
--- /dev/null
+++ b/js/src/jsapi-tests/binast/parser/tester/expression-011.js
@@ -0,0 +1,43 @@
+/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+
+/**
+   File Name:          expression-011.js
+   Corresponds To:     ecma/Expressions/11.2.2-6-n.js
+   ECMA Section:       11.2.2. The new operator
+   Description:
+   Author:             christine@netscape.com
+   Date:               12 november 1997
+*/
+var SECTION = "expression-011";
+var VERSION = "JS1_4";
+var TITLE   = "The new operator";
+
+startTest();
+writeHeaderToLog( SECTION + " "+ TITLE);
+
+var BOOLEAN  = true;
+
+var result = "Failed";
+var exception = "No exception thrown";
+var expect = "Passed";
+
+try {
+  var OBJECT = new BOOLEAN();
+} catch ( e ) {
+  result = expect;
+  exception = e.toString();
+}
+
+new TestCase(
+  SECTION,
+  "BOOLEAN = true; result = new BOOLEAN()" +
+  " (threw " + exception +")",
+  expect,
+  result );
+
+test();
+
new file mode 100644
index 0000000000000000000000000000000000000000..b2a72d1f0a67f74ca7dc745720b85d5d532efbd4
GIT binary patch
literal 7215
zc%0=~%TC)s6dmY$QB<j`c4e^wp^8TzNYq4XLP~>DgRnvBsv7Jeo-(nc@uVUD(N+Jf
zQdiyeBPw-fLSiSe2gk8PO0!8kkK_BAbMM^ftlc80q`L?@r6cM$C~Sg70Kl2=bV0dh
z9GE+%?Y9un*X0_W;DD9>JOkh{U!_O4pF)b^89{r<CXhmgeNRF;;d1~ku;&b8{o+d&
zuEX-Fgu)KM9%ci8=$4v;JciFPq7u%7%~0roQS3EJ5BRuQtyr}~Ltnod)7P&+qFAP!
zt7C>JBogi`B<(T0B|d>JTNDKWSMJ5e=GHju;9Dx&-+4zuQneHr4f<oY20g7Fn|T@Z
z9-lZcH$T6c2RqI%FooV$&8k;(vEmbf<|55Q9gQDdDdjvE^ylmh`iPI0Pxg(IkLBud
zE=Il2CthxCZ@+n+t0}7k`Y;(}sL3^xGK91eYk~?SB-|=@*n9|~X$%%HNSTEKrqHl3
z6&6DkAZ@e-N|03<aR54$d-MYzMbz@^eq&rG>8$SyF)>-j9;DrfaKe@SlLQDlXMo~{
z%SPWTfY!nn6%2U;2~SLD$<dJ?>y4Z!)r&Hc5sPztF=QmD!?ccT#=hDK2I>@aAfyEH
zXTmW!jHBk1K_LWnaf}b+eRnGhAz@(dxHgI5&Wy?CJ;Ve#^N_cH&o*zPOB=O>EV-ES
zDW5QWZ2+n<m-?L;>{}n7JRc)FzxX_YL6CENTC^LM5b_pEeER~p&~pe^E>8EdSTV9m
zd39~Z@qWe<<{h7Ecw%+7#J-z3v8Uym;gm9cnW#!-iQm0I81h=gJL1!Siz?4oAhX>H
zf$acE8@Hh7RU|rlLdB%F)wY~C)YiC|i~miiP02z9+%Rs=W)q~b$!>CcJ{u_!{j)FJ
zo}fjAQmk8G{HH*9$j6zVRB6tLD586WpuOihV!f1#9D_?93?J3!{ZyP_j)YP+zgR7<
z_7^@8m--3}VjL_L`@|2$-BF^-^LqJjT&N3xOj%ED4AQE$E8BLxeJjf@US55x_2{=h
zCD*O2=2FOs;LuihNz8$ByVqaCepB`zViYeR9p#uLQ}i(Ar3)xXfTd~xUc=QP@ACVM
zf_K01g-a3MP3YUI_(oBgD!L!ZEhr^zMg$rA-$Nb!ikMTxkh(jY=rv_JPS+%j4cfmk
CtR9j8
new file mode 100644
--- /dev/null
+++ b/js/src/jsapi-tests/binast/parser/tester/expression-012.js
@@ -0,0 +1,44 @@
+/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+
+/**
+   File Name:          expression-012.js
+   Corresponds To:     ecma/Expressions/11.2.2-6-n.js
+   ECMA Section:       11.2.2. The new operator
+   Description:
+   http://scopus/bugsplat/show_bug.cgi?id=327765
+   Author:             christine@netscape.com
+   Date:               12 november 1997
+*/
+var SECTION = "expression-012";
+var VERSION = "JS1_4";
+var TITLE   = "The new operator";
+var BUGNUMBER= "327765";
+
+startTest();
+writeHeaderToLog( SECTION + " "+ TITLE);
+
+var STRING = new String("hi");
+var result = "Failed";
+var exception = "No exception thrown";
+var expect = "Passed";
+
+try {
+  result = new STRING();
+} catch ( e ) {
+  result = expect;
+  exception = e.toString();
+}
+
+new TestCase(
+  SECTION,
+  "STRING = new String(\"hi\"); result = new STRING()" +
+  " (threw " + exception +")",
+  expect,
+  result );
+
+test();
+
new file mode 100644
index 0000000000000000000000000000000000000000..2c33b5a9c52282454cac85de0787e40eaa58d4d7
GIT binary patch
literal 7198
zc%0=~O>fgM81}~ZfeDEdoO0YWO=Aq0#ImBbE6}NwY3X)FZt|`*bCb$(>H0r7@z0Pr
zaYN$3Pr!E9ChZcpO_Q#ST%!8piQf-D??+AEZc)gY4Zu$Bh<SB}n`jv!RP&rJ%9kpK
z)@#f5T7b+=wZ^2x=egfc5PB$9nc?lHm=Ro~Z~!*N40GbS3d#w7`{<mw&M?+bv1Dl+
zmd6wnaS(9{9{_~6lpJt5IU~RnoQs>mp?%JXThHAS<5sayEq$z*o0nte<|RlN%TjY?
z!hvC`;J#qmzJj+RCg7sQ!1sl48_%}3ufh)AO4$C+TMCltPmxfe-{-5))8es}mO}4{
zi9>7a(~CvW;~X7R%3Up0%f(c*_(-BPz;K~sh^wnkxd;mVF+YVq5aaoica@V5`QmXZ
zO1&#4wx93pyn30cDvJa9usG(>6q2bk1hf*Vf&!*A*s6BeVhCUsh4~yaUIm|PB+N{N
z<v;|?>TQYQCly9sfDRKDeJ@6VRlTxTzbcb5*0-eypUe{%vu@~c(v<z1geaVG#7Mot
zN53n9)`Jga40#O!Pfi%|-jN>bjoc{RhZ2&}S(M?kAtOm0lQ2;QIvHIEb%J)Y1`%we
zw6PyW&0+^IV#j&~QqP|^<E(WfQy-~PVX8KbV9SKz<t-)@oJEM#zvdgM;lhTNJWDF7
zd@P;aGX|grZ!oVDfqmosQ$%2})AP?G?E5MEXO(q>q(Rl4)U(e~1G^3t!bQoRmn%j#
zX^Yin6w@b6TK2_M-Ic48h4Q_`p?p%l84e<|Cx*J<75nZv!jRQM){#&DE4s*Dz}#*W
zC~o_pblk$SI}vN_DFsv3*6VU=S6dgyT>fudZAKQ#pr*J!olOzOrmNi!JU)^XdbQ6&
zpQy#8P`sO=|4)E&UyO6F7euBYh;)e}yhk3i_qz<d7gE8gh?D!nSM_N>6vwC|CY4Rk
zSF_9ZrA=fRU%-BZft6sV;!@lmC8{(F%73GT&H!@4d}?D5R*gN?sOyzyt6OWkMvr^@
z<7(0BS}Iwb^bBKF<ii3uwK9GT_08CBh!8x3Sd?OfoS<c~C`~`f0DPi;-x#6}NLLgy
z8q)nL7OsRyH>ORiNj)_U4IM?rcbv4Gsr#El@BJE|)A*3S85?UgZ7iOwCmQLre*td=
B7jpmr
new file mode 100644
--- /dev/null
+++ b/js/src/jsapi-tests/binast/parser/tester/expression-013.js
@@ -0,0 +1,44 @@
+/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+
+/**
+   File Name:          expression-013.js
+   Corresponds To:     ecma/Expressions/11.2.2-8-n.js
+   ECMA Section:       11.2.2. The new operator
+   Description:
+   Author:             christine@netscape.com
+   Date:               12 november 1997
+*/
+var SECTION = "expression-013";
+var VERSION = "JS1_4";
+var TITLE   = "The new operator";
+var BUGNUMBER= "327765";
+
+startTest();
+writeHeaderToLog( SECTION + " "+ TITLE);
+
+var NUMBER = new Number(1);
+
+var result = "Failed";
+var exception = "No exception thrown";
+var expect = "Passed";
+
+try {
+  result = new NUMBER();
+} catch ( e ) {
+  result = expect;
+  exception = e.toString();
+}
+
+new TestCase(
+  SECTION,
+  "NUMBER = new Number(1); result = new NUMBER()" +
+  " (threw " + exception +")",
+  expect,
+  result );
+
+test();
+
new file mode 100644
index 0000000000000000000000000000000000000000..80dbbd50cb112fdf4c2be739841958a57df43fc4
GIT binary patch
literal 7117
zc%0=~%We}f6m`p60t8|Ot68?HAe2`nm_};S0fN%BYSM}wa%bGctvilvhcrKe1b+r%
zg~Wotz;>F<B%L_P)Dr@9Q`L_%z7L<{d+Ul;lc2oYKrqPfFj{Bu1S|po4rtH;g;M2R
z^<~wkO$6MWUgHwXMgH@B0B*@uZhZSbWEdV0w26EI85Ed?8Y+nX=HM8I!64R8xnyA+
z7G)X=2LOjy^a0{qN&yN5KE#M=xDcL1hvtIeu%5pr$E#kkR@$z(xwA1hcLoy2s_MBi
z7KlNj;XXprI)`^xPN35!L!3+F9zI@u_UMS8NACaD_VzYk(x}XQkd!|CHd~+Wd%IOz
zKD{a@yyDizht+v-<d4}o@`@a<m1<?riW~1Jv<7lQ)OO_c)u)^Xhkl=(LvP6O!rq(8
z-d4fewU(PtpRBFDcy85|UY|m$0t$2@Ez@U+s3p+_MMy}rRqycS5JDGm7#EO<8sfrW
zVP+;QMkYX3Zz&X>));jG+Du0DtsF(HM$5E*-X<NaFAE7dS->G=o!H@2D0?>v5OgR2
z!}W$3{;mRAi9VDu<R1_{HQ|iT4tuOObfZikN=ZgHlLDWeOcu7c%ihMAC{$3}>ZR5n
zrj#HUj=$2g(}AzE(*ecW(w{Aoz-cK(;5Ebq1@oY%zh<ka=+s9|brvhGyeB6r)aipd
zqQPj}l&Ak{eoCE0zP<e1ft*{;&l>AQ(yl8+Lj7aVfMGzSaY?op)QX`^#<DU@;^UN0
ziw!wd57p{)g1eqta3|%POqhO@#EfD5fw0BGqkejyF$r)H3cpb#u*H#faucdX!pLY(
zX_*eU*_l)4+KN2p;(wEC7o?#Kp8kK%XH)3dbS2g%6+^`gJvfs71Wl%l5}ge5e*%>2
za$L}^icCQec8MasM;)~LcNvMUrlO!CPtFIg>VuvZk8nqFePA(H2btPtm8xQ*s_i1=
z2?5rIy_c8b@-R`^to#0sN;d<@2_ICsNLQV8-B3HLr<RsqIbHJYjdxcqEn9iWsoZdu
z<daw;TdTLnklzLS0ttp^phgxoa)RE%ymaRj2Z)Ipb7QDFqFq_f7-;vCTzET1yNT~h
pbFbCZgD}z5=;n}-H%<SNFz3G^>kL_B?wgK`n^BJ^YhNa&?Qa(X{-gi^
new file mode 100644
--- /dev/null
+++ b/js/src/jsapi-tests/binast/parser/tester/expression-014.js
@@ -0,0 +1,46 @@
+/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+
+/**
+   File Name:          expression-014.js
+   Corresponds To:     ecma/Expressions/11.2.2-9-n.js
+   ECMA Section:       11.2.2. The new operator
+   Description:
+
+   Author:             christine@netscape.com
+   Date:               12 november 1997
+*/
+var SECTION = "expression-014.js";
+var VERSION = "ECMA_1";
+var TITLE   = "The new operator";
+var BUGNUMBER= "327765";
+
+startTest();
+writeHeaderToLog( SECTION + " "+ TITLE);
+
+var BOOLEAN = new Boolean();
+
+
+var result = "Failed";
+var exception = "No exception thrown";
+var expect = "Passed";
+
+try {
+  result = new BOOLEAN();
+} catch ( e ) {
+  result = expect;
+  exception = e.toString();
+}
+
+new TestCase(
+  SECTION,
+  "BOOLEAN = new Boolean(); result = new BOOLEAN()" +
+  " (threw " + exception +")",
+  expect,
+  result );
+
+test();
+
new file mode 100644
index 0000000000000000000000000000000000000000..87a6c892fbb55b76dcf2f4d93e8f614801940a1d
GIT binary patch
literal 6274
zc%0o>O>fgM7*5L=Oh^a`!GTkbLlcyVae=JBx=!m<brY#}MQ-A?W^P>BE~USMJO7Lu
z;>N$=wfm8NByQRzU7?pMukFY0m!J2w9og+rTy$C(`Na#)njE#Qyk%Jp=J&0mO6|;j
z>w2t%EvKO8IFtxk{QlIk9>6STa``3V1T`o=#vVl+Nx}jR<%i$Gx+Z}?jrAL*<Q8Eu
zuAzu;k$}iCz~qvOj{`}r2<93tK<!XzAvp<}#d{!k%cXkdyyg^!GN&*EnZ$DSSd~c3
z5!G;C5$(?5J%j=Lt;4YpVBCvW`)}r9$N$>c(aJj-lAE<y(V;)r>(I;cCpRsJ-i3iP
zcmMOjCiwB!`uwQuu2<^Sa%yRL(hWRim|a4Yid5ZM9%sBOk;HAVPU{k$gh)3iMZ%?e
zg$E*xS9RJB$c02)*0GQV3o|nzADV!8v#U_Vs>VD5d5=S6PeF=#omE+L-X<NaAGwIU
zJR$+&{R!n%D1o;JDN6B`v^Z(D<m|o*XfNC-W5`?JXf<HRXGeMmb>>8wHrjk*-v&8^
zy-Onw)(SyTa3_dR>~8|G|5=|OcQmPZxTADQ#g&g?pvLSms4ZKZ^&+tU>&9byK-Snx
zFF!Ak5Gm(po%h4~qPuF!ylbn40-u6$QMMnc88eHFt@!(>YOs0rZA<MAzK^MCji}T~
z7`!KAuCfp9*Dv*)^Q+zG?;>Iu&CNscR2(M!t#%%KpCWNgIAmQJb{XlBGje?iNv~C+
zs4K88pdF;HSg|o((ycnE<|JG?qxL|}d`cPh5r&$9n!Q>dakz3Hk+g!{kZdyOGH=gk
zOH`}ny7^-!XLyA*zJNci4p&CWeunv<0OdZ&B^%Jq;t(&%9_lyR&y+3Ej8nyOP&u(*
z1I@+sQGGU|%@}vY&|P}DTEo4J3Wkb_y4aPFhzPJY>;MkM)+|w_dBylQE>#&oCak>b
z32>s|rqYV3xZAtX)Z$)x*R}=3cEjssgy9)fniT6_f-CB#Jo2dXEfc-(ETG~1m{Q?J
zGEJ$5-floNA9BOzZWDpTzYrK1&GeFL&R#>#7;?b;coyq*W2H>?hNWFO*DU`9Q?&3K
new file mode 100644
--- /dev/null
+++ b/js/src/jsapi-tests/binast/parser/tester/expression-015.js
@@ -0,0 +1,40 @@
+/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+
+/**
+   File Name:          expression-015.js
+   Corresponds To:     ecma/Expressions/11.2.3-2-n.js
+   ECMA Section:       11.2.3. Function Calls
+   Description:
+   Author:             christine@netscape.com
+   Date:               12 november 1997
+*/
+var SECTION = "expression-015";
+var VERSION = "JS1_4";
+var TITLE   = "Function Calls";
+
+startTest();
+writeHeaderToLog( SECTION + " "+ TITLE);
+
+var result = "Failed";
+var exception = "No exception thrown";
+var expect = "Passed";
+
+try {
+  eval("result = 3.valueOf();");
+} catch ( e ) {
+  result = expect;
+  exception = e.toString();
+}
+
+new TestCase(
+  SECTION,
+  "3.valueOf()" +
+  " (threw " + exception +")",
+  expect,
+  result );
+
+test();
new file mode 100644
index 0000000000000000000000000000000000000000..0632656da96188c756632a945ea6330a1f3d6f31
GIT binary patch
literal 6523
zc%0=}O>Yx15Z#8-Qh^YH0}`hkTUF3jLL6WTqG>8pMQO!`o{*5c>m+X7b!0oFIr2C7
zXWS4s{sm*F$!?O3v)MXnfL^Nj<L%7&`OS=7*=|u>aGMwfg%i#i99=p&$8pYB&~^69
z)g$k<=d%`e+#S8fr9{ZWx2KMCA6B{X?Wc$nbVl(3_9@~>5*BKxAo?ww3lavySifM&
z$}}v-H53UP5)wH8h;JzeIFzJLFxPM)x{Qn#l9RAeSch@1RIHVctM1PAn7eZg636oN
zT!l!?5!G;C5p9p*J%kB-)#6wPaPIl;-m7ug!GG;+f9D+y$<0<|4Cs%=2K2P_(X$oM
zyD)L&?R|N<3~~IqxHu}mYvo#{WQ~@G?a)__<%@_?VKtnk0pmT1B)$aiv@Ow1NDPBA
zB-*NX_%MWV)}U>`xR8j;8Wz&v;oMxvMJ^!TXe$(v)tN^y-r;bvA7B*o8mq9zxKH}9
zzON+ka-W2VcVot>qXgaVQIz7kbU0}=<>+@6(025pIYZupMyrYZWOmrQs3SMZ^r7V!
z_B9xXV{g-hi<RLJ6x<;q6bH*7?7tTm#|<qiK5i*ntc3CjOjKEZ0GgLg&N>O$|8(K8
z))Q;&+vDd662dY+YrGrf7hP3T=3h8X6b2NWOY(hRtr*#4EXCjD5`vyFzrBa4MyOV2
zQ~kG@RX?rX%vMAkFgcR0+1WX8#%Xcok?bb!`eaIbFj^;9gM2^g$Eu<QBN2^OhM=pk
zi4(uiNA=eSxM5;i?^FA@KD`v0K<yzO#`u=j%p#J0vq(`}U>&p;Qr+Z4`p)Q~=C7F@
zGhd!<Ff;exT%H^1>KqE{+l$!@iFpy4V~77KQ0~FFWWBU_YeEs<qYUl+u3*_K5^zuj
z%f;|jebz57CWIro>bA($D(=jw_fu!0de|Zo2?wkldjpqZbyTQqc2j>x|2PN8lojG*
znAlXAJ-@s4;yTf8ZdoZl)$!*yp^V2JdyVQ8eY;^po#6N!5{|_*n4&3PmS-(>&1I?=
ztto08DJ%3~24(#W3m?RkHBmDrzke7-%=AudW~zZ7hVwQ*4Ni=(F*%wl>~ybpiRAkO
D!Tv@j
new file mode 100644
--- /dev/null
+++ b/js/src/jsapi-tests/binast/parser/tester/expression-016.js
@@ -0,0 +1,40 @@
+/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+
+/**
+   File Name:          expression-016.js
+   Corresponds To:     ecma/Expressions/11.2.3-3-n.js
+   ECMA Section:       11.2.3. Function Calls
+   Description:
+   Author:             christine@netscape.com
+   Date:               12 november 1997
+*/
+var SECTION = "expression-016";
+var VERSION = "JS1_4";
+var TITLE   = "Function Calls";
+
+startTest();
+writeHeaderToLog( SECTION + " "+ TITLE);
+
+var result = "Failed";
+var exception = "No exception thrown";
+var expect = "Passed";
+
+try {
+  result = (void 0).valueOf();
+} catch ( e ) {
+  result = expect;
+  exception = e.toString();
+}
+
+new TestCase(
+  SECTION,
+  "(void 0).valueOf()" +
+  " (threw " + exception +")",
+  expect,
+  result );
+
+test();
new file mode 100644
index 0000000000000000000000000000000000000000..afd2dc722533a71d2c89709da600c796a7ff2e15
GIT binary patch
literal 6319
zc%0=}&2AGh5Oxa`DiA_K;=n1#q6$hSq)KRs)TXIO6{Qs$^$PB;lbE{e$o3NQD!c`c
z!wqrcEf_m(c9U$JWa~`><PxoaKF^=OnX#whE+b{HLvUC=6}&C*C0a)ao%67d4r+~K
z|E(YJE<xUoS>rJ(Rr&ifgdV~wFTMQ?3yRMfIV1tY0xQZR0~IFU5?#<J9L4$tOV(y#
zabcinh-gIB5Fov!7LrKO7A3;KMffriS}H-KcKJSx`_)RbcGB>6uExBbE08pnZ|3S$
z5rLV3`+`|Kf%h0D$k(nQQi5_XU+?Zs!Vdq9ve!HB7)W84BBw!rEZ3lC)epWagWiLQ
zV}JMKn^mym&*j-s>)ot1>s4oAc@#&1R;*OPj7g{FtPUgIS6Got(9Xz`+=NUsXhD*#
zW=8-+gyc2aCX7pkg=!M1EE*Q3!g`_t7VTK0$h^utf$^RI&%TFIBAUF;+mkvOXMJ1C
zh|2>SVbM<sr(FrWJqS@oS_%o;?x^u|HPCi)P{EM5z|nf5G(9@pUDUA~Wjko~iG2gc
z!R;~2xL7%ypy7@%Wh7h$V*kB7J8l|M2}oDV;>46sVWPoHL(r1y2;R%U{-+C%jR9Gc
zz+HTvVksTRXH)c({9>wV#)Avg!BNOSxh&le^op@f)>2$%WrLjgZ6BuEkzSpT_21=Y
z{dxJuc@d$zm?&n<gvCi~b{R1i4kNxx`AGk+kFuqL3RXd<!f-5!v2+*f4s5E+7u3%9
z+-}i@18y6{T>ozZ?uJ}cKoNR-Hd`Q>Ep|^2xf(00`T1wCC+Z5Vl<F54|8t-`fN{kK
zsbm3ya7z^FJzCJgcb%v~VkKb%B$uOC_4#!|o??#dO4VVkHb}3aeo6a8_k9&CGaPIb
z+k;DScbuqPb|8O8&s6~A0`Cwyx4ybcu3Imh6l>b`r7b9XNzYwlH-p=5*nnmzUO=*O
zm;&c$VpruENMCU^*9*`LCQeutdKL?-eu9OMQmmTE7t`MhtORCzSG7l~B|c`Ax|Vpb
SKebKufHiT>_u`cqfPVlOF9VeT
new file mode 100644
--- /dev/null
+++ b/js/src/jsapi-tests/binast/parser/tester/expression-017.js
@@ -0,0 +1,40 @@
+/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+
+/**
+   File Name:          expression-07.js
+   Corresponds To:     ecma/Expressions/11.2.3-4-n.js
+   ECMA Section:       11.2.3. Function Calls
+   Description:
+   Author:             christine@netscape.com
+   Date:               12 november 1997
+*/
+var SECTION = "expression-017";
+var VERSION = "JS1_4";
+var TITLE   = "Function Calls";
+
+startTest();
+writeHeaderToLog( SECTION + " "+ TITLE);
+
+var result = "Failed";
+var exception = "No exception thrown";
+var expect = "Passed";
+
+try {
+  result = nullvalueOf();
+} catch ( e ) {
+  result = expect;
+  exception = e.toString();
+}
+
+new TestCase(
+  SECTION,
+  "null.valueOf()" +
+  " (threw " + exception +")",
+  expect,
+  result );
+
+test();
new file mode 100644
index 0000000000000000000000000000000000000000..ffa699e488bb803d2ad72111d117148a4f1de846
GIT binary patch
literal 7291
zc%0o?-%ry(96wM|6GKdV<Hd$22r-C?L@7($m^d;Ep@m1y(H`qb*DlwaWB-Rw{%0mW
z`R0G&-IcA~)*jt<9TQ&0?#K7OKR@3e(`mcqp_1+*=#-90&>*l076Aa~fzt)$nsI2p
zH|?N>fW9ft=pGJfskQ>Z6Lv~ZUO$5b!*dVqBin-nQXKe#loNjs!6o*cL0W&<k%gOR
z1w@d-4!}O9eFDiVH3#_=UtmN8IUhD-rb9}w-zYs~>t?lL)s75(^LkC+ye5*QWs1Ez
zriegKkoyk3_6WUYwt=o%1cf0J?#0WkccWzcpF-H)&3l3*k#jMjLVwLxp=Z?-Q<Xv=
zu#H1=>+73&(Bljplgn+@ta??67N2rzF4BC|(OBpTF6Tj^zh|e=$85cPdSIM>E>};K
zD0PW#yneN_^LAUQDyx0?Fe#*{$s`jz#ITa8f(rD!_^P;Jvn7P4QCLVJp%x0MM8d*E
zSd2x0q|xS7!byeU0nj1LqMz6*B34ij8ly4^WBpu6@yRmwA?YTV<EHFI67bLk1q3%-
zI{Yptv=Kj4Fv(j;czi?4_6~KZHxyB_hvq*^a_C@YZ+j_$H6apxgxEvQJb?P&*@8N{
zvQdlkqC}O?*oF~keWDt5Nzh55eW$Cqr3kE%t<FD>VHhg*Pm6Tp{32QuFR(9x3w_69
z!llVx<|l?ON&A{(#>t|hzJ{h{mf{R(S|>H*K(0aqbqdP3f&=kyMxH%NbLX56#Tj*R
ziZi7rhuKwOAJ|sI=cgx2?0XX@_Pi-&(BjjVi84>i{EX}|5SWPo<WEK4S#U&gfgFRq
z9S+9R^PUIESh=}es6cAF6%V#UBuv$UeB_Y{3uEd>IE~ySV}sI08YtaakDW4K70{^M
zp3cT7c*bi8_X9eV2!iu(OrM}dxKOlPp#SHf@`$a|AS<6ti8uVO_nypK(lM%zs05={
zhA?Va9T^Erov#*`;kixtY@h<e6ax#vzObOUKMYhVyVU=qFE4;(&O&KBs&%v|EoysW
z0vO$0TXpg3`mPp1aBoYTTU*~%QulKY(biZ8#V9MA5!?WQQ_eEhmGPOkhng}|<|uIH
zWunNDfaV$|Dk>0vu!GA9@XeS3%Rom`T1pz7>~WS9I}?nI{Dva;eu>XXd`Ld&&9s^{
LC+8curaJ9EX3aE2
new file mode 100644
--- /dev/null
+++ b/js/src/jsapi-tests/binast/parser/tester/expression-019.js
@@ -0,0 +1,44 @@
+/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+
+/**
+   File Name:          expression-019.js
+   Corresponds To:     11.2.2-7-n.js
+   ECMA Section:       11.2.2. The new operator
+   Description:
+
+   Author:             christine@netscape.com
+   Date:               12 november 1997
+*/
+var SECTION = "expression-019";
+var VERSION = "JS1_4";
+var TITLE   = "The new operator";
+var BUGNUMBER= "327765";
+
+startTest();
+writeHeaderToLog( SECTION + " "+ TITLE);
+
+var result = "Failed";
+var exception = "No exception thrown";
+var expect = "Passed";
+
+try {
+  var STRING = new String("hi");
+  result = new STRING();
+} catch ( e ) {
+  result = expect;
+  exception = e.toString();
+}
+
+new TestCase(
+  SECTION,
+  "var STRING = new String(\"hi\"); result = new STRING();" +
+  " (threw " + exception + ")",
+  expect,
+  result );
+
+test();
+
new file mode 100644
index 0000000000000000000000000000000000000000..b7b533165315ef7ab7dde0445a9d1f5f0d98cf16
GIT binary patch
literal 55280
zc%1EB%WvF77<bYneGyRvqC76<h$=RLG&HTYX}jsR4NB80+2n$%;`L58CXT%tdr6l+
zf^)^CM-ChT331_sIC4N-cu0s7+<HbrV#b?&d1w6`+hga8)F$h($1~sjzHdJNe&e08
z-EQe<wY-m%#_B_CHnDOjO-qtgHya(PvcCDj_O)%*Y$2(<;G9#|HOpT8^JhtVnVeM~
zzI<1~no`%%ZKUc7R&32QoT?gw&z5wc8I94p{vfAJ`PF4&rz))>X@+L^D;U0Hy@3o{
z+tUzssxy?sL8C1jYesYRG&#OqU8}7>*eov`A1f~$S2A4Jwo|sD*$6ATQ{5+u-X5#(
zEGgJC$)E2mF1|ZnWB<3)&)!9+oZ7H=10ve;*K}>UTix2`Wy?8IP+hx!>+yRc81kR=
z3^_}V*VbzrRW4?{NNd|iGJ$2ORMHGtwrs^lhol)I*!B1H>`I-pvU7KH=YFNS#SNlM
zON%R47ez4T3sX5Z<@=;y-?m%V78Wcry|k^;p=utM$iIbpyJ@v_#a^)X&7;TUQ%P-V
zH?+p}rOTIBmY2DjzWStvk!2AJZ}+^!X*22{XPRtH(e=Tl&J`*-giss<6F<dv4Ow1(
znphX62VGEbvrTKUqITv2Ievr*0`8Hc2-nOFvpL=;XRtnJVYs3h3hoRwjt(VBLAr3(
z(Vi_~t+{Wz?@KGXG`La1Rc4TG&;offI{3{yE|1C={HWFMn0VcI%t*<c4t;crfw~9v
zkCAG-yt;)cNNf#Rqp|lzQo{_phKJotI!>PsP{%ctAv;5-932@=d*2&Do5W^VQzt@5
za(*t{^c>41IzUH*MD><pbh!Ay8G0XNTdLAR!CWDUUeU4dAivoq(4gFW#(7X&ccnkQ
z(_+}2_V`nT&EUZz-?4-76aujWVh6+yh#kJMV+mph#14oZ5IZ8ojunU<5IZ1t6g+ms
zXAEiI?9gQ4owlJ;K6#jGrZs5|sYN~?T9b9Z$PsN43-dr?M6`h6#dHA1=zDhnhik0p
zrg|_KD}Qa%xF|`p?si2S_FJT=Y0$HyagWy{bC2`nc+UZEVXXK>vQ2cv6`s_96K<Oz
zshyp<&ynN1GzR6*){d7B%sk`F-hC?tiU$>}s0YY)B}ZK+?d2n#sND;R<lCkg?TDEu
z#U%H=f@G}d_-uv|wZ(GRM9~<=(G!DWm_{Us!$b`o7{LO?o;Wh&J8Uo)ES!aZ{(FAI
zcQ%`l)sKwKP&{KjT`)&8!Zl<v9fUwSF+0mHXreB)TMbeWY(kB=B;;#WN}bG-5PDn-
z^(g6O!U#(@;`mxQa-J8U+XeGjR@FNWl-<4T*}lhyx$j0#x)gmi#RSuH$!ea?^2=&Q
z(|evQA?1<i0--g<V(>^#N4}k5kbFFss^nvFPC$a_bl*8Y%ukXL-&JBzYP8@{KqrLk
zFpYr|=4ppR_t^An0_hxWNcS_zj=G5vYHX4gyEKzGdI{Bp4kX4GXF7@OOeZ{v1PnIw
zeIS>D=t%`jyi(~}&^XE~nT+J&>3M55cg;eTnY6x5R8{7Oi;^_QDMJTU22>f*Z4C^N
zF9TFC;YvhO1=J@{pFn-e3BLg96R1yI)TitcHoiFpFXsTc2;?G=i`+Z{$VIux3P3K(
zX*vgTkuY*m&};HI1%TKiLfVu{*FfwM;I3JSJ(FHY7FFzd{;DLMcDE}cBmNt!kI69N
zbox{Gk$O<UNIBpV6)7@Wie>qFSs3Cxq9y02QnlpZJyvmro78N7Ha*+V^{`kdyNfOs
zg+Y9x%zn^D6!iV3e+djvaiVtes4xZf{zQ}1APoRzDJ4hGldP0M02`SSlhTw%fkBeX
zK^$Un6XM3M?6T-RMbiUk7C;^aBaa?Vi9sH{*~5%nr=XF|wk?}`{V%~z_)&~Azze#n
z{Ch#L^3up05r}LI9oLIG*%cI;8pxm_97qfqG!#V?VjXJqz#@{^8Hm7%xRM5*j^aTp
zSzY9jbWC9QWE(zx^}<pz(uxob&qAHKoHKQ1_jO4+?`~H_Ui&*%ACud#hy;taZZp1-
zE~-nXCIDn&D8@@-U?`TM7y>I8ie)H9tP|c)C+VH4h$cFpo;-PGFz*ZeMqhZ#Zzy%7
zqsHh&tkZ+t={QC%TW{M0EOn&#5MiM+fva=;#Ij5liF@V*o_V6+a&mAl5pi+8Xrl0c
zQ-#5~*Y29k=j=4Zri^XENJ{dr3uSCmMn=rhrbQv1{}MzKDbWIwR_=9Vy_<&&wvClF
zOEwL?BcmrsZQG>CG*m{1M#j-Jb&_sOyzdlOmYfdS_2`0gRAL~6ykAV&<ZnUHduf2)
zK58vlGpPP6>!#U~6^vv=uO+38LPFPvs!8l^o4jNACqXd$_5i~pOBj0LxWAt_#d9GM
z%$*u48dQH21gdZOK($UEuL=oK?lf;g8sHbw@t38sL%SzO;FT14%{pGj^7Qp&)Wm|B
zAPZe`IcK`$m!M0Y5ETh@Nzf%hmjqoBbjf_{l3J4_Z*>j(Q8HmOfzLpf1YPn3=#pF0
zg~53|U2>`)lM)I?#S!K}>;$nB#7+=9LF^2NUJyIQfi8%hAa>>(!60^m*eN(fLF@#v
z^W=z~S8^tHe)WnZopZM<Pl^kOogj9C*a>1Mh@HGl1Y&1w%L^cOf`WIF6ug}itKhAf
zq-vv$K*TGAh*uQe321(C7$~6mf#%OQf`R7uf$A@UKow~Il$HSi=?|p8Fr@!V&PadQ
z7pqq#?285aV!^&x9PBPS-3a?)ahri+O+BzL7VL`!-~7(w$&KC{_QisIu>{GYVPC8S
zXf4<mD?(I(eX%md3havo`(nAE3HxG&aUj?i3--l=r=#f5f_<^XYPgT#rzf|+dw5N0
z*==^8z9ARCHq<8u$9eqwEWOLl-OZi*mFgB#Z0brmYyqoV#ul);Wo!X!Y-6smvSp95
zD;{MlV`cNC?BTIzvTeYePKPX4Td!?Ynabbz{619WZgp#$RV78xE`<oYHIr7^4Hq*u
z92vT?Y96)}W4vZorsWa;h7e-e3btuy$4Y7XVzUY^kb)yj!qYthON49YhS_9Z-9aN9
ade<qO|DTf5*+3|cH^!bLIcc=mPW?X)eKI)!
new file mode 100644
--- /dev/null
+++ b/js/src/jsapi-tests/binast/parser/tester/forin-001.js
@@ -0,0 +1,297 @@
+/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+
+/**
+ *  File Name:          forin-001.js
+ *  ECMA Section:
+ *  Description:        The forin-001 statement
+ *
+ *  Verify that the property name is assigned to the property on the left
+ *  hand side of the for...in expression.
+ *
+ *  Author:             christine@netscape.com
+ *  Date:               28 August 1998
+ */
+var SECTION = "forin-001";
+var VERSION = "ECMA_2";
+var TITLE   = "The for...in  statement";
+var BUGNUMBER="330890";
+var BUGNUMBER="http://scopus.mcom.com/bugsplat/show_bug.cgi?id=344855";
+
+startTest();
+writeHeaderToLog( SECTION + " "+ TITLE);
+
+ForIn_1( { length:4, company:"netscape", year:2000, 0:"zero" } );
+ForIn_2( { length:4, company:"netscape", year:2000, 0:"zero" } );
+ForIn_3( { length:4, company:"netscape", year:2000, 0:"zero" } );
+
+//    ForIn_6({ length:4, company:"netscape", year:2000, 0:"zero" });
+//    ForIn_7({ length:4, company:"netscape", year:2000, 0:"zero" });
+ForIn_8({ length:4, company:"netscape", year:2000, 0:"zero" });
+
+test();
+
+/**
+ *  Verify that the left side argument is evaluated with every iteration.
+ *  Verify that the name of each property of the object is assigned to a
+ *  a property.
+ *
+ */
+function ForIn_1( object ) {
+  PropertyArray = new Array();
+  ValueArray = new Array();
+
+  for ( PropertyArray[PropertyArray.length] in object ) {
+    ValueArray[ValueArray.length] =
+      object[PropertyArray[PropertyArray.length-1]];
+  }
+
+  for ( var i = 0; i < PropertyArray.length; i++ ) {
+    new TestCase(
+      SECTION,
+      "object[" + PropertyArray[i] +"]",
+      object[PropertyArray[i]],
+      ValueArray[i]
+      );
+  }
+
+  new TestCase(
+    SECTION,
+    "object.length",
+    PropertyArray.length,
+    object.length );
+}
+
+/**
+ *  Similar to ForIn_1, except it should increment the counter variable
+ *  every time the left hand expression is evaluated.
+ */
+function ForIn_2( object ) {
+  PropertyArray = new Array();
+  ValueArray = new Array();
+  var i = 0;
+
+  for ( PropertyArray[i++] in object ) {
+    ValueArray[ValueArray.length] =
+      object[PropertyArray[PropertyArray.length-1]];
+  }
+
+  for ( i = 0; i < PropertyArray.length; i++ ) {
+    new TestCase(
+      SECTION,
+      "object[" + PropertyArray[i] +"]",
+      object[PropertyArray[i]],
+      ValueArray[i]
+      );
+  }
+
+  new TestCase(
+    SECTION,
+    "object.length",
+    PropertyArray.length,
+    object.length );
+}
+
+/**
+ *  Break out of a for...in loop
+ *
+ *
+ */
+function ForIn_3( object ) {
+  var checkBreak = "pass";
+  var properties = new Array();
+  var values = new Array();
+
+  for ( properties[properties.length] in object ) {
+    values[values.length] = object[properties[properties.length-1]];
+    break;
+    checkBreak = "fail";
+  }
+
+  new TestCase(
+    SECTION,
+    "check break out of for...in",
+    "pass",
+    checkBreak );
+
+  new TestCase(
+    SECTION,
+    "properties.length",
+    1,
+    properties.length );
+
+  new TestCase(
+    SECTION,
+    "object["+properties[0]+"]",
+    values[0],
+    object[properties[0]] );
+}
+
+/**
+ *  Break out of a labeled for...in loop.
+ */
+function ForIn_4( object ) {
+  var result1 = 0;
+  var result2 = 0;
+  var result3 = 0;
+  var result4 = 0;
+  var i = 0;
+  var property = new Array();
+
+butterbean: {
+    result1++;
+
+    for ( property[i++] in object ) {
+      result2++;
+      break;
+      result4++;
+    }
+    result3++;
+  }
+
+  new TestCase(
+    SECTION,
+    "verify labeled statement is only executed once",
+    true,
+    result1 == 1 );
+
+  new TestCase(
+    SECTION,
+    "verify statements in for loop are evaluated",
+    true,
+    result2 == i );
+
+  new TestCase(
+    SECTION,
+    "verify break out of labeled for...in loop",
+    true,
+    result4 == 0 );
+
+  new TestCase(
+    SECTION,
+    "verify break out of labeled block",
+    true,
+    result3 == 0 );
+}
+
+/**
+ *  Labeled break out of a labeled for...in loop.
+ */
+function ForIn_5 (object) {
+  var result1 = 0;
+  var result2 = 0;
+  var result3 = 0;
+  var result4 = 0;
+  var i = 0;
+  var property = new Array();
+
+bigredbird: {
+    result1++;
+    for ( property[i++] in object ) {
+      result2++;
+      break bigredbird;
+      result4++;
+    }
+    result3++;
+  }
+
+  new TestCase(
+    SECTION,
+    "verify labeled statement is only executed once",
+    true,
+    result1 == 1 );
+
+  new TestCase(
+    SECTION,
+    "verify statements in for loop are evaluated",
+    true,
+    result2 == i );
+
+  new TestCase(
+    SECTION,
+    "verify break out of labeled for...in loop",
+    true,
+    result4 == 0 );
+
+  new TestCase(
+    SECTION,
+    "verify break out of labeled block",
+    true,
+    result3 == 0 );
+}
+
+/**
+ *  Labeled continue from a labeled for...in loop
+ */
+function ForIn_7( object ) {
+  var result1 = 0;
+  var result2 = 0;
+  var result3 = 0;
+  var result4 = 0;
+  var i = 0;
+  var property = new Array();
+
+bigredbird:
+  for ( property[i++] in object ) {
+    result2++;
+    continue bigredbird;
+    result4++;
+  }
+
+  new TestCase(
+    SECTION,
+    "verify statements in for loop are evaluated",
+    true,
+    result2 == i );
+
+  new TestCase(
+    SECTION,
+    "verify break out of labeled for...in loop",
+    true,
+    result4 == 0 );
+
+  new TestCase(
+    SECTION,
+    "verify break out of labeled block",
+    true,
+    result3 == 1 );
+}
+
+
+/**
+ *  continue in a for...in loop
+ *
+ */
+function ForIn_8( object ) {
+  var checkBreak = "pass";
+  var properties = new Array();
+  var values = new Array();
+
+  for ( properties[properties.length] in object ) {
+    values[values.length] = object[properties[properties.length-1]];
+    break;
+    checkBreak = "fail";
+  }
+
+  new TestCase(
+    SECTION,
+    "check break out of for...in",
+    "pass",
+    checkBreak );
+
+  new TestCase(
+    SECTION,
+    "properties.length",
+    1,
+    properties.length );
+
+  new TestCase(
+    SECTION,
+    "object["+properties[0]+"]",
+    values[0],
+    object[properties[0]] );
+}
+
new file mode 100644
index 0000000000000000000000000000000000000000..3c83f781854050e9d1bac3b4068ee9f62065e5de
GIT binary patch
literal 15210
zc%1E9-EQMV6n1~M+p-b@B;bY%vsYcMNW0|*t<s7%&1!?XDUhg0AXrVDX)@HYqw$1N
zagW3+aEF9=C=d_81@FMjIEg3m8QXR2#4X;7O*3PEKIc2%oS8G@RM}`~<D+UHqwdk?
z)a_9;FxCyj=(yb*<D}92to6KQxkGGJ_vAHIn|SQ#;1k1mlV4R;Z@)m4ppK1Cv1KEQ
z7;zm5)eXLT#uah8vsi!gOV;ABTq>bR*B}mIQvmgrMi)DbToOzroP!2|(H^73=^Z`f
z?X7yP-8gSn_r`72y)lT2)slT@gkg$o3HJlCM<Ki&-f`*jKR?>vKL{gEKc%0On>HjG
zjW!@9mwzso%ZvJ#t*p4*;vMzctK-*&Ao8E(5&3|(w;S!VdL}f!FVOnf<g%<(D#S5O
zk0FK!+>A_lt^YWr*z-7jtqHy~3QyZXK5EFegInbt7H`5hEqh`Jat|qMV=v0X++0`>
zTtKup5-46;XWruN*OZ6&C2z&F?Vh>4uun2rzpeoSJs}RFH;Qp0lstL+TD9>dGbrix
z+5B?_(9_^SIYX`>QHu^!ua4|S?A(ZodeDoJV~O;mW~NO)oecT+fv2B?Z)xu~Z+~@j
z-uWI|zz~s^Hlci%kP68-K!s1ijF@cKx(Wtc{5oUfkzqWTH!J11J?33KM_ipw&4;j>
zPhB>b4O~gIF{A>R-GIil`@~aj6aOZcEg(u=ByvN{Fs<J6@I0K5d48EJKuvs|(<~#>
z!6f-;(!qC7I!Ksn-{u_@vk`Sn#%ZiXr-xEeX%!{H$Xq`tcR*6s0+M<Ul9c(>eEhi7
zRZhBUjs_hJ)BuIkRc8TRy{pmHekrTWWwj$^b>g}<MnEhJrz^66u09BKHFkJc71)zo
z%L`gdD{E#bJP@I2?kQfCES6F)T-tD6KhwnSV<>hBB%PpYD>5Cx&e{K&4xKvwg6POM
z*Thuc&moJ(nM0dw*0gcD+hNnG_$O$`Yo%cWciZ!`NKmAmKbN4R`zfnqFo^uAlvrBM
zWV$rAKV3dKi|?3=Jw|rx&GO~#R>mjrb0}m9khi9b-+Xo}|9u45^%Y_LS&;GiTVkc;
zD9V$CT=?Y;zy%qN07ZmdDMhl}rJmFz(O#{Rpr5w^f>I9cd?zn)AXY;ju=OS#`Gb$M
z%@l(u@zKoPIE*SG3k{jD;5K>3HBYpr?YcvgI3@}Xz(rHVG<S2&DGQuUigEwso6Jsa
zqSNRCc8cSmZ_UHQgy*OUQAIkzyvN+l?tC^k3Ph;D-5V(VC0=%CF@%I=hngM06N;=W
zoMsm=!-+PRu;o}dY>suQnLWQqxde^zQL_se**p_!W!WN3@V~!A-YKCxM0M^EQ1(GO
zRDjl}Ko^Mm>wnyBa_77#e4nQeCp<;_FRu+-6yxCv4J*2V#kOb_#iXwOFKRLQJ5)@T
zl~_Q~Z##Fs+AfR9vY0F(%VM%DCd*>7EGElh@*WkFWs$ma!-{873{@L(hSkuJjglL?
z#XWsTF%~>P4;6~fBKi(Oeej!PN@w^Tf~d8xGCj`y!X$Dru0V!<lNXU&$Df+tP$|ia
zK^>Ym`V>RMuaVAl`V%GS{M<|9ihrS(=*OQizn$`xC;$JNU%4@-VQmPbqNFK|VDbM4
DLUu0e
new file mode 100644
--- /dev/null
+++ b/js/src/jsapi-tests/binast/parser/tester/forin-002.js
@@ -0,0 +1,77 @@
+// |reftest| skip-if(Android) -- bug - nsIDOMWindow.crypto throws NS_ERROR_NOT_IMPLEMENTED on Android
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+
+/**
+ *  File Name:          forin-002.js
+ *  ECMA Section:
+ *  Description:        The forin-001 statement
+ *
+ *  Verify that the property name is assigned to the property on the left
+ *  hand side of the for...in expression.
+ *
+ *  Author:             christine@netscape.com
+ *  Date:               28 August 1998
+ */
+var SECTION = "forin-002";
+var VERSION = "ECMA_2";
+var TITLE   = "The for...in  statement";
+
+startTest();
+writeHeaderToLog( SECTION + " "+ TITLE);
+
+function MyObject( value ) {
+  this.value = value;
+  this.valueOf = new Function ( "return this.value" );
+  this.toString = new Function ( "return this.value + \"\"" );
+  this.toNumber = new Function ( "return this.value + 0" );
+  this.toBoolean = new Function ( "return Boolean( this.value )" );
+}
+
+ForIn_1(this);
+ForIn_2(this);
+
+ForIn_1(new MyObject(true));
+ForIn_2(new MyObject(new Boolean(true)));
+
+ForIn_2(3);
+
+test();
+
+/**
+ *  For ... In in a With Block
+ *
+ */
+function ForIn_1( object) {
+  with ( object ) {
+    for ( property in object ) {
+      new TestCase(
+	SECTION,
+	"with loop in a for...in loop.  ("+object+")["+property +"] == "+
+	"eval ( " + property +" )",
+	true,
+	object[property] == eval(property) );
+    }
+  }
+}
+
+/**
+ *  With block in a For...In loop
+ *
+ */
+function ForIn_2(object) {
+  for ( property in object ) {
+    with ( object ) {
+      new TestCase(
+	SECTION,
+	"with loop in a for...in loop.  ("+object+")["+property +"] == "+
+	"eval ( " + property +" )",
+	true,
+	object[property] == eval(property) );
+    }
+  }
+}
+
new file mode 100644
index 0000000000000000000000000000000000000000..775b94c1a520c4b87f50ea78f0428594596bf7e6
GIT binary patch
literal 3935
zc%0o=U2oGc6!kVJAXEtn3GvuRCIKBhqEM;p`cO2wX{q*Fxy@~6aFfWsW$Rz%4@}yx
z;My%o*0pY^vZ~@K%C&ub&++}RJ)9&G8r~J~pmDC^Q1LO_XN(QvV9Jg=-EaOEe;6mg
zyt<v^NujaPsWSGQW_kJLms|-xkZ=M+$rVQtM;0o`{x$n4qToK(Elt^5hZQReB?2ZQ
zfhj<KNhg2^#Ylj%a1kG8PHR*m3LDSJ?zdaL&RN&1&uw0P4wA?6?bxY6P+VHLUtCTe
z;Jv1S3kcgcNqsblhKAvXqoYp`vD2?*{CD|*#Z_)sHdOWZc2&J>U-)IITA_h<>wB~R
zc^8Dd+n$h5$=>VqPTQr(_%;pBceR8g&5qvJMv{lRc37&gw1WbzNk1Ps!kBnkuOPKA
z6{N+b%$C{}LoxwuD&GsTYvc-hpwYpwJPJ)33L`T+N5p7G1#=b^5=O|B2(NI_TLb?!
z^D+;666f(uV8w$UFhrIp1B}z9&TO`-fUcD^klb-l@QBDAjB%R4>LdC`)K_E=0b7!5
zeLg2!415QbKC@6es<i3(7|#mO`V1?v3Rm{FR)r0OS|V8<rVH1lmM&L{?M#K<&uDTL
zP7I3Pl<-TkH-o@b>K4~a)V3t6wB^C#sTXX2Z_LhcU7NSS!;k&G&4+&9t<`^8Mjwq<
zk#s3Y$#Fsp!T$)oy!7kH6H_Y--9+Z3^7#3em)T(UPX%vQ>mcaTj{1I$yrGFzlP&9V
n%+YNevFdt5t-ipz-U#laFVx)K39%wX-S@?n$LH>WO9S%{GAIIj
new file mode 100644
--- /dev/null
+++ b/js/src/jsapi-tests/binast/parser/tester/function-001.js
@@ -0,0 +1,41 @@
+/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+
+/**
+ *  File Name:          RegExp/function-001.js
+ *  ECMA Section:       15.7.2.1
+ *  Description:        Based on ECMA 2 Draft 7 February 1999
+ *
+ *  Author:             christine@netscape.com
+ *  Date:               19 February 1999
+ */
+var SECTION = "RegExp/function-001";
+var VERSION = "ECMA_2";
+var TITLE   = "RegExp( pattern, flags )";
+
+startTest();
+
+/*
+ * for each test case, verify:
+ * - verify that [[Class]] property is RegExp
+ * - prototype property should be set to RegExp.prototype
+ * - source is set to the empty string
+ * - global property is set to false
+ * - ignoreCase property is set to false
+ * - multiline property is set to false
+ * - lastIndex property is set to 0
+ */
+
+RegExp.prototype.getClassProperty = Object.prototype.toString;
+var re = new RegExp();
+
+AddTestCase(
+  "new RegExp().__proto__",
+  RegExp.prototype,
+  re.__proto__
+  );
+
+test()
new file mode 100644
index 0000000000000000000000000000000000000000..543e407d825bd0774882d7a098b583224079987e
GIT binary patch
literal 6258
zc%0=}O>@&Q5LL=&;R3@<51f1~(_vb!jGLiN1B3}_A)a0t#a3-m#mYzuA^(FD{|pXX
zIPou7DQ)Z|j*_@`T83Ua(Z{p)?dt8WT-EO}QgtJOgX)Rkp}<|Vfe`BOV2BPIt#|F0
zZJ+lDa(B%dmr<#z-?k8X2&>%m_ERh<?l5vhe1-*9l*a}tNPbInPUBz_>lZAkEW+Z#
zK+yovn5r>AdP^f9v7%>`2m=@6ZgOa;1dYS$Js5A-YhL5H<?ddLxw{u2X{@%HYf?o7
zW(MvHX8jqw2QU#b-ofno-rkE@$nk$;=;f|k22R*dkdw@x>m~EF{;^#YnRj8LUVDG=
z=|&LwdwoRSfpM?lHS2}Y_*kPw#Cc=l(mC#YCcY|^(fZe(AW{NxZG{!-f`R5ZWIUe9
zL=7{RY&AQ47$PJuZ<{bK6&A`P(q>_4CTt`oU=j8;ip*=wBN!hDaPC_eCBoxP9?sfi
zob|nu5t@fI#$uQ{oOUJX_9#jjIa5f`FjCXs)j&JRhf0RL294Ge&iv>o?ygSVDBFi}
zYSNGOX_6LWaC@I+T&$eh{u)z8f}5c2f7Zw2rV$mN^z>N@q4Eh#w74?{byOtyAOm~-
zyskMuL98=VTh91A!BQ3+pPm>d`NdS#jQi&(!g0XBxGdWb^@^!Y)>8aKRyN3)-wt3Z
zjP>e#s=uFG^_SI~78xvGLwFIDsnz=La@o8hVanMPo=JJY1~pkQC_kz(+?T}g*u%QN
zn(NRNNi!a`^R;p~?Z7cN{+n>RqSBO5VqPC-E2OH`O8FzMrix~6niA9#+9)+FG5(i8
zxew!tj}paV7ndXy={@?Oqu))UMro4-EjYQHysA$x)9oBOvg^<SV|7xDi|mH9PjpvT
z!!pCcBg5cQ+@2PyBKwPfqoXPTa)m;4q_NJv6O#cHqEv1_E2JLN{&%*avIW?}dbb4v
zcf}qv!|)O^PJwxFi9YqFy!7aMu9kY_Ss=%Wv_e~Ak=9q0i}!7tXv}{Su&S8t`P3e%
XmiVyv+x}WMmtkvmT<*~-Gr;}=U>fbk
new file mode 100644
--- /dev/null
+++ b/js/src/jsapi-tests/binast/parser/tester/global-001.js
@@ -0,0 +1,45 @@
+/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+
+/**
+   File Name:          global-001
+   Corresponds To:     ecma/GlobalObject/15.1-1-n.js
+   ECMA Section:       The global object
+   Description:
+
+   The global object does not have a [[Construct]] property; it is not
+   possible to use the global object as a constructor with the new operator.
+
+
+   Author:             christine@netscape.com
+   Date:               12 november 1997
+*/
+var SECTION = "global-001";
+var VERSION = "ECMA_1";
+var TITLE   = "The Global Object";
+
+startTest();
+writeHeaderToLog( SECTION + " "+ TITLE);
+
+var result = "Failed";
+var exception = "No exception thrown";
+var expect = "Passed";
+
+try {
+  result = new this();
+} catch ( e ) {
+  result = expect;
+  exception = e.toString();
+}
+
+new TestCase(
+  SECTION,
+  "result = new this()" +
+  " (threw " + exception +")",
+  expect,
+  result );
+
+test();
new file mode 100644
index 0000000000000000000000000000000000000000..6e10384cbdb2a51a1f96e60c2a50f32c191c152d
GIT binary patch
literal 6254
zc%0=}PjAyO6!*s8!2u8w2TnN-O=tsgKq#wVU4c$jH!abw$W7i7GcT@em(p*+nQz90
z3n#t>w!1ZHm%441Yz20i`fUI5{`vRbvnzXD3N<$d9M%pvi#R?-s|cYE3kPVY+1~Ts
zcmeAIayQK$ml7ds-<}|JU+r?U$B!^4xI<wV0*X17ge3+lOn(b>LXvPC>!;eXG7F1w
z14Tka5+X+c*(1#m5=o8;a08d%(^P38IZ2}09VPb~b-%gab~n#t?&cXt7RxhhEh2$q
zYT&+L+Pi>vPc1~0bufLtwe|8M<mkUK^!(Hf1IO(e6m;f~t99m4<IpS1nYYx!p7-L@
zt7Y)xudDN;w%c#|twt$ce5BE0a6Xu{boM)+A&{kdwDGmeK?vnIPhttD%0QzIjO4kV
zsAEdgqvk}QL;ywowx;AlVlI6UHVZ2=VKp@Y^Qfm$L{VcNDtVu);C@t6;67`y=%P&~
zSl?H2QgeqSm=7|_=};=#9%d<pV~IG4VmbL;4YZMdsA9-#plH3|OwW$;?&`#ivVCaz
zx&5}1tFZTI&c!Ma1P%8d6AIxnaQpA8^W&N!l>oY0mr`8$SS_@fGXiyF%vnDN`=9PT
zZV$;ix3m?^&jTz($@%H?L0Vr-Q%zZLf?}M6R2i3N`;Oi*amd<<ALdnqg7xj4T8a|A
zyBO<l7iRr=`DU>u!jFl_?ACwh+op916VV<EO(q03sBwK|5Z5X02{4ZAVm)6?jp%}2
zGa<D*Y~g&`P-?FJH~Dl)s;QvIygr{TP^%WZhPzBobj{36C8*1_QF2gW{?CDOSIH$C
zR*Kmnu81hIXSAZj-z|{Cx(Q)hX)eaE>eKUjJH;LOjcAFv+J=5b<B*Pt9_#8@<OJ9l
z_F7$vo0CLU=78~cj8qjs&e=3Q7;&t#t-4Sm)}NKqjOo}r>#D7VetCo2405~VfSF@>
z1=Xg+8aT(0x-8E;`i{%FUU+6uaZ0OdCb7`!+m*AoZ5v@se-E%SnC<D*o~f4nu*BQ`
RR5sPa*2*~Fi&bud{Q=Ju>|6i<
new file mode 100644
--- /dev/null
+++ b/js/src/jsapi-tests/binast/parser/tester/global-002.js
@@ -0,0 +1,45 @@
+/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+
+/**
+   File Name:          global-002
+   Corresponds To:     ecma/GlobalObject/15.1-2-n.js
+   ECMA Section:       The global object
+   Description:
+
+   The global object does not have a [[Construct]] property; it is not
+   possible to use the global object as a constructor with the new operator.
+
+
+   Author:             christine@netscape.com
+   Date:               12 november 1997
+*/
+var SECTION = "global-002";
+var VERSION = "JS1_4";
+var TITLE   = "The Global Object";
+
+startTest();
+writeHeaderToLog( SECTION + " "+ TITLE);
+
+var result = "Failed";
+var exception = "No exception thrown";
+var expect = "Passed";
+
+try {
+  result = this();
+} catch ( e ) {
+  result = expect;
+  exception = e.toString();
+}
+
+new TestCase(
+  SECTION,
+  "result = this()" +
+  " (threw " + exception +")",
+  expect,
+  result );
+
+test();
new file mode 100644
index 0000000000000000000000000000000000000000..f210c40d6b2cccf3877e488290f3b2568060c45a
GIT binary patch
literal 18562
zc%1EA-HsbI6n3}WU1*_Dc!7XGZB@~2D=rX97o}+`7A<MDS$YF><(=^+?oMU~kB4SO
z9|XZmaLuD|1FFOoH#`EiCqJ_jdwxA3Nu7&bjXgd&$H(7yj(sN6q@nMi-R1y6d-n<P
z`UDQa1_0pLv(LbTz3x}N&wG~VBhcIt_cR?G(B0oU0KCQSYQ~2@g#^Q62R%fV0|}(q
zbA>2-b{&9I?AqsLy<)dq$dcs|Aqv|7yO>S|#E0zJ$ffuMBO=7Pa5z&spai@9-EG$1
z>$DH|9(S8N<F@9`SV&w}PxS3$iU@RsxF4Yt&dIyVIu203GxAyc=#x8l?#_#y{ujnh
zMqU&mNxBv#C-jfSPUzFlK~L9&Zn2I|`|H-xy=9ol%NG_lk(;djaPM%xqh%UDo36`-
z4=KCZ4H|R+X~Xhd3bEVx5{<CMtj9y>bOH<dsE2+Ck!ztq>%=n+2nqr=zdZ^m8nSs1
zTBB*Zbi&%uab`os2#Yl#RCapbWbFZkgdU=RrdU{;2^%vLAnAu(N>J7q&N?mIjvU;E
zfy`&ZRe!N>-A=CGE_zXuUR%>ur_iS>Bc_~7ns>A$o{QFG1+2WstwApuk>)q9e>eK{
z?)95mV5rc!9!Xv1Jc2EyC?G!nevxM||4cNH-QFSuo+SW^9CUv5EXd`_%k_fr-%AGJ
z#})j^6>Z4^du0s2FTwCVO(0fjU6ZKggz*C0zTP-Cp*V-&cM>peEnOVG#5y>+tRjX@
zD6R(KR|dlWAA~hV;mt9IS27SA5Sx5Dj)`ZZI#B#>0>#fpnqbW1XEyY-3R_PcXS;p9
zas20!;n)P@*KJF@Mv=Js`8ua!TKH)FQRrH{_7X44a7ow(KD!<U>MCSiyz+sJS8@^r
zL4716h=QUn1752jN1DWOYsN*O%CfGERnsMp&zghWJ{?pR#j|?s+DH-@3rc#MwGSb+
z1}Hd!oDP&gjSGI@c-H9*gxMu@_hSGy=T_Ruc@Z2_!1CNcROjT?#eJ`j8G2)Q=A}9I
zeNl1JK_?Ut+#gUG_r82Nv+kTZ*oEY*oXq?8<uc3W4G%q<80H;6M-~M>;TqAiDp6e%
z$}S1gMV6WXh0~wNf<{#krz8s9&~eg2pKMGWuGa&*GL}g#EQ-|+8BjNpZd<<W`AQV!
zc#WIKI7NuN%GT<|q%mck&Q-akmqHdRQgcAgnE-O;xy||FhMF+6Qbc)Gd52`%P+xF0
zA!FeoBganT0MU@dm`=*MlC&sBsYPjeRSEW2L$K>eu$h~m3hKVWN%ppCD^&CDsvKDw
zYF>CYU(x3)eKMSndVe<5YpA!Fy4!+!6-P()9!44BT_562artY&yT2ITHN0Dncl|J>
zYNQk2hI!YSc~h5B4(5I2ks0MiA~B8XFQIR<j(oMqlD{<jT{f-t{bX-^0#~T)o_cyy
z{Fh->Xt!CKc5@qF8)OR}fa==vNko4mmUYs~i3cW(Cadz?Dj)Y!9iXLFbF?ji(yHcF
zKW&-3YSl!V>@VkYUpK$in)nr>m7Hqwj_-346@k_%TA8R(oQO-?XVT_nOq+8p07c?l
zq0pxq!_|zgS=t+AyvXh{y%UdJHYPKfYDOuw7ooxuo4=t}A!=?zpN4X^{$V;@i>a0N
zyk%Ab6a#7Uk?WYzbFXoU?FJJs(uj?kdsm4P#_D4|^|mu5A<yRVG{mRy*7(2T1s7S7
bJR={8%}(O!-e@U_zaJ%*q&l;eF3bM_pb&R4
new file mode 100644
--- /dev/null
+++ b/js/src/jsapi-tests/binast/parser/tester/hex-001.js
@@ -0,0 +1,68 @@
+/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+
+/**
+ *  File Name:          RegExp/hex-001.js
+ *  ECMA Section:       15.7.3.1
+ *  Description:        Based on ECMA 2 Draft 7 February 1999
+ *  Positive test cases for constructing a RegExp object
+ *  Author:             christine@netscape.com
+ *  Date:               19 February 1999
+ */
+var SECTION = "RegExp/hex-001";
+var VERSION = "ECMA_2";
+var TITLE   = "RegExp patterns that contain HexicdecimalEscapeSequences";
+
+startTest();
+
+// These examples come from 15.7.1, HexidecimalEscapeSequence
+
+AddRegExpCases( new RegExp("\x41"),  "new RegExp('\\x41')",  "A",  "A", 1, 0, ["A"] );
+AddRegExpCases( new RegExp("\x412"),"new RegExp('\\x412')", "A2", "A2", 1, 0, ["A2"] );
+
+AddRegExpCases( new RegExp("A"),  "new RegExp('A')",  "\x41",  "\\x41",  1, 0, ["A"] );
+AddRegExpCases( new RegExp("A"),  "new RegExp('A')",  "\x412", "\\x412", 1, 0, ["A"] );
+AddRegExpCases( new RegExp("^x"), "new RegExp('^x')", "x412",  "x412",   1, 0, ["x"]);
+AddRegExpCases( new RegExp("A"),  "new RegExp('A')",  "A2",    "A2",     1, 0, ["A"] );
+
+test();
+
+function AddRegExpCases(
+  regexp, str_regexp, pattern, str_pattern, length, index, matches_array ) {
+
+  // prevent a runtime error
+
+  if ( regexp.exec(pattern) == null || matches_array == null ) {
+    AddTestCase(
+      str_regexp + ".exec(" + pattern +")",
+      matches_array,
+      regexp.exec(pattern) );
+
+    return;
+  }
+
+  AddTestCase(
+    str_regexp + ".exec(" + str_pattern +").length",
+    length,
+    regexp.exec(pattern).length );
+
+  AddTestCase(
+    str_regexp + ".exec(" + str_pattern +").index",
+    index,
+    regexp.exec(pattern).index );
+
+  AddTestCase(
+    str_regexp + ".exec(" + str_pattern +").input",
+    pattern,
+    regexp.exec(pattern).input );
+
+  for ( var matches = 0; matches < matches_array.length; matches++ ) {
+    AddTestCase(
+      str_regexp + ".exec(" + str_pattern +")[" + matches +"]",
+      matches_array[matches],
+      regexp.exec(pattern)[matches] );
+  }
+}
new file mode 100644
index 0000000000000000000000000000000000000000..da9cb6cb563fde67bd6e9a6a0d84b8e797b46de4
GIT binary patch
literal 5066
zc%0Q(-EPw`6wb!@6I`$tK)wV4YB%j-nzBl3si3F}Xvubq+~zc~<|du(Q1&W32QS0V
z9WTKp$LW8UW>uD^r8jL(?9cXhK7YrqsiGc-is=J&E1yK@3EDNb4Z~=K?zK^ESRd>o
zyB+qxFiUY8lQXF*e|HVzDYi1FyI)YjXp6&JXmcv4Vqp+NxszvUT(ZEO#rlO!wr;};
zMGVDUg9S{D0j9e&TnH5FFc2|ZK)aJkOC?y~RUTs8uGgH#N6Rb?V`gaxGL2=&@0v`3
zpge~ALV1*k*9pa&a(VA2-uOFS<*3WO7)zuNpOML*#WHzOKeO{<@&Uf6*G^A9?{5N;
ze~KgWKE|Df)2!!0<E}>Yfv^rCQc(q6oWLe9`nxzrA7i|F{?0l-t=7+S6X)K+;o*M1
z;;et|36K&Qvq!0l=K$k)A_X<d`J`*yqm3beyAXzA5y}CXCYF^gVSBO!D!fRe$gGQb
zhVj0@jK0Sx2q$cY-pw_|$@;dHpvfu=sJNb*oK7XyzkxhCbd({O=d1Z~HPEZcKr4n^
zL#@*<$YOQmXM1xyDs7;QX7s%{GtzOI&cB6%7py%>fc}g?*5}s+Q`GtoDf&?yMY;f?
zc|<(Ho-@|79+eW@T<ck*GbsXk(F)6n(MIy%D$=o}#h;)fdV%he%^#05`{NQjGrM?`
z(5gIaU(Pa=e#vr@>QlywyFQ+C*6wqC<)Vy(dqfB&$D~E1A4c3I0#qadQoj8JGt~A>
za;B1yYA^X6f-LB-=nV8o7gyYTH7a4j*{6klcjmRVhEqjJn`4K(7^d>&Ytr{Y06x;d
z#Q??Mtx)*{J%n<i!leA>Y=Jone2Fv6rrZK{hK_yb?V|@6JYz8&)Io4998u2N+W|Iw
nq9vGqZ%Y&2;=^R>PDuL?Be^;xyM2lP(yvwvDPQgqlPIcx#GhiR
new file mode 100644
--- /dev/null
+++ b/js/src/jsapi-tests/binast/parser/tester/if-001.js
@@ -0,0 +1,42 @@
+/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+
+/**
+ *  File Name:          if-001.js
+ *  ECMA Section:
+ *  Description:        The if statement
+ *
+ *  Verify that assignment in the if expression is evaluated correctly.
+ *  Verifies the fix for bug http://scopus/bugsplat/show_bug.cgi?id=148822.
+ *
+ *  Author:             christine@netscape.com
+ *  Date:               28 August 1998
+ */
+var SECTION = "for-001";
+var VERSION = "ECMA_2";
+var TITLE   = "The if  statement";
+var BUGNUMBER="148822";
+
+startTest();
+writeHeaderToLog( SECTION + " "+ TITLE);
+
+var a = 0;
+var b = 0;
+var result = "passed";
+
+if ( a = b ) {
+  result = "failed:  a = b should return 0";
+}
+
+new TestCase(
+  SECTION,
+  "if ( a = b ), where a and b are both equal to 0",
+  "passed",
+  result );
+
+
+test();
+
new file mode 100644
index 0000000000000000000000000000000000000000..1f10b0947393b9930cfc8473d22aac10e1c81373
GIT binary patch
literal 4242
zc%1E5&5qMB5Ox<>ehvtUD~B9Gd#J<_LM2)%QB=B!M0-U}GR+!XyRzLa`zkya5{Nr@
z9s%3!Hc6YfRg`uYiBpux_?ww;emwEjY)YZyp94-h9|TVYo}eRyP{fl<)E$i81uue_
zPXYODtK(B5Rp;kJgzjrCKY#oT3xXpGZy=^vU`05yP)YVK(HFv!BGz}U(%Oc_g@qys
zB8;dNK>o-e0j9{9fUs~3Pco;a5`?9lyILOfd*R@8<hPeHzr6&>V+HoxkSGwCTDS{L
zXB&9PxV-_idfM==bZ=P@;kH|o!e57_@T~taXo|vP{h{A`|N7JOn?U66!x4E$%fmr9
z>^DN=W8)B$3bPpa*wYPb9c`4;{@1AhDK&M0!U`rjMC%Z&<fUBnFs0d1dm`2%fV#|?
z!J{J;Dg>z<5$-L7qbvk0(wRY#b%S}N<#VCa`&LUqgnY=;&6sSmzO_n<vr8BjmpSK5
zDzDOyD2x>nBt2K_b`8);W@yil*D#yS2d}z1n(NlJj&d2QIhBsf62G6RWaN>X{}Id^
zZD*7CF6R_5+uqEF8(YONn{4@erk3>R>R|~Lt^P-!y}h3CYiOdA1;JkAz492$y=9)B
zK6|M}x%;Lve}%cSP^vWADnC_o8a*i7h_%Pk4h_**jc*?y|6(owxFNM{R-{7Fo<^S`
zE?FS{*X(LDucB!GCENJcXi8A+v@kA%DkL=bBWw&T-t`r{xP2iRX^XOWYd_J7CZWz5
e;NaTT2Gv`MvoBr$aOJh*Ub!o&-EFxoEuO#bu3ozU
new file mode 100644
--- /dev/null
+++ b/js/src/jsapi-tests/binast/parser/tester/instanceof-001.js
@@ -0,0 +1,34 @@
+/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+
+/**
+   File Name:          instanceof-1.js
+   ECMA Section:
+   Description:        instanceof operator
+
+   Author:             christine@netscape.com
+   Date:               12 november 1997
+*/
+var SECTION = "";
+var VERSION = "ECMA_2";
+var TITLE   = "instanceof operator";
+
+startTest();
+writeHeaderToLog( SECTION + " "+ TITLE);
+
+var b = new Boolean();
+
+new TestCase( SECTION,
+              "var b = new Boolean(); b instanceof Boolean",
+              true,
+              b instanceof Boolean );
+
+new TestCase( SECTION,
+              "b instanceof Object",
+              true,
+              b instanceof Object );
+
+test();
new file mode 100644
index 0000000000000000000000000000000000000000..293e9645539ddb3fdb5b4264e834523ea11d3b48
GIT binary patch
literal 6327
zc%1E6OOMkq5Ox>X<#j+T0&&X`w1-L@I6$bhEtM!LT|}zAA~%_~hBT=hmu~+G|A#9l
zBqXjYapos5c1n}BiCaSY*s`Z6WBaq`n{UPsQw;hpl*}$rr}UQl9Zq{>j}X%Goe?S5
z8n3NqmhJa}m_^mcbXg!u=l2P@jlInH@KeeeZMpCgY?pE>nC~elC;AV_N9H-xSl_Tq
zVG)+k6%=y_^O%?b#D~-z@C0i!;0n&8y=c*a;LPik4$y8@E6v(T!z_+%W^oJ>$Ffvg
zoeAL7RdAoEJD9^Ga@li0ldp2`Pv0vFgzM+cNa2t5Qg~W@XXQoVJ~mV<Z;szT*#;ti
zu8+uTXm8e<^=d9O-jiruFe=n_jS4y^_`t@M=1OYytj{3`kUL9I0X_6ltq3OeL^9->
zqM>SpjV6Gs)ZIXPASf422!zJNmASANxj=bmAW?#>&fG!!kYjvbp%r-3ult>OpH#3u
z7ZTK2W*+6E*y3a;v0#Tnb)hW?XPvH?omT=KMH8(Uas$O#HW=yZ$S+-IGD<g5#<H}Z
z6!_JYC24Qz`ES55*L0SFFZ;d=)LWd)>nmH+ZswWt*QJ)QbX8~oDXIPo$6lR{_y&^b
zC?wcu87~YEhQ>Hfj~+iq6T@wWdN%lNBQ<_gbtUYSI%y$!RK{v_QzpY?g_+CJ5($x;
z#upcmi>T%ATcYJd8OgY4Pg)<qPB=hZYIbroPorqZCHr+tBzt#Ovd5g$(O)SxyrYJw
zJ1bRrI!mEu$CdhJOO*Nm8}QBv|9U9cq+GMr`pey4E70>T5$MAx2LHtwK&!b6brQ(^
z{Yc7DEcJ9Wc4{iDu{Uu!LHLiC@$eoFP6KC*5=sF)#g4aR4y12ax~OTQpi7qYmkVw7
V>K=NNH*Nj1Tq^0yJ%A<3>Nk1338Vl3
new file mode 100644
--- /dev/null
+++ b/js/src/jsapi-tests/binast/parser/tester/instanceof-002.js
@@ -0,0 +1,51 @@
+/* -*- tab-width: 2; indent-tabs-mode: nil; js-indent-level: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+
+/**
+   File Name:
+   ECMA Section:
+   Description:        Call Objects
+
+
+
+   Author:             christine@netscape.com
+   Date:               12 november 1997
+*/
+var SECTION = "";
+var VERSION = "ECMA_2";
+var TITLE   = "The Call Constructor";
+
+startTest();
+writeHeaderToLog( SECTION + " "+ TITLE);
+
+var b = new Boolean();
+
+new TestCase( SECTION,
+	      "var b = new Boolean(); b instanceof Boolean",
+	      true,
+	      b instanceof Boolean );
+
+new TestCase( SECTION,
+	      "b instanceof Object",
+	      true,
+	      b instanceof Object );
+
+new TestCase( SECTION,
+	      "b instanceof Array",
+	      false,
+	      b instanceof Array );
+
+new TestCase( SECTION,
+	      "true instanceof Boolean",
+	      false,
+	      true instanceof Boolean );
+
+new TestCase( SECTION,
+	      "Boolean instanceof Object",
+	      true,
+	      Boolean instanceof Object );
+test();
+
new file mode 100644
index 0000000000000000000000000000000000000000..8a2e95ec8461fe1a9af1a92673cd006449f09121
GIT binary patch
literal 21454
zc%1EAO>f&a7*>+D>oyG7eFbLZ)Go`CHn+md7CTz!A#;M-3wARYn|8P=qCwG3v!60x
z*ZqVZ`$LKyciC;n?KV=9E!iSvS)vqKVGc1&iZ99c>v<^2Z=FuY7Cfw9LNGWyBX~r>
zm9c3U#swbS7>!o@htBg(ACI9?-*d02Tgah@zn>b$BX(6iJp3FG1THLi4Eq)!fFf+W
zq6Wct$9RS8!Mv=$*d-gwWMSfpLIVTYh|UCrhqMOJrf7&DamCr-Dp<5b39?6rAF%e0
z+3dDX+x0!at-j|A3CrrZeJ6-Q0xVbDYhX<x@;>EDvK<QSKE%V_{r!VoJ1Thg>27yA
zcFPq?;@6Q<rSFSX>ACr`qe`U@SclpC@u>H#42t}-I7QxP?cG-Q#8jfjkLEm6sVdDk
zV*(wAX{<v5g;#86?mFPCU8sU4u&iLHJEG5;AWW;U4_Q0gAfa98(3l<OwuQ}L3xJF!
zT#A!+Gdz=A6K2)#St}%6e1b>OJ-NpEZA0Lb4P*my6IvWMB}?0$ds=Wv4T46Oba7rT
zXeXE`XOXv%qIpM6?j7oabRnYRCi-q-_j$$%C!>2_1{t&OSB@NgS6nYo11&!doC?x_
zyVk$iMO%vwl|cAI?hhBgz&`Cgjkncm!UUOrMPU!TSZ2ZmcJk~q=jj&izX~$Ja{BWx
z^MlPrjipQ~N33gP^Q+T^+SjQ=jcbWbII#p;QjrK`7*t+2%Mm-;@H!{x;9KGl*aQxg
zMEFx?v3n^ZJaIB!5BSMJ<O(SCSf%p{A|V4ve!@DQ)Ph)52bjs?O<{Uhm;)t9E&`Ac
zQ1HL$BysypGp0D=z@@%`_JJg!v_<Elg#5|%z<hA|kNW~9Q!ZRS#&iJ(yznr_gbSuO
z!o_qikrNsw@)w1c$W5X`JgvBSICmOB8+t*W%tmd-BM9nCv%R}6<Keg3EScbpVh>dl
z8YNfWHw6Sqn!XmL>4co%3l|ybgxIz1#|#R#cPLZmSAkRRY|j|OlkMc_dHX0@1=r35
z;VA_1cAbS%nX3E-=66ziJ+>T*dp)Jpe~ogbl_6Jt9?q41qU6h9DbllbiUfJ9ykBru
zD>LtZzE%4Bab;mJn)jF5Jo)i{LyowbixmXb*`I9W!Np=cLz^lat8zINy%{I9*Bk-L
z{)k-85KGBA1UI!c>!<{*Y1UC{^W?`m{`p3;j@yQ^>`%?}U>z}@p-oi<){*l4io#jP
z{(7;FFE#7XtfLa<QNTLl0AKTrg279WNQ>kdNqj*YrwYs>=H<6iF^i-1Vis@p+f$lZ
zRKh%Im_@=zy}UyZ*V;xEe?8z=QO-{2GrLCU^?>O+Q#CxSiC?SIZ&Q_*MhQZHZE2K%
z65f?`R;0mKJJjR{Lxt1dhNi!zaCS|9@0fXVroV!?);7}gSJU5h_3liNUKTcV2eVR<
zc1v+=`6=$#)~t1i-pq2BXx*<d8q8+e$ov?n^iGh#3LmrfW3$tI**a5JA%)lR3Z||h
zr)FbX1GS+P5h|rp4u0m(XJ)f&9xKr&r?QX`EGVOtgW__mNtCE~%sWGHYHDC?L10T&
zwIPPzRHGDFWqHLOHO5hM=Y}RKceR8PaX<0Cp9A9E5rBg>o6+%`n_$cs+q7-&p!^>j
z{24d-vZNFnVX@p(dZSAEAaK6pnXKbL)^Q~3Xhb?>ap8Xoi>8FUaG`!wNDt8}E+LVT
zB6}fV7W{b6{}h$VSaM2~61C7uqg6<volzS|I7DcvWT6yCXrQ3fn=~k5&sg$14*uto
cT5Mimx&J4IUsorIGspQwto4O8N`yJ<e^|s_QUCw|
new file mode 100644
--- /dev/null
+++ b/js/src/jsapi-tests/binast/parser/tester/instanceof-003-n.js
@@ -0,0 +1,88 @@
+/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+
+/**
+ *  File Name:          instanceof-001.js
+ *  ECMA Section:       11.8.6
+ *  Description:
+ *
+ *  RelationalExpression instanceof Identifier
+ *
+ *  Author:             christine@netscape.com
+ *  Date:               2 September 1998
+ */
+var SECTION = "instanceof-003-n";
+var VERSION = "ECMA_2";
+var TITLE   = "instanceof"
+
+  startTest();
+writeHeaderToLog( SECTION + " "+ TITLE);
+
+function InstanceOf( object_1, object_2, expect ) {
+
+  result = object_1 instanceof object_2;
+
+  new TestCase(
+    SECTION,
+    "(" + object_1 + ") instanceof " + object_2,
+    expect,
+    result );
+}
+
+function Gen3(value) {
+  this.value = value;
+  this.generation = 3;
+  this.toString = new Function ( "return \"(Gen\"+this.generation+\" instance)\"" );
+}
+Gen3.name = 3;
+Gen3.__proto__.toString = new Function( "return \"(\"+this.name+\" object)\"");
+
+function Gen2(value) {
+  this.value = value;
+  this.generation = 2;
+}
+Gen2.name = 2;
+Gen2.prototype = new Gen3();
+
+function Gen1(value) {
+  this.value = value;
+  this.generation = 1;
+}
+Gen1.name = 1;
+Gen1.prototype = new Gen2();
+
+function Gen0(value) {
+  this.value = value;
+  this.generation = 0;
+}
+Gen0.name = 0;
+Gen0.prototype = new Gen1();
+
+
+function GenA(value) {
+  this.value = value;
+  this.generation = "A";
+  this.toString = new Function ( "return \"(instance of Gen\"+this.generation+\")\"" );
+
+}
+GenA.prototype = new Gen0();
+GenA.name = "A";
+
+function GenB(value) {
+  this.value = value;
+  this.generation = "B";
+  this.toString = new Function ( "return \"(instance of Gen\"+this.generation+\")\"" );
+}
+GenB.name = "B"
+  GenB.prototype = void 0;
+
+// Identifier is not a function
+DESCRIPTION = "Identifier is not a function";
+EXPECTED = "error";
+
+InstanceOf( true, true, "error" );
+
+test();
new file mode 100644
index 0000000000000000000000000000000000000000..7c92d661ec149be7ee8db05d540e1534c00b3580
GIT binary patch
literal 6082
zc%0o>-EPw`6!td$C%8d?#8oaq2sSZ(B$icLy9^a=9a_8HA}?`Uv(%0p7f~TDc@SQL
zhv5>$J#PTE*ECM&ByE~ih22a&w!a*I=bX>Sws}ABQN`{e=vCe_+F`H<mH_}K)Ej_m
zz44~`s_D`I0eel&v3(r!%I`Y>+!V8HefcqD7@qiO2f03EkYh>|lo$UF!6_zQ66=SU
zvXqBKnS#O|zy$LVfWD;eA;NJRBc|X8?8Q!poMF<bTov}FQ)|@^8ur@IX0HuFbgZTt
z+ru0&=qtDn(C?qayCq#BA&108wEcK}ed9dr=)c-*v~op3vTQF368e3<gdRJG&9Vr+
zA_kn={`R}4i$LVB`4M?p*jx41o>K~qw-b43iSkvBE&``>OwQ}VUOjr<INGl|ho$g(
zNesMvvGKfABAt%`Lt!ZRYI4X?PwY#1fJSyB0X69R@lv(I6()pcp-ZF;<1G~Oj2#-b
zu-hlD47i>PD`x>rJx8YWPQvX{noVWZr|xNz#k^1J<MJ<>leOI<Yn)!d2eE6WWhErV
zwixOVIa^B&NnIoXz(;Kk818iWIKvWtE9Q5~_*@fq-bDeUJSRv8C-0G~`<F%G;&Zb@
zbv!9sRBaFlDg-beTxiBmSl22nd=Q}Yx-K=|7ZAQNy<3j;4zf;PqJ%}6UKRFj&y%`W
zgQ0;VCF(?ca%KGFs$v4!pjbjZGAGo8XHi8Aw1>KDi9C7m(Au&-ecrU9s0@FKp(ms8
z3tKe2X_ay$-qZ5H(s~YK<{HJ6QXfGQeJD>DixPe#(Gtx;=4Pqzv2G%ZzJhJoxB0bU
z(q8J3Fnx>FV%pKGZnv^g09{BtUwCfp3zDrw{+0O4vVqZmRqMVk8MJOfMYt>DJrtjW
zB;+K)gz)mFgcvj3W)?^%CP@0?C^_;lG|$?x)*yGgH6Qjvq{s`Pd>bmOpI22dRX3ks
zf<Kr3qZ0fB{`C@^9qnQhTwfDk755N7JO7Z^5Wx$RDRw_PH&fC$#o-0M_RBX7KGBUo
zhxV94(MM!Z_)JV()hJ9YhwNvZv>qz!sW<(xE$cngEXLWltL!(GRO++4Ok;BW1v+E3
An*aa+
new file mode 100644
--- /dev/null
+++ b/js/src/jsapi-tests/binast/parser/tester/instanceof-003.js
@@ -0,0 +1,65 @@
+/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+
+/**
+   File Name:          instanceof-003.js
+   ECMA Section:
+   Description:        http://bugzilla.mozilla.org/show_bug.cgi?id=7635
+
+   js> function Foo() {}
+   js> theproto = {};
+   [object Object]
+   js> Foo.prototype = theproto
+   [object Object]
+   js> theproto instanceof Foo
+   true
+
+   I think this should be 'false'
+
+
+   Author:             christine@netscape.com
+   Date:               12 november 1997
+
+   Modified to conform to ECMA3
+   https://bugzilla.mozilla.org/show_bug.cgi?id=281606
+*/
+var SECTION = "instanceof-003";
+var VERSION = "ECMA_2";
+var TITLE   = "instanceof operator";
+var BUGNUMBER ="7635";
+
+startTest();
+
+function Foo() {};
+theproto = {};
+Foo.prototype = theproto;
+
+AddTestCase(
+  "function Foo() = {}; theproto = {}; Foo.prototype = theproto; " +
+  "theproto instanceof Foo",
+  false,
+  theproto instanceof Foo );
+
+
+var o = {};
+
+// https://bugzilla.mozilla.org/show_bug.cgi?id=281606
+try
+{
+  AddTestCase(
+    "o = {}; o instanceof o",
+    "error",
+    o instanceof o );
+}
+catch(e)
+{
+  AddTestCase(
+    "o = {}; o instanceof o",
+    "error",
+    "error" );
+}
+
+test();
new file mode 100644
index 0000000000000000000000000000000000000000..1d16ce0406f3c64d759a004b04af2cb0b8bdde05
GIT binary patch
literal 21635
zc%1EAO>^Tk7<Ss-Wr1Oa3pZx)^t4MU?S2f0PPWjb2EvqVXA=syjG8E^c3mqYE88tU
zg&)9A;Kwi=xp3pi5y^HECzc$?mR-kH56wifUP<rA^FFejw@xQx8y?j!As8H;5j-N`
z%Gfdt;{p$Ej7F>dL+7y5$75*J_q}WCHgf6FS7(OtDZ8p39)1o80v9$sfqfegKoNF4
zQG@w+*LZ`R!J@3c*(J4AvM}*Pp@D%ML}voRLs|pqP&7o4c;XyzHD9z#335h9@3Hod
z)$F!jw(I*rTYWze5|-8R`c4sr1lXRqx4@o6<bBMS<hT?#eTav92M5phoT%X0r?=hd
z*lkZJiC;%bmHt_*O3$rV9aSoQz&fnvkH@{IWl-c_#VPVWYwxzYr<M{mez4$~N>ypS
z8x!cdOk*7iD7<1j^VR`p?Lrkafo;!+dL#O*3Bt4rd!Mzl4HDXgE{)k?Zd=%zZvl|e
zgiCSLZiXYtHDOl$p0z^K#iw`_-IHgm-)aJ%Y#;}ao6zF8DH&}0?rFmzH3%AA(&c%%
zpxyaIIg7jnh~^!p+&k0-=~6_+P4w-=>2t&hgV8-7LB{O+l`GG_Yp$2WKr4WOmjW2@
z*7^^-XnWbA5(t0D{o&#@?9<+pcw4O}Oo04r3VYzkG7~1SlW(5|Pq%UZ%^V3<)1UvC
zA8ajaEG4KMv#ycDuTB?gFH(mZ*Akm>VhgmS0tjR|sJw2LWA13f>zq;t-x5!OP2fUF
zgg;>xyO$!u6NB+)q@Nr_u91ZvsdQdJBxFdEAF+<d<~&x_CCp^;rV!p0VxT0GixNmE
zQSiU%BysypGp0D=z@>f%oo5n2X^YN93Hg)ff%)X+-|q{UOu6#%38qVVzz+{&Ot@fr
zBV0`P61kyaB7ae6iQFVA%%>GM59dxJ=s-Wnli8@vcmzRxDcXDMG9G@T&5|jdQS4{c
zght7g_e~Rm1g5V=FrAPSeC}mNIw6j^^N6K_on6Y*`Q_XxcXwut;qgxL?0NfHv<j}B
zDTSvH#M?Crr7~6d4b1PP_IhkN6!&^css9FHrJVsQKMP}J0F-<g3?hA7rvS)X<^6)Q
zTA6wO;dbfo$CZV_Xx?9H^W?|-4SB}ZT&$o}o&Cv19$YNOGqkC)u_}*K(VKBndo2*4
z?2pLh46&4~LvT}DvyMunHO)FoZJzvC$G=}|)^XdZEc;XQJXlAJXJ}JZfpw&OzoKx~
zaj;pe;|t9?H0!8@c@(gYxP-5HM#0HT0Hj6oj3mCGjZ+0?5%cm}shGv_W-*ID^xIRK
zSyaM2X_!UAN4>m55ZBs96@NY8R}p3>^qD;)^m@SbohcI!P4R10`faN6(kMabZ!C=x
zP{O+cXGI!(y+ciYX{d1e+tBp46wa>c?;SHw&h%Fh*V;y!{%ZQWsotF_rI&>b-9c0;
z(rzh^EkDKm+M2Zv(YqOTiPrrVqrq&ZTIR<<rFVh^R``&$pIDvdtJaya3Mssf*L-Rd
zxu%1u3Cy81BUDPIJo#C_oLSATb)rO{oXSE%u%L`m4vNdMCQ+i|F+bM?r>6X<3a?1f
zz}SXB##9bPOeGj1wOvidG-8CTB7q9rWpybbHD06UmJ&@=hie5_<IduLKL^CWRRITW
zHlrIfH^G=u$!Xid3I3DqpekXUv#dhWSXhW9%+kAS(x;b;9ZzK)&tx6PvW`ZiLl(>-
zRYfYjggkVq=v7D$(b6*^k&()PAvPiS#bNL%s_(JlXe(uxp_N8Ur$jrWHjogX&{D}#
u{gBW=L47)Dz{DO5<+n+K&lLsa{GjvxPmG`#P!ea3^NU#P3k$0V@$7$cK$S%R
new file mode 100644
--- /dev/null
+++ b/js/src/jsapi-tests/binast/parser/tester/instanceof-004-n.js
@@ -0,0 +1,88 @@
+/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+
+/**
+ *  File Name:          instanceof-001.js
+ *  ECMA Section:       11.8.6
+ *  Description:
+ *
+ *  RelationalExpression instanceof Identifier
+ *
+ *  Author:             christine@netscape.com
+ *  Date:               2 September 1998
+ */
+var SECTION = "instanceof-004-n";
+var VERSION = "ECMA_2";
+var TITLE   = "instanceof"
+
+  startTest();
+writeHeaderToLog( SECTION + " "+ TITLE);
+
+function InstanceOf( object_1, object_2, expect ) {
+  result = object_1 instanceof object_2;
+
+  new TestCase(
+    SECTION,
+    "(" + object_1 + ") instanceof " + object_2,
+    expect,
+    result );
+}
+
+function Gen3(value) {
+  this.value = value;
+  this.generation = 3;
+  this.toString = new Function ( "return \"(Gen\"+this.generation+\" instance)\"" );
+}
+Gen3.name = 3;
+Gen3.__proto__.toString = new Function( "return \"(\"+this.name+\" object)\"");
+
+function Gen2(value) {
+  this.value = value;
+  this.generation = 2;
+}
+Gen2.name = 2;
+Gen2.prototype = new Gen3();
+
+function Gen1(value) {
+  this.value = value;
+  this.generation = 1;
+}
+Gen1.name = 1;
+Gen1.prototype = new Gen2();
+
+function Gen0(value) {
+  this.value = value;
+  this.generation = 0;
+}
+Gen0.name = 0;
+Gen0.prototype = new Gen1();
+
+
+function GenA(value) {
+  this.value = value;
+  this.generation = "A";
+  this.toString = new Function ( "return \"(instance of Gen\"+this.generation+\")\"" );
+
+}
+GenA.prototype = new Gen0();
+GenA.name = "A";
+
+function GenB(value) {
+  this.value = value;
+  this.generation = "B";
+  this.toString = new Function ( "return \"(instance of Gen\"+this.generation+\")\"" );
+}
+GenB.name = "B"
+  GenB.prototype = void 0;
+
+// Identifier is not a function
+
+DESCRIPTION = "Identifier is not a function";
+EXPECTED = "error";
+
+InstanceOf( new Boolean(true), false, "error" );
+
+test();
new file mode 100644
index 0000000000000000000000000000000000000000..170b78ef4b53fa652b295173d353fe2dc986b9cb
GIT binary patch
literal 21583
zc%1EAO>f&a7*>+D>oyG7b?DFvIkii(q%C$S+;p*{Z5}c=sJ&n}gRyCct0EZ`-8B0t
z`vLt4{V~IiyX>~(b{i?lmTZx-ERl-rFozf>#aHC}@jQ<{%o-VwY<N&RhoFCOg54no
z7sjSx7-w$(%BVM6KenH@d+rDtwLSlsnvFbiaR0<GzNAOh;=@k?M&QhbN3drD3<z=^
z-&8;P?ip{8)1S5V7d>QSku4YdrcmEN4kA+n@gdDVbO;(Ch<$SoxQHh05saMS!AG>c
zZ8bX0SFPG!*jC#Mjl^xW{k~&FAO^N??k%v#345QjDLEbiP7k_+-TnP<cAcc*>8HQk
z$=EI5C{CY8PM7{su1im?*KJuYy+b>!#!rXcr&Vy|pXE97Hf`@TJI9t3H-0jcnNnS8
zy&GZZdDLTV0tmdIEA!_8r|n!9G=ObKL;Vpw+5}-<hkZ=j=>jq7K#!!XP}veTqa^@5
z95X9k-o-E^xx_T8KhRc)JMOVNOs>ff*6$mfoU9`U;H%i=SSTrM2kB|U0WmNdo|F0W
zGDADji4>c>28d=IrZ_v~73o|>rJd-zvD0IS69=PP0fLO^_X|(VzDv%R!9X*Ffma+D
z@aOtBJ!oq_p)wf1%ktsuSJ)%nC+V?T&KL*zmo#=KsAX!56Q>|PGnsC?y*CjOES5k2
z(mdFl_gGF)Iiy`fhaH`-)L!H+HRdIH!m-Wqk_;daaZq*BOd)r);H4t!U`t{Y*Z>|B
zRQMAbv0FJRJTn-t2K^{7xdaP6l$pGoN+>{*pV5v-W>l;42s2x~NrZQa7${(J9)ZM&
zg8fZSlD5t~W6Bc_%<A{hc_sjq7Vo+!qki%;Pz^7?zs*rH)#BwNm(1}%P#(qzGsEPH
zJDJWo@?yhy`64kA$}CFc(=`td(@sO^z@W&p#i&Jf1V%j}+WYe|?tZJoQi#ro8?b7|
zpeWUS6G9Nc^d%3bGirjbd}btL?3mjRDHUw*5bDmaqomx~o+^e%+u7Ok`dM@xQo9g^
z=P<<DH45blRrLeR?xc3RbUMWCcBM-H6~aop09HPTV`T`GY#J0IgIMPP$ZOU8oNKiz
z>;C6kmA@ZX6$PVpf2G5tPWKyP#?@M^B&sg{WJ84(OUVo!s$#0j*Hq+clr>&60;u>S
za<M|Jr0U?@)YhtFEoe=vj!K6|o$C1KrB)r+O=ZQOnyXM9DVd=|wGOHy=ld0<tB(EE
zQXP-A>d>lVEy5!~b)*r#))^&}7Y9ho)EQZFK?i3Ylts$RZ<SIOhpVM5KIpfnw6a)>
z@Z?bz86Wks4o+R`7_Is10l)DuJ7do58nM>{Chts{?!e@~R;Ayjs;-RUl>W-fD2^n&
zDR5S1z?ZwIQAb0i%ip?|zm-UKEq`xVcofTDPF?F5Y5A+=@2X~ZAxf``8oGg~RA$_A
zT(<n2_G@d}IzaEH*u|UoTNm}GXWA(I7^w0|kRb}6()J^(-FV$Rk+wrhopwa0Hj!rn
za}ct@V{;mF2H3NQIW94Q6aK<sm8&l!MOwd{SdET#B*p7Y@Is7T&Spyr9H(&SqD))N
ze6hi~wo-IkBZUZ*fTx6jFWxdpPTb}Am}J^-Yk?+XDHwb|1vt1R0sAd_MlWn`fDx69
zleU>F_5bMLdn}t4p<-(Brix$ToigE*$k~pkqK;>xjzdvLJ<%a5x$u*_YfCH(=Qgm4
z`60QDOw43rm%o@Y;QV?p{N(M`vEVXQs1#!}O>Tpd>`cZ$AYx)u#dCXs#0GNqniCd9
l>P4RTmPh!xU^BR&u>AjHBiz_0OERbBMQZf9o1}0t>wk6=hX()v
new file mode 100644
--- /dev/null
+++ b/js/src/jsapi-tests/binast/parser/tester/instanceof-005-n.js
@@ -0,0 +1,89 @@
+/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+
+/**
+ *  File Name:          instanceof-001.js
+ *  ECMA Section:       11.8.6
+ *  Description:
+ *
+ *  RelationalExpression instanceof Identifier
+ *
+ *  Author:             christine@netscape.com
+ *  Date:               2 September 1998
+ */
+var SECTION = "instanceof-005-n";
+var VERSION = "ECMA_2";
+var TITLE   = "instanceof"
+
+  startTest();
+writeHeaderToLog( SECTION + " "+ TITLE);
+
+function InstanceOf( object_1, object_2, expect ) {
+  result = object_1 instanceof object_2;
+
+  new TestCase(
+    SECTION,
+    "(" + object_1 + ") instanceof " + object_2,
+    expect,
+    result );
+}
+
+function Gen3(value) {
+  this.value = value;
+  this.generation = 3;
+  this.toString = new Function ( "return \"(Gen\"+this.generation+\" instance)\"" );
+}
+Gen3.name = 3;
+Gen3.__proto__.toString = new Function( "return \"(\"+this.name+\" object)\"");
+
+function Gen2(value) {
+  this.value = value;
+  this.generation = 2;
+}
+Gen2.name = 2;
+Gen2.prototype = new Gen3();
+
+function Gen1(value) {
+  this.value = value;
+  this.generation = 1;
+}
+Gen1.name = 1;
+Gen1.prototype = new Gen2();
+
+function Gen0(value) {
+  this.value = value;
+  this.generation = 0;
+}
+Gen0.name = 0;
+Gen0.prototype = new Gen1();
+
+
+function GenA(value) {
+  this.value = value;
+  this.generation = "A";
+  this.toString = new Function ( "return \"(instance of Gen\"+this.generation+\")\"" );
+
+}
+GenA.prototype = new Gen0();
+GenA.name = "A";
+
+function GenB(value) {
+  this.value = value;
+  this.generation = "B";
+  this.toString = new Function ( "return \"(instance of Gen\"+this.generation+\")\"" );
+}
+GenB.name = "B"
+  GenB.prototype = void 0;
+
+
+// Identifier is a function, prototype of Identifier is not an object
+
+DESCRIPTION = "Identifier is a function, prototype of Identifier is not an object";
+EXPECTED = "error";
+
+InstanceOf( new GenB(), GenB, "error" );
+
+test();
new file mode 100644
index 0000000000000000000000000000000000000000..36ed72efb86a8407430d1f7ad53bb86ad9e5f2db
GIT binary patch
literal 20918
zc%1EA!EW0&7?zW^>k4exd6yYEwM)CC&8_gV#jdxyNZn#~b2S*7cDO2%LD5aKN7)1P
z5%w&@uv2fl?bu^UO15c>q!o!$WQRG#Fe(20$^Yl~eUxO@$Ykuo!`c}HgTvR@A7OCr
zY&ni|>JKiRdaM1S^R(0V$Iz+m@oQ=>3drGymyYu-y{aZQKLHqlQx`sieHUOrkneF*
zgZcNsd5gTkqOFhglFBMuKIW#-z(F1&GXr9i)&P104H3lLoCnV5P6q@dZ*=$tE$=iN
z-PWsiZ7(XT?L|gJTOD3^j0nWQ<>uZ2cM`MrHFL=e2=MyQA3oaOe;hYE`{aY2w%q0>
zvEGZ66Z%iF6MEA8tz&9J@6d{7<K<EBNf{>c-{L0nHZAYAy2ni;(|B(oFO5!R^ZgjZ
zAfPkWA%MVhIx_ADoRv$bpaEQW-juiK(;^7dPS}^UoDL9^E)0lfgt-l2Yd!>kM-yfx
zNIRHsX!!-EQGHHJA@2Ie{wO{s9;`nrlANp~58z9|ITlI^+F^RSa7Y}CMrUNXUuI}`
z-cimbuK}Q0MOB?0<`(JFiqduT%f#z5#1X;hR)`>D`u#jmbMF=XWiZf+VBnPm2Dq>P
z(Tld16Doo6yDT40e}{e2ldxWTV-n=QqOm*STBgP%aSG$Jkm;`9e>+El)#B$9&4aDw
z8A}N&N3?3>v8&T9wI5S2H8xAM!-*@IB@;lP;-K=TS&rP%h8H<e2OAQjzy=7QVue4Z
z5xbRQg(n8%^`M^|OkRP7?wd?r%{C*2dtcFt2i5snHAk4q)|)|iH;91>CYKS2Kosn6
z+KFzQY1$Mg9GKN#p?9DFl(uYNlu$qM49tg@KirlmnR4;+GoLK+K)5`dF=mFzrPP`3
z8484EvV1WZiQFt2<kJlg57SN~=)rK2CyP;=>IjVbO0?&GId^}yVaY^i#1C0DVNi0_
zeN#eE!1RR-rW0y{?>RG)3HGWx_bC<Z>=HViKg^SIcW0&;9_%D%&+BK=O-Sub6rREm
zE4L_=DpchUFuRl5>rr=z-|HEb{%eGlZU(IUPQ=OxD481+BEwjx0LW|A{gS;}nRWlu
z?b6?mD~p1$y1&%n$xrt?YR0u%tRSk+{$wK$EvCr~8>(!oifbxzIZhg{1p$=(5xH6+
zmQr;{ZfaZAu@SUpRY$4Alb`DN|0k<DuA9oTKQ+%ob!alfhH4X3N6Pmr3RfNb>!ms#
zTGe4y$3}$5fa=f@zSS88la~ZYi_{rOa=`{?6O@JSH#TKb7Dwx)EdH`@Pg!NL5#dRr
zED}EIWfhWjZDX|IuLt}g!|a4P^T-ii5176)RrQBe`D<17ZL0FhD9O@aTNx#hgf|7w
ziVXPGHZ}RtP~q~oZsl(&lHJPR8y23N<*#I2+Zb8-Yvu2{W_Kn^FN+$wfv8ku+)`{?
z-spa9O-qO9{S3Qge!uh4VAfM5^J5@$Ns!|?Fo_QAcvF!m)%@szodQtzeHQ{1I~>T^
zA!?$H(ITvy^h@JO3`Q!ec*cCrnAyaWL?<7uU`LiJ;rA1O!_6Tav}un)RNMe#O5W45
zg+0^XThS?Sx{zp9hVqt#@{!MC#S>M<fvVz2RZ)*ss8*ve+Su_J!iHw)q#$7);^%b;
zCS%8`2@ov#nO5{EI}~BXen3gdf~WEGCgPRx7%136a1}2dx*#-^9O|Xad99jO?=7Rx
d6{l{6>xTcIIME3zNs?KY7ux7cPot1R(r2F0sto`D
new file mode 100644
--- /dev/null
+++ b/js/src/jsapi-tests/binast/parser/tester/instanceof-006.js
@@ -0,0 +1,86 @@
+/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+
+/**
+ *  File Name:          instanceof-001.js
+ *  ECMA Section:       11.8.6
+ *  Description:
+ *
+ *  RelationalExpression instanceof Identifier
+ *
+ *  Author:             christine@netscape.com
+ *  Date:               2 September 1998
+ */
+var SECTION = "instanceof-001";
+var VERSION = "ECMA_2";
+var TITLE   = "instanceof"
+
+  startTest();
+writeHeaderToLog( SECTION + " "+ TITLE);
+
+function InstanceOf( object_1, object_2, expect ) {
+  result = object_1 instanceof object_2;
+
+  new TestCase(
+    SECTION,
+    "(" + object_1 + ") instanceof " + object_2,
+    expect,
+    result );
+}
+
+function Gen3(value) {
+  this.value = value;
+  this.generation = 3;
+  this.toString = new Function ( "return \"(Gen\"+this.generation+\" instance)\"" );
+}
+Gen3.name = 3;
+Gen3.__proto__.toString = new Function( "return \"(\"+this.name+\" object)\"");
+
+function Gen2(value) {
+  this.value = value;
+  this.generation = 2;
+}
+Gen2.name = 2;
+Gen2.prototype = new Gen3();
+
+function Gen1(value) {
+  this.value = value;
+  this.generation = 1;
+}
+Gen1.name = 1;
+Gen1.prototype = new Gen2();
+
+function Gen0(value) {
+  this.value = value;
+  this.generation = 0;
+}
+Gen0.name = 0;
+Gen0.prototype = new Gen1();
+
+
+function GenA(value) {
+  this.value = value;
+  this.generation = "A";
+  this.toString = new Function ( "return \"(instance of Gen\"+this.generation+\")\"" );
+
+}
+GenA.prototype = new Gen0();
+GenA.name = "A";
+
+function GenB(value) {
+  this.value = value;
+  this.generation = "B";
+  this.toString = new Function ( "return \"(instance of Gen\"+this.generation+\")\"" );
+}
+GenB.name = "B"
+  GenB.prototype = void 0;
+
+// RelationalExpression is not an object.
+
+//    InstanceOf( true, Boolean, false );
+InstanceOf( new Boolean(false), Boolean, true );
+
+test();
new file mode 100644
index 0000000000000000000000000000000000000000..60ae7a7dba8cabdcb3c7d264b512c4a101056d94
GIT binary patch
literal 6811
zc%1E7&2rN)5LVJc`Fj9{lj$(St!3cC(2$un%?yE3pbot<s;wj{j%*~kP2PYv;KjJW
zQ}76^<Rs3ItR$`*+M%b$D{H0w_S;WuwIbsvAk|8TV88m2hi#6#sEiOg3H?6WYaG6H
zU%6fw5medM?^FURWc9~Ggzm#zmGSAvm{WWbkbU9>m}5yprd|2zvp`=d^Cx}%gjY)Q
ze1%-QqCTRG%8`TdDGi@6Nn4a~?T+DYx@jRfW$o$)*xh=q+4yi+*&f&`+XE-#zFa+a
zKqcWg(C*G~5YPBSYTGl8Mt^m9!*|!T6K-EOCxpLO3*mA7$Sn%O+b~eCz2E)v{67Qo
z7TBAO=0Uv>81KNqJJLT7xi1O@vfhh05d!dXC6=TMap_%<k=+PD4F^FwRnPFiL`Yt^
z?t)!N%w>}ZX^HUCLMW#pVBU_E7jco?NASxKh|bV=6Ac$+!j9rqhYCjmP!1>GVhSNR
zVWc?koZ>SqJWeCIl~}}<n&(M}FvW4-0Bu4V8^VoNimbv(EsZ>I4y!Ah38v2s^ZppV
zij8p2B=rT>7VV9Io{muk|9G_1QXy&E59QRf@Z^+u6856DCHt%4`G$r;XC|BFIq25K
z((7b<)H#k!v^yeg2yjR{g-e7bJTTM>a9f!4JYiJ2nEkYzPp`co^uA6q%-){7C>a8|
zdNN?mwGPC+fDo86F$eU4c>?<}jFSW=i!36%H?nXe3u9zFC!B};Mi&0PEKFx&wX%@2
zH~+P|-dte>nT-R3bmoM-g{ir_%HNtdd4G!isvuAYGe3afOtCLrGS99@$*il@0sG53
zMq`lroucYREtNdK!D1h}b5GV`>EXg9Yw^^SVAld13!=})2&)^L%p@*}qq6txtXrBw
zf64~%^Rxzg)YcmWq$Lrj?aoYFa8C&WgO5k%k+79US3EWgcu}`zZl6iqt7m9%abK{z
zFw|!1?d3sJ?qBD|YEc2r*IlhFS?dG){QHIikIeb9aX@5p-Vy&0b|)t5?a@%|GN8!N
ztZQ*`qN-=t_thOx4GTkFbZ}2#`dUu8e+dJzfM1U65GRe)+0=)?rXxCG9Qf?1bUY=(
z&Z%%@=y)6pLm!=E19JtUz*1bG$-XN0f9r!oVu4b$mtJ{PM$kJ>mXYO9PKfmhcK2Yc
rv@+>v`+vi{JZIkz+pgfVzv(iy%=WpFeNkzlmHnzVJCPdOnYQOIpkJc*
new file mode 100644
--- /dev/null
+++ b/js/src/jsapi-tests/binast/parser/tester/keywords-001.js
@@ -0,0 +1,48 @@
+/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+
+/**
+ *  File Name:
+ *  ECMA Section:
+ *  Description:
+ *
+ *
+ *  Author:             christine@netscape.com
+ *  Date:               11 August 1998
+ */
+var SECTION = "";
+var VERSION = "ECMA_2";
+var TITLE   = "Keywords";
+
+startTest();
+
+print("This test requires option javascript.options.strict enabled");
+
+if (!options().match(/strict/))
+{
+  options('strict');
+}
+if (!options().match(/werror/))
+{
+  options('werror');
+}
+
+var result = "failed";
+
+try {
+  eval("super;");
+}
+catch (x) {
+  if (x instanceof SyntaxError)
+    result = x.name;
+}
+
+AddTestCase(
+  "using the expression \"super\" shouldn't cause js to crash",
+  "SyntaxError",
+  result );
+
+test();
new file mode 100644
index 0000000000000000000000000000000000000000..92fc9e5e0842af0be46299acc7457e01809cb8e7
GIT binary patch
literal 7746
zc%1E7L2uJA6i&M_HsF9bBN5Kiv<YriR-mO5MWrCx?TXyQ?X0<Ra2&c_kdU}@hJV44
zzk&oOegGHl*iPG|t>b2C+OdfpI^{Wj_WR!Vp5JpU7I+wztz!tB@+(Su6!eXvVHh3a
zoEepR^LeY(vWW)`YgfKwVdS&&=3T?M#ow~x(~kf}po8I4Xk$PDL&TM;oaos%PLS(N
z>iWT7Da_MFs8od<1G$Ke6~w319q2ODMUYB$F6c*__8CQPuY8@$TeWJt{<3N94rSKv
zP)S@@OO7=VgA`z??j69vjJ_>CfI$c1oxQz>vl_?$rJbWmYf>B4Zy+O<-&c#}QSEgr
zFDy6sK&|@X$(slN0+7E}2jn#_Z`a$6S}ri&;R6jpN$8k90}S^02K-zht(|%l`aVal
zHCjOK2ae@RD5?PCXsVoHa}k7DffLckO{A<1eWtN+X(kjS69DZ666vhQ+~)ED<=%b9
zrI5BsgY;%?lFs^4P;j$?TtLran-i|&c{`*jhFxY*)H`O=>k38N(LzgBc>y_E44BF6
z$S+u@BI<I{Z)=n`)UhN@>hO1p)4Xf)bt$q(ZV-PX)hf$Vynbczd!GWo85&E7jNgya
zpgDi?mBsd_3fn_n{^HUuIvwv$l{R+9ixn1xJ*)2?e|miNeW%PT6+$os?*F_pAHP8g
z{ATD?xMT@s@p5sU%h|ar#e=}LMUxQkAJ)U7-{a4HKe<z0f~!BPT%EFP!KjZEde5n8
zBlH}!RXB!Zn4lph_DSUT`8Nw+Zx}L9PiPr7G?RK{;~i?th`3m1K!_fb145&91&*@U
z6GSos&*1~<2#~Q4{kFP3RCtz0TY%?~Bu%Q#-drxybXb|2j*PaaIJ6Z?4kc}-4vevh
zNd<{`X*+vcrL$1!hw}z*X-&b@dN)$BHq5_<&8ZIG20{if2htTmq#|urE{M(U?=PJU
zi{;&1K>wgh4;2c*$>doZ=E}U&q%QBrcC5<~3t9hBWqp-!d)xqC5&-hXFg8b+6F&0;
zBRngh)8zK~lQ7;J!KmZEy3SM9dwq|cMd;6~+%uMkO*mLm$-T+tq6Dh~A10JxfB4+>
z3}smAyR9W$y`{V^yDy?nBoLDX%p_eCn0R=d+$Ge+gm@*zb=q?C;(~Q)o=0Uu9O$EW
z1(A4>NkDIWF?k1}xC%TLsCQN3Te=zBRYH%X3$NshTW!4SzH(_Om&|YdM~lQBHR%XS
W_t_xyjQrgnwT>ykN=Si9_x}Z1*1JLg
new file mode 100644
--- /dev/null
+++ b/js/src/jsapi-tests/binast/parser/tester/label-001.js
@@ -0,0 +1,42 @@
+/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+
+/**
+ *  File Name:          label-001.js
+ *  ECMA Section:
+ *  Description:        Labeled statements
+ *
+ *  Labeled break and continue within a for loop.
+ *
+ *
+ *  Author:             christine@netscape.com
+ *  Date:               11 August 1998
+ */
+var SECTION = "label-003";
+var VERSION = "ECMA_2";
+var TITLE   = "Labeled statements";
+
+startTest();
+writeHeaderToLog( SECTION + " "+ TITLE);
+
+LabelTest(0, 0);
+LabelTest(1, 1)
+  LabelTest(-1, 1000);
+LabelTest(false,  0);
+LabelTest(true, 1);
+
+test();
+
+function LabelTest( limit, expect) {
+woo: for ( var result = 0; result < 1000; result++ ) { if (result == limit) { break woo; } else { continue woo; } };
+
+  new TestCase(
+    SECTION,
+    "break out of a labeled for loop: "+ limit,
+    expect,
+    result );
+}
+
new file mode 100644
index 0000000000000000000000000000000000000000..be279c14ee9375841b79828fffde80c8524098d2
GIT binary patch
literal 13403
zc%1E9&2G~`5O&k@&jIlS<_0RLz!B0y8-f~CLLpIwgb>;|+jNQJwbmOTls*DyBu=~w
z7oGu$8xmI@f!(zeJI?wi{z=_p4z;pt&(3@^-|WuVRO!&v;YRfUg6_sH!94;7N<~qW
z4(^VWtw!@n>t0L4CRD0x;-0FGEV^-YM^P@byQ<#D_W(hlqr*o~(*Xe#VMB=Oy1y-@
zkBsiLtY7Swr6^gL2vMl3AOq2f0PiD>E;K0GN010{1{k<XTa+N9w{eb*x9YWa<5{!1
z=8RR>93fs=Eit!)C?r4^;@$y$I3w=@o6tcA>bGv+zB?;%aus%tA6gdDNVozCvHZDM
zEcfa!T3KOvmQB=aPdDEb0?6Ns1M&<TZ#UXI^-N&A$|iPrNW!jaQ9$8<DPUy^Y5jvq
zpk*=STH^(TK5#NFg`x&@-F;L%p|K$dlLE)t$4n%&4J{gCVQwZ=ToVB44F%Fkjk&_c
z-xKEDZ8i!?8}H!WtWCmMUza4YxrGcsMjqw3D_P#Q!&Ha+R3WH$K>h1-L96aUIg31o
z9L*=x;ONMXtUgAatnj-qP8)JA36s9C1(*GC_pI|4YShPTlkhO12wKxw^&6Y4$R+IB
zkBr28AC7#^oYNdG#JrP9{BVm8(9L)el$$M*O)-HjoLj1a2|>|2LW*TB+K>gVlu)E2
zPwtG<N;*9?=?*g?U6YwgkT!M{|2MuZg<DtH#79VQPVDk2J)?#&L;3q4ZGON8%#%;&
z9F(NXB$UTw1pt2%nRL<1BuTCmHhnJluX6uN1zF}QpIWZLa@+dvx2<55GSzoc97^A?
z;DFG%dlip|hQ`}e-VWA^-F7nB?|~KEtIgp&`bUuvJBDoD-ot_j;o%UoL%>|eL`Ce7
zbIFpm9qrJX>WS!B>$_1D-6`L^qzG?i5s;f~s%P-KlQm`56E|hJ_t=6%J;Hl2$!w?L
zc}U>2G^ddlt#=#$gb~l}8ex2ZBa+nIZr@#z(Bv^D4UflpSa=+k6^qZio9ZYvKjPAM
zZh(HsnwZDH3$E#E{>0cKK<h*5JCfPRPP~;SiZjZs;lUGll_W}!<7KBVDM+4YxPtcY
zJwWWO4|bbOW8X3Hn&QM!xB)Q^2?LXk+^~x}DQ*!6`qNQrr=uJ)QB0T@0$B#oC1iOM
zzR#(m;Q;U>PYqa-1E#=1Tb69&$M81e`6Nv4sr#6y*VVD-RAi`j5>RibhpL^F)YWxo
z@YVRf*Z0*UwZo%VwFRk15vdDf9RedzwI%t6jeCgsCs{)N^eNjnQe5VG{z*RV*;R`E
zDKa_i&3<?_SA@)0n8g=Y5XNftlojE8C*OyxB0N)olW$oOF0>-NwjwEb%8JkhXuBe5
z_?8vn$*c$qUMdx~A}zu}CyNsA^jCzPf>eaNSyY76^<Y^LmIYy15Ei>2i~yh#tb;vV
z1125H_4>|~y5i9*;I&{xjTn~hoU7zx+R*&#5jpce55nja7Iz^BCJ%AUS!w>yT0(f@
n!BO(Px^ta<IqY1+zYGsM6WJjm{=OU+=`q|A3cfTCNJI1=9UAXO
new file mode 100644
--- /dev/null
+++ b/js/src/jsapi-tests/binast/parser/tester/label-002.js
@@ -0,0 +1,56 @@
+/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+
+/**
+ *  File Name:          label-002.js
+ *  ECMA Section:
+ *  Description:        Labeled statements
+ *
+ *  Labeled break and continue within a for-in loop.
+ *
+ *
+ *  Author:             christine@netscape.com
+ *  Date:               11 August 1998
+ */
+var SECTION = "label-002";
+var VERSION = "ECMA_2";
+var TITLE   = "Labeled statements";
+
+startTest();
+writeHeaderToLog( SECTION + " "+ TITLE);
+
+LabelTest( { p1:"hi,", p2:" norris" }, "hi, norris", " norrishi," );
+LabelTest( { 0:"zero", 1:"one" }, "zeroone", "onezero" );
+
+LabelTest2( { p1:"hi,", p2:" norris" }, "hi,", " norris" );
+LabelTest2( { 0:"zero", 1:"one" }, "zero", "one" );
+
+test();
+
+function LabelTest( object, expect1, expect2 ) {
+  result = "";
+
+yoohoo:  { for ( property in object ) { result += object[property]; }; break yoohoo };
+
+  new TestCase(
+    SECTION,
+    "yoohoo: for ( property in object ) { result += object[property]; } break yoohoo }",
+    true,
+    result == expect1 || result == expect2 );
+}
+
+function LabelTest2( object, expect1, expect2 ) {
+  result = "";
+
+yoohoo:  { for ( property in object ) { result += object[property]; break yoohoo } }; ;
+
+  new TestCase(
+    SECTION,
+    "yoohoo: for ( property in object ) { result += object[property]; break yoohoo }}",
+    true,
+    result == expect1 || result == expect2 );
+}
+
new file mode 100644
index 0000000000000000000000000000000000000000..e0250521e717805f8eea014beb05fdead098fddb
GIT binary patch
literal 2239
zc%0=`(N4lJ6s@As7r%vfGf_bvFoc+p_+GZlXx6Rswj=oFn_r`U;s5vvwjE;|bYPIg
z823VYIX(B@b8cHtWhsY_Hv<}U9#DixV{%LgnTX(-bO)pR@#WYTDG;x1F&<}9b>7bi
zIngMuy8V$NqZ1By;B$&pF_BoRpj=B5u_UN-y=chME-rx<!^*u?^dNvlu_=QbmC(4X
zS1M#l*fH^i*Iur?_Hz5`*OpR%TN*s4xCyT&9nuMK2*!#kh;@G3D>uPhygds&Em*c^
z?{eWs_1xPn`_Pcqy3GAWiXf$Srlc~3!7A=-<5vF_CI(#+SaO{;H;cnm5oF;^xs13f
zdpnGcRhCf}12TWel&*zara9%=ii+6p^LldzTrwljsIE<J@!{QdrT@SFkefz-mS?qQ
zQ)TMSS5);Ki}%#HM>(&kYYw2VLjZ(gm>Cwi?~t79IF%Am^`ADiwB5gI$npAV{;l(q
z`|-ClzR+=mRG{jKIHd>;LcbBmwYesdYvO(YAKN+_^)EUwYKX{jkGSpFacWGOe663}
e{MChEq=l39XGD_a%fEG2n{T__@;6MXv#T$w?9kQ#
new file mode 100644
--- /dev/null
+++ b/js/src/jsapi-tests/binast/parser/tester/label-003.js
@@ -0,0 +1,15 @@
+/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+// The colon for a labeled statement may be on a separate line.
+var x;
+label
+: {
+    x = 1;
+    break label;
+    x = 2;
+}
+assertEq(x, 1);
+reportCompare(0, 0, 'ok');
new file mode 100644
index 0000000000000000000000000000000000000000..3b0f7fec00d51c7baadcbf3f817400234fbfa6ed
GIT binary patch
literal 6153
zc%0o>%Wl&^6m?1|6oiC?)CDUq3kbE9Sb-arq(My;r4=^aqG^1a44v4~%!D+*!k-}_
zA+h5N*m7swyzPnOIwdrl$n!XJALl-19NFzKC^{`5e({utO-|a@nq^t%q2ISk)%vmf
z)@_6xu$&#e#$i;*;?|aBJ;qhe`1UixDLH3w2n|L!ku(f6lt20w)+G)6Nvxl^q%aRF
z<Qj_l77eHz0*r5|`VdHZL4j+yfV4+K3(0BFEIz<-w^H`1Cv|7%dd%6m1{ue4^<0fg
z;Dl+ouY`4H@RSJ{T+s$$uXlI%W-*8VTGPR{dm4|MMaXE)@3(8sv&u&|FKgb%iDP%~
z^P5$$<FDJZqte@}dbLU}R(y&RH5!2J0dLbl2`O?lXyvNIK?t;)D~W_Q>ZhfF;drbe
z%7n4eR=oqmh5=+X+a`_+Nx1YtNP~t;Q(<kS0^!ZBLJ?V&QC{nD^z9Lj0{6mN*qqf#
zJL_8^hM6VwH1CfIr(B6?J0dBA3u$rMY{}_!70|2EK}&}G2Ps-j*vah3FI1-@%5>1`
zr}hmTN4IxbOkibjf`a=%C<A{LQv2`Qv*V^tDh=o;S#mMuGn}Z0_7K#TEgtq_u<vy1
zu@NO}XynJwQzAsp{PcK#R9|#c&BDf|)gpn<P`NnWOKQc`CSxc5Bd!``tZ(mesu`%&
z*|PqA=B%GK-z>2LuPgf?I})nyr#Nz_q}M~7c=9NTuL%WXYI=esV`NZ=M&Cz798!))
zR8WY42nAyyDihggl^N*@(0=X^b^S{u+=3R>j5GUlVY>gh6LepoEG*VGABJ)&Ji_xY
zNC~UMl~S_5L|>*rQGp=CC~D?+><dPM`VG!Akv=|pY9ON$1%4eR7n8JmK8XGVbC^Ro
z2d>tkx1_wMe4=hpWg=o6tQB)HDAuQgF3(>6|G2#@0WxI)d5IGzrDHUuy>AE5vrlwX
zzq6y7IT+L{wqNAZ5-D2P+t^$paBkP9IeG7f*Sr|TGs>B^y}V&(lj5qlDvvEH{AH?l
zmN{8^ZJ2TKW-ys?4Q))6hYkwYug<3Yl6+G)COp%drkTA4&KNjge#A<&y0MU^drQ)$
Ioaqby0+U3?iU0rr
new file mode 100644
--- /dev/null
+++ b/js/src/jsapi-tests/binast/parser/tester/lexical-001.js
@@ -0,0 +1,52 @@
+/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+
+/**
+   File Name:          lexical-001.js
+   CorrespondsTo:      ecma/LexicalConventions/7.2.js
+   ECMA Section:       7.2 Line Terminators
+   Description:        - readability
+   - separate tokens
+   - may occur between any two tokens
+   - cannot occur within any token, not even a string
+   - affect the process of automatic semicolon insertion.
+
+   white space characters are:
+   unicode     name            formal name     string representation
+   \u000A      line feed       <LF>            \n
+   \u000D      carriage return <CR>            \r
+
+   this test uses onerror to capture line numbers.  because
+   we use on error, we can only have one test case per file.
+
+   Author:             christine@netscape.com
+   Date:               11 september 1997
+*/
+var SECTION = "lexical-001";
+var VERSION = "JS1_4";
+var TITLE   = "Line Terminators";
+
+startTest();
+writeHeaderToLog( SECTION + " "+ TITLE);
+
+var result = "Failed";
+var exception = "No exception thrown";
+var expect = "Passed";
+
+try {
+  result = eval("\r\n\expect");
+} catch ( e ) {
+  exception = e.toString();
+}
+
+new TestCase(
+  SECTION,
+  "OBJECT = new Object; result = new OBJECT()" +
+  " (threw " + exception +")",
+  expect,
+  result );
+
+test();
new file mode 100644
index 0000000000000000000000000000000000000000..a35cb02ca93d0ee66155349dd2938b502f697d9f
GIT binary patch
literal 6134
zc%0o>TWb?R6yCJ8T160q3O<ECRYY3FC)ozgMVb;~ao4`eboVqFJJ}606Vv<^|Ct~N
zzWED$^~~g+>`pe@O^wY<*tvXjF5kJ#*s{}RP_Uao{K6>@8=SPP4a>65L%(MgtMwD-
zjpK!Fu<Qf9#%5H=!sf1JJ-}7=<n}YdDLH3Q29FU=Bn<-%<&VFGbx8w%8tW%6$t}VP
zxrU;?MFT2F0Fzs)J_M3pP~aLaAg!^`LUI~33U_hbsg&I6hq`?*7_$!sAd^^*o~uy_
zoG=adm9Wkno-zT0E9w#U;_&d*Jm%<MYdYMvsqwg3gp}6&ezVp*t9*2_vgRF}IB{Nn
ze!UKM{B?77RC>Erw^qr-ijQ!jMgz#Zz*{s>LW)ccTDfX-5CZMyNFt$y`e|ukG#+V)
z5@Bq-Rqw#CVE}2(wu9qB5-wd3(xBnWRM;4+KzO60P()f~l-If(eS3_fz}>JGHs*EG
z&ia;%U}h0L&3hBVDOY0J?vs?kg|s+rH0A8M3h4RxpcO;@gA}bM^6~7*E>veC%5>2B
zr}k|eN4IxaL|~<Gf`WTbC<A{TQv2_lv*V6VDju|zESZ?{F;3LO{0KBJn>_4BVBhN2
zW4oWM!OM=Hr$mU1`RVfBxW4G7nuXq_)g*z>P`N1Gi)zKpCSxc5BdQvttZ(mdsu8Hw
z>9YP&>a3qM->k3#Zz=mAJ7TKtrzmnKq}M&1cz8dKuQ3H<W_pSw6J$___P>vbC{vC{
zR8WYa2svXRDiP^5ON?{`Xg{}!y8guyZb^%3#+m)OG~NH)3c4>*7M5$9%b}bJkMR5p
zQo?F;rIhTg(3c5NR3ON(A2o|R_9Y`h{f6h6NFN<NHIV%h1%4eR7t^$RI*k4pbC^Ro
z1FqJgyP~|Oe4=hpB_bjmtQC8UL9sO(bXoTD|HtiR1&|2~$dgfdJW?fUe{Wb#_MT<Z
z|0oXR_py_NZgzL21xfCjce)70Q_7jNm%L^hli*&sE-x!8)@7ncl?5qzW0YR;8Zez+
v4L!>s>Es4a%%)@#e=Rp=H`4>AnY{+i7&u^lv5K|2v1%rJIMSw^YXbiQ_&dTa
new file mode 100644
--- /dev/null
+++ b/js/src/jsapi-tests/binast/parser/tester/lexical-002.js
@@ -0,0 +1,52 @@
+/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+
+/**
+   File Name:          lexical-002.js
+   Corresponds To:     ecma/LexicalConventions/7.2-3-n.js
+   ECMA Section:       7.2 Line Terminators
+   Description:        - readability
+   - separate tokens
+   - may occur between any two tokens
+   - cannot occur within any token, not even a string
+   - affect the process of automatic semicolon insertion.
+
+   white space characters are:
+   unicode     name            formal name     string representation
+   \u000A      line feed       <LF>            \n
+   \u000D      carriage return <CR>            \r
+
+   this test uses onerror to capture line numbers.  because
+   we use on error, we can only have one test case per file.
+
+   Author:             christine@netscape.com
+   Date:               11 september 1997
+*/
+var SECTION = "lexical-002";
+var VERSION = "JS1_4";
+var TITLE   = "Line Terminators";
+
+startTest();
+writeHeaderToLog( SECTION + " "+ TITLE);
+
+var result = "Failed";
+var exception = "No exception thrown";
+var expect = "Passed";
+
+try {
+  result = eval("\r\n\expect");
+} catch ( e ) {
+  exception = e.toString();
+}
+
+new TestCase(
+  SECTION,
+  "result=eval(\"\r\nexpect\")" +
+  " (threw " + exception +")",
+  expect,
+  result );
+
+test();
new file mode 100644
index 0000000000000000000000000000000000000000..40c4dc64d15d5fe3523b20ce88417e06beb98a31
GIT binary patch
literal 6286
zc%0o>OK%e~5OzX&v`7dE2_(4e5mLbx!3ix9G!1I1C{%3JD{^<;#I3WAY=<;|1%4SE
zx$!R;JMU!I*`%8`5JigO$9U$O@i#N}RHw~I(Q6VM7LNsQ2;4$>gwQDuduYE>JM!Q8
z0dEuJxn_;Ws8q!tj}f{LtGvnWCs<H?%E$o;7#3Jj9vM;L_`gIKGzzC>{e~sEMY6as
zqG*U{MAb;Z<d#ZEB1O+A5k_2uTVtiA5;STQ@4~oWF4ZfaYo0q8^W1@uNm;&`t5QV-
zW=7mM%sO-O9>4@6mo&ia<=)<#SLbqG?C94RJKTB8h!l1$Rs{6t^#XcQ{^Dl^=xvxd
z@?U>_y9qe{x;`AW-StYnTFwN;doWSrtri@cZ9tYU+k!|5c=-w|q7N`ykkNQ7042=W
zc&pg~H--_iDqPzzE)^E4PNcF}xHc2=V-v7wbPUp~8uJjwy8?WA2%|*Qd6hTjZ8FaK
zo{NddeHvlWn@~=>5*WK5oQ#|)Bxs|lX3y1vcE<;;S>z3{vz~C0qa(X3I&-6J2W>v3
z-+^&(dxynbtQDM~#eKq*k#G|z{m=E`xNS%!AZ@KnCQv?ti5hoCLLJo<yc;9?zb-lM
z^vRk8*~RBEmNMh`tc%__znFTO@!$eAaTGEzF3$FSy<%pQwFocAWrNMjZ(I6wz&;_T
zHRD1jrSqP_gj?8g3r+-u012I-U-dWzcL%;P9*t+{!SIwfCQ#Ss_x~Sac|ZlkUK#Wm
zYLl}vehI6fSz@>&iAkevtXr%^&n^kBajiWRmyWAlP&1!VTz!P8Mx<A-R!zKLxtd6u
z$F4{@Yp6AE4zne4)^aud0ar8Z!cWfuPt+FLDAikI{HKtj8z#m3q_fz?OR|Ul49~Mg
zOFZLLiR$N164pR-Iek^14#_hCjs&{PE>>%#yQZ|EeWKgD5|%LzHimtGOR+UeR9Q9}
z|3+)I29YWA?-P@M-NJPCEx3?>GkeHzo<o^Sy4f{y3rOyY4d;u@^h{gmUNIM@Xj(Vr
z*+<`XmFmT30VU^0^a?%7G`(8tyaDOt22bBMGD&_ju(F%&Rn;E7mYA``fc-fw5p`?U
NO!ul~pqwk5{{kI;@#6ph
new file mode 100644
--- /dev/null
+++ b/js/src/jsapi-tests/binast/parser/tester/lexical-003.js
@@ -0,0 +1,43 @@
+/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+
+/**
+   File Name:          lexical-003.js
+   Corresponds To:     7.3-13-n.js
+   ECMA Section:       7.3 Comments
+   Description:
+
+   Author:             christine@netscape.com
+   Date:               12 november 1997
+
+*/
+var SECTION = "lexical-003.js";
+var VERSION = "JS1_4";
+var TITLE   = "Comments";
+
+startTest();
+writeHeaderToLog( SECTION + " "+ TITLE);
+
+var result = "Failed";
+var exception = "No exception thrown";
+var expect = "Passed";
+
+try {
+  eval("/*\n/* nested comment */\n*/\n");
+} catch ( e ) {
+  result = expect;
+  exception = e.toString();
+}
+
+new TestCase(
+  SECTION,
+  "/*/*nested comment*/ */" +
+  " (threw " + exception +")",
+  expect,
+  result );
+
+test();
+
new file mode 100644
index 0000000000000000000000000000000000000000..4bf2d6454c9b159c9a809470fc93c9edbe30134f
GIT binary patch
literal 6264
zc%0o>&2AGh5Z;9HQ*odY5(iFu1XZX-;(*FFf~G-Di9*Fjy&>f8P7_mi9oY_P9)OqN
z&EUeBw_xnee|DWsx@iNwRI%5eXTBMKGq$HXZ3ZQ;1tct;2;LOr(kVKQbH>A-b5N}x
z`+I)C+u(RR<{OVusY>6UIL<@-${SyPN(3cm3=Sb+L=Z)JWT3*)Z|PjnD4fLljh__e
zVR2!gXz0+0sv*Gml4=N%qURKZfs4rH$Y`kqjhdzVIPO=<jq1m`x6>c<cKRUWSiYI7
zQ3Zl91NV)v&J3QWfWZ|F2z#-+`)U?*_}_RsSa!$Y3A+hPvib97**vX$^7CTzE>0Z#
zFTbn>kH2n?N9}i`+Nf1>VetV@e1Kk;i%{lDWaX+YKuYAxS46=j`em$u;dmkeWy08K
zsab)?g#j!}*CvijMTBaAR2C0c=0b7g0ujxQMv==pvxVbbfiXS8Q4kGY<IP#0Ot5|w
z5;F3DMnv?+jMJe+xsH>Q!MSn-ZMM|(z8YwIw9$$oZ$X;%gqxln`5n=z6J^_I{U!Y#
zj$_z6Ea6}+5d;nQo=^tiI!OATo8xiQh)Mu$ZA&gxKE{bUcZZ;^Y6;#=!2YjWj(f3K
zLy%v7o)9T>&d-MEjp~bOrWp?|oEC{fhR!AVexSdYT4e3O_mZl?`qj4$y*qNBQqw*s
zrB24+ZN;H*qYh*4zN<tB-Xw%ES(f|56CoI*T5lTvJ|gmv3QV{P8Zj`TV3qkYQ9-NB
zNJoOHoo%8oRjJ`zkWmv)d;Tq)OxtK?F{fmDhf~c+f4y7_vA=W+k+pbTQ)gDtVBQ{Q
z3lyrw8u>%6rX+=*eMLT<w$M(g-U{<S1B$*SDIP1${17jw9{O*vpDkOG6{iL&E}9V5
z(Q-L?RG$tMGlh;6xyvtC>(E_Mt<W*ice*l>2>~{ay~abaF)dVi-Y)))`_u{`GZx)P
zvqd+zR}1$U_O#H=@76X)+^%`Me4d+~S-aY6*1!xm)OC5|(Pvy`dfu5M#l@kl;)P^V
xRxSNqEH-Zo{YP$_h@?LdSXIsTglf-TOU_tw!2WiY%DS~$W_!XiRL(Tae*q&b?I{2N
new file mode 100644
--- /dev/null
+++ b/js/src/jsapi-tests/binast/parser/tester/lexical-004.js
@@ -0,0 +1,52 @@
+/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+
+/**
+   File Name:          lexical-004.js
+   Corresponds To:     ecma/LexicalExpressions/7.4.1-1-n.js
+   ECMA Section:       7.4.1
+
+   Description:
+
+   Reserved words cannot be used as identifiers.
+
+   ReservedWord ::
+   Keyword
+   FutureReservedWord
+   NullLiteral
+   BooleanLiteral
+
+   Author:             christine@netscape.com
+   Date:               12 november 1997
+
+*/
+var SECTION = "lexical-004";
+var VERSION = "JS1_4";
+var TITLE   = "Keywords";
+
+startTest();
+writeHeaderToLog( SECTION + " "+ TITLE);
+
+var result = "Failed";
+var exception = "No exception thrown";
+var expect = "Passed";
+
+try {
+  eval("var null = true;");
+} catch ( e ) {
+  result = expect;
+  exception = e.toString();
+}
+
+new TestCase(
+  SECTION,
+  "var null = true" +
+  " (threw " + exception +")",
+  expect,
+  result );
+
+test();
+
new file mode 100644
index 0000000000000000000000000000000000000000..880e4d9736188b7a93f1ba122d14c82bf32ae595
GIT binary patch
literal 6258
zc%0o>O>Yx15Z#1Qr~nBGi36t`K^01osE}YALDQh7M4@7%9=ITPcbb?w>&SLUbK-yS
z&)~wDf5F)KPIjG5vS|akMC*@d&ztd^v0c?}F(|kVAVJ|&@VX#PC+j%QIS;zdVYzzZ
zz4m<G0>{mpF)pK06}~@qoO?LR9iM(i1SRJTj=*O`5Jh=tpn}o2bS`NaOk(}UA(?qt
zTo@=CI5ebc2rxdS96+e(1qET?Led;<S}H-qdf^VXd!=Hn{ITlh`)zK%4>FGBnZ62D
zAP6&X-w12Z;AsjNTv4B}=X-nmvzWtwW9eYpErTcQTUe6KpV!OgS?QCP7Mr)R<HURM
z<>e;u`0M(3)OOd(wMr=!7Vl!m2k3UV2xO{6mabX?q(r_vMHDpAF0%_5wnq|BB#e!w
zni+Up7{Ic0?O?l9M5r1_WwCH=CS*q@5K(Vy6uGQ153#)?(5J`P3Zlj<ygqA_an_Ga
zL_{9akcjTs=CmtOu6x1B;6gcq)*EViT@AE5T4>FXHz3WrBNrbX=^fFj6J=Xy^Cf*7
z+tKZ97ICnaaDs+=Pbh<66D0l5_3^l4M8$`e-b*S}KEjSF&kaFysv&qM0{g!%IktOZ
z4Sss@c}k>AIX-KmJIXJnm}cC+bQ&ZK7#bI4`=K5&HOX3mzlzERo0s3V^y<icOiue8
z6*>u>_W(PTXhZHGcR`qhHxWLJ*5rQk1pi|^>lJ(7$3z}cfzejN9SqjbST(*#l;0>a
z(w1NnXN%|?Rje-;q|-Rl9()T&(k^Z@n^Gjb!>)R$M=w`D94uWwB+Xnaip(0S%bVkD
zfh@IH6@SFll%DYOugIs<651%$U1R(wK+#tu#d|U{-^B~6hyD%Lvqej^;#5HOGA0C7
z+_{`Qs!s-T8AC^m+@%+*Rp_iKQD~p&3tf@O2nQR(_VG|`O$$|;SBrn+GPMTCgc<k#
zRK`v1y(0G%t6AuzcVC;MY%AU?pQX0Xr1k8I2{6IkbW>h;^Z{3i9(LyFaCWGvcomt{
wR7-K!Q<}G#{`0m?LE@hVtdeGXJhex!C1xx!V1G4>W!;)8lRaJ;Drc(Yzn*aF;{X5v
new file mode 100644
--- /dev/null
+++ b/js/src/jsapi-tests/binast/parser/tester/lexical-005.js
@@ -0,0 +1,52 @@
+/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+
+/**
+   File Name:          lexical-005.js
+   Corresponds To:     7.4.1-2.js
+   ECMA Section:       7.4.1
+
+   Description:
+
+   Reserved words cannot be used as identifiers.
+
+   ReservedWord ::
+   Keyword
+   FutureReservedWord
+   NullLiteral
+   BooleanLiteral
+
+   Author:             christine@netscape.com
+   Date:               12 november 1997
+
+*/
+var SECTION = "lexical-005";
+var VERSION = "JS1_4";
+var TITLE   = "Keywords";
+
+startTest();
+writeHeaderToLog( SECTION + " "+ TITLE);
+
+var result = "Failed";
+var exception = "No exception thrown";
+var expect = "Passed";
+
+try {
+  eval("true = false;");
+} catch ( e ) {
+  result = expect;
+  exception = e.toString();
+}
+
+new TestCase(
+  SECTION,
+  "true = false" +
+  " (threw " + exception +")",
+  expect,
+  result );
+
+test();
+
new file mode 100644
index 0000000000000000000000000000000000000000..2d07274734b8b6123e3a9f62d8973e7280ee23ec
GIT binary patch
literal 6274
zc%0o>OK%e~5Z;7RsJI~UIB?oyQH5G0!~xO(O@o>er4<|Xik#hPV(P9V+ab-b;LbmT
z3upcXW9OahI-7L24dfE7AD=znjK3MXpgL^^#X<{6P&^g9DafUhcO0j|gPwCxsU3T7
zJfFA0DeRgt1xBSRet+sX4{%gra{3t&lr$I|g3pK`it^Av1><k&T+lF>#`=vza*MFI
zFi<pbXh_uvU~)<&fKbtM3c|pJ<Z`@esRRw1#e3N9l}q)?Nv*IuXe;avKqj#~(^sVm
z1Yrj58)2O}JWT<EE9w*WVsG#DJm%=%SUQ|`$KVP37FJ~Q=gqQtR{rdz#pYe?IQCwC
zd9@Ba{<=9HwcYhfy;@F%#rxRt33^>F0+}k2<*T*;DUmNv5e1iMm)Ql3+9L@l5yr+-
z%?vy)3}98dwy<3)B2*ouvRIgz3Hh-JL^L}ZMXqYhLu~H~^yv|{f~fN<Z_e9fob@9Y
z5s?QpB%(L5Iqgc6>wa)DI9HCK&6b*7R|D;g7s?p&7Nl8sxbe}E-VvQSQMQHFU(z?R
z9o^nx5eI7pCuq2jgfa-$LDK)+9FJQ@RD5Xby`)0rBkZVgcLeIHmf+n8?Ekvt*zAin
z`02&xDUmYe_^gZGIKP-;nsNWaX^}8sXk3)-2YSTJBx?o!E-D+WUw+%rt0VU@Ijs>D
zItiWkL~|s7T)6vg2wnH2@fG7@`}x}lUq);5pn1v<6MXBH``<@I9#VnmW!%YdA33Ym
zmx%IPB}O_DOag5aeY1-7>5{Y>r`m&X>4@6FZRS&os1MlH4E5;M>WKZ7>xiTo?3!Ye
zL6v!XoGp>9maFCuxth@xZVsu_7TPG)%P{^Epy;cT;(fVU?BXTWL;r^B*`g&{ajKyD
znG=E<?p#hE)n`N5jG-e&?$V3Z8gw&C7}_WLVpk$E!okL{eLNH!vqF{T731HyRAm5}
zF!Mf+$-Jq(U%1;?-6C*m_qPQKcg=fdgy9*aoD>sbg1hRvy!PmWt`a@;EYRcpNL%r0
zGOewaBCoGF?{kCaZkv+CKNVP|&GwjTk6ug6SYp8biWbYdHDxAy%raEYRn30^yQlB8
new file mode 100644
--- /dev/null
+++ b/js/src/jsapi-tests/binast/parser/tester/lexical-006.js
@@ -0,0 +1,58 @@
+/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+
+/**
+   File Name:          lexical-006.js
+   Corresponds To:     7.4.2-1.js
+   ECMA Section:       7.4.2
+
+   Description:
+   The following tokens are ECMAScript keywords and may not be used as
+   identifiers in ECMAScript programs.
+
+   Syntax
+
+   Keyword :: one of
+   break          for         new         var
+   continue       function    return      void
+   delete         if          this        while
+   else           in          typeof      with
+
+   This test verifies that the keyword cannot be used as an identifier.
+   Functioinal tests of the keyword may be found in the section corresponding
+   to the function of the keyword.
+
+   Author:             christine@netscape.com
+   Date:               12 november 1997
+
+*/
+var SECTION = "lexical-006";
+var VERSION = "JS1_4";
+var TITLE   = "Keywords";
+
+startTest();
+writeHeaderToLog( SECTION + " "+ TITLE);
+
+var result = "Failed";
+var exception = "No exception thrown";
+var expect = "Passed";
+
+try {
+  eval("break = new Object();");
+} catch ( e ) {
+  result = expect;
+  exception = e.toString();
+}
+
+new TestCase(
+  SECTION,
+  "break = new Object()" +
+  " (threw " + exception +")",
+  expect,
+  result );
+
+test();
+
new file mode 100644
index 0000000000000000000000000000000000000000..a4f7be41d0ad81167a683f7eb09ff0c1be45fce2
GIT binary patch
literal 6258
zc%0o>O>Yx15Z#1Qr~nBGi36t`K^01osE}YALDQh7M4@7%9=ITPcbb?w>&SLUbK-yS
z&)~wDf5F)KPIjG5vS|akMC*@d&ztd^v0c?}F(|kVAVJ|&@VX#PC+j%QIS;zdVYzzZ
zz4m<G0>{mpF)pK06}~@qoO?LR9iM(i1SRJTj=*O`5Jh=tpn}o2bS`NaOk(}UA(?qt
zTo@=CI5ebc2rxdS96+e(1qET?Led;<S}H-qdf^VXd!=Hn{ITlh`)zK%4>FGBnZ62D
zAP6&X-w12Z;AsjNTv4B}=X-nmvzWtwW9eYpErTcQTUe6KpV!OgS?QCP7Mr)R<HURM
z<>e;u`0M(3)OOd(wMr=!7Vl!m2k3UV2xO{6mabX?q(r_vMHDpAF0%_5wnq|BB#e!w
zni+Up7{Ic0?O?l9M5r1_WwCH=CS*q@5K(Vy6uGQ153#)?(5J`P3Zlj<ygqA_an_Ga
zL_{9akcjTs=CmtOu6x1B;6gcq)*EViT@AE5T4>FXHz3WrBNrbX=^fFj6J=Xy^Cf*7
z+tKZ97ICnaaDs+=Pbh<66D0l5_3^l4M8$`e-b*S}KEjSF&kaFysv&qM0{g!%IktOZ
z4Sss@c}k>AIX-KmJIXJnm}cC+bQ&ZK7#bI4`=K5&HOX3mzlzERo0s3V^y<icOiue8
z6*>u>_W(OC2$PUI$SKi=HxWLJ*5rQk1pi|^>lJ(7$3z}cfzejN9SqjbST(*#l;0>a
z(w1NnXN%|?Rje-;q|-Rl9()T&(k^Z@n^Gjb!>)R$M=w`D94uWwB+Xnaip(0S%bVkD
zfh@IH6@SFll%DYOugIs<651%$U1R(wK+#tu#d|U{-^B~6hyD%Lvqej^;#5HOGA0C7
z+_{`Qs!s-T8AC^m+@%+*Rp_iKQD~p&3tf@O2nQR(_VG|`O$$|;SBrn+GPMTCgc<k#
zRK`v1y(0G%t6AuzcVC;MY%AU?pQX0Xr1k8I2{6IkbW>h;^Z{3i9(LyFaCWGvcomt{
wR7-K!Q<}G#{`0m?LE@hVtdeGXJhex!C1xx!V1G4>W!;)8lRaJ;Drc(Yzn&24;{X5v
new file mode 100644
--- /dev/null
+++ b/js/src/jsapi-tests/binast/parser/tester/lexical-007.js
@@ -0,0 +1,51 @@
+/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+
+/**
+   File Name:          lexical-005.js
+   Corresponds To:     7.4.1-3-n.js
+   ECMA Section:       7.4.1
+
+   Description:
+
+   Reserved words cannot be used as identifiers.
+
+   ReservedWord ::
+   Keyword
+   FutureReservedWord
+   NullLiteral
+   BooleanLiteral
+
+   Author:             christine@netscape.com
+   Date:               12 november 1997
+*/
+var SECTION = "lexical-005";
+var VERSION = "JS1_4";
+var TITLE   = "Keywords";
+
+startTest();
+writeHeaderToLog( SECTION + " "+ TITLE);
+
+var result = "Failed";
+var exception = "No exception thrown";
+var expect = "Passed";
+
+try {
+  eval("false = true;");
+} catch ( e ) {
+  result = expect;
+  exception = e.toString();
+}
+
+new TestCase(
+  SECTION,
+  "false = true" +
+  " (threw " + exception +")",
+  expect,
+  result );
+
+test();
+
new file mode 100644
index 0000000000000000000000000000000000000000..ac103a3ae5603a82d77f9e95301a3f3687c9ab72
GIT binary patch
literal 6272
zc%0o>&2AGh5Z;9HQxzd31P4xg1Xa)?RS3a0f~KjODhgFMD&mCP-D%?1-HmK-(>w$(
zz?*U9f_MwY&VRD&Y|>2|=%tFi{yg)|_?xjE88sOcoCXlTaLB_tCl^-UvaFNPZ(BR%
z>Vf;-^};4t&W8TRVN}S%_h**1hF>|u%Z~}C<b=U4c#Lo&X&7iIfACva=QQv~v3}tv
zxoKD-*HF~AXh3BjV0cN{hd|O(3S7el<YHj7kemkf!hIZfOT}9GbJf}CjyW4$kYOxW
z&sC@dPMC(fBrKZ1dxR4VuBb=YtIf@Kug}CJZ2!M@wzu+*hU8`|<|Opz%@TTCI&!lj
z^e#>uxNp8~Ed!6gZ;nUhcdcBjlrmxQDNgJ~GU8w#fdGC9zWpWSezw_Jx@vL|0?BhF
zk#K=dYLlQp9?M3NFg94KSK#qs0P}LUisM2OE^8p9!NY~QkRP}}cs)`mVqRw+<9Lf>
zfcJ3}crC1i^+}&}uzuuX(sPFfgtv!`Q=vrp?qn*1Q)zKpZ^-d|70~)%qXk3Wf>f&s
zJ2^YDJFjCW%Cyn)>-#+%$FN5%=3vbc1O>N8C<A{P^!?Ax@wlo*#e=4@B@-&2;6ydF
z`=GXL@URtw{a^PV_c~$?UUvC;NQB5ZKWn@_s4u#?W}$a(HAvtybS}>K9reZ7B4bDX
zHm({hUwvCqyCe4rHSKF$>ZA<bLv5x2d)t;gf)6nvjF;r@@Cf}wG^-6ezxRpQr5uy3
zga-7s&lx4YNTk;&G7<^Ub+bv-1uHR>GqR~;Y0kZw6KNgI%x9EHpKz)ksITX1AGYUi
zAJP`CYii5_n#<ecY=$B=TNA$<$}u?!PtK4}tI3s9vc16kPl56P$7R@2ndu>(Q9aaO
zZ$DGE#4An(WT#+)Uq#Es=uv&%Q_BQ8667wsT&+TDL3KjKMBV3#DCh~bVhaz&%D7Nv
zd9(O8?otbYOj&T(Mhk8x9hi!{{Q`SgXk~X>n<8x2yj8x;%+9pk>^19Oiks=OyzQv-
zEmJ+~Op)PyUsCZRGAgNt-mW7wA9LNuZj*o{KMWWZ&Ge3H&R#>#7;?b;W|qjhu~Mdc
Ly3$lmG|PVhO%?C%
new file mode 100644
--- /dev/null
+++ b/js/src/jsapi-tests/binast/parser/tester/lexical-008.js
@@ -0,0 +1,53 @@
+/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+
+/**
+   File Name:          lexical-008.js
+   Corresponds To:     7.4.3-1-n.js
+   ECMA Section:       7.4.3
+
+   Description:
+   The following words are used as keywords in proposed extensions and are
+   therefore reserved to allow for the possibility of future adoption of
+   those extensions.
+
+   FutureReservedWord :: one of
+   case    debugger    export      super
+   catch   default     extends     switch
+   class   do          finally     throw
+   const   enum        import      try
+
+   Author:             christine@netscape.com
+   Date:               12 november 1997
+*/
+var SECTION = "lexical-008.js";
+var VERSION = "JS1_4";
+var TITLE   = "Future Reserved Words";
+
+startTest();
+writeHeaderToLog( SECTION + " "+ TITLE);
+
+var result = "Failed";
+var exception = "No exception thrown";
+var expect = "Passed";
+
+try {
+  eval("case = true;");
+} catch ( e ) {
+  result = expect;
+  exception = e.toString();
+}
+
+new TestCase(
+  SECTION,
+  "case = true" +
+  " (threw " + exception +")",
+  expect,
+  result );
+
+test();
+
+
new file mode 100644
index 0000000000000000000000000000000000000000..952fefbd972d4c9dadfe711f0ddb459b3cfc6646
GIT binary patch
literal 6278
zc%0Q(O>Yx15Z#3GQE{LWf&-^Lf-2N<gAyXzG*yE_sG6vp5OQ{>8&h{Tvb|07JGk-B
z;KC8{FBm)D$*!~6Zqm?86?^?W^Je^J?1Bv242p#o5Vv^31CNtSD{om=GjO}sL8bPg
zzE^jGHduun{Y`;UA&cLiTGm7SsxZF%jBrYt3=Y9zgcC^vUqiX0-@>|}zB`Ha8$Zd-
z!wR^DqOL`KDu)2$ODZn-lAcrG8qOz|Bcp}n)c1<_alBqGH7cKKg`NIbVW$r=j#bxl
zRVslKrs1v#3uo{Y1q`mKL)gpR-8ZwC!~fdT!LmCVkDE<M$>y)svUyfMt!KsNJ)9_)
zKJI^gwGKr7SsjsgalBD!RLhyr_yi}8LK$+fPeA~`0@wZ=a93o?YWcd&K?o$TE{TLo
zbW)oH!|_NqN`$e|QoRBX4+BWc-6oC;Nw{o)kOmKz=0bkt0^we$P()g1ws5?|F~G+-
z3cL|i18>$R9jqU@i1a+5KH=Rl<5Vb7ynC6-;9OdqdM!D<uL9a0ZM0;_TM%kBVaI1j
zcIS2KM42{9sY^dsr%OtZG3+6WI9Mt5{fJNo?mFoE-_`NBsYS(swz4G?Dj(xSEwG26
zwrugB6M?;YURRu-DAwR)m!Bs@h>Y{I!MmgSqFZYgI2Trn_%1`|qI^G4Ura4B_Tzg|
z)nNVV+lJa5xsR!7U!qbcVeqzeW;R3518%>wB@f|kL>QxGxj#G+f-$PqroG?CL>y9%
z30FoV1}5Z;GG8LnX_XiW1?bw@ChCe68_oq8)$ugv-@?hXjb`REN~V3B@_hAmx)$PH
z>J}nt@w%bTETO@?J<b*=REst8hk=}ul%V+y`Lx<xIVHPG%>M)^4{%%tJ*Al+;sw=1
z{SEdrWlOZ;R6+KNCb%`UTudI-X9LBIp(94_vdh&Pbe2>rR7}*Ju0%vcfVE?<@lb3`
z3ssi4i~r+3wFJn7MfcHc(aoe2Q?a+7V^0g6>~3vy#O;Q+%NLp1nY63DVGT@hLtU3Q
z9(BfLqUW7CQk);kDqct?W!2E%^~C0VuK(n15|Q`^0;8&#9#qZQYseWx4w&E0Vp%s<
N%VbYjn#!4m`5)$p@{s@l
new file mode 100644
--- /dev/null
+++ b/js/src/jsapi-tests/binast/parser/tester/lexical-009.js
@@ -0,0 +1,53 @@
+/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+
+/**
+   File Name:          lexical-009
+   Corresponds To:     7.4.3-2-n.js
+   ECMA Section:       7.4.3
+
+   Description:
+   The following words are used as keywords in proposed extensions and are
+   therefore reserved to allow for the possibility of future adoption of
+   those extensions.
+
+   FutureReservedWord :: one of
+   case    debugger    export      super
+   catch   default     extends     switch
+   class   do          finally     throw
+   const   enum        import      try
+
+   Author:             christine@netscape.com
+   Date:               12 november 1997
+*/
+var SECTION = "lexical-009";
+var VERSION = "ECMA_1";
+var TITLE   = "Future Reserved Words";
+
+startTest();
+writeHeaderToLog( SECTION + " "+ TITLE);
+
+var result = "Failed";
+var exception = "No exception thrown";
+var expect = "Passed";
+
+try {
+  eval("debugger = true;");
+} catch ( e ) {
+  result = expect;
+  exception = e.toString();
+}
+
+new TestCase(
+  SECTION,
+  "debugger = true" +
+  " (threw " + exception +")",
+  expect,
+  result );
+
+test();
+
+
new file mode 100644
index 0000000000000000000000000000000000000000..717f1822c139d32948285e3eb11cf43730c64219
GIT binary patch
literal 8799
zc%1E8OK%e~5Z;vX5)UCEE{MZ&10g6CAS4KtXqu`)RX|Mui3@UfCyBw`U2JdD{sWGj
z`DdIsBK`$qZ<?oflWd%{MLliSUXN$K8Gjy+Q<QPUV6E5!;;+5qVUv?RXUTD#-OxXD
z)+^OFwHGxnjKC?b=x>UQ3b}U2b)4(?Rk45g2f``YWv~GrBb-PY23nNgdl$}E8u){<
ze&Z*Fak4_LMN!|O0hL_={X;4~1d=u=a4jw%dp)Iv<TPlmUBvcUxm2&btrk~0ZN-(2
zkbYS;-M398aKf~>eZt}qc~`K5!2$IMd-!;DbyQ~esVzMkc23LV*(&5j^Vee0{7~Mh
z*+TO?cD$*retvoqaQw449F^VmN`1R*1;ty~u^G#lgS!I)_&)gV$B_HNDyrp!h=ULa
zUQH4SduXIq3A*h@G)jcA-cUUP*A4^7i``{x7m{#U2O%>ooSO+tJrf9T#!8CFYs?L7
zZ*z3;7PbPfhudLu)F$n$p9MpBuG4_<!#?GdE0MdCNM+EF4yVnQ9G+JRdeEC_&LWS2
zr&WiW9v$}9>(GiiUE!zfitv|V9cgpEn<#NY54=>EwWx3<u2Yx8x0s>{ZWt;4b-$2(
zB0Nqb`6y`-kJLC%x)3P7^$kdmN4V1HA**mwQ#&3C$Jtez38wd1;f}2hde8;h6lHh2
znij0MZ6lOJ!@}J!;7Qa)sU;5=L$en(4B9hRm(d=PUMpRq_HkqiyB%nvfk$DdaEXY-
zm%wQ-(iFpUUC`Tvim2XXou{Kj=LxTM7J6R?BP=^<eq!S6lSc!YzSf4+W*`ESC&qx@
zX&%77597pv$t08P`)9OpMhktx*apr+entz&PYc7ISS&4^{PVWL2t6A!19j$ve3MXf
zcD3;H_TR<fcv-I_4|FhFf$}DHR71Bb)RiqBwhglX>w3_IgrC5)wdah_cSH!w@mc4G
zL+q>w+i8)&XK0+s_NgiT`RSnaWi>lupTg&#X5jN{D$R>A6>(p=lE?7U7OkrpllLtm
zHt-PX$ueqiG=CwJ<4Y>9C@~TX&?#I*RJl9Vms7&2otYhcQ%BMRRCCEvB)!J2W}v>#
zSI>EsyPh-Y&NU;+%%R+Je3(tKOHG&8=Q}&tiT??tTvA7}Frk_8F1DByj%S>0kjah-
zeibzrgG=@H5nZOhkwSO&VzmnGIc*fmC#t|+BEsNcZP+th6wAXzWwX?KI*QwK5INzF
zdv$2XwUUD=$Gi71n}xQ$`uP}Uo3YM+-<qD2=Cd<yfD5}Tn7!V!+$on$z{}Y@ywv4X
zJc<l*YDRLGFwKub=f4M843d6TlSyfPB1dkvv!gd7X3`5=S*4ZqOPP$A>eJD1E1K%X
R%&oWc9CJCTT{Dt>{{vsGDF*-m
new file mode 100644
--- /dev/null
+++ b/js/src/jsapi-tests/binast/parser/tester/lexical-011.js
@@ -0,0 +1,62 @@
+/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+
+/**
+   File Name:          lexical-011.js
+   Corresponds To:     7.4.3-4-n.js
+   ECMA Section:       7.4.3
+
+   Description:
+   The following words are used as keywords in proposed extensions and are
+   therefore reserved to allow for the possibility of future adoption of
+   those extensions.
+
+   FutureReservedWord :: one of
+   case    debugger    export      super
+   catch   default     extends     switch
+   class   do          finally     throw
+   const   enum        import      try
+
+   Author:             christine@netscape.com
+   Date:               12 november 1997
+*/
+var SECTION = "lexical-011";
+var VERSION = "JS1_4";
+var TITLE   = "Future Reserved Words";
+
+startTest();
+writeHeaderToLog( SECTION + " "+ TITLE);
+
+print("This test requires option javascript.options.strict enabled");
+
+if (!options().match(/strict/))
+{
+  options('strict');
+}
+if (!options().match(/werror/))
+{
+  options('werror');
+}
+
+var result = "Failed";
+var exception = "No exception thrown";
+var expect = "Passed";
+
+try {
+  eval("super = true;");
+} catch ( e ) {
+  result = expect;
+  exception = e.toString();
+}
+
+new TestCase(
+  SECTION,
+  "super = true" +
+  " (threw " + exception +")",
+  expect,
+  result );
+
+test();
new file mode 100644
index 0000000000000000000000000000000000000000..7f55206ac98ead7d1b534cc3b8097ba0cc857150
GIT binary patch
literal 6271
zc%0o>&2AGh5Z;7Rr~nBG!GY5rK@}=RASBpE&@@$3MWO0OMdE_o-DzU#>_)b?Y2JY+
z;LSL3M7#xK=RetXHtD7f^isuMf1def{LR>oj9Lr|P6LQvIO1WQlctroEbBD%JJxQw
zdg#7$y|4wAv!%ar7!|Vc{fTAW!>^pt<tKzwa>`&2JVrQ?Gz>J9Km0AMa~k;LSikU-
z+$^k+YbfelG@x<-FuJ7dLm=rH1+L)&(i|EsB&R{Wa0kcTQn6P4RCTs`W6o9&WE9KQ
za}_Fq6Q<!V2#coh6a@?}sYlq0m)ozVF$e#(r~PHOG#)pbuppa1ub0h}(y^Nro40Y|
z(B1y}dKGy5eSJJCziZ`MrIZPak8xr@k`V{{7zFSO@a@kb_eG|xmM&Wygh29KNhCDU
zNo^7g#$(wi62^v0^$I*Y3}8|2HgH@>!etGFG<di)7xF_F2(L#9MJ(#fLmY2&4DbPt
z0<VRYus-dR4%UxcOnUCpfbh<UaVnIk-Q7%Oa3(EI>kT=%uL9Z}ZnR{`8_;PrVJBxt
zcIS2CM42{PeSKfYaSVIJVh+{<K~Qk}gfj3~LEryeACDVaR6J-YTQZ^Y5l&P?djM+7
z1`pdY*#C9^vECJH@UqL#BO*k``B~$gVSUk^H4D9St3d*vp>uJ*@2W2*78%>|w{g{A
z_3GQ2+8w!1sA*r~QYU5b9%wVA*RXeN$s>3l6T^5-?hTLeKf<%xvHSagh&{?N+e&Cb
zfB&3O<BQ6oA|sIiT{v4rU9S>jIVYVunC9f0JCioi%zQ?f^bx1(f%<x}{$Xd~{vmDU
zx}wM|p}V{}&gQ66^L6oip`6f@@bnw<X|=d=N_Li*|0z)J;<yaEGBZ2GbE=2>>+fgE
zmUzXffb3RG@T+LK7(c2{`*N8;M}pjCm#bB1FR4(dn5YX~k%*W8YscQ;p;(&~sw}S-
z|Hfr%36Lo(?){01n@JC*0&hRVZWh|v-PdL)+ZFGX&oi?#Z9jX(0+`}%x+<?b>VV5s
z4?8n-I6u%-yo!u#s-d~-D$R#n@2%UUAjwYyMoBZhq?)tWkTZrHFu$55vTiJu=^n2%
Il~djFUlUaCssI20
new file mode 100644
--- /dev/null
+++ b/js/src/jsapi-tests/binast/parser/tester/lexical-012.js
@@ -0,0 +1,53 @@
+/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+
+/**
+   File Name:          lexical-012.js
+   Corresponds To:     7.4.3-5-n.js
+   ECMA Section:       7.4.3
+
+   Description:
+   The following words are used as keywords in proposed extensions and are
+   therefore reserved to allow for the possibility of future adoption of
+   those extensions.
+
+   FutureReservedWord :: one of
+   case    debugger    export      super
+   catch   default     extends     switch
+   class   do          finally     throw
+   const   enum        import      try
+
+   Author:             christine@netscape.com
+   Date:               12 november 1997
+*/
+var SECTION = "lexical-012";
+var VERSION = "JS1_4";
+var TITLE   = "Future Reserved Words";
+
+startTest();
+writeHeaderToLog( SECTION + " "+ TITLE);
+
+var result = "Failed";
+var exception = "No exception thrown";
+var expect = "Passed";
+
+try {
+  eval("catch = true;");
+} catch ( e ) {
+  result = expect;
+  exception = e.toString();
+}
+
+new TestCase(
+  SECTION,
+  "catch = true" +
+  " (threw " + exception +")",
+  expect,
+  result );
+
+test();
+
+
new file mode 100644
index 0000000000000000000000000000000000000000..ce63ba5c86efc04e7eecdf0b94e8ade1d1412285
GIT binary patch
literal 6275
zc%0o>O>Yx15Z#1QsE_~&!GY5rK@}<$NC?<Q&@@$3MWO0O<${FV-DzU#>_)b?Y5oOg
z{uw8Zh=0M@`A&A7O}c3Vy;QN+&oghvZ^m|H)M8L@8bJKQ5fAH}G_Aa4S*M}jv3ASV
zL-(EQg)Ok0E&YwdsE~#4Pb}*me&viVKOvlwQwDqBF~W(YVW6S>;csD`)4(6c`h}n5
zW?_X~Ls8$N0hI%Q(IsUc0!hy(a19rb=Fn&%ISuNCJ2>u^ina2ms<YJ_bGCXQqgbw<
zt56A?Fb#J>STu#FC}40&J;GkR+<rBUIry(V?Jv8f@wnN91=;+0y=<P8j@_)-yp0ow
z?)KN$tH9&$>*G=RT`SirrA%0Sj1&8jj5yfGAb?+hZ+{NCFEVAdblKt{1d``UBB6;+
zYLj3v9?M3NFg9GOSK!%U0E=?Bf#X6FE^8p9!NaAwkRQ50cs)`mVo_%v;&_{5fDdpK
zcrC1i^=Y4UuzuuX(sP#vgm*@aQ=vrd?q({3Gih;JZ^+4g70~8zqa{P$fKICkJ2^YD
zJFgQb%Cyny>-##6W7s1WbFdZ&f`Z#8l!3nr`u^woc-+vU;z3K<k_nZMaH1O815jHw
zc-W4?{;&Iw^{!ZhmtB4y5g{_p&l>Lx>x=HJS?HZx4HEbaos08*SA8+D$k>j*jjIN$
zSKrpu?#O*YP5Tm;Iw^zqKxgI|L9w!TY{?^d9}~rRRqhRsMPP(!wP*MD0TFwYW4@Kp
zhQ0+kqskYF^cqD*A_2N|wuri5B}Q{jLUlOJ={I*SZK9d^jB@ECPSpeT^<o{w&cYo;
z+S+wRnOQ=Ad2^i2QK#nX<M%>2p(x?$H{{c5apjckEHVF6pxniA8Fqzcc8KRx5B1mI
z&y+3kic<mEt(o9g(Q+|<RG;<*Gl7l-xyvqBtI%FjsZcRdSGpn*F#*<&y}?7VHYrqD
zUM~KP>(mk;Q`X%3Q#Ch}K1_w)euf<_w6nXj&Cs?h-YuVJW@p--_KGDi#r<?uUU<|I
zm#H3iW+-ufpsIKs8CO+9d)L*P54qlZw@E{ip9hShW_nFEXRje=3^`zaIZI^SSS-^$
KU}-9+`sKf3gYkU;
new file mode 100644
--- /dev/null
+++ b/js/src/jsapi-tests/binast/parser/tester/lexical-013.js
@@ -0,0 +1,53 @@
+/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+
+/**
+   File Name:          lexical-013.js
+   Corresponds To:     7.4.3-6-n.js
+   ECMA Section:       7.4.3
+
+   Description:
+   The following words are used as keywords in proposed extensions and are
+   therefore reserved to allow for the possibility of future adoption of
+   those extensions.
+
+   FutureReservedWord :: one of
+   case    debugger    export      super
+   catch   default     extends     switch
+   class   do          finally     throw
+   const   enum        import      try
+
+   Author:             christine@netscape.com
+   Date:               12 november 1997
+*/
+var SECTION = "lexical-013";
+var VERSION = "JS1_4";
+var TITLE   = "Future Reserved Words";
+
+startTest();
+writeHeaderToLog( SECTION + " "+ TITLE);
+
+var result = "Failed";
+var exception = "No exception thrown";
+var expect = "Passed";
+
+try {
+  eval("default = true;");
+} catch ( e ) {
+  result = expect;
+  exception = e.toString();
+}
+
+new TestCase(
+  SECTION,
+  "default = true" +
+  " (threw " + exception +")",
+  expect,
+  result );
+
+test();
+
+
new file mode 100644
index 0000000000000000000000000000000000000000..eb56f5bb305454b7b6540363a66a23415a134977
GIT binary patch
literal 8806
zc%1E8&u`N(6i&xr>;g!L3#TA1AjAd&2?1pi>xx!16|@$(AR#Y#Z9Tjs*v`8B2OK%`
zpK;}a_%C>Ny8d+1Hg&rV?UdDtpWpl5=g;=@iZYHEY!q8S{EhcKY;tnoEIE#|7y8G}
zW~KVJ_M+y65je$l{Y{ZkAvf;2j&lvaD)x8(NH`^X47R{ygcC`_K%4S=zlHOa2L7O}
z-}p&koUM>+Q`C28KxNlJf0v36fus!zT$>BXLC<L+ISrZ{E7)Eum+F;w)#7@mt+?JX
z(r>G#-|bKdoG@+fkg#~fo`QhE5%mar_~`M|wS6&aw)@n<p7gw=P4a9nasv8mv4DOo
z@78PqdKq85tv&wo^eo``XK^^Hxa*brPT2~IxA4WASjHUOT@b(z!FNA}+_%fl@=?S=
z2n4StiG%|TQo97*b|V@k!dS1X?t#;X0p!JQ72Aa*T-HIzj0ooz!cs2;!ke+OBJu`v
z1KZmi6TFSB!0X{o*c^>XC+layK+jDY5Psa}oJu9icfwQ#4e4;&Y{}tqm7xc{f#z)T
z6r@_caMRggZ@v!AsPjcX6<36R8Rn4==etP~C(OW0g;|RVSK>T%Ied#LhTw*g(qDI<
z91`Ji8p*Y!MXafQo^&Bldg~jI9*=OP(L+|@q=t4pG>)UIHWN%AvgnSj4SLiC+QhOu
zT~7;E(zX@Kp>E;cK6ny+QEtiO#mMZ6hCye>>NGka(rcw#)H#k!wA+Oy26#d{g-b*v
z{s^1~BTX?p))l=>C`R=L>pUH0IuE@zS?GNoWLWmT`H4xh&z=lq=2{0*n?VRnnHU3l
zr+EPTK8%wDCWB0}?qA5lg)H=uu??Ju{6ZE^UlxWlu~=C+`{!+i5oR`K2I<TR`5Qvb
zyQ_ttxBo5<$5lO#JkVse0_9D7Q4QU$QCGHj*f!Yyuj@fq5`6;G(w>u_?}-qW`B~@3
zL+Y#q+i8)&XBeC*_NgWP`T3CaWi>itpQ7iVXVCNOIxq==FWgtI<T1RoCG2X<<o7la
zTX>B0WEp)p@t}~Y@+GyiC@~TX(3`l3sG4_bHm3wsr!$*=Q*-G7y18VDORw=&Gf-dW
ztLVJSUD26z?V3?$=1_1sJ<O(9r>5K4=Q};v;r|3yuBt;>m<Y}I6kFUDj#r!=kja_}
zeic0zgH!ePiD0I{ks^2YxLSqwoR$ie6IEg_5n)KM4(u6DisfOUvRUjsALZ>in4IE5
za&XPHvJX?Kckkhj7TWe|=wq~P##;Y<Ykp3;r=4*LT-bfV>@}a|PRVQnWzJUOrLL;t
zab!?cGq!h$*8C`R{skdRL(;EnGDWS=<jC!IHhVKTlV04)DzBtp%w%w?&qu?}XlfQS
Q7vIiv%mt-R&B*@yAFJ*w!~g&Q
new file mode 100644
--- /dev/null
+++ b/js/src/jsapi-tests/binast/parser/tester/lexical-014.js
@@ -0,0 +1,62 @@
+/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+
+/**
+   File Name:          lexical-014.js
+   Corresponds To:     7.4.3-7-n.js
+   ECMA Section:       7.4.3
+
+   Description:
+   The following words are used as keywords in proposed extensions and are
+   therefore reserved to allow for the possibility of future adoption of
+   those extensions.
+
+   FutureReservedWord :: one of
+   case    debugger    export      super
+   catch   default     extends     switch
+   class   do          finally     throw
+   const   enum        import      try
+
+   Author:             christine@netscape.com
+   Date:               12 november 1997
+*/
+var SECTION = "lexical-014.js";
+var VERSION = "JS1_4";
+var TITLE   = "Future Reserved Words";
+
+startTest();
+writeHeaderToLog( SECTION + " "+ TITLE);
+
+print("This test requires option javascript.options.strict enabled");
+
+if (!options().match(/strict/))
+{
+  options('strict');
+}
+if (!options().match(/werror/))
+{
+  options('werror');
+}
+
+var result = "Failed";
+var exception = "No exception thrown";
+var expect = "Passed";
+
+try {
+  eval("extends = true;");
+} catch ( e ) {
+  result = expect;
+  exception = e.toString();
+}
+
+new TestCase(
+  SECTION,
+  "extends = true" +
+  " (threw " + exception +")",
+  expect,
+  result );
+
+test();
new file mode 100644
index 0000000000000000000000000000000000000000..c0d1fe40b62679d11a87731c0431a171da147b81
GIT binary patch
literal 6273
zc%0o>&2AGh5Z;7Rs1OJV!GY5rK@}>M03p~$&@@$3MWO0O<-h^CyVJzf*^O*()4T)^
zz?*U6h<FRe&VRD&Y|>2|=%tFi{yg)|_?xjE8MPP`oCXlTaKytpCrvAFS=MRjcdXrV
z_0WCidSMGJXG?$MFe+r>`xDE$hhI6P%TEZW<dnf4c#Lo&X&7iIfB0Ki=QQxgv3}tv
zxmj2t*HF~AXh7uvV01~@hd|OZ3S7elq&YNNNKS)#;SP?wrDCo8sp@R?#+<Dl$S9Vp
z=PFbJCrra#5Ef10DGC@|Qjf3~FSlP$V-EgnPy5SmX*_N=VL>*3UN4&`rDHcMHgDs^
zp}YO{)hh7#`}%lPe%H#iN+}Z-ALGP+BqI*?F$mxn;M<==?u$%WEnT)a2!Z6el1ONx
zliDO0jK{K3B#aH0>J@l)7{H?3ZQ!_&gv%NTY4C7qF64(U5MGZIidfW{hdAEm7~lgO
z1zrm)VSU;s9jqU@nDpGG0pXny<5Vb7yStgn;7nSa)*EtiUj?)|+-S*=H=xsM!cNYP
z?9S`Ni85`p`ue_(;~4gc#T={!f}r5`31#4~g1-N`J{~u;sCdv)wq!!(Bb=y)_5jqD
z4IZ{*u>b4+W4$ZZ;ANMeM?{E>^Rvb~!}_8-YZiLvR)YjSL+9dr-&J2sEHbv^Z{w=L
z>eaV3wL5a3P}9D|rB2G=Jy3l>n@X=?@7R(@@IEGp@uJ)t9t*$-(Q3=??*k(CD93aw
zp$UBhaz>Fa611quNF+d4&K6PktHfZ=$)}E{Is4{LrA;(5pHV7(#Ho6qzFw?>*jc!N
zNL#wDs4`1vFK>>sIm*<0ZTwy+Cj=!t{f2y6Ev}rBoh9af3Y5DzF2k<Q%ntFK>Y@Jn
z`<b#OUU4cQyCoC+Dq1eakLuIDUMA3yAa~j2Y8Bc`suU_F>PA;2A|}Avu{U@q)+U82
z%e%$DahqBKWXh6zf3oCe(uJwW+t09{g?4r~wi(iP#hc~x%<N3t(O$6vrnsH1%KMHw
z;WE|J&I}>W4@4C&BjciK=<d2w^C8!J?KVkB^5cL}(@bxv=Ik}(j3Eci?`Dat8*62{
L=POO+RJ;5aQ#|m}
new file mode 100644
--- /dev/null
+++ b/js/src/jsapi-tests/binast/parser/tester/lexical-015.js
@@ -0,0 +1,53 @@
+/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+
+/**
+   File Name:          lexical-015.js
+   Corresponds To:     7.4.3-8-n.js
+   ECMA Section:       7.4.3
+
+   Description:
+   The following words are used as keywords in proposed extensions and are
+   therefore reserved to allow for the possibility of future adoption of
+   those extensions.
+
+   FutureReservedWord :: one of
+   case    debugger    export      super
+   catch   default     extends     switch
+   class   do          finally     throw
+   const   enum        import      try
+
+   Author:             christine@netscape.com
+   Date:               12 november 1997
+*/
+var SECTION = "lexical-015";
+var VERSION = "JS1_4";
+var TITLE   = "Future Reserved Words";
+
+startTest();
+writeHeaderToLog( SECTION + " "+ TITLE);
+
+var result = "Failed";
+var exception = "No exception thrown";
+var expect = "Passed";
+
+try {
+  eval("switch = true;");
+} catch ( e ) {
+  result = expect;
+  exception = e.toString();
+}
+
+new TestCase(
+  SECTION,
+  "switch = true" +
+  " (threw " + exception +")",
+  expect,
+  result );
+
+test();
+
+
new file mode 100644
index 0000000000000000000000000000000000000000..8c60e0ac54f0169e8a138683c23dd4c6fbe13aae
GIT binary patch
literal 8799
zc%1E8OK%e~5Z;vXsCWnoaX}oG8wf!`yd+2~(KLvlDxfBS#09y#lf>ZeF1EL6{{ctN
z{4-7*5&wd*H_g+#Nj6T}qMo*~*Pmy;8Gp8CTa<CcV7=G^;;+BsVUv?xXUTD#ozOpU
zHY(LOwdXZ2jKC?b>UWBa3b}sMb(|~sR<VEh2f``YVXz4vBb-PY1{%um{T9ww8u)`)
zzwwpAIINIsDC#>jpt1|lKcwPAAZddF*Kh&Z?HMg3r$KZ5Jhs=$rF!LUwYb`8E3S4x
z`mt)dZ;MLcglV`v!r~FUi`c<npL&Gdd+_k-C}#JmJv|(DM&t2p6LPZoYq4y8C~wzn
zv3V9d-qap`etaBw{IfV7mEZMBeXDGR#p~GdDwZ(^cN+xoJ@DO+A@_w<R?GVl2O*HW
znj{i-(MfF*blZ(=ln7(Jp?U<a9R`q>yA^B~l5klEAu~Ljn+r=l7YJ|03Pt2~<|?+g
zIR^MOwgRt*TVZq5CmpPx1w(pn(17rRKI2p<QM;2&Wzdigr_Gieo>u|g?M*ai$Rp5c
z)#0XRhrRVWw4zQ{`YFF6{L8S8v^(ETk~m=mUMS95RJan?smtM8Owk25jFkSmU&tO2
z9;cDKpR|bkYMdus2$bIX2Bya|Txs-}RXnMw9S^~AcGYI0>3vqZV{3!%cZoJ-*{!an
z1uJ3O4CT<UaOVqn5^Ygt$%Dnn?0HRtj*Qi1v`eJdN=MW&j!bE{4NY|LFzpmC5s~;K
za2kv>#qeC`^fsX~syA8Z=_u$t>9xT^@9SWOWgnU!nKb+O$v|eTwIj6|guoPuF{F2z
z2e|L!I0;}f$t3&!sVtnzLSHhrf%A}`%EHmh!f+%OD+|Z}zO6XI$i~bdojECgMX337
zweb7)-^KB`qSuiJI+?9dc?~<Nq1y#@Ws8Sx1NMJi4?36V6PUL4ocZ~V2w^!t>-=Cy
zot0oaEfV+)oiq79wWL2g8Ir!NW=HN*^!(EddVX1%$uN5Enk#t>FKo%WnlbtPnutxj
zM0&D}797rB$kh0fI#-k!i3R8*Ttrm4J2jS5(y4=)oqSVg(p@xj$x<f0#I9zb-p*Ig
zS<79|nRMrxQDo*&ZaF&6rr4#XJJ;vCJJ`wp2~aMmD_NMx%=i#nJQR*soGp;ajtPDh
zEf<4J^~RxGrqGchclL6%3hg;<6e=dFz+NK45Mb@t6I>L_!$M`V)O#|D+jD@NaL2tg
zwBuSigQ>u~xA8O!ZF}|eG0HY$o&SzCJ10HQ&bR?C>|4R?^`7NUxoiSm&eq|juBPHu
zWKdHx4tI&t{3vw(_aI9_(m&N?N?IS}$d~Qx?9IrT^uktFX(j!mOh!)i*=YDGni|E-
Qt+(?W^Knv#X5{q!4`zEP+5i9m
new file mode 100644
--- /dev/null
+++ b/js/src/jsapi-tests/binast/parser/tester/lexical-016.js
@@ -0,0 +1,62 @@
+/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+
+/**
+   File Name:          lexical-016
+   Corresponds To:     7.4.3-9-n.js
+   ECMA Section:       7.4.3
+
+   Description:
+   The following words are used as keywords in proposed extensions and are
+   therefore reserved to allow for the possibility of future adoption of
+   those extensions.
+
+   FutureReservedWord :: one of
+   case    debugger    export      super
+   catch   default     extends     switch
+   class   do          finally     throw
+   const   enum        import      try
+
+   Author:             christine@netscape.com
+   Date:               12 november 1997
+*/
+var SECTION = "lexical-016";
+var VERSION = "JS1_4";
+var TITLE   = "Future Reserved Words";
+
+startTest();
+writeHeaderToLog( SECTION + " "+ TITLE);
+
+print("This test requires option javascript.options.strict enabled");
+
+if (!options().match(/strict/))
+{
+  options('strict');
+}
+if (!options().match(/werror/))
+{
+  options('werror');
+}
+
+var result = "Failed";
+var exception = "No exception thrown";
+var expect = "Passed";
+
+try {
+  eval("class = true;");
+} catch ( e ) {
+  result = expect;
+  exception = e.toString();
+}
+
+new TestCase(
+  SECTION,
+  "class = true" +
+  " (threw " + exception +")",
+  expect,
+  result );
+
+test();
new file mode 100644
index 0000000000000000000000000000000000000000..a1e0e6e591981f371c016327a719040ea662e56b
GIT binary patch
literal 6265
zc%0o>&2AGh5Z;9HQ@9`@IB?n{s6wTv5)z~lG)>i1QK-66dqnQ;G%<D8k?n1o7vLdy
zGfo^4Z^794Pj;P6x@iNsMC+f=o^QtAj9pMsi$Sr_1QHaF1aAm(>Es>9Ipaac*{#$L
zy$_zxTi_Hn&6onCQWd|yaGWPNsxUhJga}H`80>-1h#-pc&_D&lZ|PjnFc`=Bg+p?)
zu(&W#G;nB0)c|00N+p0$(Q^vIz=h;;xM`^b4I9OW*zT1}^~#r8VYAm(*zAFfVtJ;o
zN)-sg4BQoA(G;GhfWbBO348N)>-{w5;NMu<pLWmS3HufnWb^0kvUyTI_OfF0K6V^>
zTVJ<Vfydvs$D_8pUa42hnXvdAJN6?L32=`=g1CafJ>?>hnX+2GZV8YQ$@3IZaEV5m
zEy18YmW>i&Y&g}-z_Y^u7Ugao+od8x)j=wYg-bIbKQw`eMx;^XqQ*SM_O?I=A7Cqp
zI<NA^v`xlYKXNhQxl2PLIwPCYu0-wbMk<4I<p|nns>yXV(8h3~B}3kUPU{XgIXbdC
zuM;QAw$SS9`vYu8w?{1IU@hPT4YyAygJ2c({m<?3xNbznhnC(;CR9Gdjv99dpss2P
z-j2ckuj`KoU9ko~yZAgJQf3^Vb<r8-7gJd??q4`f5(W&7i?e-KkC>QbEyuUxvcc-*
zw>7;wa-WdXPUAu+rSl%^$mH&ht3(7JV;mSS$i3z<@<&M4%XPmGh}@$BL#>R<_ZQDu
z1-?X--z+f_NibQnMfBY&(UEg<X*_9<yt%_@1GkyaD2zU1S0mJ;7b_li7A_vrrmY()
z%o0k=yW?z*6g6K7zsJ>tnDDc2$fwg1+9=goV*IB-d4%nXcQt0Vi|14i{p+u1i<WrB
zse<aJO9*PXb2)xgU-q>!fsO>Z%Pv-H&|XrO&_2<(xe}2v4mO6p!$Yw)DO6eBEB=j}
z)Dj?5rrY(=bel=_rM>RH!a5e(+1=D;$l48Wl&>?}XWB~khS@L0t#no1b@b_0sh)IZ
zh;V)&sCWq(7gS4S*Oi%1x!x<cO+Jzz1+02zdqcHHuO((IF<^f$OJv=eC(}J!87ikr
F<-cv2?K%Je
new file mode 100644
--- /dev/null
+++ b/js/src/jsapi-tests/binast/parser/tester/lexical-017.js
@@ -0,0 +1,54 @@
+/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+
+/**
+   File Name:          lexical-017.js
+   Corresponds To:     7.4.3-10-n.js
+   ECMA Section:       7.4.3
+
+   Description:
+   The following words are used as keywords in proposed extensions and are
+   therefore reserved to allow for the possibility of future adoption of
+   those extensions.
+
+   FutureReservedWord :: one of
+   case    debugger    export      super
+   catch   default     extends     switch
+   class   do          finally     throw
+   const   enum        import      try
+
+   Author:             christine@netscape.com
+   Date:               12 november 1997
+*/
+var SECTION = "lexical-017";
+var VERSION = "JS1_4";
+var TITLE   = "Future Reserved Words";
+
+startTest();
+writeHeaderToLog( SECTION + " "+ TITLE);
+
+var result = "Failed";
+var exception = "No exception thrown";
+var expect = "Passed";
+
+try {
+  eval("do = true;");
+} catch ( e ) {
+  result = expect;
+  exception = e.toString();
+}
+
+new TestCase(
+  SECTION,
+  "do = true" +
+  " (threw " + exception +")",
+  expect,
+  result );
+
+test();
+
+
+
new file mode 100644
index 0000000000000000000000000000000000000000..8d7deb8b9cf35de802a770077a28cf6eb5c561f6
GIT binary patch
literal 6275
zc%0o>O>Yx15Z#1QsE_~&!GY5rK@}>Mkoek0&@@$3MWO0O<${FV-DzU#>_)b?Y5oOg
z{uw8Zh=0M@`A&A7O}c3Vy;QN+&oghvZ^m|H)M8L@8bJKQ5fAH}G_Aa4S*M}jv3ASV
zL-(EQg)Ok0E&YwdsE~#4Pb}*me&viVKOvlwQwDqBF~W(YVW6S>;csD`)4(6c`h}n5
zW?_X~Ls8$N0hI%Q(IsUc0!hy(a19rb=Fn&%ISuNCJ2>u^ina2ms<YJ_bGCXQqgbw<
zt56A?Fb#J>STu#FC}40&J;GkR+<r5SIry(V?Jv8f@wnN91=;+0y=<P8j@_)-yp0ow
z?)KMLtH9&$>*G=RT`SirrA%0Sj1&8jj5yfGAb?+hZ+{NCFEVAdblKt{1d``UBB6;+
zYLj3v9?M3NFg9GOSK!%U0E=?Bf#X6FE^8p9!NaAwkRQ50cs)`mVo_%v;&_{5fDdpK
zcrC1i^=Y4UuzuuX(sP#vgm*@aQ=vrd?q({3Gih;JZ^+4g70~8zqa{P$fKICkJ2^YD
zJFgQb%Cyny>-##6W7s1WbFdZ&f`Z#8l!3nr`u^woc-+vU;z3K<k_nZMaH1O815jHw
zc-W4?{;&Iw^{!ZhmtB4y5g{_p&l>Lx>x=HJS?HZx4HEbaos08*SA8+D$k>j*jjIN$
zSKrpu?#O*YP5Tm;Iw^zq04L6{Rx#GGcWlWccpnqRcvbEVk40dFX|-qf_W==mlw-b?
z(1yMRIit!KiS!ypMj`>abhe1PU?oO#PC|7!&FMFHE^VTj`HXVuBTm%=_4Q&M#LmJU
zMB3VQMVVPbe|dA9%~7Z3>*M!AIiV=w={MxlYH{V1>?|?=Q=r_%aT#`nW_F0@R1fvn
z-_MjS@rqLc*{zx2SJ84YepH|K1v7z;1i8yDSF6xoQmIfeQCGSm5itSQj=jc1u{J4G
zSza#wjqB7BAXC=d`%^VHlRiv^-hPH1Ewr<{v(3=9E8Z=iXJ%*Gp7x3*Fvb0JRbF`1
z5tpeRcV;MYexRy&9T`_uLwncNnh&|&d$&nLlAi~RqGozcHD|9OXAC)DemP5I-B>Ks
LJz!}nr~2i;c1`h?
new file mode 100644
--- /dev/null
+++ b/js/src/jsapi-tests/binast/parser/tester/lexical-018.js
@@ -0,0 +1,53 @@
+/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+
+/**
+   File Name:          lexical-018
+   Corresponds To:     7.4.3-11-n.js
+   ECMA Section:       7.4.3
+
+   Description:
+   The following words are used as keywords in proposed extensions and are
+   therefore reserved to allow for the possibility of future adoption of
+   those extensions.
+
+   FutureReservedWord :: one of
+   case    debugger    export      super
+   catch   default     extends     switch
+   class   do          finally     throw
+   const   enum        import      try
+
+   Author:             christine@netscape.com
+   Date:               12 november 1997
+*/
+var SECTION = "lexical-018";
+var VERSION = "JS1_4";
+var TITLE   = "Future Reserved Words";
+
+startTest();
+writeHeaderToLog( SECTION + " "+ TITLE);
+
+var result = "Failed";
+var exception = "No exception thrown";
+var expect = "Passed";
+
+try {
+  eval("finally = true;");
+} catch ( e ) {
+  result = expect;
+  exception = e.toString();
+}
+
+new TestCase(
+  SECTION,
+  "finally = true" +
+  " (threw " + exception +")",
+  expect,
+  result );
+
+test();
+
+
new file mode 100644
index 0000000000000000000000000000000000000000..ba6774fe3e5fc5665750170f4b008a5f4149a678
GIT binary patch
literal 6271
zc%0o>&2AGh5Z;7Rr~nBG!GY5rK@}>MKnU1I&@@$3MWO0OMdE_o-DzU#>_)b?Y2JY+
z;LSL3M7#xK=RetXHtD7f<PxoaK6}0ye>1itqZWgL(*WWZj(Aw-q-o_X%Q_AHj<s8^
z9=h*bFKmJ3Z0Ru$qe2$GKe4QPILaBFenL1UrwsPMV}uh)!$3p%!*5}o)4(6c`h`Ps
zv#>(0p{Q@sfXV^D=#;V#fuv^?xP}WzbGT_CISuNCJJ{})ina2ms<YK=bGCXQqgbx)
zt56A?Fb#J>STu#FC}40&J;GkR+<rTaIr!I>_NU#_c-*{&1=;+0y=<P8j@_)-yp0`)
z?)KMLtH9&$>*G<`T`SirrA%0Sj2-)tj5yfGAb?+hZ+{NCFEVAdblKt{1d``UBB6;!
z>Mg;bJ(i6kVQe^6&%m?802bwL1KWipT-HEHgM~{oAwM*M@Oq?B#G=ML#P&8v2OnT7
z@LE_2>(e%AXZ^^<gy${|2=9z+PPr1byBnzt&ZNa@y&)&pRY04=g_aC?13Ilb?BwXk
z?z~Q%DAPi#ukY*Fj&6@w%)wf~2?}nXPzL@g==-1R<8ecaiU%#VmrSU9gdNq;9)Q}i
z!NYb8_J3V}tars4yzJuhhzOB!eAakpm|t{d%|h?oYLLKZXk47_yK2P5Bx5=LCN3MS
zUVd9st0VUbIqgea=%jSs1MJX;z}~SXkKlcb592kt*F47m2+wN8?)L!^dz53em2e0B
z^>apzFB0iBii|`8bmD9gb-haT<(zbCXPSd=?nv6iZRRtIq>tED57g+z>W7_$>xZ<N
z>xv??gzEC<IGZC&%~!?mg>phq!qacar`6)hDA`$J{HH*<tCS<`%FJvR&#4~j*I&;R
zE%Ay|0ol!%;8$_yV*IE+?aO5X9SL%mU9482y`)5;e4;LNMIvGxtPOjOhhl9~sIt6T
z{2Q04B|xUkxc4VAZYDLDa=iTvVWFMfeQk!aUGZM|JhOeKt!J;808`veSLJm_9dMcI
zVP}R8=LedKSCMf|H57MUrTLKSy>*)uB>8E;C~2mbRCDwiV#W{y=2x>s){Ut$-Q$&}
Ia;jSX3&Pa!6951J
new file mode 100644
--- /dev/null
+++ b/js/src/jsapi-tests/binast/parser/tester/lexical-019.js
@@ -0,0 +1,53 @@
+/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+
+/**
+   File Name:          lexical-019.js
+   Corresponds To:     7.4.3-12-n.js
+   ECMA Section:       7.4.3
+
+   Description:
+   The following words are used as keywords in proposed extensions and are
+   therefore reserved to allow for the possibility of future adoption of
+   those extensions.
+
+   FutureReservedWord :: one of
+   case    debugger    export      super
+   catch   default     extends     switch
+   class   do          finally     throw
+   const   enum        import      try
+
+   Author:             christine@netscape.com
+   Date:               12 november 1997
+*/
+var SECTION = "lexical-019";
+var VERSION = "JS1_4";
+var TITLE   = "Future Reserved Words";
+
+startTest();
+writeHeaderToLog( SECTION + " "+ TITLE);
+
+var result = "Failed";
+var exception = "No exception thrown";
+var expect = "Passed";
+
+try {
+  eval("throw = true;");
+} catch ( e ) {
+  result = expect;
+  exception = e.toString();
+}
+
+new TestCase(
+  SECTION,
+  "throw = true" +
+  " (threw " + exception +")",
+  expect,
+  result );
+
+test();
+
+
new file mode 100644
index 0000000000000000000000000000000000000000..bd74082c9a61646f63217d75f6546cf7219be058
GIT binary patch
literal 6271
zc%0o>&2AGh5Z;7Rr~nBG!GY5rK^1C2ASBpE&@@$3MWO0OMdE_o-DzU#>_)b?Y2JY+
z;LSL3M7#xK=RetXHtD7f^isuMf1def{LR>oj9Lr|P6LQvIO1WQlctroEbBD%JJxQw
zdg#7$y|4wAv!%ar7!|Vc{fTAW!>^pt<tKzwa>`&2JVrQ?Gz>J9Km0AMa~k;LSikU-
z+$^k+YbfelG@x<-FuJ7dLm=rH1+L)&(i|EsB&R{Wa0kcTQn6P4RCTs`W6o9&WE9KQ
za}_Fq6Q<!V2#coh6a@?}sYlq0?N{5=n1lb?)Bdts8jqVzSdh)1*URQf>DbMR&D%I}
z=)U~=dKGy5eSJJCziZ`MrIZPak8xr@k`V{{7zFSO@a@kb_eG|xmM&Wygh29KNhCDU
zNo^7g#$(wi62^v0^$I*Y3}8|2HgH@>!etGFG<di)7xF_F2(L#9MJ(#fLmY2&4DbPt
z0<VRYus-dR4%UxcOnUCpfbh<UaVnIk-Q7%Oa3(EI>kT=%uL9Z}ZnR{`8_;PrVJBxt
zcIS2CM42{PeSKfYaSVIJVh+{<K~Qk}gfj3~LEryeACDVaR6J-YTQZ^Y5l&P?djM+7
z1`pdY*#C9^vECJH@UqL#BO*k``B~$gVSUk^H4D9St3d*vp>uJ*@2W2*78%>|w{g{A
z_3GQ2+8w!1sA*r~QYU5b9w;+0Bc;7#OCG`dm>9-ua&LHy{}G<mj@{n}MC?(H*;Yae
z`updM8eb&RYZMuY1n9!qBI<gT7|S{7)WI|--`ttBiDu?A%A}7tRS(qHi}epX3-=Fc
zE7ui8W(nQp&2ctIm71@M-wWl0o`k30kWZ_{l~b~_#QaZzau>&C*p->tA)Zq`)L(x;
zQ?|q_P6cGQVuD{q%f<LnecG4H1UeGrF1uW<LVHPtLd8T~=!!(d1Xw%v1`oyBq)=sf
zwfHwKQ%itMS#j@ARNPE@Fco<F8FsVK&hEZ8L)or)uY8`FooV~oD;B^MchgmQ-BAZz
zrh3?!p~Lxsrs7p(TvH9rT~}#7<a%%2CIv};8Zb(l=_S>iy@s4I<be6rERl6%sZ95H
KrKz0imj41d%<u64
new file mode 100644
--- /dev/null
+++ b/js/src/jsapi-tests/binast/parser/tester/lexical-020.js
@@ -0,0 +1,53 @@
+/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+
+/**
+   File Name:          lexical-020.js
+   Corresponds To      7.4.3-13-n.js
+   ECMA Section:       7.4.3
+
+   Description:
+   The following words are used as keywords in proposed extensions and are
+   therefore reserved to allow for the possibility of future adoption of
+   those extensions.
+
+   FutureReservedWord :: one of
+   case    debugger    export      super
+   catch   default     extends     switch
+   class   do          finally     throw
+   const   enum        import      try
+
+   Author:             christine@netscape.com
+   Date:               12 november 1997
+*/
+var SECTION = "lexical-020";
+var VERSION = "JS1_4";
+var TITLE   = "Future Reserved Words";
+
+startTest();
+writeHeaderToLog( SECTION + " "+ TITLE);
+
+var result = "Failed";
+var exception = "No exception thrown";
+var expect = "Passed";
+
+try {
+  eval("const = true;");
+} catch ( e ) {
+  result = expect;
+  exception = e.toString();
+}
+
+new TestCase(
+  SECTION,
+  "const = true" +
+  " (threw " + exception +")",
+  expect,
+  result );
+
+test();
+
+
new file mode 100644
index 0000000000000000000000000000000000000000..dd38b63a2dd7367fbd80008b2ee8adf3d1780f4c
GIT binary patch
literal 8801
zc%1E8O>YxB6rGelJ_JHfLTp%|VFyCA@ZJ*(2$g6WL{JH+2|T^klRI;hxHvO|?P=P7
zz>+op43=yV|AK2znorLpnK)A_bv2D=e0}e^$H(?{%QB7_Y?V7e{H?b<Y;)3e)*Q##
z5B+0jyH<bIc+&8~2%Pe!{-(^RkXyH1$GMJQl}Ee3C!CUf20P#}!il6|piTM1-@^Go
z1ApAscl@L@%T~y>De5~kpmJbfv`fv0K++ZkuFVCcJ9Jt|PJ{N=C2Vh0E6v)QdU><o
zR^IFz8MW2W?{=vKPM9`#NLV~&PeH)oh<b!Qc=*?&jRP@lcJS1}p7gw+P4a9nasv9T
zSU}%b_ZqeUy@)TWmDkVzfAl*5`J*@>|G@TUt+`vZ0^?15@gkNn2X_wy@I&z3e?#uu
zrDydh;vfWq*N{X)7lYI;!JyrUMujjo?5ca<{9yojvAcrpLJ}^UAY?{_D+^(57y{w#
zSXmKygZUHNdmIz|5?g^c!`-kw9g|Mhmy&^=+cY5jc*HrCO4RR!sSH}u;k4b6ljABw
z_lE<m*yJf_wR+*Ev%}teotRN)i+(Du2>&w7BOT5slO)cWfu{<y4i&D%dFpcb7*h<v
z4I`z$?g2R@!s9fO8%c}UQ2jjVLZI~4Hy}M5;aY2mtinkR?RaP$M^|konBHa49a~%U
zXaKZ{Wp@UimaL?0CzKQ2!u<pAB>JM<lE=l!>?I9@&WzP*)FsmEq+8TEj!d-MgEj_u
zLOX>^L?r$QoE9T(VcJ_Hj2aHse>%!^9(rxF(EBjXu<VWV-zLre{bV3B*E*2K5<+0g
z#0=2;&12Y)V4Nf{8DySy|6CT%WnqMjJ>Wd#=dy76vM`y6Vr3!cIq_?8=R}1OW;SL9
z>C6fF3qsAitHRIQKa0chik?RvXfj)Y@&>-Bhwi|rD?2>w8EhAiYr*_PeFD?co|B(%
zi4d0g+2qF)>Z}CY>5#x@7@R5gg(dy**^u;gH9BISqUZlDq373>=^*a9&s@o4cxp@4
z)qu(GmqhH~8Pbzgbl_z8Ql`XL)V89+NGw3_;3A?b-l?fv5KW!SZ0;>gr2FXRnk6DV
z$5-t@eVwnI^DK8cXWoTtNsU=SwdM3MTVRn|Y+Il2=wOHcb6B~oPGn)CGP6@`aZfl~
zadtr_3nut=^jwTj)mtZOnF2?O+}Y!59eOKTCsa;UeZ4}2A;CJZe{fQ)PYRXIO7GdI
zZLh%OoD1&N@dek)4ov0Uy^DKU=-I2D&k(jHtNiz@`8n@ycFFaxu$zMAt3B)eV%Z$B
zoGrs^14+e$$hf3t?Clbv`CRJ%_d%9`q+irzD%yz2sf+Dw_GWM<y{wg0SV_N<$>7w8
XkA^$Z)GTJMy#42lt4W=jsm=E<<7O#o
new file mode 100644
--- /dev/null
+++ b/js/src/jsapi-tests/binast/parser/tester/lexical-021.js
@@ -0,0 +1,62 @@
+/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+
+/**
+   File Name:          lexical-021.js
+   Corresponds To:     7.4.3-14-n.js
+   ECMA Section:       7.4.3
+
+   Description:
+   The following words are used as keywords in proposed extensions and are
+   therefore reserved to allow for the possibility of future adoption of
+   those extensions.
+
+   FutureReservedWord :: one of
+   case    debugger    export      super
+   catch   default     extends     switch
+   class   do          finally     throw
+   const   enum        import      try
+
+   Author:             christine@netscape.com
+   Date:               12 november 1997
+*/
+var SECTION = "lexical-021.js";
+var VERSION = "ECMA_1";
+var TITLE   = "Future Reserved Words";
+
+startTest();
+writeHeaderToLog( SECTION + " "+ TITLE);
+
+print("This test requires option javascript.options.strict enabled");
+
+if (!options().match(/strict/))
+{
+  options('strict');
+}
+if (!options().match(/werror/))
+{
+  options('werror');
+}
+
+var result = "Failed";
+var exception = "No exception thrown";
+var expect = "Passed";
+
+try {
+  eval("enum = true;");
+} catch ( e ) {
+  result = expect;
+  exception = e.toString();
+}
+
+new TestCase(
+  SECTION,
+  "enum = true" +
+  " (threw " + exception +")",
+  expect,
+  result );
+
+test();
new file mode 100644
index 0000000000000000000000000000000000000000..39a9aca701bbc3d9a58b34e8d969317678588c8c
GIT binary patch
literal 6271
zc%0Q(&2AGh5Z;9HQ;-l6f&-^Lf+{Fbae-|_o2F_|2vrjmZphso61VPdWP6+D9e4uX
z431n7Z^794Pj;Qnc9Vu&qV>;b&o|?5#&%@bVo-3JK)k{s4;q}DTY1Z}P6DrE?Ut(_
zYHw?9&;rZZ)MFe*g)Dr3Y+3hklruX0m~cu?80>+|2q%&TzJ~IK-@-bhzBi8b8;9g(
zVFg@6QO}}2l>>m$DP<3QNxxCx8qO!@!%YjxsoyBv#`apNSTBF7I-9*VXR`+~idEBn
z6)J%frr|CK3#ahzV+Vsv>Js++<?F2%r(zm*@UM;S&%B`_xp@~U3H`NPLXS&FwX6ue
zg&n2h$DOaQR)NSr%Omn8w%5z`N+}Z>A7RISC_@hR5eVQH;Mt!8?qwUErOOrvA&|V9
zBofZiNWCQ(v`4a0B#aHG>KS-`7(iO?*0Ehk!et$VG+4MW6Y@h72ycW6MWi+60k*d}
zI`{xvf!Bjd(3rMKJL^X-B0P7gPk3i!bIO&d-`z-M@J(8rHkxvBT?Mo;Txh|N*Pzv^
z!;X)R?9S`Ni83veQkQ-%PnVP+quWCkaj;VA`#zxzyj9TmzsuusU5knfEwz_SsC<YW
z)xaKr+Oo-mb_DkFd0ldRqF95QU3?xAAu^87I`0hgi>|I&;GS7c;(H8@i?V%JjhL8Z
zEXm(QWrNkrZ)<9G<US^+eTfR4gw9hJ63ILEwk>%G?;<=Ht;oIRG4@ATR_k@Y4~W>K
z9AmA7>-SgB85O=rq}wbq5(?01vqjVeE7p^9lBr#34!ybKXal#I&nS*|u&d##(dnv(
z?bOvn(!6y=iCI8xd3~JCk)!6T;r9YLp(eq}De`HxxH3w178w5tQ0^$*2)ZIO+r@LL
zhx+x`Get|Z;#5F(^Cfsy+_@M(s!#f28AC^m++`Q5RcJ3LO(>tJ>s*nD2nTD!w(wA_
zO$t?(7mNSnDzyN}g!%UFSia4q{!(tYpJF8o?d<MqGj#2Wcgkm(?K5dDd&TsZ;9j~a
zFFWdZ%S4YlGgLS~P*l8zj4P_4wCn23`&{p>+oT`y&jLn4Gd-i4qt_5Kh8Qrvn8mVg
OOq9tUt~8ZXwemkG5bv@8
new file mode 100644
--- /dev/null
+++ b/js/src/jsapi-tests/binast/parser/tester/lexical-023.js
@@ -0,0 +1,52 @@
+/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+
+/**
+   File Name:          lexical-023.js
+   Corresponds To:     7.4.3-16-n.js
+   ECMA Section:       7.4.3
+   Description:
+   The following words are used as keywords in proposed extensions and are
+   therefore reserved to allow for the possibility of future adoption of
+   those extensions.
+
+   FutureReservedWord :: one of
+   case    debugger    export      super
+   catch   default     extends     switch
+   class   do          finally     throw
+   const   enum        import      try
+
+   Author:             christine@netscape.com
+   Date:               12 november 1997
+*/
+var SECTION = "lexical-023.js";
+var VERSION = "ECMA_1";
+var TITLE   = "Future Reserved Words";
+
+startTest();
+writeHeaderToLog( SECTION + " "+ TITLE);
+
+var result = "Failed";
+var exception = "No exception thrown";
+var expect = "Passed";
+
+try {
+  eval("try = true;");
+} catch ( e ) {
+  result = expect;
+  exception = e.toString();
+}
+
+new TestCase(
+  SECTION,
+  "try = true" +
+  " (threw " + exception +")",
+  expect,
+  result );
+
+test();
+
+
new file mode 100644
index 0000000000000000000000000000000000000000..8f4f5a90348a177c7c5cba6a82810807d58b4897
GIT binary patch
literal 6252
zc%0o>O>Yx15Z#1QC|r<`IB?1lRG~oC6D$!l4QfghDmE%d<m^rpQ+FNN4r%@h{|qji
z`4^16`OdDhNj7aDmuUU*?0GYOGq$U`9R?-04J0U?3EmRq%E>#9)8s+lIjYuAz1N=4
zJK(rQGsb09s#5=n<2=Ms?&S1yA}DDxI0l~)K@{bofeOao(z&EzFpc#ahvXJvabcin
z;Lwn&5y0e>Y5<|47Zikn3(3`Z(^3f<wo3P~-K&%v)lYS|IB0W=1CU89&-B%(0zsI8
z`%YMQ4o_3S;F|h`y?A+WIFC8{H<k{k-7$E=zJ(Rp{CTr%o>xA5S+RK+J5Ie<U$=tC
zUpL32w!2Yn)GC><cpp1HLchmFATuSha@`RiCGzDdqTmYcGP{6Ldn^HE!q|AKnSsZJ
z0jx^b9=1zGgld3P77I6KLVj!l5v{I9k*gZ>2-|xCeR_heAR4^JTk|#<XZ^^<MC1_-
ziRe#kPP-E2Itoq(7s?T|)mF3XYM}k`LK}v>1!>kDh2-eS?ugEuDBD8YFX_A3j&AR=
zn1i)~6ExfhLKy_xAnAW@j>kPCDn4}dUNWKbF?Q5>VFX%GZNYmn*#C9Ou^Wjs_}Rth
z8IdyM_-u&&IKP-;nsNWqX_GKuXk47_M|#A}Bx?nJ7?%yUFTd^R)sg#zoc1LybW%F+
zLF9@;QvkVq6XU>mK^`<ukv~DQUM~7RA@Z0C47Ca_KU_R#75Fkye!I*_SAxl!9ip#O
ziH=;7OXEp<<SiXW`?$?~Mq%_GyIP?hy;||`cIDzBZQ5E>VKz`&-X3R5q^RXe_+zeS
z#Dq7$A)ii1XrokrgYlmNMc<DUk2Geni<eXn{Tr@li<WrBsey{pB?NWcxtu<#PlsBW
zKu3byWf!Y;=xr!VXrJiYT$#ui2OGl<@KEf`3RRZ(ihtuKwE@VK>2_~2-DdVuQFw-R
zEcCLwsV$JTHE)#9Guvm{N_Nfcm*Q5sE$=$|bgNWPItxTNKN3{DgiH&nrLv1;=3Q>^
nux*o%<VOLkp4pyF?a^zA8A}Y<-^&tNx8})o&sK)Yxl;Kr5cKIA
new file mode 100644
--- /dev/null
+++ b/js/src/jsapi-tests/binast/parser/tester/lexical-024.js
@@ -0,0 +1,59 @@
+/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+
+/**
+   File Name:          lexical-024
+   Corresponds To:     7.4.2-1-n.js
+   ECMA Section:       7.4.2
+
+   Description:
+   The following tokens are ECMAScript keywords and may not be used as
+   identifiers in ECMAScript programs.
+
+   Syntax
+
+   Keyword :: one of
+   break          for         new         var
+   continue       function    return      void
+   delete         if          this        while
+   else           in          typeof      with
+
+   This test verifies that the keyword cannot be used as an identifier.
+   Functioinal tests of the keyword may be found in the section corresponding
+   to the function of the keyword.
+
+   Author:             christine@netscape.com
+   Date:               12 november 1997
+
+*/
+var SECTION = "lexical-024";
+var VERSION = "JS1_4";
+var TITLE   = "Keywords";
+
+startTest();
+writeHeaderToLog( SECTION + " "+ TITLE);
+
+var result = "Failed";
+var exception = "No exception thrown";
+var expect = "Passed";
+
+try {
+  eval("var break;");
+} catch ( e ) {
+  result = expect;
+  exception = e.toString();
+}
+
+new TestCase(
+  SECTION,
+  "var break" +
+  " (threw " + exception +")",
+  expect,
+  result );
+
+test();
+
+
new file mode 100644
index 0000000000000000000000000000000000000000..aa3e59877d2d36190013e5c81bbe26e6788c4ccc
GIT binary patch
literal 6248
zc%0o>%We}f6m>#rsn{SPv0#-Ys6s6jY+#5=)1anAp<+U}$enQ$Q+FKM4rzXcKZ6Zx
z{(@`gF?q~5lf+2_*+k>VvG2Lp=U&@W?G__NuSsxNJQutn@D0i%gf4m5MaPxeng7NQ
zc#9x!-;D7Xm8#f&g3v=4<&93iz=GmSMovh;u)vD)$Uuehw?x-83dga2!;su8EG`Tb
z4H1o~8Ul<?se~j_^okN;;39kzZ(1rrqegKD+Wm5=Uinn>_WNz#ejj8M%Qt;hs))eM
zz<tN8J%y(!VC0qtn7ueSd_9dh{5O^krrk4m!oGzC+5EX)HZRJbeOGMWhmJG<<=0o6
zz~is=@u=;tSL)TW6BZvp$4Aoba1lzUM3!$`f=CH``3fs?19q8RkYRfw0VT{>Jk`vA
z<H878l&)Q9mkJA2CsJ7~T$u^^*aR#ZZH*!qHRchtcLezK6k3U>^D1vl+hm;eBbN}7
z$27vCJF+?LN|5Vba58eGkf4pGnp{@{?ZpeN81fFJS$7oDqr=@1oj6gpg*IQ(x1k-}
z-ew60YXK){xDS{z5^jQ||5+c8yGB$3($afzLgi!VsPV!Ow4j=TcM`Dw>yl%;C)Olz
z7oX=?O2_e87u`6&m|~jo;2Je?6f!U_$@XJCVq%iD0zXX32Ah}Pw)E=2eM(OIk`y{~
z6guFF!W9>96Wo_9$NlCp>PINni}k)wu{@yy0<8>-50=hZ<-LSe&@3_Bmc-=D7S@-k
zR5#Aar17IY?&c1nJ=kX6Q4qa{u12IsFIGCdTex({nzWYGmlYJ2cgNWr32MFq{)DRu
zDdCsjfKSvC+9=gsVf<%6(W0SvPhn=ecuw`uzrlL8Xh~L_Dp9>;Nx~ZJT#g^rrvs%-
zp(91^+{J2*bXJrjv`_S1u7qWRgN<Paa45DWh05iv;@`MOtpGA(vfYW3t+Q8(!ZWC0
zNyptSZHA~Vd7FIhY@b=H*d=pch8yXoyy@t(tuj65%#h&xP)^|jGA^f<x~?ZON4fr^
mwoN?J9|WvwW_vQVN3SJjEHPkzD@$eFnkBP6Ss5y)3gy30^yiWQ
new file mode 100644
--- /dev/null
+++ b/js/src/jsapi-tests/binast/parser/tester/lexical-025.js
@@ -0,0 +1,59 @@
+/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+
+/**
+   File Name:          lexical-025.js
+   Corresponds To      7.4.2-2-n.js
+   ECMA Section:       7.4.2
+
+   Description:
+   The following tokens are ECMAScript keywords and may not be used as
+   identifiers in ECMAScript programs.
+
+   Syntax
+
+   Keyword :: one of
+   break          for         new         var
+   continue       function    return      void
+   delete         if          this        while
+   else           in          typeof      with
+
+   This test verifies that the keyword cannot be used as an identifier.
+   Functioinal tests of the keyword may be found in the section corresponding
+   to the function of the keyword.
+
+   Author:             christine@netscape.com
+   Date:               12 november 1997
+
+*/
+var SECTION = "lexical-025";
+var VERSION = "JS1_4";
+var TITLE   = "Keywords";
+
+startTest();
+writeHeaderToLog( SECTION + " "+ TITLE);
+
+var result = "Failed";
+var exception = "No exception thrown";
+var expect = "Passed";
+
+try {
+  eval("var for;");
+} catch ( e ) {
+  result = expect;
+  exception = e.toString();
+}
+
+new TestCase(
+  SECTION,
+  "var for" +
+  " (threw " + exception +")",
+  expect,
+  result );
+
+test();
+
+
new file mode 100644
index 0000000000000000000000000000000000000000..3b5d230297eedf3465f14241743b49ac850a6f97
GIT binary patch
literal 6248
zc%0o>OK%e~5Z;8+QgJ~-;=n0KP=#75!~vG5G!1G>6e>3Kirn34V(P9V+ab+g;h({U
zGyj6I^VmFgolUYy1Gz-&$7jzs<8Q`xRlCKY=r(}_#dE<Mg4{TH$8j!s&~=V0wKMOH
z=kpdg?!Fo0GAdQE{lsw|;wX1?`UMe`TrxNTpAkV6<)MKJqHpP3(=Zsv`i(<!v#_`@
zP&9C8NYxNvbV?<FP|+(2!oY>(Cfc-Af`*Oa4z_#cQoZu2=I-~~-2FbtD3)jXs#Jj>
z%)osotUZONDPV9*eZpQG9KN2$9R3?i2h;8uJYnC$f^7a=FPj(T&t6t+-p7tJ@8#E5
zo516*_3^0fu2<^SawaT3z>bg5?QjvuOo=StwggCte0ho}xIw$jE@0RmOF)S*7ELuX
z@VGF5Md{kbcBzO^b&$$p;mS<NM<x)_XloR?s4<VQy(7@4r`QUj&a1pJZIf}<k6cVd
z9@CJB?#Sk}D^ad{!O7rCIf6EtYI0o-v==S3V#qs?X5CRpj*je(=){S#EwuTPzK!kZ
z_BM+-SPM8o!+ju>L9hvu{%3tW?ix|?p{4hd36+nrqs9wE(1L0T-ig8fuS<^Yo>+sQ
zU3{JsDKn1Gy68sv#T3(w``1pBgaJe2;%q<GBPJ$UEAYd(Y_NIxZA-6?+$ZF;FL9wW
zN1=nRD1^{?8{@usIqo-)Q9nYlUaa?hO5_O@7-(f&e6V!RD(@wt{AP)fwgi(iTSQ-`
z65Ti_lg5wsxSKnO_Hdi|jDqMrb~Qphda=^s-NL0q+N8ClzO10IygSb3NKo??@F!eN
zND06EhI~3Lp^Z}A6~=!G6fGKx_Y`Kfi|14i{Tr-ji<WrBse<YyO9*PXb2)xgpAM8V
zfsO>Z%Pv-H&{<KA&_2<3xe}2v4mO4z;Gx)>6sjz575~OPY6XxflkHBFY%_bMC_KX&
z7CPD8(q@R-lDEm{ne8)e6}x2aOK~IJls6rHwpFU<oEZ|FAId3SK*r_NQrGoF<|x;H
n)V7I7@`Hd?&1_Gm_UN_5j3ox_Z)J(BTeD=kCo4ncRH6JAm#62M
new file mode 100644
--- /dev/null
+++ b/js/src/jsapi-tests/binast/parser/tester/lexical-026.js
@@ -0,0 +1,59 @@
+/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+
+/**
+   File Name:          lexical-026.js
+   Corresponds To:     7.4.2-3-n.js
+   ECMA Section:       7.4.2
+
+   Description:
+   The following tokens are ECMAScript keywords and may not be used as
+   identifiers in ECMAScript programs.
+
+   Syntax
+
+   Keyword :: one of
+   break          for         new         var
+   continue       function    return      void
+   delete         if          this        while
+   else           in          typeof      with
+
+   This test verifies that the keyword cannot be used as an identifier.
+   Functioinal tests of the keyword may be found in the section corresponding
+   to the function of the keyword.
+
+   Author:             christine@netscape.com
+   Date:               12 november 1997
+
+*/
+var SECTION = "lexical-026";
+var VERSION = "JS1_4";
+var TITLE   = "Keywords";
+
+startTest();
+writeHeaderToLog( SECTION + " "+ TITLE);
+
+var result = "Failed";
+var exception = "No exception thrown";
+var expect = "Passed";
+
+try {
+  eval("var new;");
+} catch ( e ) {
+  result = expect;
+  exception = e.toString();
+}
+
+new TestCase(
+  SECTION,
+  "var new" +
+  " (threw " + exception +")",
+  expect,
+  result );
+
+test();
+
+
new file mode 100644
index 0000000000000000000000000000000000000000..a29bed12aad5bc0fb704cec2979e99b70ceab20b
GIT binary patch
literal 6248
zc%0o>%We}f6m>#rsn{SPv0#-Ys6s6j5)uqiX&Tg&C{#@77P&KSV(N|~+ab-b@Mo}L
z&0lcsJSLABXOcK+AW{^?k7M6+ug|@<r`jz>ie8i8uy`(bL*N^fM+jZ=u#1i>wKM;X
zAMh4I-o6>*F)CHD{RE+hFv=U9et`wWmyDc{fMJ0Z<&l93<Np#}(<mIr`VB*Jv#_`@
zP&7m|qG|{*I;9elNYN`wgn^6jO}uHT1dSTS9ccH<rF!L4&D-y{dHa2kQ7qr|RjDEZ
zGXwV>v-T98rht)K8esO~;PCY{=J3~8I+%9P;0gN{7G(41dfB`vfA(Fmc^^8?{Fh%}
zZ32(K*2kl^yI!eR%T8E)039Dmx5Gs!of28TZ3!YJ@Z~G4$PL(Kc0q>ii3F4|WARio
z1C9$LWKp_yp<OC0RGmm=v2bN3<YN=CXtXtoT-2CH(B2W?(^F_AqRy+lF>RA^){k65
zL>|)!i|)wgv@1cbd%?-bl|q6xnrd=g4YU_8v|`9RkY?RcNRJM8M|9#u*%sP-N#BNc
zaC@629IOSLpy57X%1F2glKy9XJnkA%2}n!t#R-*<p`*qNL(qb13f@V;{;x}p?VebZ
zz+HTvV<{cSXI*sT{9=k}#)E6r#8Jq=xFp+;^@xc{)(ZSEDI08Fe%sQk1NSL8?MqVV
z%u(ooD+=&^o8Z1=Iqo-)Q9nYlUaa^36w4DTAkfON_+aUrRo+Wj1<ew}ZAnbdY+-$w
zN_FF$Od3Dh<8JOC+JkN89R<;Q=xRiI^kSvMyM;@KtVwH0eOW<ad3T)6k)Y-);7_=k
zkP?3R4fsSYp^Z}A6~=!C6fGKx_Y`Kfi|14i{TZxhi<V@?sS?#omL#mf&gJ+~eL7Ie
z6gpDm&Rwk5NM}VkLi<GD<w{s4IM^6=0Ec30Qm9<sD*lao)CwRoCfl7j**bfrC_IB2
zmUP_R(q@R-lDEm{&i0wLid{1IWw?=U%A1Zp+bYv@&I}3859JgtAmegssq1<obCl~p
nYTLvk{XxL0X0|6&d-Pgj#u5Yex3W~$tywbLla--zs!;w5p91HY
new file mode 100644
--- /dev/null
+++ b/js/src/jsapi-tests/binast/parser/tester/lexical-027.js
@@ -0,0 +1,61 @@
+/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+
+/**
+   File Name:          lexical-027.js
+   Corresponds To:     7.4.2-4-n.js
+   ECMA Section:       7.4.2
+
+   Description:
+   The following tokens are ECMAScript keywords and may not be used as
+   identifiers in ECMAScript programs.
+
+   Syntax
+
+   var
+
+   Keyword :: one of
+   break          for         new         var
+   continue       function    return      void
+   delete         if          this        while
+   else           in          typeof      with
+
+   This test verifies that the keyword cannot be used as an identifier.
+   Functioinal tests of the keyword may be found in the section corresponding
+   to the function of the keyword.
+
+   Author:             christine@netscape.com
+   Date:               12 november 1997
+
+*/
+var SECTION = "lexical-027";
+var VERSION = "JS1_4";
+var TITLE   = "Keywords";
+
+startTest();
+writeHeaderToLog( SECTION + " "+ TITLE);
+
+var result = "Failed";
+var exception = "No exception thrown";
+var expect = "Passed";
+
+try {
+  eval("var var;");
+} catch ( e ) {
+  result = expect;
+  exception = e.toString();
+}
+
+new TestCase(
+  SECTION,
+  "var var" +
+  " (threw " + exception +")",
+  expect,
+  result );
+
+test();
+
+
new file mode 100644
index 0000000000000000000000000000000000000000..c0ef34a00cd7dc9ef0be23f44e5881c58730a81c
GIT binary patch
literal 6268
zc%0o>&2AGh5Z;9HQ*q%(;=n0KP=yMJ11j4Hng%r`3KbjmTDiN^#ME6!wwE-Iz$@@(
zaN*2bF!ts@yUr%vw1Hl#*z3<T-;BQ*+f`AALD_8s3Cc%;w*<LxijL!)@}TGJ)f$K1
zj_30ZIPSLj#${Bh^7ki>b05EQ$Cn=yLCGnDeef9(L{T0Zs9^M4I_ESDCb53wCxv-f
zTo@=CI5ebc2r#~+7C@-z83keBLUJ)OS}H-qR{1WDd(}#__POD1_s87rKFBzhXXffu
zfgsGleIqQI!P68lxTHQ|FJ8WWJBvB|Z#*3=yJhf%-Gn9C{CT}>9#_A3d9isLCl0+=
zCvVn)$6wdSqxQR5Yu2l|uy_wAK0&X`MIdt}vU=GOASLqUDWc#4{W4a-a6FNK3Sn%t
z)U3ec!T^?~YZJ$%B0@DmDvO6JbD=nLfrwV5QRK4DJizg;z?dH3D2OJn^VY0SCRjfT
z2^qOZLn3-(#_3R^T*t}D;7mD!w%TfXUk$W1+Gxd)Hz3V=qLiK;`5n=z6J^_I{U!Yl
zj$_y(mT<6^2!e+DNGO9~9VGqF_3^lAM8$`Wwj~!TALB%WmxiDv)fT*)fc;;$9Cu=|
z20y?2JR(x&oS#k68`T%nOf&AEJ8cpM44q5zeNTTewaD6myGhkx{p#C>-W|D5sc9!k
zsgp5ykK$02e2zwh5$q}v!MlV&CJS?acp?a6Wb19?-v>nQQ-LX0MKcCQ6s$sDA<A!8
z7>Oj9>e(UsT9q2m1vxblwP)bM>9mDr7IR9c4>;8d_1DWa5xYw_5n0RE6_sWME#}Q}
zwm_*`td-yAYD!f2=~v{_=?LwV>a8&UGoa{ulH#$}%n$K`>Y@Jz``NN3S#j#1;<5=r
z11*=6NA>AIGgIhDk-PkIwE^7~RSO*xeXFYwnGj&(*bW|wjcK9E^M3Jf+^ALnnX&9X
zOe(v%y<C)@VP6Z~{BCY@<n4+#%;&k;nYFXMVinAAOI??D9(~GHrYD{`Vq6>wD_%+_
xh1JsG#d7n$(0}N*$w>MmfmPRR&#3n7wd9N?2kh@>sjOS;WwvK5L*-1%{1;N;@DTt2
new file mode 100644
--- /dev/null
+++ b/js/src/jsapi-tests/binast/parser/tester/lexical-028.js
@@ -0,0 +1,59 @@
+/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+
+/**
+   File Name:          lexical-028.js
+   Corresponds To:     7.4.2-5-n.js
+   ECMA Section:       7.4.2
+
+   Description:
+   The following tokens are ECMAScript keywords and may not be used as
+   identifiers in ECMAScript programs.
+
+   Syntax
+
+   Keyword :: one of
+   break          for         new         var
+   continue       function    return      void
+   delete         if          this        while
+   else           in          typeof      with
+
+   This test verifies that the keyword cannot be used as an identifier.
+   Functioinal tests of the keyword may be found in the section corresponding
+   to the function of the keyword.
+
+   Author:             christine@netscape.com
+   Date:               12 november 1997
+
+*/
+var SECTION = "lexical-028";
+var VERSION = "JS1_4";
+var TITLE   = "Keywords";
+
+startTest();
+writeHeaderToLog( SECTION + " "+ TITLE);
+
+var result = "Failed";
+var exception = "No exception thrown";
+var expect = "Passed";
+
+try {
+  eval("var continue=true;");
+} catch ( e ) {
+  result = expect;
+  exception = e.toString();
+}
+
+new TestCase(
+  SECTION,
+  "var continue=true" +
+  " (threw " + exception +")",
+  expect,
+  result );
+
+test();
+
+
new file mode 100644
index 0000000000000000000000000000000000000000..e79fe5f1e264706967fda0b39ca45ed95ed1a421
GIT binary patch
literal 6272
zc%0o>&2AGh5Z;7RsJI}3IB?1lRG|Xm0&F8_8q}01RBY5Ma(AbRsk4r3FKHfv7vRm{
z!kM>V?9G36olUxF1HDwS*Pmy;8GkdjtD-K0vfBm{lurb23DR+jj^mv1pzj>i8pqxn
z&*xom+&%M+%cxZ4?~fek9)9IcE<YuLk~0Q};4>nKqC7NE!T7gyE@&7`WBtZY3X8C~
zFi<pbXh_uvU~)+<fKbtM3c|pJq%$^JDnY|m`3{bI)k?GWsp0Mo#@xLD$Rw6$=IT^|
zAk4shBP^Q3(-bhcq&{KKp1*uOk2(5pJRL5(W$=XEgcaHRdA)3&RzG`rv3VOOj=dLO
zUTp%8zpjr*?RT@*tXFek@h(n$gno~UK;}wh^|C8KO61E^L_r7rGFHH7JduD3VQjqA
ztia>K09K`I2gju%LN!4ui-&7-p*VJdh*qRg<f_ix$MK%Pm>%IMh$gS|*1S(9SU(C0
z8F@fMBKi}?=}@9v$H~dyTseZa+G=)R4YWJnXw8r}AkBKBl%5^=9nqN+W!q@;C4C#m
zG3*gbI9MwLLBo9@ltHiwlK$uVc-%3f;zL*4k_(j&aH7FWBhZp+3*Jk>{;yk(?O3eA
z&o4huh?F_!XH)dY^~E&PjQbZ(n}h*F=aPIs&|l0fvUcF*q-wBv^=(V<j@+lzG?J7$
z8H4vQ4n^ra3Vm}T_Df1c@HQco$<jO+o(jVR-FoBr_YskYRAACo(U74T1*_Coi1OPN
zMj{EOes+nzSfz$^Nmflv?K!w~LhYiN#heoAJx;Yk{q<^X#Qw@{MAia!MXgywlX-KT
zEm5qNYvvERnvoTL_7(Ybx<Wgp`fJSp3@G}hq<E}0i$lDmdg#C5ezt5$R-8JhxNt(y
zK+EOyQGGmA%@jIP<SxHlZ9s2L^+Lx)-|H$wCImQk3=hTDtWf27!}vGuRBM1-q7_Xj
zyt%zzl%8O33%&eqZwmzOinq+Cx!IYuyS-u^%y3iPl(!yz&Q+#oo&|DT97!u)Os1vP
v(&NQ~^R6&>?6wI>`a^+L*=$d#_UyIfj3o!`Z)mBkTPtR^rz}I|T+{p)nuhSA
new file mode 100644
--- /dev/null
+++ b/js/src/jsapi-tests/binast/parser/tester/lexical-029.js
@@ -0,0 +1,59 @@
+/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+
+/**
+   File Name:          lexical-029.js
+   Corresponds To:     7.4.2-6.js
+   ECMA Section:       7.4.2
+
+   Description:
+   The following tokens are ECMAScript keywords and may not be used as
+   identifiers in ECMAScript programs.
+
+   Syntax
+
+   Keyword :: one of
+   break          for         new         var
+   continue       function    return      void
+   delete         if          this        while
+   else           in          typeof      with
+
+   This test verifies that the keyword cannot be used as an identifier.
+   Functioinal tests of the keyword may be found in the section corresponding
+   to the function of the keyword.
+
+   Author:             christine@netscape.com
+   Date:               12 november 1997
+
+*/
+var SECTION = "lexical-029";
+var VERSION = "JS1_4";
+var TITLE   = "Keywords";
+
+startTest();
+writeHeaderToLog( SECTION + " "+ TITLE);
+
+var result = "Failed";
+var exception = "No exception thrown";
+var expect = "Passed";
+
+try {
+  eval("var function = true;");
+} catch ( e ) {
+  result = expect;
+  exception = e.toString();
+}
+
+new TestCase(
+  SECTION,
+  "var function = true" +
+  " (threw " + exception +")",
+  expect,
+  result );
+
+test();
+
+
new file mode 100644
index 0000000000000000000000000000000000000000..5acef3d410c14f60d5cfee0f2fcd7cfb927a6454
GIT binary patch
literal 6268
zc%0o>&2AGh5Z;9HQ*q%(;=pN-pbE7JPGuWG)1anAp<<(6D|dIAn7Zr8c1ZIGyaI0q
z7tXu|V{iVm>ul0Z8|bBqz5YD&&G?(KJ=JM5D0wX)Vd+@#rXZJ2(Q%wJ9`>C5YW>LH
z^#k4p$J;jFc#KL_`u@yu9^zNt`0^7XC^=(r00AR{D9R%P6^?#O=YmGzB-U^Iq%aSQ
z3j;+%helKl0mhe9Lx>bTryvYmL@q~0OC@O3EZxU(zfx{gKi9qO{+PGj2N}om&0LKt
z5QG`HZ-jMb@H7Psu4q8mtDQGHvzWvG#?!&FI|fhKO<0o6pEt|qN#%>57n^r+;>dq}
z`gR?7{B?6YYQG!RMy-+yiw|((6ZE=VgfdqmD_3m+QX*fzA_^|iFJlD^#}f%C6UIhM
z%?dm&3}9KhHgQ}kB2)vUvUs>M7m6bnh-h{+id@#2M>yUU7}G->1<~L&-kkNx1nWm3
zAtU!`L_}}QI2}rq>o_?XoGVArW=l=)tAVyg8?6}f7Nl8ExarxE-w~ZUQMQfNU()a4
zIEKB$5)Rf9LC|m?31twjgQWktIUYBSs07f~w&X(PQ=F)CcL?gLmf+n4?EkvuxEG5x
z1o`FXF_ALo{A`HcsJ@tHn(^SmX^|*o=v<QT`}&KiMb-}7OR5IzSKl`D?#O*gO*>6W
zos7YI5{JSSpgJOQ_gp19@Gc>c$->+po(RGi*?Qaf_aTu7RA9<g(2Ri*1*_1Pi3(a}
zMmiEq^=uP;tx65(f}EO&+B0zBblO5Qi#es!2b^j~`s?MIh`ptoh^*!7no6^R7W4Kv
zTcA`e*2*7nH6<$i>?`u=w1sv`^;Vew8Bp{+N%2@~=7)Ge_0WHV{cPEitT;7LaoL2h
zj+V>GqxyWHnJILn$X$N9T8Hk6s)de;zSWh9ObD=XY!?s3#<Wo7dB6BKZd5CP%vg3G
zCzajYUM}1h*w;cgznj|}dAsHf^JQ*!X6<aRSp_rPQrG33N1t+)>4|5K7#D}aikFf}
xVYPI4vD~~b^dGuyGLrsCVAVC-Gpap%EjeS!0sH$|D(lvIne7?NP&v~w{{?DJ?*IS*
new file mode 100644
--- /dev/null
+++ b/js/src/jsapi-tests/binast/parser/tester/lexical-030.js
@@ -0,0 +1,59 @@
+/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+
+/**
+   File Name:          lexical-030.js
+   Corresponds To:     7.4.2-7-n.js
+   ECMA Section:       7.4.2
+
+   Description:
+   The following tokens are ECMAScript keywords and may not be used as
+   identifiers in ECMAScript programs.
+
+   Syntax
+
+   Keyword :: one of
+   break          for         new         var
+   continue       function    return      void
+   delete         if          this        while
+   else           in          typeof      with
+
+   This test verifies that the keyword cannot be used as an identifier.
+   Functioinal tests of the keyword may be found in the section corresponding
+   to the function of the keyword.
+
+   Author:             christine@netscape.com
+   Date:               12 november 1997
+
+*/
+var SECTION = "lexical-030";
+var VERSION = "JS1_4";
+var TITLE   = "Keywords";
+
+startTest();
+writeHeaderToLog( SECTION + " "+ TITLE);
+
+var result = "Failed";
+var exception = "No exception thrown";
+var expect = "Passed";
+
+try {
+  eval("var return = true;");
+} catch ( e ) {
+  result = expect;
+  exception = e.toString();
+}
+
+new TestCase(
+  SECTION,
+  "var return = true" +
+  " (threw " + exception +")",
+  expect,
+  result );
+
+test();
+
+
new file mode 100644
index 0000000000000000000000000000000000000000..7430834e08b2cc23a5dd02dcfb08977b35171ad8
GIT binary patch
literal 6254
zc%0o>O>Yx15Z#1QC|r<`IB?1lRH0H8F0e$<G^i<2sMx6DhTPq0V(P9V+aZnkC;T(G
zaOPhycD|EcXOlW@AeU(U@$7jselxbO+ARh}zX>EN9t++O<ig8)o_ETluD4&Q9R;s~
zkhj3|cgz@{QK^dGA9>z=9OaKsKOusWQw9eRG9rkgJT_3#=v#W{G>#^*e&dkbJS;8@
z6pcI@Q#Aw_pHhh+R`iU5FmN%s7;RcALE}d84z>s7QoZuA=I`{|{GC3?I96c#s#Jj>
z%)osktUZILDPV9(L&Bat-`kzV9R3?i2h(mDJYnC$l5GCGUN%q4p8{8G-o}ojVE4<5
zb>Q*W_3^0fu2<^SvJ)2XV#f#QcDRV7QzFZkEdf#@Ux6YDF3>Ks3mCR15>O(Hji#Cz
zcw893vUF`>yHrG|I!I-)aAhXsM<x)_XloR?tT7L;y(7@4hu8|D&a1pJYm;%-k6c1T
z?$elv?%3wED^ad{!O7rEd4e{YYI<D_v^`pA#gI23&AOwI9v$wE=+ud_EwuiUzKQMV
z_BKm6SW7rT!@VbzL9`B%{^$C5+%lpPLQC((36&4Aqs9wE(1L0T-bujzuS<^2o>)WZ
zE<TTml#b)GF1n-qVv1?T!*j1m;)tPfNw)9n5mS?_75K}fY_NX$Z9}h)+^6KU&q<-P
zK=F;PC<st(5x-9GV6r0jn<v;GV_C1)`#vP{fC`MYGOj;ZJ!e(;5>a8Z#7J9$Nt-RA
z?^CIsT#!uTN_*%n97o%@&Ag*HdWT(&SdU(=dU&&R^^i4hT~T6IP+Q&{XA9)0#cKEi
zuBOz4pMFI?y_V2MsqPBnKLd)sASvDxnfWeWP(Ac-u%0bik`<>4s+TVzs^QM%<WYS*
z5X%%gQsmBEtk$5jqBNm>qOWr$A`={J4BNv)u`w-FE-x1U##L$skQwvsy@`D5?5(2k
z1S?tSxVx*((X}hyDW5vqXVzNwis>)Iy>wk(cJ%R9nI3iKsBnI$sCW&TR8&i8*VCD|
px&G6(O+V6~1+0Q*dpNa6uO((IF<^f&OJ&`fD6>6W87gOL<-dt(>Q(>%
new file mode 100644
--- /dev/null
+++ b/js/src/jsapi-tests/binast/parser/tester/lexical-031.js
@@ -0,0 +1,59 @@
+/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+
+/**
+   File Name:          lexical-031.js
+   Corresponds To:     7.4.2-8-n.js
+   ECMA Section:       7.4.2
+
+   Description:
+   The following tokens are ECMAScript keywords and may not be used as
+   identifiers in ECMAScript programs.
+
+   Syntax
+
+   Keyword :: one of
+   break          for         new         var
+   continue       function    return      void
+   delete         if          this        while
+   else           in          typeof      with
+
+   This test verifies that the keyword cannot be used as an identifier.
+   Functioinal tests of the keyword may be found in the section corresponding
+   to the function of the keyword.
+
+   Author:             christine@netscape.com
+   Date:               12 november 1997
+
+*/
+var SECTION = "lexical-031";
+var VERSION = "JS1_4";
+var TITLE   = "Keywords";
+
+startTest();
+writeHeaderToLog( SECTION + " "+ TITLE);
+
+var result = "Failed";
+var exception = "No exception thrown";
+var expect = "Passed";
+
+try {
+  eval("var return;");
+} catch ( e ) {
+  result = expect;
+  exception = e.toString();
+}
+
+new TestCase(
+  SECTION,
+  "var return" +
+  " (threw " + exception +")",
+  expect,
+  result );
+
+test();
+
+
new file mode 100644
index 0000000000000000000000000000000000000000..daa962e4b9521b9b21242cef03fc1ccbd31478cb
GIT binary patch
literal 6260
zc%0o>OK%e~5Z;7Rs1OJVi36t`K@}=5Aq3k9@<2_ALd8bCa6s<vG%<D7k?oM?$lu_f
z!G$ybg0b^XcAZVSX#>4fvDcqxz8QZrwyQdA26?v$B*-5L-VmhaWF5yj;X%(SRBDIb
zYtQFxaNIrfjmxN1`S14~=N5kDPA)$tf|3&kCGZ&$L{T0Zs9^kCI%hNtrm=qGCz(Z9
zTo@=CI5ebc1TeXz5<sZvDFtERLed%=EtQ~QBYy+Oy>hW$`B-!J24n8t0Av!&Gjmm{
zKoDl&z7f`$!_yQnIHx{gkDok$Hjg>_Z#*3?yJql&-Gmj{{CT--9+y9PX|Z`7Cl0-*
zUtVkikH0RDN9}jLQm>X%VeuwTe1Kk;i$JDIWcj=;KuYAxQ$#@v{W4a-XgrdDB4KR2
z)U3ec!T?sKYX`@rB0|+cDvO6}b0Ir+frv&&qsUdAxr^gnfiXS6Q4n=r<&AltOt5}r
zA~Lc-Ln3+;#_3R^T=$cc!KrctZ8X*Fz8YwEywRE=uRxmhL@qu%(mSFvC(5?b=1clE
zj$_z6EaG6T5CjePo=^tCCP@09%j0p!h>8zwZA&Ut-ouF+&y7HHswsFk0{g#iIkx*^
z4Sst0c|@d4IX~;7H?A+HnP%KSbDAU!7&;f_dqICOv&h<kzly2`n^)hq^zO)gOilY7
zl{yK7cgJKV0|mMLoDv;)6A{E{Q63CW1z>_`y=DLR0g)vtFx|>%!q9+>Rpg6A`OP9D
z9SNp#wu!z{#RhXpK20?3*|&5m?V_34lv3#(PBlXP^=b{o{>lwR($aN7m03f3d3BsE
zQKpt_<4au42ns*>ihMe4p`B8_HRgW;6n#fhystBhL%gJV=)d89wrq)3oGPe($%LSW
zmdoj*`e3M+F?7VpU3$4%gYKFtg^r27(G`h|2(WSNB_4{cS)oevZt-v2rq%$Nu;kvJ
zExD<^SmYjJKMURTZfpyr?SePUN2%GFw4=RX1x#=|-IVtoeZp0ur=0~toE?cOUPh)x
w)zaPdrRHsB@W5@8kod;|tESnWPwm-j$r(!y*x$`!S+~~8WY1TI%DHy=FCZQ3x&QzG
new file mode 100644
--- /dev/null
+++ b/js/src/jsapi-tests/binast/parser/tester/lexical-032.js
@@ -0,0 +1,59 @@
+/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+
+/**
+   File Name:          lexical-032.js
+   Corresponds To:     7.4.2-9-n.js
+   ECMA Section:       7.4.2
+
+   Description:
+   The following tokens are ECMAScript keywords and may not be used as
+   identifiers in ECMAScript programs.
+
+   Syntax
+
+   Keyword :: one of
+   break          for         new         var
+   continue       function    return      void
+   delete         if          this        while
+   else           in          typeof      with
+
+   This test verifies that the keyword cannot be used as an identifier.
+   Functioinal tests of the keyword may be found in the section corresponding
+   to the function of the keyword.
+
+   Author:             christine@netscape.com
+   Date:               12 november 1997
+
+*/