Bug 1377007 - Tests: Parsing ECMA2-level tests with binjs;r=arai,jorendorff
☠☠ backed out by d0d709880f19 ☠ ☠
authorDavid Teller <dteller@mozilla.com>
Tue, 19 Sep 2017 20:50:21 +0200
changeset 396489 267abdb38036fa113551f7c7ed06f85fb7af5eb9
parent 396488 4a452c3ac1156d2a69d325995057cf5c1c736151
child 396490 33fdf9e531e216c00b704ec043677e720cf89d9d
push id33096
push useraciure@mozilla.com
push dateFri, 15 Dec 2017 21:50:36 +0000
treeherdermozilla-central@fff6ca61de45 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersarai, jorendorff
bugs1377007
milestone59.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 1377007 - Tests: Parsing ECMA2-level tests with binjs;r=arai,jorendorff MozReview-Commit-ID: 2DysquT2BdD
.eslintignore
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
--- a/.eslintignore
+++ b/.eslintignore
@@ -302,16 +302,17 @@ gfx/skia/**
 js/ductwork/**
 js/examples/**
 js/ipc/**
 js/public/**
 js/xpconnect/**
 js/src/devtools/**
 js/src/octane/**
 js/src/jit-test/**
+js/src/jsapi-tests/binast/**
 js/src/tests/**
 js/src/Y.js
 
 # Third-party
 media/webrtc/trunk/**
 
 # mobile/android/ exclusions
 mobile/android/tests/browser/chrome/tp5/**
new file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..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 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..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 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..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 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..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 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..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 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..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 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..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 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..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 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..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 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..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 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..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 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..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 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..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 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..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 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..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 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..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 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..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 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..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 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..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 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..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 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..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 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..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 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..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 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..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 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..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 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..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 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..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 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..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 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..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 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..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 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..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 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..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 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..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 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..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 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..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 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..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 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..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 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..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 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..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 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..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 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..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 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..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 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..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 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..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 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..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 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..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 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..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 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..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 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..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 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..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 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..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 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..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 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..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 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..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 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..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 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..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 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..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 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..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 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..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 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..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 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..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 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..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 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..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 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..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 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..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 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..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 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..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 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..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 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..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 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..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 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..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 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..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 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..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 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..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 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..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 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..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 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..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 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..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 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..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 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..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 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..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 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..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 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..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 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..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 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..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 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..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 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..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 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..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 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..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 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..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 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..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 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..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 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..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";