From 996e222d3a4db9461f5b2cf5a1bd9e58f7c527c5 Mon Sep 17 00:00:00 2001 From: Narcis Beleuzu Date: Fri, 15 Dec 2017 02:16:50 +0200 Subject: [PATCH] Backed out 7 changesets (bug 1377007) for web platform reftests failures on CSS2/borders. r=backout Backed out changeset c30bc5d5adbc (bug 1377007) Backed out changeset 33fdf9e531e2 (bug 1377007) Backed out changeset 267abdb38036 (bug 1377007) Backed out changeset 4a452c3ac115 (bug 1377007) Backed out changeset e9310960c9e6 (bug 1377007) Backed out changeset 8e5e61dfbbaf (bug 1377007) Backed out changeset 9ac83e79e656 (bug 1377007) --- .eslintignore | 1 - js/moz.configure | 15 - js/public/RootingAPI.h | 3 - js/src/devtools/automation/autospider.py | 1 - js/src/frontend/BinSource.cpp | 2503 ----------------- js/src/frontend/BinSource.h | 278 -- js/src/frontend/BinToken.cpp | 29 - js/src/frontend/BinToken.h | 201 -- js/src/frontend/BinTokenReaderTester.cpp | 536 ---- js/src/frontend/BinTokenReaderTester.h | 357 --- js/src/frontend/BytecodeCompiler.h | 8 - js/src/frontend/FullParseHandler.h | 122 +- js/src/frontend/ParseContext-inl.h | 96 - js/src/frontend/ParseContext.h | 26 - js/src/frontend/ParseNode.h | 28 +- js/src/frontend/Parser.cpp | 98 +- js/src/frontend/Parser.h | 36 +- js/src/frontend/SharedContext.h | 2 - js/src/gc/RootMarking.cpp | 6 - js/src/irregexp/RegExpEngine.cpp | 3 +- .../parser/tester/StrictEquality-001.binjs | Bin 7935 -> 0 bytes .../parser/tester/StrictEquality-001.js | 73 - .../binast/parser/tester/apply-001-n.binjs | Bin 4825 -> 0 bytes .../binast/parser/tester/apply-001-n.js | 29 - .../binast/parser/tester/boolean-001.binjs | Bin 7700 -> 0 bytes .../binast/parser/tester/boolean-001.js | 47 - .../binast/parser/tester/boolean-002.binjs | Bin 7749 -> 0 bytes .../binast/parser/tester/boolean-002.js | 51 - .../binast/parser/tester/call-1.binjs | Bin 6585 -> 0 bytes .../binast/parser/tester/call-1.js | 42 - .../parser/tester/constructor-001.binjs | Bin 7148 -> 0 bytes .../binast/parser/tester/constructor-001.js | 66 - .../binast/parser/tester/date-002.binjs | Bin 8840 -> 0 bytes .../binast/parser/tester/date-002.js | 54 - .../binast/parser/tester/date-003.binjs | Bin 8996 -> 0 bytes .../binast/parser/tester/date-003.js | 56 - .../binast/parser/tester/date-004.binjs | Bin 8655 -> 0 bytes .../binast/parser/tester/date-004.js | 50 - .../binast/parser/tester/dowhile-001.binjs | Bin 7058 -> 0 bytes .../binast/parser/tester/dowhile-001.js | 44 - .../binast/parser/tester/dowhile-002.binjs | Bin 10101 -> 0 bytes .../binast/parser/tester/dowhile-002.js | 71 - .../binast/parser/tester/dowhile-003.binjs | Bin 11729 -> 0 bytes .../binast/parser/tester/dowhile-003.js | 63 - .../binast/parser/tester/dowhile-004.binjs | Bin 9961 -> 0 bytes .../binast/parser/tester/dowhile-004.js | 67 - .../binast/parser/tester/dowhile-005.binjs | Bin 9175 -> 0 bytes .../binast/parser/tester/dowhile-005.js | 73 - .../binast/parser/tester/dowhile-006.binjs | Bin 15060 -> 0 bytes .../binast/parser/tester/dowhile-006.js | 89 - .../binast/parser/tester/dowhile-007.binjs | Bin 21270 -> 0 bytes .../binast/parser/tester/dowhile-007.js | 97 - .../binast/parser/tester/exception-001.binjs | Bin 6518 -> 0 bytes .../binast/parser/tester/exception-001.js | 45 - .../binast/parser/tester/exception-002.binjs | Bin 6710 -> 0 bytes .../binast/parser/tester/exception-002.js | 45 - .../binast/parser/tester/exception-003.binjs | Bin 8413 -> 0 bytes .../binast/parser/tester/exception-003.js | 49 - .../binast/parser/tester/exception-004.binjs | Bin 6792 -> 0 bytes .../binast/parser/tester/exception-004.js | 45 - .../binast/parser/tester/exception-005.binjs | Bin 6792 -> 0 bytes .../binast/parser/tester/exception-005.js | 45 - .../binast/parser/tester/exception-006.binjs | Bin 8294 -> 0 bytes .../binast/parser/tester/exception-006.js | 56 - .../binast/parser/tester/exception-007.binjs | Bin 8695 -> 0 bytes .../binast/parser/tester/exception-007.js | 57 - .../binast/parser/tester/exception-008.binjs | Bin 6852 -> 0 bytes .../binast/parser/tester/exception-008.js | 44 - .../binast/parser/tester/exception-009.binjs | Bin 7026 -> 0 bytes .../binast/parser/tester/exception-009.js | 53 - .../parser/tester/exception-010-n.binjs | Bin 4817 -> 0 bytes .../binast/parser/tester/exception-010-n.js | 25 - .../parser/tester/exception-011-n.binjs | Bin 4530 -> 0 bytes .../binast/parser/tester/exception-011-n.js | 26 - .../binast/parser/tester/exec-002.binjs | Bin 23367 -> 0 bytes .../binast/parser/tester/exec-002.js | 188 -- .../binast/parser/tester/expression-001.binjs | Bin 6002 -> 0 bytes .../binast/parser/tester/expression-001.js | 50 - .../binast/parser/tester/expression-002.binjs | Bin 11122 -> 0 bytes .../binast/parser/tester/expression-002.js | 60 - .../binast/parser/tester/expression-003.binjs | Bin 10356 -> 0 bytes .../binast/parser/tester/expression-003.js | 55 - .../binast/parser/tester/expression-004.binjs | Bin 10202 -> 0 bytes .../binast/parser/tester/expression-004.js | 49 - .../binast/parser/tester/expression-005.binjs | Bin 6146 -> 0 bytes .../binast/parser/tester/expression-005.js | 41 - .../binast/parser/tester/expression-006.binjs | Bin 7177 -> 0 bytes .../binast/parser/tester/expression-006.js | 46 - .../binast/parser/tester/expression-007.binjs | Bin 6728 -> 0 bytes .../binast/parser/tester/expression-007.js | 44 - .../binast/parser/tester/expression-008.binjs | Bin 6615 -> 0 bytes .../binast/parser/tester/expression-008.js | 41 - .../binast/parser/tester/expression-009.binjs | Bin 6652 -> 0 bytes .../binast/parser/tester/expression-009.js | 42 - .../binast/parser/tester/expression-010.binjs | Bin 6623 -> 0 bytes .../binast/parser/tester/expression-010.js | 43 - .../binast/parser/tester/expression-011.binjs | Bin 6754 -> 0 bytes .../binast/parser/tester/expression-011.js | 43 - .../binast/parser/tester/expression-012.binjs | Bin 7215 -> 0 bytes .../binast/parser/tester/expression-012.js | 44 - .../binast/parser/tester/expression-013.binjs | Bin 7198 -> 0 bytes .../binast/parser/tester/expression-013.js | 44 - .../binast/parser/tester/expression-014.binjs | Bin 7117 -> 0 bytes .../binast/parser/tester/expression-014.js | 46 - .../binast/parser/tester/expression-015.binjs | Bin 6274 -> 0 bytes .../binast/parser/tester/expression-015.js | 40 - .../binast/parser/tester/expression-016.binjs | Bin 6523 -> 0 bytes .../binast/parser/tester/expression-016.js | 40 - .../binast/parser/tester/expression-017.binjs | Bin 6319 -> 0 bytes .../binast/parser/tester/expression-017.js | 40 - .../binast/parser/tester/expression-019.binjs | Bin 7291 -> 0 bytes .../binast/parser/tester/expression-019.js | 44 - .../binast/parser/tester/forin-001.binjs | Bin 55280 -> 0 bytes .../binast/parser/tester/forin-001.js | 297 -- .../binast/parser/tester/forin-002.binjs | Bin 15210 -> 0 bytes .../binast/parser/tester/forin-002.js | 77 - .../binast/parser/tester/function-001.binjs | Bin 3935 -> 0 bytes .../binast/parser/tester/function-001.js | 41 - .../binast/parser/tester/global-001.binjs | Bin 6258 -> 0 bytes .../binast/parser/tester/global-001.js | 45 - .../binast/parser/tester/global-002.binjs | Bin 6254 -> 0 bytes .../binast/parser/tester/global-002.js | 45 - .../binast/parser/tester/hex-001.binjs | Bin 18562 -> 0 bytes .../binast/parser/tester/hex-001.js | 68 - .../binast/parser/tester/if-001.binjs | Bin 5066 -> 0 bytes .../binast/parser/tester/if-001.js | 42 - .../binast/parser/tester/instanceof-001.binjs | Bin 4242 -> 0 bytes .../binast/parser/tester/instanceof-001.js | 34 - .../binast/parser/tester/instanceof-002.binjs | Bin 6327 -> 0 bytes .../binast/parser/tester/instanceof-002.js | 51 - .../parser/tester/instanceof-003-n.binjs | Bin 21454 -> 0 bytes .../binast/parser/tester/instanceof-003-n.js | 88 - .../binast/parser/tester/instanceof-003.binjs | Bin 6082 -> 0 bytes .../binast/parser/tester/instanceof-003.js | 65 - .../parser/tester/instanceof-004-n.binjs | Bin 21635 -> 0 bytes .../binast/parser/tester/instanceof-004-n.js | 88 - .../parser/tester/instanceof-005-n.binjs | Bin 21583 -> 0 bytes .../binast/parser/tester/instanceof-005-n.js | 89 - .../binast/parser/tester/instanceof-006.binjs | Bin 20918 -> 0 bytes .../binast/parser/tester/instanceof-006.js | 86 - .../binast/parser/tester/keywords-001.binjs | Bin 6811 -> 0 bytes .../binast/parser/tester/keywords-001.js | 48 - .../binast/parser/tester/label-001.binjs | Bin 7746 -> 0 bytes .../binast/parser/tester/label-001.js | 42 - .../binast/parser/tester/label-002.binjs | Bin 13403 -> 0 bytes .../binast/parser/tester/label-002.js | 56 - .../binast/parser/tester/label-003.binjs | Bin 2239 -> 0 bytes .../binast/parser/tester/label-003.js | 15 - .../binast/parser/tester/lexical-001.binjs | Bin 6153 -> 0 bytes .../binast/parser/tester/lexical-001.js | 52 - .../binast/parser/tester/lexical-002.binjs | Bin 6134 -> 0 bytes .../binast/parser/tester/lexical-002.js | 52 - .../binast/parser/tester/lexical-003.binjs | Bin 6286 -> 0 bytes .../binast/parser/tester/lexical-003.js | 43 - .../binast/parser/tester/lexical-004.binjs | Bin 6264 -> 0 bytes .../binast/parser/tester/lexical-004.js | 52 - .../binast/parser/tester/lexical-005.binjs | Bin 6258 -> 0 bytes .../binast/parser/tester/lexical-005.js | 52 - .../binast/parser/tester/lexical-006.binjs | Bin 6274 -> 0 bytes .../binast/parser/tester/lexical-006.js | 58 - .../binast/parser/tester/lexical-007.binjs | Bin 6258 -> 0 bytes .../binast/parser/tester/lexical-007.js | 51 - .../binast/parser/tester/lexical-008.binjs | Bin 6272 -> 0 bytes .../binast/parser/tester/lexical-008.js | 53 - .../binast/parser/tester/lexical-009.binjs | Bin 6278 -> 0 bytes .../binast/parser/tester/lexical-009.js | 53 - .../binast/parser/tester/lexical-011.binjs | Bin 8799 -> 0 bytes .../binast/parser/tester/lexical-011.js | 62 - .../binast/parser/tester/lexical-012.binjs | Bin 6271 -> 0 bytes .../binast/parser/tester/lexical-012.js | 53 - .../binast/parser/tester/lexical-013.binjs | Bin 6275 -> 0 bytes .../binast/parser/tester/lexical-013.js | 53 - .../binast/parser/tester/lexical-014.binjs | Bin 8806 -> 0 bytes .../binast/parser/tester/lexical-014.js | 62 - .../binast/parser/tester/lexical-015.binjs | Bin 6273 -> 0 bytes .../binast/parser/tester/lexical-015.js | 53 - .../binast/parser/tester/lexical-016.binjs | Bin 8799 -> 0 bytes .../binast/parser/tester/lexical-016.js | 62 - .../binast/parser/tester/lexical-017.binjs | Bin 6265 -> 0 bytes .../binast/parser/tester/lexical-017.js | 54 - .../binast/parser/tester/lexical-018.binjs | Bin 6275 -> 0 bytes .../binast/parser/tester/lexical-018.js | 53 - .../binast/parser/tester/lexical-019.binjs | Bin 6271 -> 0 bytes .../binast/parser/tester/lexical-019.js | 53 - .../binast/parser/tester/lexical-020.binjs | Bin 6271 -> 0 bytes .../binast/parser/tester/lexical-020.js | 53 - .../binast/parser/tester/lexical-021.binjs | Bin 8801 -> 0 bytes .../binast/parser/tester/lexical-021.js | 62 - .../binast/parser/tester/lexical-023.binjs | Bin 6271 -> 0 bytes .../binast/parser/tester/lexical-023.js | 52 - .../binast/parser/tester/lexical-024.binjs | Bin 6252 -> 0 bytes .../binast/parser/tester/lexical-024.js | 59 - .../binast/parser/tester/lexical-025.binjs | Bin 6248 -> 0 bytes .../binast/parser/tester/lexical-025.js | 59 - .../binast/parser/tester/lexical-026.binjs | Bin 6248 -> 0 bytes .../binast/parser/tester/lexical-026.js | 59 - .../binast/parser/tester/lexical-027.binjs | Bin 6248 -> 0 bytes .../binast/parser/tester/lexical-027.js | 61 - .../binast/parser/tester/lexical-028.binjs | Bin 6268 -> 0 bytes .../binast/parser/tester/lexical-028.js | 59 - .../binast/parser/tester/lexical-029.binjs | Bin 6272 -> 0 bytes .../binast/parser/tester/lexical-029.js | 59 - .../binast/parser/tester/lexical-030.binjs | Bin 6268 -> 0 bytes .../binast/parser/tester/lexical-030.js | 59 - .../binast/parser/tester/lexical-031.binjs | Bin 6254 -> 0 bytes .../binast/parser/tester/lexical-031.js | 59 - .../binast/parser/tester/lexical-032.binjs | Bin 6260 -> 0 bytes .../binast/parser/tester/lexical-032.js | 59 - .../binast/parser/tester/lexical-033.binjs | Bin 6252 -> 0 bytes .../binast/parser/tester/lexical-033.js | 59 - .../binast/parser/tester/lexical-034.binjs | Bin 6255 -> 0 bytes .../binast/parser/tester/lexical-034.js | 58 - .../binast/parser/tester/lexical-035.binjs | Bin 6251 -> 0 bytes .../binast/parser/tester/lexical-035.js | 59 - .../binast/parser/tester/lexical-036.binjs | Bin 6256 -> 0 bytes .../binast/parser/tester/lexical-036.js | 59 - .../binast/parser/tester/lexical-037.binjs | Bin 6246 -> 0 bytes .../binast/parser/tester/lexical-037.js | 59 - .../binast/parser/tester/lexical-038.binjs | Bin 6260 -> 0 bytes .../binast/parser/tester/lexical-038.js | 59 - .../binast/parser/tester/lexical-039.binjs | Bin 6253 -> 0 bytes .../binast/parser/tester/lexical-039.js | 46 - .../binast/parser/tester/lexical-040.binjs | Bin 6253 -> 0 bytes .../binast/parser/tester/lexical-040.js | 46 - .../binast/parser/tester/lexical-041.binjs | Bin 7088 -> 0 bytes .../binast/parser/tester/lexical-041.js | 48 - .../binast/parser/tester/lexical-042.binjs | Bin 7085 -> 0 bytes .../binast/parser/tester/lexical-042.js | 49 - .../binast/parser/tester/lexical-047.binjs | Bin 7567 -> 0 bytes .../binast/parser/tester/lexical-047.js | 50 - .../binast/parser/tester/lexical-048.binjs | Bin 6779 -> 0 bytes .../binast/parser/tester/lexical-048.js | 44 - .../binast/parser/tester/lexical-049.binjs | Bin 7602 -> 0 bytes .../binast/parser/tester/lexical-049.js | 49 - .../binast/parser/tester/lexical-050.binjs | Bin 6284 -> 0 bytes .../binast/parser/tester/lexical-050.js | 45 - .../binast/parser/tester/lexical-051.binjs | Bin 6321 -> 0 bytes .../binast/parser/tester/lexical-051.js | 45 - .../binast/parser/tester/lexical-052.binjs | Bin 7315 -> 0 bytes .../binast/parser/tester/lexical-052.js | 47 - .../binast/parser/tester/lexical-053.binjs | Bin 6943 -> 0 bytes .../binast/parser/tester/lexical-053.js | 45 - .../binast/parser/tester/lexical-054.binjs | Bin 7538 -> 0 bytes .../binast/parser/tester/lexical-054.js | 46 - .../binast/parser/tester/match-001.binjs | Bin 21482 -> 0 bytes .../binast/parser/tester/match-001.js | 106 - .../binast/parser/tester/match-002.binjs | Bin 36161 -> 0 bytes .../binast/parser/tester/match-002.js | 174 -- .../binast/parser/tester/match-003.binjs | Bin 21251 -> 0 bytes .../binast/parser/tester/match-003.js | 132 - .../binast/parser/tester/match-004.binjs | Bin 30346 -> 0 bytes .../binast/parser/tester/match-004.js | 173 -- .../binast/parser/tester/multiline-001.binjs | Bin 15866 -> 0 bytes .../binast/parser/tester/multiline-001.js | 68 - .../binast/parser/tester/number-001.binjs | Bin 7566 -> 0 bytes .../binast/parser/tester/number-001.js | 53 - .../binast/parser/tester/number-002.binjs | Bin 7588 -> 0 bytes .../binast/parser/tester/number-002.js | 48 - .../binast/parser/tester/number-003.binjs | Bin 8026 -> 0 bytes .../binast/parser/tester/number-003.js | 50 - .../binast/parser/tester/octal-001.binjs | Bin 12564 -> 0 bytes .../binast/parser/tester/octal-001.js | 78 - .../binast/parser/tester/octal-002.binjs | Bin 16156 -> 0 bytes .../binast/parser/tester/octal-002.js | 93 - .../binast/parser/tester/octal-003.binjs | Bin 18706 -> 0 bytes .../binast/parser/tester/octal-003.js | 87 - .../binast/parser/tester/properties-001.binjs | Bin 23094 -> 0 bytes .../binast/parser/tester/properties-001.js | 91 - .../binast/parser/tester/properties-002.binjs | Bin 37649 -> 0 bytes .../binast/parser/tester/properties-002.js | 129 - .../parser/tester/regexp-enumerate-001.binjs | Bin 14141 -> 0 bytes .../parser/tester/regexp-enumerate-001.js | 88 - .../parser/tester/regexp-literals-001.binjs | Bin 4820 -> 0 bytes .../parser/tester/regexp-literals-001.js | 44 - .../parser/tester/regexp-literals-002.binjs | Bin 2735 -> 0 bytes .../parser/tester/regexp-literals-002.js | 28 - .../binast/parser/tester/regress-001.binjs | Bin 7756 -> 0 bytes .../binast/parser/tester/regress-001.js | 45 - .../binast/parser/tester/regress-7635.binjs | Bin 5244 -> 0 bytes .../binast/parser/tester/regress-7635.js | 55 - .../binast/parser/tester/split-001.binjs | Bin 22400 -> 0 bytes .../binast/parser/tester/split-001.js | 112 - .../binast/parser/tester/split-002.binjs | Bin 70881 -> 0 bytes .../binast/parser/tester/split-002.js | 270 -- .../binast/parser/tester/split-003.binjs | Bin 38042 -> 0 bytes .../binast/parser/tester/split-003.js | 123 - .../binast/parser/tester/statement-001.binjs | Bin 6268 -> 0 bytes .../binast/parser/tester/statement-001.js | 47 - .../binast/parser/tester/statement-002.binjs | Bin 6326 -> 0 bytes .../binast/parser/tester/statement-002.js | 69 - .../binast/parser/tester/statement-003.binjs | Bin 8692 -> 0 bytes .../binast/parser/tester/statement-003.js | 80 - .../binast/parser/tester/statement-004.binjs | Bin 8367 -> 0 bytes .../binast/parser/tester/statement-004.js | 52 - .../binast/parser/tester/statement-005.binjs | Bin 8644 -> 0 bytes .../binast/parser/tester/statement-005.js | 51 - .../binast/parser/tester/statement-006.binjs | Bin 9022 -> 0 bytes .../binast/parser/tester/statement-006.js | 51 - .../binast/parser/tester/statement-007.binjs | Bin 6300 -> 0 bytes .../binast/parser/tester/statement-007.js | 42 - .../binast/parser/tester/statement-008.binjs | Bin 6294 -> 0 bytes .../binast/parser/tester/statement-008.js | 42 - .../binast/parser/tester/statement-009.binjs | Bin 6133 -> 0 bytes .../binast/parser/tester/statement-009.js | 41 - .../binast/parser/tester/string-001.binjs | Bin 7914 -> 0 bytes .../binast/parser/tester/string-001.js | 53 - .../binast/parser/tester/string-002.binjs | Bin 7976 -> 0 bytes .../binast/parser/tester/string-002.js | 52 - .../binast/parser/tester/switch-001.binjs | Bin 11212 -> 0 bytes .../binast/parser/tester/switch-001.js | 65 - .../binast/parser/tester/switch-002.binjs | Bin 10566 -> 0 bytes .../binast/parser/tester/switch-002.js | 63 - .../binast/parser/tester/switch-003.binjs | Bin 11449 -> 0 bytes .../binast/parser/tester/switch-003.js | 57 - .../binast/parser/tester/switch-004.binjs | Bin 26087 -> 0 bytes .../binast/parser/tester/switch-004.js | 94 - .../binast/parser/tester/try-001.binjs | Bin 12926 -> 0 bytes .../binast/parser/tester/try-001.js | 83 - .../binast/parser/tester/try-003.binjs | Bin 12267 -> 0 bytes .../binast/parser/tester/try-003.js | 82 - .../binast/parser/tester/try-004.binjs | Bin 7554 -> 0 bytes .../binast/parser/tester/try-004.js | 54 - .../binast/parser/tester/try-005.binjs | Bin 8284 -> 0 bytes .../binast/parser/tester/try-005.js | 57 - .../binast/parser/tester/try-006.binjs | Bin 12542 -> 0 bytes .../binast/parser/tester/try-006.js | 87 - .../binast/parser/tester/try-007.binjs | Bin 13660 -> 0 bytes .../binast/parser/tester/try-007.js | 92 - .../binast/parser/tester/try-008.binjs | Bin 11748 -> 0 bytes .../binast/parser/tester/try-008.js | 59 - .../binast/parser/tester/try-009.binjs | Bin 12910 -> 0 bytes .../binast/parser/tester/try-009.js | 66 - .../binast/parser/tester/try-010.binjs | Bin 15697 -> 0 bytes .../binast/parser/tester/try-010.js | 73 - .../binast/parser/tester/try-012.binjs | Bin 12422 -> 0 bytes .../binast/parser/tester/try-012.js | 95 - .../binast/parser/tester/unicode-001.binjs | Bin 17042 -> 0 bytes .../binast/parser/tester/unicode-001.js | 59 - .../binast/parser/tester/while-001.binjs | Bin 4573 -> 0 bytes .../binast/parser/tester/while-001.js | 42 - .../binast/parser/tester/while-002.binjs | Bin 13384 -> 0 bytes .../binast/parser/tester/while-002.js | 86 - .../binast/parser/tester/while-003.binjs | Bin 13218 -> 0 bytes .../binast/parser/tester/while-003.js | 87 - .../binast/parser/tester/while-004.binjs | Bin 34266 -> 0 bytes .../binast/parser/tester/while-004.js | 217 -- .../tokenizer/tester/test-empty-list.binjs | Bin 21 -> 0 bytes .../tester/test-empty-untagged-tuple.binjs | 1 - .../tokenizer/tester/test-nested-lists.binjs | Bin 90 -> 0 bytes .../tokenizer/tester/test-simple-string.binjs | Bin 34 -> 0 bytes .../tester/test-simple-tagged-tuple.binjs | Bin 81 -> 0 bytes .../tester/test-string-with-escapes.binjs | Bin 44 -> 0 bytes .../tokenizer/tester/test-trivial-list.binjs | Bin 69 -> 0 bytes .../tester/test-trivial-untagged-tuple.binjs | Bin 63 -> 0 bytes js/src/jsapi-tests/moz.build | 11 - js/src/jsapi-tests/testBinASTReader.cpp | 215 -- .../jsapi-tests/testBinTokenReaderTester.cpp | 321 --- js/src/moz.build | 10 - js/src/shell/js.cpp | 77 +- testing/runcppunittests.py | 4 - 360 files changed, 101 insertions(+), 15355 deletions(-) delete mode 100644 js/src/frontend/BinSource.cpp delete mode 100644 js/src/frontend/BinSource.h delete mode 100644 js/src/frontend/BinToken.cpp delete mode 100644 js/src/frontend/BinToken.h delete mode 100644 js/src/frontend/BinTokenReaderTester.cpp delete mode 100644 js/src/frontend/BinTokenReaderTester.h delete mode 100644 js/src/frontend/ParseContext-inl.h delete mode 100644 js/src/jsapi-tests/binast/parser/tester/StrictEquality-001.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/StrictEquality-001.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/apply-001-n.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/apply-001-n.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/boolean-001.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/boolean-001.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/boolean-002.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/boolean-002.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/call-1.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/call-1.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/constructor-001.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/constructor-001.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/date-002.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/date-002.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/date-003.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/date-003.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/date-004.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/date-004.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/dowhile-001.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/dowhile-001.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/dowhile-002.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/dowhile-002.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/dowhile-003.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/dowhile-003.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/dowhile-004.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/dowhile-004.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/dowhile-005.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/dowhile-005.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/dowhile-006.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/dowhile-006.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/dowhile-007.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/dowhile-007.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/exception-001.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/exception-001.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/exception-002.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/exception-002.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/exception-003.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/exception-003.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/exception-004.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/exception-004.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/exception-005.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/exception-005.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/exception-006.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/exception-006.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/exception-007.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/exception-007.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/exception-008.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/exception-008.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/exception-009.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/exception-009.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/exception-010-n.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/exception-010-n.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/exception-011-n.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/exception-011-n.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/exec-002.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/exec-002.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/expression-001.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/expression-001.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/expression-002.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/expression-002.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/expression-003.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/expression-003.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/expression-004.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/expression-004.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/expression-005.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/expression-005.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/expression-006.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/expression-006.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/expression-007.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/expression-007.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/expression-008.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/expression-008.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/expression-009.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/expression-009.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/expression-010.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/expression-010.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/expression-011.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/expression-011.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/expression-012.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/expression-012.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/expression-013.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/expression-013.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/expression-014.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/expression-014.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/expression-015.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/expression-015.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/expression-016.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/expression-016.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/expression-017.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/expression-017.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/expression-019.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/expression-019.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/forin-001.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/forin-001.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/forin-002.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/forin-002.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/function-001.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/function-001.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/global-001.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/global-001.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/global-002.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/global-002.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/hex-001.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/hex-001.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/if-001.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/if-001.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/instanceof-001.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/instanceof-001.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/instanceof-002.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/instanceof-002.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/instanceof-003-n.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/instanceof-003-n.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/instanceof-003.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/instanceof-003.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/instanceof-004-n.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/instanceof-004-n.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/instanceof-005-n.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/instanceof-005-n.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/instanceof-006.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/instanceof-006.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/keywords-001.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/keywords-001.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/label-001.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/label-001.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/label-002.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/label-002.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/label-003.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/label-003.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/lexical-001.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/lexical-001.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/lexical-002.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/lexical-002.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/lexical-003.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/lexical-003.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/lexical-004.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/lexical-004.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/lexical-005.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/lexical-005.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/lexical-006.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/lexical-006.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/lexical-007.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/lexical-007.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/lexical-008.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/lexical-008.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/lexical-009.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/lexical-009.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/lexical-011.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/lexical-011.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/lexical-012.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/lexical-012.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/lexical-013.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/lexical-013.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/lexical-014.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/lexical-014.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/lexical-015.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/lexical-015.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/lexical-016.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/lexical-016.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/lexical-017.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/lexical-017.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/lexical-018.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/lexical-018.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/lexical-019.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/lexical-019.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/lexical-020.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/lexical-020.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/lexical-021.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/lexical-021.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/lexical-023.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/lexical-023.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/lexical-024.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/lexical-024.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/lexical-025.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/lexical-025.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/lexical-026.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/lexical-026.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/lexical-027.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/lexical-027.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/lexical-028.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/lexical-028.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/lexical-029.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/lexical-029.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/lexical-030.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/lexical-030.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/lexical-031.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/lexical-031.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/lexical-032.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/lexical-032.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/lexical-033.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/lexical-033.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/lexical-034.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/lexical-034.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/lexical-035.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/lexical-035.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/lexical-036.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/lexical-036.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/lexical-037.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/lexical-037.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/lexical-038.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/lexical-038.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/lexical-039.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/lexical-039.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/lexical-040.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/lexical-040.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/lexical-041.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/lexical-041.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/lexical-042.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/lexical-042.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/lexical-047.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/lexical-047.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/lexical-048.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/lexical-048.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/lexical-049.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/lexical-049.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/lexical-050.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/lexical-050.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/lexical-051.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/lexical-051.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/lexical-052.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/lexical-052.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/lexical-053.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/lexical-053.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/lexical-054.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/lexical-054.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/match-001.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/match-001.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/match-002.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/match-002.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/match-003.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/match-003.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/match-004.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/match-004.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/multiline-001.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/multiline-001.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/number-001.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/number-001.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/number-002.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/number-002.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/number-003.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/number-003.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/octal-001.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/octal-001.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/octal-002.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/octal-002.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/octal-003.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/octal-003.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/properties-001.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/properties-001.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/properties-002.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/properties-002.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/regexp-enumerate-001.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/regexp-enumerate-001.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/regexp-literals-001.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/regexp-literals-001.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/regexp-literals-002.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/regexp-literals-002.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/regress-001.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/regress-001.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/regress-7635.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/regress-7635.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/split-001.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/split-001.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/split-002.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/split-002.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/split-003.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/split-003.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/statement-001.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/statement-001.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/statement-002.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/statement-002.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/statement-003.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/statement-003.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/statement-004.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/statement-004.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/statement-005.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/statement-005.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/statement-006.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/statement-006.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/statement-007.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/statement-007.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/statement-008.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/statement-008.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/statement-009.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/statement-009.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/string-001.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/string-001.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/string-002.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/string-002.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/switch-001.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/switch-001.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/switch-002.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/switch-002.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/switch-003.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/switch-003.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/switch-004.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/switch-004.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/try-001.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/try-001.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/try-003.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/try-003.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/try-004.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/try-004.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/try-005.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/try-005.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/try-006.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/try-006.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/try-007.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/try-007.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/try-008.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/try-008.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/try-009.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/try-009.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/try-010.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/try-010.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/try-012.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/try-012.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/unicode-001.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/unicode-001.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/while-001.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/while-001.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/while-002.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/while-002.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/while-003.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/while-003.js delete mode 100644 js/src/jsapi-tests/binast/parser/tester/while-004.binjs delete mode 100644 js/src/jsapi-tests/binast/parser/tester/while-004.js delete mode 100644 js/src/jsapi-tests/binast/tokenizer/tester/test-empty-list.binjs delete mode 100644 js/src/jsapi-tests/binast/tokenizer/tester/test-empty-untagged-tuple.binjs delete mode 100644 js/src/jsapi-tests/binast/tokenizer/tester/test-nested-lists.binjs delete mode 100644 js/src/jsapi-tests/binast/tokenizer/tester/test-simple-string.binjs delete mode 100644 js/src/jsapi-tests/binast/tokenizer/tester/test-simple-tagged-tuple.binjs delete mode 100644 js/src/jsapi-tests/binast/tokenizer/tester/test-string-with-escapes.binjs delete mode 100644 js/src/jsapi-tests/binast/tokenizer/tester/test-trivial-list.binjs delete mode 100644 js/src/jsapi-tests/binast/tokenizer/tester/test-trivial-untagged-tuple.binjs delete mode 100644 js/src/jsapi-tests/testBinASTReader.cpp delete mode 100644 js/src/jsapi-tests/testBinTokenReaderTester.cpp diff --git a/.eslintignore b/.eslintignore index 6780d2865700..d00073b3a7bc 100644 --- a/.eslintignore +++ b/.eslintignore @@ -307,7 +307,6 @@ js/xpconnect/** js/src/devtools/** js/src/octane/** js/src/jit-test/** -js/src/jsapi-tests/binast/** js/src/tests/** js/src/Y.js diff --git a/js/moz.configure b/js/moz.configure index 89c640c2bba3..4075cb516d9c 100644 --- a/js/moz.configure +++ b/js/moz.configure @@ -408,18 +408,3 @@ def enable_pipeline_operator(value): set_config('ENABLE_PIPELINE_OPERATOR', enable_pipeline_operator) set_define('ENABLE_PIPELINE_OPERATOR', enable_pipeline_operator) - - - -# Experimental support for BinAST -# ============================================================== - -@depends(target, milestone) -def enable_build_binast(target, milestone): - # For reasons unknown at this time, BinAST causes timeouts on win32 - # and failures on Android. - if milestone.is_nightly and not (target.kernel == 'WINNT' and target.cpu == 'x86') and not (target.os == 'Android'): - return True - -set_define('JS_BUILD_BINAST', enable_build_binast) -set_config('JS_BUILD_BINAST', enable_build_binast) diff --git a/js/public/RootingAPI.h b/js/public/RootingAPI.h index 9b64ff5ded3e..62d3f0f1cb68 100644 --- a/js/public/RootingAPI.h +++ b/js/public/RootingAPI.h @@ -867,9 +867,6 @@ class JS_PUBLIC_API(AutoGCRooter) enum { VALARRAY = -2, /* js::AutoValueArray */ PARSER = -3, /* js::frontend::Parser */ -#if defined(JS_BUILD_BINAST) - BINPARSER = -4, /* js::frontend::BinSource */ -#endif // defined(JS_BUILD_BINAST) VALVECTOR = -10, /* js::AutoValueVector */ IDVECTOR = -11, /* js::AutoIdVector */ OBJVECTOR = -14, /* js::AutoObjectVector */ diff --git a/js/src/devtools/automation/autospider.py b/js/src/devtools/automation/autospider.py index a50e368f62d5..03081738d2e4 100755 --- a/js/src/devtools/automation/autospider.py +++ b/js/src/devtools/automation/autospider.py @@ -32,7 +32,6 @@ def directories(pathmodule, cwd, fixup=lambda s: s): DIR = directories(os.path, os.getcwd()) PDIR = directories(posixpath, os.environ["PWD"], fixup=lambda s: re.sub(r'^(\w):', r'/\1', s)) -env['CPP_UNIT_TESTS_DIR_JS_SRC'] = DIR.js_src parser = argparse.ArgumentParser( description='Run a spidermonkey shell build job') diff --git a/js/src/frontend/BinSource.cpp b/js/src/frontend/BinSource.cpp deleted file mode 100644 index 7326e911e898..000000000000 --- a/js/src/frontend/BinSource.cpp +++ /dev/null @@ -1,2503 +0,0 @@ -#include "frontend/BinSource.h" - -#include "mozilla/ArrayUtils.h" -#include "mozilla/Casting.h" -#include "mozilla/Maybe.h" -#include "mozilla/Move.h" -#include "mozilla/PodOperations.h" -#include "mozilla/Vector.h" - -#include "frontend/BinTokenReaderTester.h" -#include "frontend/FullParseHandler.h" -#include "frontend/Parser.h" -#include "frontend/SharedContext.h" - -#include "vm/RegExpObject.h" - -#include "frontend/ParseContext-inl.h" -#include "frontend/ParseNode-inl.h" - - -// # About compliance with EcmaScript -// -// For the moment, this parser implements ES5. Future versions will be extended -// to ES6 and further on. -// -// By design, it does NOT implement Annex B.3.3. If possible, we would like -// to avoid going down that rabbit hole. -// -// -// # About the AST -// -// At this stage of experimentation, the AST specifications change often. This -// version of the parser attempts to implement -// https://gist.github.com/Yoric/2390f0367515c079172be2526349b294 -// -// -// # About validating the AST -// -// Normally, this implementation validates all properties of the AST *except* the -// order of fields, which is partially constrained by the AST spec (e.g. in a block, -// field `scope` must appear before field `body`, etc.). -// -// -// # About names and scopes -// -// One of the key objectives of the BinAST syntax is to be able to entirely skip -// parsing inner functions until they are needed. With a purely syntactic AST, -// this is generally impossible, as we would need to walk the AST to find -// lexically-bound/var-bound variables, instances of direct eval, etc. -// -// To achieve this, BinAST files contain scope data, as instances of -// `BinJS:Scope` nodes. Rather than walking the AST to assign bindings -// to scopes, we extract data from the `BinJS:Scope` and check it lazily, -// once we actually need to walk the AST. -// -// WARNING: The current implementation DOES NOT perform the check yet. It -// is therefore unsafe. -// -// # About directives -// -// Currently, directives are ignored and treated as regular strings. -// -// They should be treated lazily (whenever we open a subscope), like bindings. - -// Evaluate an expression, checking that the result is not 0. -// -// Throw `cx->alreadyReportedError()` if it returns 0/nullptr. -#define TRY(EXPR) \ - do { \ - if (!EXPR) \ - return cx_->alreadyReportedError(); \ - } while(false) - - -#define TRY_VAR(VAR, EXPR) \ - do { \ - VAR = EXPR; \ - if (!VAR) \ - return cx_->alreadyReportedError(); \ - } while (false) - -#define TRY_DECL(VAR, EXPR) \ - auto VAR = EXPR; \ - if (!VAR) \ - return cx_->alreadyReportedError(); - -#define TRY_EMPL(VAR, EXPR) \ - do { \ - auto _tryEmplResult = EXPR; \ - if (!_tryEmplResult) \ - return cx_->alreadyReportedError(); \ - VAR.emplace(_tryEmplResult.unwrap()); \ - } while (false) - -#define MOZ_TRY_EMPLACE(VAR, EXPR) \ - do { \ - auto _tryEmplResult = EXPR; \ - if (_tryEmplResult.isErr()) \ - return ::mozilla::Err(_tryEmplResult.unwrapErr()); \ - VAR.emplace(_tryEmplResult.unwrap()); \ - } while (false) - -using namespace mozilla; - -namespace js { -namespace frontend { - -using AutoList = BinTokenReaderTester::AutoList; -using AutoTaggedTuple = BinTokenReaderTester::AutoTaggedTuple; -using AutoTuple = BinTokenReaderTester::AutoTuple; -using BinFields = BinTokenReaderTester::BinFields; -using Chars = BinTokenReaderTester::Chars; -using NameBag = GCHashSet; -using Names = GCVector; -using UsedNamePtr = UsedNameTracker::UsedNameMap::Ptr; - -namespace { - // Compare a bunch of `uint8_t` values (as returned by the tokenizer_) with - // a string literal (and ONLY a string literal). - template - bool operator==(const Chars& left, const char (&right)[N]) { - return BinTokenReaderTester::equals(left, right); - } - - bool isMethod(BinKind kind) { - switch (kind) { - case BinKind::ObjectMethod: - case BinKind::ObjectGetter: - case BinKind::ObjectSetter: - return true; - default: - return false; - } - } - -#if defined(DEBUG) - bool isMethodOrFunction(BinKind kind) { - if (isMethod(kind)) - return true; - if (kind == BinKind::FunctionExpression || kind == BinKind::FunctionDeclaration) - return true; - return false; - } -#endif // defined(DEBUG) -} - -JS::Result -BinASTParser::parse(const Vector& data) -{ - return parse(data.begin(), data.length()); -} - -JS::Result -BinASTParser::parse(const uint8_t* start, const size_t length) -{ - auto result = parseAux(start, length); - poison(); // Make sure that the parser is never used again accidentally. - return result; -} - - -JS::Result -BinASTParser::parseAux(const uint8_t* start, const size_t length) -{ - tokenizer_.emplace(cx_, start, length); - - Directives directives(options().strictOption); - GlobalSharedContext globalsc(cx_, ScopeKind::Global, - directives, options().extraWarningsOption); - BinParseContext globalpc(cx_, this, &globalsc, /* newDirectives = */ nullptr); - if (!globalpc.init()) - return cx_->alreadyReportedError(); - - ParseContext::VarScope varScope(cx_, &globalpc, usedNames_); - if (!varScope.init(&globalpc)) - return cx_->alreadyReportedError(); - - ParseNode* result(nullptr); - MOZ_TRY_VAR(result, parseProgram()); - - Maybe bindings = NewGlobalScopeData(cx_, varScope, alloc_, parseContext_); - if (!bindings) - return cx_->alreadyReportedError(); - globalsc.bindings = *bindings; - - return result; // Magic conversion to Ok. -} - -Result -BinASTParser::parseProgram() -{ - BinKind kind; - BinFields fields(cx_); - AutoTaggedTuple guard(*tokenizer_); - - TRY(tokenizer_->enterTaggedTuple(kind, fields, guard)); - if (kind != BinKind::Program) - return this->raiseInvalidKind("Program", kind); - - ParseNode* result; - MOZ_TRY_VAR(result, parseBlockStatementAux(kind, fields)); - - TRY(guard.done()); - return result; -} - -JS::Result -BinASTParser::parseBlockStatement() -{ - BinKind kind; - BinFields fields(cx_); - AutoTaggedTuple guard(*tokenizer_); - - TRY(tokenizer_->enterTaggedTuple(kind, fields, guard)); - ParseNode* result(nullptr); - switch (kind) { - default: - return raiseInvalidKind("BlockStatement", kind); - case BinKind::BlockStatement: - MOZ_TRY_VAR(result, parseBlockStatementAux(kind, fields)); - break; - } - - TRY(guard.done()); - return result; -} - -JS::Result -BinASTParser::parseAndUpdateScopeNames(ParseContext::Scope& scope, DeclarationKind kind) -{ - AutoList guard(*tokenizer_); - uint32_t length = 0; - - TRY(tokenizer_->enterList(length, guard)); - RootedAtom name(cx_); - for (uint32_t i = 0; i < length; ++i) { - name = nullptr; - - MOZ_TRY(readString(&name)); - auto ptr = scope.lookupDeclaredNameForAdd(name); - if (ptr) { - if (kind == DeclarationKind::Let || kind == DeclarationKind::Const) - return raiseError("Variable redeclaration"); - -#if defined(DEBUG) - // FIXME: Fix binjs-ref. - fprintf(stderr, "Weird: `var` redeclaration. Check encoder: "); - name->dump(); - fprintf(stderr, "\n"); -#endif // defined(DEBUG) - continue; - } - - TRY(scope.addDeclaredName(parseContext_, ptr, name.get(), kind, tokenizer_->offset())); - } - TRY(guard.done()); - return Ok(); -} - -JS::Result -BinASTParser::parseAndUpdateCurrentScope() -{ - return parseAndUpdateScope(parseContext_->varScope(), *parseContext_->innermostScope()); -} - -JS::Result -BinASTParser::parseAndUpdateScope(ParseContext::Scope& varScope, ParseContext::Scope& letScope) -{ - BinKind kind; - BinFields fields(cx_); - AutoTaggedTuple guard(*tokenizer_); - - TRY(tokenizer_->enterTaggedTuple(kind, fields, guard)); - switch (kind) { - default: - return raiseInvalidKind("Scope", kind); - case BinKind::BINJS_Scope: - for (auto field : fields) { - switch (field) { - case BinField::BINJS_HasDirectEval: - MOZ_TRY(readBool()); // Currently ignored. - break; - case BinField::BINJS_LetDeclaredNames: - MOZ_TRY(parseAndUpdateScopeNames(letScope, DeclarationKind::Let)); - break; - case BinField::BINJS_ConstDeclaredNames: - MOZ_TRY(parseAndUpdateScopeNames(letScope, DeclarationKind::Const)); - break; - case BinField::BINJS_VarDeclaredNames: - MOZ_TRY(parseAndUpdateScopeNames(varScope, DeclarationKind::Var)); - break; - case BinField::BINJS_CapturedNames: { - Rooted> names(cx_); //FIXME: Currently ignored. - MOZ_TRY(parseStringList(&names)); - break; - } - default: - return raiseInvalidField("Scope", field); - } - } - break; - } - - TRY(guard.done()); - return Ok(); -} - -JS::Result -BinASTParser::parseBlockStatementAux(const BinKind kind, const BinFields& fields) -{ - ParseContext::Statement stmt(parseContext_, StatementKind::Block); - ParseContext::Scope scope(cx_, parseContext_, usedNames_); - TRY(scope.init(parseContext_)); - - ParseNode* body(nullptr); - ParseNode* directives(nullptr); // FIXME: Largely ignored - - for (auto field : fields) { - switch (field) { - case BinField::BINJS_Scope: - MOZ_TRY(parseAndUpdateCurrentScope()); - break; - case BinField::Body: - MOZ_TRY_VAR(body, parseStatementList()); - break; - case BinField::Directives: - if (kind != BinKind::Program) - return raiseInvalidField("BlockStatement", field); - MOZ_TRY_VAR(directives, parseDirectiveList()); - break; - default: - return raiseInvalidField("BlockStatement", field); - } - } - - // In case of absent optional fields, inject default values. - if (!body) - body = factory_.newStatementList(tokenizer_->pos()); - - MOZ_TRY_VAR(body, appendDirectivesToBody(body, directives)); - - ParseNode* result; - if (kind == BinKind::Program) { - result = body; - } else { - TRY_DECL(bindings, NewLexicalScopeData(cx_, scope, alloc_, parseContext_)); - TRY_VAR(result, factory_.newLexicalScope(*bindings, body)); - } - - return result; -} - -JS::Result -BinASTParser::appendDirectivesToBody(ParseNode* body, ParseNode* directives) -{ - ParseNode* result = body; - if (directives && directives->pn_count >= 1) { - MOZ_ASSERT(directives->isArity(PN_LIST)); - - // Convert directive list to a list of strings. - TRY_DECL(prefix, factory_.newStatementList(directives->pn_head->pn_pos)); - for (ParseNode* iter = directives->pn_head; iter != nullptr; iter = iter->pn_next) { - TRY_DECL(statement, factory_.newExprStatement(iter, iter->pn_pos.end)); - prefix->appendWithoutOrderAssumption(statement); - } - - // Prepend to the body. - ParseNode* iter = body->pn_head; - while (iter) { - ParseNode* next = iter->pn_next; - prefix->appendWithoutOrderAssumption(iter); - iter = next; - } - prefix->setKind(body->getKind()); - prefix->setOp(body->getOp()); - result = prefix; -#if defined(DEBUG) - result->checkListConsistency(); -#endif // defined(DEBUG) - } - - return result; -} - -JS::Result -BinASTParser::parseStringList(MutableHandle> out) -{ - MOZ_ASSERT(out.get().isNothing()); // Sanity check: the node must not have been parsed yet. - - uint32_t length; - AutoList guard(*tokenizer_); - - Names result(cx_); - - TRY(tokenizer_->enterList(length, guard)); - if (!result.reserve(length)) - return raiseOOM(); - - RootedAtom string(cx_); - for (uint32_t i = 0; i < length; ++i) { - string = nullptr; - - MOZ_TRY(readString(&string)); - result.infallibleAppend(Move(string)); // Checked in the call to `reserve`. - } - - TRY(guard.done()); - out.set(Move(Some(Move(result)))); - return Ok(); -} - -JS::Result -BinASTParser::parseStatementList() -{ - uint32_t length; - AutoList guard(*tokenizer_); - - TRY_DECL(result, factory_.newStatementList(tokenizer_->pos())); - - TRY(tokenizer_->enterList(length, guard)); - for (uint32_t i = 0; i < length; ++i) { - BinKind kind; - BinFields fields(cx_); - AutoTaggedTuple guard(*tokenizer_); - - ParseNode* statement(nullptr); - - TRY(tokenizer_->enterTaggedTuple(kind, fields, guard)); - switch (kind) { - case BinKind::FunctionDeclaration: - MOZ_TRY_VAR(statement, parseFunctionAux(kind, fields)); - break; - default: - MOZ_TRY_VAR(statement, parseStatementAux(kind, fields)); - break; - } - - TRY(guard.done()); - result->appendWithoutOrderAssumption(statement); - } - - TRY(guard.done()); - return result; -} - -JS::Result -BinASTParser::parseStatement() -{ - BinKind kind; - BinFields fields(cx_); - AutoTaggedTuple guard(*tokenizer_); - - TRY(tokenizer_->enterTaggedTuple(kind, fields, guard)); - ParseNode* result; - MOZ_TRY_VAR(result, parseStatementAux(kind, fields)); - - TRY(guard.done()); - return result; -} - -JS::Result -BinASTParser::parseStatementAux(const BinKind kind, const BinFields& fields) -{ - const size_t start = tokenizer_->offset(); - - ParseNode* result(nullptr); - switch (kind) { - case BinKind::EmptyStatement: { - TRY_VAR(result, factory_.newEmptyStatement(tokenizer_->pos(start))); - break; - } - case BinKind::BlockStatement: - MOZ_TRY_VAR(result, parseBlockStatementAux(kind, fields)); - break; - case BinKind::ExpressionStatement: - MOZ_TRY_VAR(result, parseExpressionStatementAux(kind, fields)); - break; - case BinKind::DebuggerStatement: { - TRY_VAR(result, factory_.newDebuggerStatement(tokenizer_->pos(start))); - break; - } - case BinKind::WithStatement: { - ParseNode* body(nullptr); - ParseNode* expr(nullptr); - for (auto field : fields) { - switch (field) { - case BinField::Body: - MOZ_TRY_VAR(body, parseStatement()); - break; - case BinField::Object: - MOZ_TRY_VAR(expr, parseExpression()); - break; - default: - return raiseInvalidField("WithStatement", field); - } - } - - if (!body) - return raiseMissingField("WithStatement", BinField::Body); - if (!expr) - return raiseMissingField("WithStatement", BinField::Object); - - TRY_VAR(result, factory_.newWithStatement(start, expr, body)); - - break; - } - case BinKind::ReturnStatement: { - if (!parseContext_->isFunctionBox()) { - // Return statements are permitted only inside functions. - return raiseInvalidKind("Toplevel Statement", kind); - } - parseContext_->functionBox()->usesReturn = true; - - ParseNode* arg(nullptr); - for (auto field : fields) { - switch (field) { - case BinField::Argument: - MOZ_TRY_VAR(arg, parseExpression()); - break; - default: - return raiseInvalidField("ReturnStatement", field); - } - } - - TRY_VAR(result, factory_.newReturnStatement(arg, tokenizer_->pos(start))); - - break; - } - case BinKind::LabeledStatement: { - // We check for the existence of the jump target when parsing `break label;` or `continue label;`. - ParseContext::Statement stmt(parseContext_, StatementKind::Label); - ParseNode* label(nullptr); - ParseNode* body(nullptr); - - for (auto field : fields) { - switch (field) { - case BinField::Label: - MOZ_TRY_VAR(label, parseIdentifier()); - break; - case BinField::Body: { - if (!label) // By order of fields, `label` MUST always be before `body` in the file. - return raiseMissingField("LabeledStatement", BinField::Label); - MOZ_ASSERT(label->name()); - ParseContext::LabelStatement stmt(parseContext_, label->name()); - MOZ_TRY_VAR(body, parseStatement()); - break; - } - default: - return raiseInvalidField("LabeledStatement", field); - } - } - - if (!label) - return raiseMissingField("LabeledStatement", BinField::Label); - if (!body) - return raiseMissingField("LabeledStatement", BinField::Body); - - TRY_VAR(result, factory_.newLabeledStatement(label->name(), body, start)); - - break; - } - - case BinKind::BreakStatement: - case BinKind::ContinueStatement: - MOZ_TRY_VAR(result, parseBreakOrContinueStatementAux(kind, fields)); - break; - - case BinKind::IfStatement: { - ParseContext::Statement stmt(parseContext_, StatementKind::If); - - ParseNode* test(nullptr); - ParseNode* consequent(nullptr); - ParseNode* alternate(nullptr); // Optional - - for (auto field : fields) { - switch (field) { - case BinField::Test: - MOZ_TRY_VAR(test, parseExpression()); - break; - case BinField::Consequent: - MOZ_TRY_VAR(consequent, parseStatement()); - break; - case BinField::Alternate: - MOZ_TRY_VAR(alternate, parseStatement()); - break; - default: - return raiseInvalidField("IfStatement", field); - } - } - - if (!test) - return raiseMissingField("IfStatement", BinField::Test); - if (!consequent) - return raiseMissingField("IfStatement", BinField::Consequent); - - TRY_VAR(result, factory_.newIfStatement(start, test, consequent, alternate)); - - break; - } - case BinKind::SwitchStatement: { - ParseContext::Statement stmt(parseContext_, StatementKind::Switch); - ParseNode* discriminant(nullptr); - ParseNode* cases(nullptr); - - for (auto field : fields) { - switch (field) { - case BinField::Discriminant: { - MOZ_TRY_VAR(discriminant, parseExpression()); - break; - } - case BinField::Cases: { - MOZ_TRY_VAR(cases, parseSwitchCaseList()); - break; - } - default: - return raiseInvalidField("SwitchStatement", field); - } - } - - if (!discriminant) - return raiseMissingField("SwitchStatement", BinField::Discriminant); - if (!cases) { - TRY_VAR(cases, factory_.newStatementList(tokenizer_->pos())); - - TRY_VAR(cases, factory_.newLexicalScope(nullptr, cases)); - } - - TRY_VAR(result, factory_.newSwitchStatement(start, discriminant, cases)); - - break; - } - - case BinKind::ThrowStatement: { - ParseNode* arg(nullptr); - for (auto field : fields) { - if (field != BinField::Argument) - return raiseInvalidField("ThrowStatement", field); - - MOZ_TRY_VAR(arg, parseExpression()); - } - - if (!arg) - return raiseMissingField("ThrowStatement", BinField::Argument); - - TRY_VAR(result, factory_.newThrowStatement(arg, tokenizer_->pos(start))); - - break; - } - - case BinKind::TryStatement: { - ParseNode* block(nullptr); - ParseNode* handler(nullptr); - ParseNode* finalizer(nullptr); - - for (auto field : fields) { - switch (field) { - case BinField::Block: { - ParseContext::Statement stmt(parseContext_, StatementKind::Try); - ParseContext::Scope scope(cx_, parseContext_, usedNames_); - TRY(scope.init(parseContext_)); - MOZ_TRY_VAR(block, parseBlockStatement()); - break; - } - case BinField::Handler: - MOZ_TRY_VAR(handler, parseCatchClause()); - break; - - case BinField::Finalizer: { - ParseContext::Statement stmt(parseContext_, StatementKind::Finally); - ParseContext::Scope scope(cx_, parseContext_, usedNames_); - TRY(scope.init(parseContext_)); - MOZ_TRY_VAR(finalizer, parseBlockStatement()); - break; - } - - default: - return raiseInvalidField("TryStatement", field); - } - } - - if (!block) - return raiseMissingField("TryStatement", BinField::Handler); - if (!handler && !finalizer) - return raiseMissingField("TryStatement (without catch)", BinField::Finalizer); - - TRY_VAR(result, factory_.newTryStatement(start, block, handler, finalizer)); - break; - } - - case BinKind::WhileStatement: - case BinKind::DoWhileStatement: { - ParseContext::Statement stmt(parseContext_, kind == BinKind::WhileStatement ? StatementKind::WhileLoop : StatementKind::DoLoop); - ParseNode* test(nullptr); - ParseNode* body(nullptr); - - for (auto field : fields) { - switch (field) { - case BinField::Test: - MOZ_TRY_VAR(test, parseExpression()); - break; - case BinField::Body: - MOZ_TRY_VAR(body, parseStatement()); - break; - default: - return raiseInvalidField("WhileStatement | DoWhileStatement", field); - } - } - - if (!test) - return raiseMissingField("WhileStatement | DoWhileStatement", BinField::Test); - if (!body) - return raiseMissingField("WhileStatement | DoWhileStatement", BinField::Body); - - if (kind == BinKind::WhileStatement) - TRY_VAR(result, factory_.newWhileStatement(start, test, body)); - else - TRY_VAR(result, factory_.newDoWhileStatement(body, test, tokenizer_->pos(start))); - - break; - } - case BinKind::ForStatement: { - ParseContext::Statement stmt(parseContext_, StatementKind::ForLoop); - - // Implicit scope around the `for`, used to store `for (let x; ...; ...)` - // or `for (const x; ...; ...)`-style declarations. Detail on the - // declaration is stored as part of `BINJS_Scope`. - ParseContext::Scope scope(cx_, parseContext_, usedNames_); - TRY(scope.init(parseContext_)); - ParseNode* init(nullptr); // Optional - ParseNode* test(nullptr); // Optional - ParseNode* update(nullptr); // Optional - ParseNode* body(nullptr); // Required - - for (auto field : fields) { - switch (field) { - case BinField::Init: - MOZ_TRY_VAR(init, parseForInit()); - break; - case BinField::Test: - MOZ_TRY_VAR(test, parseExpression()); - break; - case BinField::Update: - MOZ_TRY_VAR(update, parseExpression()); - break; - case BinField::BINJS_Scope: // The scope always appears before the body. - MOZ_TRY(parseAndUpdateCurrentScope()); - break; - case BinField::Body: - MOZ_TRY_VAR(body, parseStatement()); - break; - default: - return raiseInvalidField("ForStatement", field); - } - } - - if (!body) - return raiseMissingField("ForStatement", BinField::Body); - - TRY_DECL(forHead, factory_.newForHead(init, test, update, tokenizer_->pos(start))); - TRY_VAR(result, factory_.newForStatement(start, forHead, body, /* iflags = */ 0)); - - if (!scope.isEmpty()) { - TRY_DECL(bindings, NewLexicalScopeData(cx_, scope, alloc_, parseContext_)); - TRY_VAR(result, factory_.newLexicalScope(*bindings, result)); - } - - break; - } - case BinKind::ForInStatement: { - ParseContext::Statement stmt(parseContext_, StatementKind::ForInLoop); - - // Implicit scope around the `for`, used to store `for (let x in ...)` - // or `for (const x in ...)`-style declarations. Detail on the - // declaration is stored as part of `BINJS_Scope`. - ParseContext::Scope scope(cx_, parseContext_, usedNames_); - TRY(scope.init(parseContext_)); - ParseNode* left(nullptr); - ParseNode* right(nullptr); - ParseNode* body(nullptr); - - for (auto field : fields) { - switch (field) { - case BinField::Left: - MOZ_TRY_VAR(left, parseForInInit()); - break; - case BinField::Right: - MOZ_TRY_VAR(right, parseExpression()); - break; - case BinField::Body: - MOZ_TRY_VAR(body, parseStatement()); - break; - case BinField::BINJS_Scope: - MOZ_TRY(parseAndUpdateCurrentScope()); - break; - default: - return raiseInvalidField("ForInStatement", field); - } - } - - if (!left) - return raiseMissingField("ForInStatement", BinField::Left); - if (!right) - return raiseMissingField("ForInStatement", BinField::Right); - if (!body) - return raiseMissingField("ForInStatement", BinField::Body); - - TRY_DECL(forHead, factory_.newForInOrOfHead(PNK_FORIN, left, right, tokenizer_->pos(start))); - TRY_VAR(result, factory_.newForStatement(start, forHead, body, /*flags*/ 0)); - - if (!scope.isEmpty()) { - TRY_DECL(bindings, NewLexicalScopeData(cx_, scope, alloc_, parseContext_)); - TRY_VAR(result, factory_.newLexicalScope(*bindings, result)); - } - break; - } - - case BinKind::VariableDeclaration: - MOZ_TRY_VAR(result, parseVariableDeclarationAux(kind, fields)); - break; - - default: - return raiseInvalidKind("Statement", kind); - } - - return result; -} - -JS::Result -BinASTParser::parseBreakOrContinueStatementAux(const BinKind kind, const BinFields& fields) -{ - const auto start = tokenizer_->offset(); - ParseNode* label(nullptr); - - for (auto field : fields) { - switch (field) { - case BinField::Label: - MOZ_TRY_VAR(label, parsePattern()); - - if (label && !label->isKind(PNK_NAME)) - return raiseError("ContinueStatement | BreakStatement - Label MUST be an identifier"); // FIXME: This should be changed in the grammar. - - break; - default: - return raiseInvalidField("ContinueStatement", field); - } - } - - TokenPos pos = tokenizer_->pos(start); - ParseNode* result; - if (kind == BinKind::ContinueStatement) { -#if 0 // FIXME: We probably need to fix the AST before making this check. - auto validity = parseContext_->checkContinueStatement(label ? label->name() : nullptr); - if (validity.isErr()) { - switch (validity.unwrapErr()) { - case ParseContext::ContinueStatementError::NotInALoop: - return raiseError(kind, "Not in a loop"); - case ParseContext::ContinueStatementError::LabelNotFound: - return raiseError(kind, "Label not found"); - } - } -#endif // 0 - // Ok, this is a valid continue statement. - TRY_VAR(result, factory_.newContinueStatement(label ? label->name() : nullptr, pos)); - } else { -#if 0 // FIXME: We probably need to fix the AST before making this check. - auto validity = parseContext_->checkBreakStatement(label ? label->name() : nullptr); - if (validity.isErr()) { - switch (validity.unwrapErr()) { - case ParseContext::BreakStatementError::ToughBreak: - return raiseError(kind, "Not in a loop"); - case ParseContext::BreakStatementError::LabelNotFound: - return raiseError(kind, "Label not found"); - } - } -#endif // 0 - // Ok, this is a valid break statement. - TRY_VAR(result, factory_.newBreakStatement(label ? label->name() : nullptr, pos)); - } - - MOZ_ASSERT(result); - - return result; -} - -JS::Result -BinASTParser::parseForInit() -{ - // This can be either a VarDecl or an Expression. - BinFields fields(cx_); - AutoTaggedTuple guard(*tokenizer_); - BinKind kind; - - TRY(tokenizer_->enterTaggedTuple(kind, fields, guard)); - ParseNode* result(nullptr); - - switch (kind) { - case BinKind::VariableDeclaration: - MOZ_TRY_VAR(result, parseVariableDeclarationAux(kind, fields)); - break; - default: - // Parse as expression - MOZ_TRY_VAR(result, parseExpressionAux(kind, fields)); - break; - } - - TRY(guard.done()); - return result; -} - -JS::Result -BinASTParser::parseForInInit() -{ - // This can be either a VarDecl or a Pattern. - BinFields fields(cx_); - AutoTaggedTuple guard(*tokenizer_); - BinKind kind; - - TRY(tokenizer_->enterTaggedTuple(kind, fields, guard)); - ParseNode* result(nullptr); - - switch (kind) { - case BinKind::VariableDeclaration: - MOZ_TRY_VAR(result, parseVariableDeclarationAux(kind, fields)); - break; - default: - // Parse as expression. Not a joke: http://www.ecma-international.org/ecma-262/5.1/index.html#sec-12.6.4 . - MOZ_TRY_VAR(result, parseExpressionAux(kind, fields)); - break; - } - - TRY(guard.done()); - return result; -} - -JS::Result -BinASTParser::parseFunctionAux(const BinKind kind, const BinFields& fields) -{ - MOZ_ASSERT(isMethodOrFunction(kind)); - - const size_t start = tokenizer_->offset(); - - ParseNode* id(nullptr); - ParseNode* params(nullptr); - ParseNode* body(nullptr); - ParseNode* directives(nullptr); // Largely ignored for the moment. - ParseNode* key(nullptr); // Methods only - - // Allocate the function before walking down the tree. - RootedFunction fun(cx_); - TRY_VAR(fun, NewFunctionWithProto(cx_, - /*native*/nullptr, - /*nargs ?*/0, - /*flags */ JSFunction::INTERPRETED_NORMAL, - /*enclosing env*/nullptr, - /*name*/ nullptr, // Will be known later - /*proto*/ nullptr, - /*alloc*/gc::AllocKind::FUNCTION, - TenuredObject - )); - TRY_DECL(funbox, alloc_.new_(cx_, - traceListHead_, - fun, - /* toStringStart = */0, - /* directives = */Directives(parseContext_), - /* extraWarning = */false, - GeneratorKind::NotGenerator, - FunctionAsyncKind::SyncFunction - )); - - traceListHead_ = funbox; - - FunctionSyntaxKind syntax; - switch (kind) { - case BinKind::FunctionDeclaration: - syntax = Statement; - break; - case BinKind::FunctionExpression: - syntax = PrimaryExpression; // FIXME: Probably doesn't work. - break; - case BinKind::ObjectMethod: - syntax = Method; - break; - case BinKind::ObjectGetter: - syntax = Getter; - break; - case BinKind::ObjectSetter: - syntax = Setter; - break; - default: - MOZ_CRASH("Invalid FunctionSyntaxKind"); // Checked above. - } - funbox->initWithEnclosingParseContext(parseContext_, syntax); - - // Container scopes. - ParseContext::Scope& varScope = parseContext_->varScope(); - ParseContext::Scope* letScope = parseContext_->innermostScope(); - - // Push a new ParseContext. - BinParseContext funpc(cx_, this, funbox, /* newDirectives = */ nullptr); - TRY(funpc.init()); - parseContext_->functionScope().useAsVarScope(parseContext_); - MOZ_ASSERT(parseContext_->isFunctionBox()); - - for (auto field : fields) { - switch (field) { - case BinField::Id: - MOZ_TRY_VAR(id, parseIdentifier()); - break; - case BinField::Params: - MOZ_TRY_VAR(params, parseArgumentList()); - break; - case BinField::BINJS_Scope: - // This scope information affects the scopes contained in the function body. MUST appear before the `body`. - MOZ_TRY(parseAndUpdateScope(varScope, *letScope)); - break; - case BinField::Directives: - MOZ_TRY_VAR(directives, parseDirectiveList()); - break; - case BinField::Body: - MOZ_TRY_VAR(body, parseBlockStatement()); - break; - case BinField::Key: - if (!isMethod(kind)) - return raiseInvalidField("Functions (unless defined as methods)", field); - - MOZ_TRY_VAR(key, parseObjectPropertyName()); - break; - default: - return raiseInvalidField("Function", field); - } - } - - // Inject default values for absent fields. - if (!params) - TRY_VAR(params, new_(PNK_PARAMSBODY, tokenizer_->pos())); - - if (!body) - TRY_VAR(body, factory_.newStatementList(tokenizer_->pos())); - - if (kind == BinKind::FunctionDeclaration && !id) { - // The name is compulsory only for function declarations. - return raiseMissingField("FunctionDeclaration", BinField::Id); - } - - // Reject if required values are missing. - if (isMethod(kind) && !key) - return raiseMissingField("method", BinField::Key); - - if (id) - fun->initAtom(id->pn_atom); - - MOZ_ASSERT(params->isArity(PN_LIST)); - - if (!(body->isKind(PNK_LEXICALSCOPE) && body->pn_u.scope.body->isKind(PNK_STATEMENTLIST))) { - // Promote to lexical scope + statement list. - if (!body->isKind(PNK_STATEMENTLIST)) { - TRY_DECL(list, factory_.newStatementList(tokenizer_->pos(start))); - - list->initList(body); - body = list; - } - - // Promote to lexical scope. - TRY_VAR(body, factory_.newLexicalScope(nullptr, body)); - } - MOZ_ASSERT(body->isKind(PNK_LEXICALSCOPE)); - - MOZ_TRY_VAR(body, appendDirectivesToBody(body, directives)); - - params->appendWithoutOrderAssumption(body); - - TokenPos pos = tokenizer_->pos(start); - TRY_DECL(function, kind == BinKind::FunctionDeclaration - ? factory_.newFunctionStatement(pos) - : factory_.newFunctionExpression(pos)); - - factory_.setFunctionBox(function, funbox); - factory_.setFunctionFormalParametersAndBody(function, params); - - ParseNode* result; - if (kind == BinKind::ObjectMethod) - TRY_VAR(result, factory_.newObjectMethodOrPropertyDefinition(key, function, AccessorType::None)); - else if (kind == BinKind::ObjectGetter) - TRY_VAR(result, factory_.newObjectMethodOrPropertyDefinition(key, function, AccessorType::Getter)); - else if (kind == BinKind::ObjectSetter) - TRY_VAR(result, factory_.newObjectMethodOrPropertyDefinition(key, function, AccessorType::Setter)); - else - result = function; - - // Now handle bindings. - HandlePropertyName dotThis = cx_->names().dotThis; - const bool declareThis = hasUsedName(dotThis) || funbox->bindingsAccessedDynamically() || funbox->isDerivedClassConstructor(); - - if (declareThis) { - ParseContext::Scope& funScope = parseContext_->functionScope(); - ParseContext::Scope::AddDeclaredNamePtr p = funScope.lookupDeclaredNameForAdd(dotThis); - MOZ_ASSERT(!p); - TRY(funScope.addDeclaredName(parseContext_, p, dotThis, DeclarationKind::Var, - DeclaredNameInfo::npos)); - funbox->setHasThisBinding(); - } - - TRY_DECL(bindings, - NewFunctionScopeData(cx_, parseContext_->functionScope(), - /* hasParameterExprs = */false, alloc_, parseContext_)); - - funbox->functionScopeBindings().set(*bindings); - return result; -} - -JS::Result -BinASTParser::parseObjectPropertyName() -{ - auto start = tokenizer_->offset(); - - BinFields fields(cx_); - AutoTaggedTuple guard(*tokenizer_); - BinKind kind; - - TRY(tokenizer_->enterTaggedTuple(kind, fields, guard)); - ParseNode* result; - switch (kind) { - case BinKind::StringLiteral: { - ParseNode* string; - MOZ_TRY_VAR(string, parseStringLiteralAux(kind, fields)); - uint32_t index; - if (string->pn_atom->isIndex(&index)) - TRY_VAR(result, factory_.newNumber(index, NoDecimal, TokenPos(start, tokenizer_->offset()))); - else - result = string; - - break; - } - case BinKind::NumericLiteral: - MOZ_TRY_VAR(result, parseNumericLiteralAux(kind, fields)); - break; - case BinKind::Identifier: - MOZ_TRY_VAR(result, parseIdentifierAux(kind, fields, /* expectObjectPropertyName = */ true)); - break; - case BinKind::ComputedPropertyName: { - ParseNode* expr; - MOZ_TRY_VAR(expr, parseExpressionAux(kind, fields)); - TRY_VAR(result, factory_.newComputedName(expr, start, tokenizer_->offset())); - break; - } - default: - return raiseInvalidKind("ObjectLiteralPropertyName", kind); - } - - TRY(guard.done()); - return result; -} - -JS::Result -BinASTParser::parseVariableDeclarationAux(const BinKind kind, const BinFields& fields) -{ - const size_t start = tokenizer_->offset(); - - ParseNode* result(nullptr); - switch (kind) { - default: - return raiseInvalidKind("VariableDeclaration", kind); - case BinKind::VariableDeclaration: - ParseNodeKind pnk = PNK_LIMIT; - - for (auto field : fields) { - switch (field) { - case BinField::Kind: { - Maybe kindName; - MOZ_TRY(readString(kindName)); - - if (*kindName == "let") - pnk = PNK_LET; - else if (*kindName == "var") - pnk = PNK_VAR; - else if (*kindName == "const") - pnk = PNK_CONST; - else - return raiseInvalidEnum("VariableDeclaration", *kindName); - - break; - } - case BinField::Declarations: { - uint32_t length; - AutoList guard(*tokenizer_); - - TRY(tokenizer_->enterList(length, guard)); - TRY_VAR(result, factory_.newDeclarationList(PNK_CONST /*Placeholder*/, tokenizer_->pos(start))); - - for (uint32_t i = 0; i < length; ++i) { - ParseNode* current; - MOZ_TRY_VAR(current, parseVariableDeclarator()); - MOZ_ASSERT(current); - - result->appendWithoutOrderAssumption(current); - } - - TRY(guard.done()); - break; - } - default: - return raiseInvalidField("VariableDeclaration", field); - } - } - - if (!result || pnk == PNK_LIMIT) - return raiseMissingField("VariableDeclaration", BinField::Declarations); - - result->setKind(pnk); - - MOZ_ASSERT(!result->isKind(PNK_NOP)); - } - - return result; -} - - -JS::Result -BinASTParser::parseExpressionStatementAux(const BinKind kind, const BinFields& fields) -{ - MOZ_ASSERT(kind == BinKind::ExpressionStatement); - - ParseNode* expr(nullptr); - for (auto field : fields) { - switch (field) { - case BinField::Expression: - MOZ_TRY_VAR(expr, parseExpression()); - - break; - default: - return raiseInvalidField("ExpressionStatement", field); - } - } - - if (!expr) - return raiseMissingField("ExpressionStatement", BinField::Expression); - - TRY_DECL(result, factory_.newExprStatement(expr, tokenizer_->offset())); - return result; -} - -JS::Result -BinASTParser::parseVariableDeclarator() -{ - const size_t start = tokenizer_->offset(); - - BinKind kind; - BinFields fields(cx_); - AutoTaggedTuple guard(*tokenizer_); - - TRY(tokenizer_->enterTaggedTuple(kind, fields, guard)); - if (kind != BinKind::VariableDeclarator) - return raiseInvalidKind("VariableDeclarator", kind); - - ParseNode* id(nullptr); - ParseNode* init(nullptr); // Optional. - for (auto field : fields) { - switch (field) { - case BinField::Id: - MOZ_TRY_VAR(id, parsePattern()); - - break; - case BinField::Init: - MOZ_TRY_VAR(init, parseExpression()); - - break; - default: - return raiseInvalidField("VariableDeclarator", field); - } - } - - TRY(guard.done()); - if (!id) - return raiseMissingField("VariableDeclarator", BinField::Id); - - ParseNode* result(nullptr); - - // FIXME: Documentation in ParseNode is clearly obsolete. - if (id->isKind(PNK_NAME)) { - // `var foo [= bar]`` - TRY_VAR(result, factory_.newName(id->pn_atom->asPropertyName(), tokenizer_->pos(start), cx_)); - - if (init) - result->pn_expr = init; - - } else { - // `var pattern = bar` - if (!init) { - // Here, `init` is required. - return raiseMissingField("VariableDeclarator (with non-trivial pattern)", BinField::Init); - } - - TRY_VAR(result, factory_.newAssignment(PNK_ASSIGN, id, init)); - } - - return result; -} - -JS::Result -BinASTParser::parseExpressionList(bool acceptElisions) -{ - const size_t start = tokenizer_->offset(); - - uint32_t length; - AutoList guard(*tokenizer_); - - TRY(tokenizer_->enterList(length, guard)); - TRY_DECL(result, factory_.newArrayLiteral(start)); - - for (uint32_t i = 0; i < length; ++i) { - BinFields fields(cx_); - AutoTaggedTuple guard(*tokenizer_); - BinKind kind; - - TRY(tokenizer_->enterTaggedTuple(kind, fields, guard)); - switch (kind) { - case BinKind::Elision: { - if (!acceptElisions) - return raiseInvalidKind("[Expression]", kind); - - MOZ_TRY(parseElisionAux(kind, fields)); - TRY(!factory_.addElision(result, tokenizer_->pos(start))); - break; - } - default: { - ParseNode* expr(nullptr); - MOZ_TRY_VAR(expr, parseExpressionAux(kind, fields)); - - MOZ_ASSERT(expr); - factory_.addArrayElement(result, expr); - } - } - - TRY(guard.done()); - } - - TRY(guard.done()); - return result; -} - -JS::Result -BinASTParser::parseElisionAux(const BinKind kind, const BinFields& fields) -{ - MOZ_ASSERT(kind == BinKind::Elision); - MOZ_TRY(checkEmptyTuple(kind, fields)); - - return Ok(); -} - -JS::Result -BinASTParser::parseSwitchCaseList() -{ - uint32_t length; - AutoList guard(*tokenizer_); - - TRY(tokenizer_->enterList(length, guard)); - TRY_DECL(list, factory_.newStatementList(tokenizer_->pos())); - - // Set to `true` once we have encountered a `default:` case. - // Two `default:` cases is an error. - bool haveDefault = false; - - for (uint32_t i = 0; i < length; ++i) { - ParseNode* caseNode(nullptr); - MOZ_TRY_VAR(caseNode, parseSwitchCase()); - MOZ_ASSERT(caseNode); - - if (caseNode->pn_left == nullptr) { - // Ah, seems that we have encountered a default case. - if (haveDefault) { - // Oh, wait, two defaults? That's an error. - return raiseError("This switch() has more than one `default:` case"); - } - haveDefault = true; - } - factory_.addCaseStatementToList(list, caseNode); - } - - TRY(guard.done()); - TRY_DECL(result, factory_.newLexicalScope(nullptr, list)); - - return result; -} - -JS::Result -BinASTParser::parseExpression() -{ - BinFields fields(cx_); - AutoTaggedTuple guard(*tokenizer_); - BinKind kind; - - TRY(tokenizer_->enterTaggedTuple(kind, fields, guard)); - ParseNode* result(nullptr); - MOZ_TRY_VAR(result, parseExpressionAux(kind, fields)); - - TRY(guard.done()); - return result; -} - -JS::Result -BinASTParser::parseExpressionAux(const BinKind kind, const BinFields& fields) -{ - const size_t start = tokenizer_->offset(); - - ParseNode* result(nullptr); - - switch (kind) { - case BinKind::Identifier: { - MOZ_TRY_VAR(result, parseIdentifierAux(kind, fields)); - break; - } - case BinKind::BooleanLiteral: { - Maybe value; - for (auto field : fields) { - switch (field) { - case BinField::Value: - MOZ_TRY_EMPLACE(value, readBool()); - break; - default: - return raiseInvalidField("BooleanLiteral", field); - } - } - - // In case of absent optional fields, inject default values. - if (!value) - value.emplace(false); - - TRY_VAR(result, factory_.newBooleanLiteral(*value, tokenizer_->pos(start))); - - break; - } - case BinKind::NullLiteral: { - MOZ_TRY(checkEmptyTuple(kind, fields)); - TRY_VAR(result, factory_.newNullLiteral(tokenizer_->pos(start))); - break; - } - case BinKind::NumericLiteral: - MOZ_TRY_VAR(result, parseNumericLiteralAux(kind, fields)); - break; - - case BinKind::RegExpLiteral: { - RootedAtom pattern(cx_); - Maybe flags; - for (auto field : fields) { - switch (field) { - case BinField::Pattern: - MOZ_TRY(readString(&pattern)); - break; - case BinField::Flags: - MOZ_TRY(readString(flags)); - break; - default: - return raiseInvalidField("RegExpLiteral", field); - } - } - - if (!pattern) - return raiseMissingField("RegExpLiteral", BinField::Pattern); - if (!flags) - return raiseMissingField("RegExpLiteral", BinField::Flags); - - RegExpFlag reflags = NoFlags; - for (auto c : *flags) { - if (c == 'g' && !(reflags & GlobalFlag)) - reflags = RegExpFlag(reflags | GlobalFlag); - else if (c == 'i' && !(reflags & IgnoreCaseFlag)) - reflags = RegExpFlag(reflags | IgnoreCaseFlag); - else if (c == 'm' && !(reflags & MultilineFlag)) - reflags = RegExpFlag(reflags | MultilineFlag); - else if (c == 'y' && !(reflags & StickyFlag)) - reflags = RegExpFlag(reflags | StickyFlag); - else if (c == 'u' && !(reflags & UnicodeFlag)) - reflags = RegExpFlag(reflags | UnicodeFlag); - else - return raiseInvalidEnum("RegExpLiteral", *flags); - } - - - Rooted reobj(cx_); - TRY_VAR(reobj, RegExpObject::create(cx_, - pattern, - reflags, - alloc_, - TenuredObject)); - - TRY_VAR(result, factory_.newRegExp(reobj, tokenizer_->pos(start), *this)); - - break; - } - case BinKind::StringLiteral: - MOZ_TRY_VAR(result, parseStringLiteralAux(kind, fields)); - break; - - case BinKind::ThisExpression: { - MOZ_TRY(checkEmptyTuple(kind, fields)); - - if (parseContext_->isFunctionBox()) - parseContext_->functionBox()->usesThis = true; - - TokenPos pos = tokenizer_->pos(start); - ParseNode* thisName(nullptr); - if (parseContext_->sc()->thisBinding() == ThisBinding::Function) - TRY_VAR(thisName, factory_.newName(cx_->names().dotThis, pos, cx_)); - - TRY_VAR(result, factory_.newThisLiteral(pos, thisName)); - break; - } - case BinKind::ArrayExpression: - MOZ_TRY_VAR(result, parseArrayExpressionAux(kind, fields)); - break; - - case BinKind::ObjectExpression: - MOZ_TRY_VAR(result, parseObjectExpressionAux(kind, fields)); - break; - - case BinKind::FunctionExpression: - MOZ_TRY_VAR(result, parseFunctionAux(kind, fields)); - result->setOp(JSOP_LAMBDA); - break; - - case BinKind::UnaryExpression: - case BinKind::UpdateExpression: { - ParseNode* expr(nullptr); - Maybe operation; - Maybe prefix; // FIXME: Ignored for unary_expression? - - for (auto field : fields) { - switch (field) { - case BinField::Operator: - MOZ_TRY(readString(operation)); - break; - case BinField::Prefix: - MOZ_TRY_EMPLACE(prefix, readBool()); - break; - case BinField::Argument: - // arguments are always parsed *after* operator. - if (operation.isNothing()) - return raiseMissingField("UpdateExpression", BinField::Operator); - MOZ_TRY_VAR(expr, parseExpression()); - break; - default: - return raiseInvalidField("UpdateExpression", field); - } - } - - if (!expr) - return raiseMissingField("UpdateExpression", BinField::Argument); - if (operation.isNothing()) - return raiseMissingField("UpdateExpression", BinField::Operator); - - // In case of absent optional fields, inject default values. - if (prefix.isNothing()) - prefix.emplace(false); - - ParseNodeKind pnk = PNK_LIMIT; - if (kind == BinKind::UnaryExpression) { - if (*operation == "-") { - pnk = PNK_NEG; - } else if (*operation == "+") { - pnk = PNK_POS; - } else if (*operation == "!") { - pnk = PNK_NOT; - } else if (*operation == "~") { - pnk = PNK_BITNOT; - } else if (*operation == "typeof") { - if (expr->isKind(PNK_NAME)) - pnk = PNK_TYPEOFNAME; - else - pnk = PNK_TYPEOFEXPR; - } else if (*operation == "void") { - pnk = PNK_VOID; - } else if (*operation == "delete") { - switch (expr->getKind()) { - case PNK_NAME: - expr->setOp(JSOP_DELNAME); - pnk = PNK_DELETENAME; - break; - case PNK_DOT: - pnk = PNK_DELETEPROP; - break; - case PNK_ELEM: - pnk = PNK_DELETEELEM; - break; - default: - pnk = PNK_DELETEEXPR; - } - } else { - return raiseInvalidEnum("UnaryOperator", *operation); - } - } else if (kind == BinKind::UpdateExpression) { - if (!expr->isKind(PNK_NAME) && !factory_.isPropertyAccess(expr)) - return raiseError("Invalid increment/decrement operand"); // FIXME: Shouldn't this be part of the syntax? - - if (*operation == "++") { - if (*prefix) - pnk = PNK_PREINCREMENT; - else - pnk = PNK_POSTINCREMENT; - } else if (*operation == "--") { - if (*prefix) - pnk = PNK_PREDECREMENT; - else - pnk = PNK_POSTDECREMENT; - } else { - return raiseInvalidEnum("UpdateOperator", *operation); - } - } - - TRY_VAR(result, factory_.newUnary(pnk, start, expr)); - - break; - } - case BinKind::BinaryExpression: - case BinKind::LogicalExpression: { - ParseNode* left(nullptr); - ParseNode* right(nullptr); - Maybe operation; - for (auto field : fields) { - switch (field) { - case BinField::Left: - MOZ_TRY_VAR(left, parseExpression()); - break; - case BinField::Right: - MOZ_TRY_VAR(right, parseExpression()); - break; - case BinField::Operator: - MOZ_TRY(readString(operation)); - break; - default: - return raiseInvalidField("LogicalExpression | BinaryExpression", field); - } - } - - if (!left) - return raiseMissingField("LogicalExpression | BinaryExpression", BinField::Left); - if (!right) - return raiseMissingField("LogicalExpression | BinaryExpression", BinField::Right); - if (operation.isNothing()) - return raiseMissingField("LogicalExpression | BinaryExpression", BinField::Operator); - - // FIXME: Instead of Chars, we should use atoms and comparison - // between atom ptr. - ParseNodeKind pnk = PNK_LIMIT; - if (*operation == "==") - pnk = PNK_EQ; - else if (*operation == "!=") - pnk = PNK_NE; - else if (*operation == "===") - pnk = PNK_STRICTEQ; - else if (*operation == "!==") - pnk = PNK_STRICTNE; - else if (*operation == "<") - pnk = PNK_LT; - else if (*operation == "<=") - pnk = PNK_LE; - else if (*operation == ">") - pnk = PNK_GT; - else if (*operation == ">=") - pnk = PNK_GE; - else if (*operation == "<<") - pnk = PNK_LSH; - else if (*operation == ">>") - pnk = PNK_RSH; - else if (*operation == ">>>") - pnk = PNK_URSH; - else if (*operation == "+") - pnk = PNK_ADD; - else if (*operation == "-") - pnk = PNK_SUB; - else if (*operation == "*") - pnk = PNK_STAR; - else if (*operation == "/") - pnk = PNK_DIV; - else if (*operation == "%") - pnk = PNK_MOD; - else if (*operation == "|") - pnk = PNK_BITOR; - else if (*operation == "^") - pnk = PNK_BITXOR; - else if (*operation == "&") - pnk = PNK_BITAND; - else if (*operation == "in") - pnk = PNK_IN; - else if (*operation == "instanceof") - pnk = PNK_INSTANCEOF; - else if (*operation == "||") - pnk = PNK_OR; - else if (*operation == "&&") - pnk = PNK_AND; - else if (*operation == "**") - pnk = PNK_POW; - else - return raiseInvalidEnum("BinaryOperator | LogicalOperator", *operation); - - if (left->isKind(pnk) && pnk != PNK_POW /* PNK_POW is not left-associative */) { - // Regroup left-associative operations into lists. - left->appendWithoutOrderAssumption(right); - result = left; - } else { - TRY_DECL(list, factory_.newList(pnk, tokenizer_->pos(start))); - - list->appendWithoutOrderAssumption(left); - list->appendWithoutOrderAssumption(right); - result = list; - } - - break; - } - case BinKind::AssignmentExpression: { - ParseNode* left(nullptr); - ParseNode* right(nullptr); - Maybe operation; - for (auto field : fields) { - switch (field) { - case BinField::Left: - MOZ_TRY_VAR(left, parseExpression()); - break; - case BinField::Right: - MOZ_TRY_VAR(right, parseExpression()); - break; - case BinField::Operator: - MOZ_TRY(readString(operation)); - break; - default: - return raiseInvalidField("AssignmentExpression", field); - } - } - - if (!left) - return raiseMissingField("AssignmentExpression", BinField::Left); - if (!right) - return raiseMissingField("AssignmentExpression", BinField::Right); - if (operation.isNothing()) - return raiseMissingField("AssignmentExpression", BinField::Operator); - - // FIXME: Instead of Chars, we should use atoms and comparison - // between atom ptr. - // FIXME: We should probably turn associative operations into lists. - ParseNodeKind pnk = PNK_LIMIT; - if (*operation == "=") - pnk = PNK_ASSIGN; - else if (*operation == "+=") - pnk = PNK_ADDASSIGN; - else if (*operation == "-=") - pnk = PNK_SUBASSIGN; - else if (*operation == "*=") - pnk = PNK_MULASSIGN; - else if (*operation == "/=") - pnk = PNK_DIVASSIGN; - else if (*operation == "%=") - pnk = PNK_MODASSIGN; - else if (*operation == "<<=") - pnk = PNK_LSHASSIGN; - else if (*operation == ">>=") - pnk = PNK_RSHASSIGN; - else if (*operation == ">>>=") - pnk = PNK_URSHASSIGN; - else if (*operation == "|=") - pnk = PNK_BITORASSIGN; - else if (*operation == "^=") - pnk = PNK_BITXORASSIGN; - else if (*operation == "&=") - pnk = PNK_BITANDASSIGN; - else - return raiseInvalidEnum("AssignmentOperator", *operation); - - TRY_VAR(result, factory_.newAssignment(pnk, left, right)); - - break; - } - case BinKind::BracketExpression: - case BinKind::DotExpression: - MOZ_TRY_VAR(result, parseMemberExpressionAux(kind, fields)); - - break; - case BinKind::ConditionalExpression: { - ParseNode* test(nullptr); - ParseNode* alternate(nullptr); - ParseNode* consequent(nullptr); - - for (auto field : fields) { - switch (field) { - case BinField::Test: - MOZ_TRY_VAR(test, parseExpression()); - break; - case BinField::Consequent: - MOZ_TRY_VAR(consequent, parseExpression()); - break; - case BinField::Alternate: - MOZ_TRY_VAR(alternate, parseExpression()); - break; - default: - return raiseInvalidField("ConditionalExpression", field); - } - } - - if (!test) - return raiseMissingField("ConditionalExpression", BinField::Test); - if (!consequent) - return raiseMissingField("ConditionalExpression", BinField::Consequent); - if (!alternate) - return raiseMissingField("ConditionalExpression", BinField::Alternate); - - TRY_VAR(result, factory_.newConditional(test, consequent, alternate)); - - break; - } - case BinKind::CallExpression: - case BinKind::NewExpression: { - ParseNode* callee(nullptr); - - for (auto field : fields) { - switch (field) { - case BinField::Callee: - MOZ_TRY_VAR(callee, parseExpression()); - break; - case BinField::Arguments: - MOZ_TRY_VAR(result, parseExpressionList(/* acceptElisions = */ false)); - break; - default: - return raiseInvalidField("NewExpression", field); - } - } - - // In case of absent required fields, fail. - if (!callee) - return raiseMissingField("NewExpression", BinField::Callee); - - // In case of absent optional fields, inject default values. - if (!result) - TRY_VAR(result, factory_.newArrayLiteral(start)); - - ParseNodeKind pnk = - kind == BinKind::CallExpression - ? PNK_CALL - : PNK_NEW; - result->setKind(pnk); - result->prepend(callee); - - break; - } - case BinKind::SequenceExpression: { - for (auto field : fields) { - switch (field) { - case BinField::Expressions: - MOZ_TRY_VAR(result, parseExpressionList(/* acceptElisions = */ false)); - break; - default: - return raiseInvalidField("SequenceExpression", field); - } - } - - if (!result) - return raiseMissingField("SequenceExpression", BinField::Expression); - - result->setKind(PNK_COMMA); - break; - } - default: - return raiseInvalidKind("Expression", kind); - } - - return result; -} - -JS::Result -BinASTParser::parseNumericLiteralAux(const BinKind kind, const BinFields& fields) -{ - auto start = tokenizer_->offset(); - - Maybe value; - for (auto field : fields) { - switch (field) { - case BinField::Value: - MOZ_TRY_EMPLACE(value, readNumber()); - break; - default: - return raiseInvalidField("NumericLiteral", field); - } - } - - // In case of absent optional fields, inject default values. - if (!value) - value.emplace(0); - - TRY_DECL(result, factory_.newNumber(*value, DecimalPoint::HasDecimal, tokenizer_->pos(start))); - return result; -} - -JS::Result -BinASTParser::parseStringLiteralAux(const BinKind kind, const BinFields& fields) -{ - auto start = tokenizer_->offset(); - - RootedAtom value(cx_); - for (auto field : fields) { - switch (field) { - case BinField::Value: - MOZ_TRY(readString(&value)); - break; - default: - return raiseInvalidField("StringLiteral", field); - } - } - - if (!value) - return raiseMissingField("StringLiteral", BinField::Value); - - TRY_DECL(result, factory_.newStringLiteral(value, tokenizer_->pos(start))); - return result; -} - -JS::Result -BinASTParser::parseArrayExpressionAux(const BinKind kind, const BinFields& fields) -{ - MOZ_ASSERT(kind == BinKind::ArrayExpression); - - ParseNode* result(nullptr); - for (auto field : fields) { - switch (field) { - case BinField::Elements: { - MOZ_TRY_VAR(result, parseExpressionList(/* acceptElisions = */ true)); - break; - } - default: - return raiseInvalidField("ArrayExpression", field); - } - } - - // Inject default values for absent fields. - if (!result) - TRY_VAR(result, factory_.newArrayLiteral(tokenizer_->offset())); - - MOZ_ASSERT(result->isKind(PNK_ARRAY)); - return result; -} - -JS::Result -BinASTParser::parseObjectExpressionAux(const BinKind kind, const BinFields& fields) -{ - MOZ_ASSERT(kind == BinKind::ObjectExpression); - - ParseNode* result(nullptr); - for (auto field : fields) { - switch (field) { - case BinField::Properties: { - MOZ_TRY_VAR(result, parseObjectMemberList()); - break; - } - default: - return raiseInvalidField("Property | Method", field); - } - } - - if (!result) - TRY_VAR(result, factory_.newObjectLiteral(tokenizer_->offset())); - - MOZ_ASSERT(result->isArity(PN_LIST)); - MOZ_ASSERT(result->isKind(PNK_OBJECT)); - -#if defined(DEBUG) - // Sanity check. - for (ParseNode* iter = result->pn_head; iter != nullptr; iter = iter->pn_next) { - MOZ_ASSERT(iter->isKind(PNK_COLON)); - MOZ_ASSERT(iter->pn_left != nullptr); - MOZ_ASSERT(iter->pn_right != nullptr); - } -#endif // defined(DEBUG) - - return result; -} - -JS::Result -BinASTParser::parseMemberExpressionAux(const BinKind kind, const BinFields& fields) -{ - MOZ_ASSERT(kind == BinKind::DotExpression || kind == BinKind::BracketExpression); - - ParseNode* object(nullptr); - ParseNode* property(nullptr); - - for (auto field : fields) { - switch (field) { - case BinField::Object: - MOZ_TRY_VAR(object, parseExpression()); - break; - case BinField::Property: - if (kind == BinKind::BracketExpression) - MOZ_TRY_VAR(property, parseExpression()); - else - MOZ_TRY_VAR(property, parseIdentifier()); - break; - default: - return raiseInvalidField("MemberExpression", field); - } - } - - // In case of absent required fields, fail. - if (!object) - return raiseMissingField("MemberExpression", BinField::Object); - if (!property) - return raiseMissingField("MemberExpression", BinField::Property); - - ParseNode* result(nullptr); - if (kind == BinKind::DotExpression) { - MOZ_ASSERT(property->isKind(PNK_NAME)); - PropertyName* name = property->pn_atom->asPropertyName(); - TRY_VAR(result, factory_.newPropertyAccess(object, name, tokenizer_->offset())); - } else { - TRY_VAR(result, factory_.newPropertyByValue(object, property, tokenizer_->offset())); - } - - return result; -} - -JS::Result -BinASTParser::parseDirectiveList() -{ - uint32_t length; - AutoList guard(*tokenizer_); - TRY(tokenizer_->enterList(length, guard)); - - TokenPos pos = tokenizer_->pos(); - TRY_DECL(result, factory_.newStatementList(pos)); - - RootedAtom value(cx_); - for (uint32_t i = 0; i < length; ++i) { - value = nullptr; - MOZ_TRY(readString(&value)); - - TRY_DECL(directive, factory_.newStringLiteral(value, pos)); - factory_.addStatementToList(result, directive); - } - - TRY(guard.done()); - return result; -} - -JS::Result -BinASTParser::parseSwitchCase() -{ - const size_t start = tokenizer_->offset(); - - BinKind kind; - BinFields fields(cx_); - AutoTaggedTuple guard(*tokenizer_); - - TRY(tokenizer_->enterTaggedTuple(kind, fields, guard)); - if (kind != BinKind::SwitchCase) - return raiseInvalidKind("SwitchCase", kind); - - ParseNode* test(nullptr); // Optional. - ParseNode* statements(nullptr); // Required. - - for (auto field : fields) { - switch (field) { - case BinField::Test: - MOZ_TRY_VAR(test, parseExpression()); - break; - case BinField::Consequent: - MOZ_TRY_VAR(statements, parseStatementList()); - break; - default: - return raiseInvalidField("SwitchCase", field); - } - } - - TRY(guard.done()); - if (!statements) - return raiseMissingField("SwitchCase", BinField::Consequent); - - MOZ_ASSERT(statements->isKind(PNK_STATEMENTLIST)); - - TRY_DECL(result, factory_.newCaseOrDefault(start, test, statements)); - - return result; -} - -JS::Result -BinASTParser::parseCatchClause() -{ - ParseContext::Statement stmt(parseContext_, StatementKind::Catch); - ParseContext::Scope scope(cx_, parseContext_, usedNames_); - TRY(scope.init(parseContext_)); - - BinKind kind; - BinFields fields(cx_); - AutoTaggedTuple guard(*tokenizer_); - - TRY(tokenizer_->enterTaggedTuple(kind, fields, guard)); - ParseNode* result(nullptr); - - switch (kind) { - default: - return raiseInvalidKind("CatchClause", kind); - case BinKind::CatchClause: { - ParseNode* param(nullptr); - ParseNode* body(nullptr); - - for (auto field : fields) { - switch (field) { - case BinField::Param: - MOZ_TRY_VAR(param, parsePattern()); - break; - case BinField::Body: - MOZ_TRY_VAR(body, parseBlockStatement()); - break; - case BinField::BINJS_Scope: - MOZ_TRY(parseAndUpdateCurrentScope()); - break; - default: - return raiseInvalidField("CatchClause", field); - } - } - - if (!param) - return raiseMissingField("CatchClause", BinField::Param); - if (!body) - return raiseMissingField("CatchClause", BinField::Body); - - TRY_DECL(bindings, NewLexicalScopeData(cx_, scope, alloc_, parseContext_)); - TRY_VAR(result, factory_.newLexicalScope(*bindings, body)); - TRY(factory_.setupCatchScope(result, param, body)); - } - } - - TRY(guard.done()); - return result; -} - -JS::Result -BinASTParser::parseArgumentList() -{ - uint32_t length; - AutoList guard(*tokenizer_); - - TRY(tokenizer_->enterList(length, guard)); - ParseNode* result = new_(PNK_PARAMSBODY, tokenizer_->pos()); - - for (uint32_t i = 0; i < length; ++i) { - ParseNode* pattern; - MOZ_TRY_VAR(pattern, parsePattern()); - - result->appendWithoutOrderAssumption(pattern); - } - - TRY(guard.done()); - return result; -} - -JS::Result -BinASTParser::parseIdentifier() -{ - BinKind kind; - BinFields fields(cx_); - AutoTaggedTuple guard(*tokenizer_); - - TRY(tokenizer_->enterTaggedTuple(kind, fields, guard)); - ParseNode* result; - MOZ_TRY_VAR(result, parseIdentifierAux(kind, fields)); - - TRY(guard.done()); - return result; -} - -JS::Result -BinASTParser::parseIdentifierAux(const BinKind, const BinFields& fields, const bool expectObjectPropertyName /* = false */) -{ - const size_t start = tokenizer_->offset(); - - RootedAtom id(cx_); - for (auto field : fields) { - switch (field) { - case BinField::Name: - MOZ_TRY(readString(&id)); - break; - default: - return raiseInvalidField("Identifier", field); - } - } - - if (!id) - return raiseMissingField("Identifier", BinField::Name); - - if (!IsIdentifier(id)) - return raiseError("Invalid identifier"); - if (!expectObjectPropertyName && IsKeyword(id)) - return raiseError("Invalid identifier (keyword)"); - - // Once `IsIdentifier` has returned true, we may call `asPropertyName()` without fear. - TokenPos pos = tokenizer_->pos(start); - - ParseNode* result; - if (expectObjectPropertyName) - TRY_VAR(result, factory_.newObjectLiteralPropertyName(id->asPropertyName(), pos)); - else - TRY_VAR(result, factory_.newName(id->asPropertyName(), pos, cx_)); - - return result; -} - - -JS::Result -BinASTParser::parsePattern() -{ - BinKind kind; - BinFields fields(cx_); - AutoTaggedTuple guard(*tokenizer_); - - TRY(tokenizer_->enterTaggedTuple(kind, fields, guard)); - ParseNode* result; - MOZ_TRY_VAR(result, parsePatternAux(kind, fields)); - - TRY(guard.done()); - return result; -} - -JS::Result -BinASTParser::parsePatternAux(const BinKind kind, const BinFields& fields) -{ - ParseNode* result; - switch (kind) { - case BinKind::Identifier: - MOZ_TRY_VAR(result, parseIdentifierAux(kind ,fields)); - break; - default: - return raiseInvalidKind("Pattern", kind); - } - - return result; -} - -JS::Result -BinASTParser::parseObjectMember() -{ - BinKind kind; - BinFields fields(cx_); - AutoTaggedTuple guard(*tokenizer_); - - TRY(tokenizer_->enterTaggedTuple(kind, fields, guard)); - ParseNode* result(nullptr); - - switch (kind) { - case BinKind::ObjectProperty: { - ParseNode* key(nullptr); - ParseNode* value(nullptr); - for (auto field : fields) { - switch (field) { - case BinField::Key: - MOZ_TRY_VAR(key, parseObjectPropertyName()); - break; - case BinField::Value: - MOZ_TRY_VAR(value, parseExpression()); - break; - default: - return raiseInvalidField("ObjectMember", field); - } - } - - if (!key) - return raiseMissingField("ObjectMember", BinField::Key); - if (!value) - return raiseMissingField("ObjectMember", BinField::Value); - - if (!factory_.isUsableAsObjectPropertyName(key)) - return raiseError("ObjectMember key kind"); - - TRY_VAR(result, factory_.newObjectMethodOrPropertyDefinition(key, value, AccessorType::None)); - - break; - } - case BinKind::ObjectMethod: - case BinKind::ObjectGetter: - case BinKind::ObjectSetter: - MOZ_TRY_VAR(result, parseFunctionAux(kind, fields)); - - if (!result) - return raiseEmpty("ObjectMethod"); - - MOZ_ASSERT(result->isKind(PNK_COLON)); - break; - default: - return raiseInvalidKind("ObjectMember", kind); - } - - TRY(guard.done()); - MOZ_ASSERT(result); - return result; -} - -JS::Result -BinASTParser::parseObjectMemberList() -{ - uint32_t length; - AutoList guard(*tokenizer_); - - auto start = tokenizer_->offset(); - TRY(tokenizer_->enterList(length, guard)); - - TRY_DECL(result, factory_.newObjectLiteral(start)); - - for (uint32_t i = 0; i < length; ++i) { - ParseNode* keyValue; - MOZ_TRY_VAR(keyValue, parseObjectMember()); - MOZ_ASSERT(keyValue); - - result->appendWithoutOrderAssumption(keyValue); - } - - TRY(guard.done()); - return result; -} - - -JS::Result -BinASTParser::checkEmptyTuple(const BinKind kind, const BinFields& fields) -{ - if (fields.length() != 0) - return raiseInvalidField(describeBinKind(kind), fields[0]); - - return Ok(); -} - - -JS::Result -BinASTParser::readString(MutableHandleAtom out) -{ - MOZ_ASSERT(!out); - - Maybe string; - MOZ_TRY(readString(string)); - MOZ_ASSERT(string); - - RootedAtom atom(cx_); - TRY_VAR(atom, Atomize(cx_, (const char*)string->begin(), string->length())); - - out.set(Move(atom)); - return Ok(); -} - -JS::Result -BinASTParser::parsePropertyName() -{ - RootedAtom atom(cx_); - MOZ_TRY(readString(&atom)); - - TokenPos pos = tokenizer_->pos(); - - ParseNode* result; - - // If the atom matches an index (e.g. "3"), we need to normalize the - // propertyName to ensure that it has the same representation as - // the numeric index (e.g. 3). - uint32_t index; - if (atom->isIndex(&index)) - TRY_VAR(result, factory_.newNumber(index, NoDecimal, pos)); - else - TRY_VAR(result, factory_.newStringLiteral(atom, pos)); - - return result; -} - -JS::Result -BinASTParser::readString(Maybe& out) -{ - MOZ_ASSERT(out.isNothing()); - Chars result(cx_); - TRY(tokenizer_->readChars(result)); - - out.emplace(Move(result)); - return Ok(); -} - -JS::Result -BinASTParser::readNumber() -{ - double result; - TRY(tokenizer_->readDouble(result)); - - return result; -} - -JS::Result -BinASTParser::readBool() -{ - bool result; - TRY(tokenizer_->readBool(result)); - - return result; -} - -mozilla::GenericErrorResult -BinASTParser::raiseInvalidKind(const char* superKind, const BinKind kind) -{ - Sprinter out(cx_); - TRY(out.init()); - TRY(out.printf("In %s, invalid kind %s", superKind, describeBinKind(kind))); - return raiseError(out.string()); -} - -mozilla::GenericErrorResult -BinASTParser::raiseInvalidField(const char* kind, const BinField field) -{ - Sprinter out(cx_); - TRY(out.init()); - TRY(out.printf("In %s, invalid field '%s'", kind, describeBinField(field))); - return raiseError(out.string()); -} - -mozilla::GenericErrorResult -BinASTParser::raiseInvalidEnum(const char* kind, const Chars& value) -{ - // We don't trust the actual chars of `value` to be properly formatted anything, so let's not use - // them anywhere. - return raiseError("Invalid enum"); -} - -mozilla::GenericErrorResult -BinASTParser::raiseMissingField(const char* kind, const BinField field) -{ - Sprinter out(cx_); - TRY(out.init()); - TRY(out.printf("In %s, missing field '%s'", kind, describeBinField(field))); - - return raiseError(out.string()); -} - -mozilla::GenericErrorResult -BinASTParser::raiseEmpty(const char* description) -{ - Sprinter out(cx_); - TRY(out.init()); - TRY(out.printf("Empty %s", description)); - - return raiseError(out.string()); -} - -mozilla::GenericErrorResult -BinASTParser::raiseOOM() -{ - ReportOutOfMemory(cx_); - return cx_->alreadyReportedError(); -} - -mozilla::GenericErrorResult -BinASTParser::raiseError(BinKind kind, const char* description) -{ - Sprinter out(cx_); - TRY(out.init()); - TRY(out.printf("In %s, ", description)); - MOZ_ALWAYS_FALSE(tokenizer_->raiseError(out.string())); - - return cx_->alreadyReportedError(); -} - -mozilla::GenericErrorResult -BinASTParser::raiseError(const char* description) -{ - MOZ_ALWAYS_FALSE(tokenizer_->raiseError(description)); - return cx_->alreadyReportedError(); -} - -void -BinASTParser::poison() -{ - tokenizer_.reset(); -} - -void -BinASTParser::reportErrorNoOffsetVA(unsigned errorNumber, va_list args) -{ - ErrorMetadata metadata; - metadata.filename = getFilename(); - metadata.lineNumber = 0; - metadata.columnNumber = offset(); - ReportCompileError(cx_, Move(metadata), nullptr, JSREPORT_ERROR, errorNumber, args); -} - -bool -BinASTParser::hasUsedName(HandlePropertyName name) -{ - if (UsedNamePtr p = usedNames_.lookup(name)) - return p->value().isUsedInScript(parseContext_->scriptId()); - - return false; -} - -void -TraceBinParser(JSTracer* trc, AutoGCRooter* parser) -{ - static_cast(parser)->trace(trc); -} - -} // namespace frontend -} // namespace js - - -// #undef everything, to avoid collisions with unified builds. - -#undef TRY -#undef TRY_VAR -#undef TRY_DECL -#undef TRY_EMPL -#undef MOZ_TRY_EMPLACE diff --git a/js/src/frontend/BinSource.h b/js/src/frontend/BinSource.h deleted file mode 100644 index 2995eb895e2c..000000000000 --- a/js/src/frontend/BinSource.h +++ /dev/null @@ -1,278 +0,0 @@ -#ifndef frontend_BinSource_h -#define frontend_BinSource_h - -/** - * A Binary AST parser. - * - * At the time of this writing, this parser implements the grammar of ES5 - * and trusts its input (in particular, variable declarations). - */ - -#include "mozilla/Maybe.h" - -#include "frontend/BinTokenReaderTester.h" -#include "frontend/FullParseHandler.h" -#include "frontend/ParseContext.h" -#include "frontend/ParseNode.h" -#include "frontend/SharedContext.h" - -#include "js/GCHashTable.h" -#include "js/GCVector.h" -#include "js/Result.h" - -namespace js { -namespace frontend { - -class BinASTParser; - -/** - * The parser for a Binary AST. - * - * By design, this parser never needs to backtrack or look ahead. Errors are not - * recoverable. - */ -class BinASTParser : private JS::AutoGCRooter, public ErrorReporter -{ - using Names = JS::GCVector; - using Tokenizer = BinTokenReaderTester; - using Chars = Tokenizer::Chars; - - public: - BinASTParser(JSContext* cx, LifoAlloc& alloc, UsedNameTracker& usedNames, const JS::ReadOnlyCompileOptions& options) - : AutoGCRooter(cx, BINPARSER) - , traceListHead_(nullptr) - , options_(options) - , cx_(cx) - , alloc_(alloc) - , nodeAlloc_(cx, alloc) - , keepAtoms_(cx) - , parseContext_(nullptr) - , usedNames_(usedNames) - , factory_(cx, alloc, nullptr, SourceKind::Binary) - { - cx_->frontendCollectionPool().addActiveCompilation(); - tempPoolMark_ = alloc.mark(); - } - ~BinASTParser() - { - alloc_.release(tempPoolMark_); - - /* - * The parser can allocate enormous amounts of memory for large functions. - * Eagerly free the memory now (which otherwise won't be freed until the - * next GC) to avoid unnecessary OOMs. - */ - alloc_.freeAllIfHugeAndUnused(); - - cx_->frontendCollectionPool().removeActiveCompilation(); - } - - /** - * Parse a buffer, returning a node (which may be nullptr) in case of success - * or Nothing() in case of error. - * - * The instance of `ParseNode` MAY NOT survive the `BinASTParser`. Indeed, - * destruction of the `BinASTParser` will also destroy the `ParseNode`. - * - * In case of error, the parser reports the JS error. - */ - JS::Result parse(const uint8_t* start, const size_t length); - JS::Result parse(const Vector& data); - - private: - MOZ_MUST_USE JS::Result parseAux(const uint8_t* start, const size_t length); - - // --- Raise errors. - // - // These methods return a (failed) JS::Result for convenience. - - MOZ_MUST_USE mozilla::GenericErrorResult raiseInvalidKind(const char* superKind, const BinKind kind); - MOZ_MUST_USE mozilla::GenericErrorResult raiseInvalidField(const char* kind, const BinField field); - MOZ_MUST_USE mozilla::GenericErrorResult raiseInvalidEnum(const char* kind, const Chars& value); - MOZ_MUST_USE mozilla::GenericErrorResult raiseMissingField(const char* kind, const BinField field); - MOZ_MUST_USE mozilla::GenericErrorResult raiseEmpty(const char* description); - MOZ_MUST_USE mozilla::GenericErrorResult raiseOOM(); - MOZ_MUST_USE mozilla::GenericErrorResult raiseError(const char* description); - MOZ_MUST_USE mozilla::GenericErrorResult raiseError(BinKind kind, const char* description); - - // Ensure that this parser will never be used again. - void poison(); - - // --- Parse full nodes (methods are sorted by alphabetical order) - // - // These method may NEVER return `nullptr`. // FIXME: We can probably optimize Result<> based on this. - - MOZ_MUST_USE JS::Result parseBlockStatement(); - MOZ_MUST_USE JS::Result parseCatchClause(); - MOZ_MUST_USE JS::Result parseExpression(); - MOZ_MUST_USE JS::Result parseForInit(); - MOZ_MUST_USE JS::Result parseForInInit(); - MOZ_MUST_USE JS::Result parseIdentifier(); - MOZ_MUST_USE JS::Result parseObjectPropertyName(); - MOZ_MUST_USE JS::Result parseObjectMember(); - MOZ_MUST_USE JS::Result parsePattern(); // Parse a *binding* pattern. - MOZ_MUST_USE JS::Result parsePropertyName(); - MOZ_MUST_USE JS::Result parseProgram(); - MOZ_MUST_USE JS::Result parseStatement(); - MOZ_MUST_USE JS::Result parseSwitchCase(); - MOZ_MUST_USE JS::Result parseVariableDeclarator(); - - - // --- Parse lists of nodes (methods are sorted by alphabetical order) - - MOZ_MUST_USE JS::Result parseArgumentList(); - MOZ_MUST_USE JS::Result parseDirectiveList(); - MOZ_MUST_USE JS::Result parseExpressionList(bool acceptElisions); - - // Returns a list of PNK_COLON. - MOZ_MUST_USE JS::Result parseObjectMemberList(); - - MOZ_MUST_USE JS::Result parseStatementList(); - MOZ_MUST_USE JS::Result parseSwitchCaseList(); - - // --- Parse the contents of a node whose kind has already been determined. - - MOZ_MUST_USE JS::Result parseArrayExpressionAux(const BinKind kind, const Tokenizer::BinFields& fields); - MOZ_MUST_USE JS::Result parseBreakOrContinueStatementAux(const BinKind kind, const Tokenizer::BinFields& fields); - MOZ_MUST_USE JS::Result parseBlockStatementAux(const BinKind kind, const Tokenizer::BinFields& fields); - MOZ_MUST_USE JS::Result parseExpressionStatementAux(const BinKind kind, const Tokenizer::BinFields& fields); - MOZ_MUST_USE JS::Result parseExpressionAux(const BinKind kind, const Tokenizer::BinFields& fields); - MOZ_MUST_USE JS::Result parseFunctionAux(const BinKind kind, const Tokenizer::BinFields& fields); - MOZ_MUST_USE JS::Result parseIdentifierAux(const BinKind, const Tokenizer::BinFields& fields, const bool expectObjectPropertyName = false); - MOZ_MUST_USE JS::Result parseMemberExpressionAux(const BinKind kind, const Tokenizer::BinFields& fields); - MOZ_MUST_USE JS::Result parseNumericLiteralAux(const BinKind kind, const Tokenizer::BinFields& fields); - MOZ_MUST_USE JS::Result parseObjectExpressionAux(const BinKind kind, const Tokenizer::BinFields& fields); - MOZ_MUST_USE JS::Result parsePatternAux(const BinKind kind, const Tokenizer::BinFields& fields); - MOZ_MUST_USE JS::Result parseStringLiteralAux(const BinKind kind, const Tokenizer::BinFields& fields); - MOZ_MUST_USE JS::Result parseStatementAux(const BinKind kind, const Tokenizer::BinFields& fields); - MOZ_MUST_USE JS::Result parseVariableDeclarationAux(const BinKind kind, const Tokenizer::BinFields& fields); - - // --- Auxiliary parsing functions that may have a side-effect on the parser but do not return a node. - - MOZ_MUST_USE JS::Result checkEmptyTuple(const BinKind kind, const Tokenizer::BinFields& fields); - MOZ_MUST_USE JS::Result parseElisionAux(const BinKind kind, const Tokenizer::BinFields& fields); - - // Parse full scope information to the current innermost scope. - MOZ_MUST_USE JS::Result parseAndUpdateCurrentScope(); - // Parse full scope information to a specific var scope / let scope combination. - MOZ_MUST_USE JS::Result parseAndUpdateScope(ParseContext::Scope& varScope, ParseContext::Scope& letScope); - // Parse a list of names and add it to a given scope. - MOZ_MUST_USE JS::Result parseAndUpdateScopeNames(ParseContext::Scope& scope, DeclarationKind kind); - MOZ_MUST_USE JS::Result parseStringList(MutableHandle> out); - - // --- Utilities. - - MOZ_MUST_USE JS::Result appendDirectivesToBody(ParseNode* body, ParseNode* directives); - - // Read a string as a `Chars`. - MOZ_MUST_USE JS::Result readString(Maybe& out); - MOZ_MUST_USE JS::Result readString(MutableHandleAtom out); - MOZ_MUST_USE JS::Result readBool(); - MOZ_MUST_USE JS::Result readNumber(); - - const ReadOnlyCompileOptions& options() const override { - return this->options_; - } - - // Names - - - bool hasUsedName(HandlePropertyName name); - - // --- GC. - - void trace(JSTracer* trc) { - ObjectBox::TraceList(trc, traceListHead_); - } - - - public: - ObjectBox* newObjectBox(JSObject* obj) { - MOZ_ASSERT(obj); - - /* - * We use JSContext.tempLifoAlloc to allocate parsed objects and place them - * on a list in this Parser to ensure GC safety. Thus the tempLifoAlloc - * arenas containing the entries must be alive until we are done with - * scanning, parsing and code generation for the whole script or top-level - * function. - */ - - ObjectBox* objbox = alloc_.new_(obj, traceListHead_); - if (!objbox) { - ReportOutOfMemory(cx_); - return nullptr; - } - - traceListHead_ = objbox; - - return objbox; - } - - ParseNode* allocParseNode(size_t size) { - MOZ_ASSERT(size == sizeof(ParseNode)); - return static_cast(nodeAlloc_.allocNode()); - } - - JS_DECLARE_NEW_METHODS(new_, allocParseNode, inline) - - private: // Implement ErrorReporter - - virtual void lineAndColumnAt(size_t offset, uint32_t* line, uint32_t* column) const override { - *line = 0; - *column = offset; - } - virtual void currentLineAndColumn(uint32_t* line, uint32_t* column) const override { - *line = 0; - *column = offset(); - } - size_t offset() const { - if (tokenizer_.isSome()) - return tokenizer_->offset(); - - return 0; - } - virtual bool hasTokenizationStarted() const override { - return tokenizer_.isSome(); - } - virtual void reportErrorNoOffsetVA(unsigned errorNumber, va_list args) override; - virtual const char* getFilename() const override { - return this->options_.filename(); - } - - ObjectBox* traceListHead_; - const ReadOnlyCompileOptions& options_; - JSContext* cx_; - LifoAlloc& alloc_; - LifoAlloc::Mark tempPoolMark_; - ParseNodeAllocator nodeAlloc_; - - // Root atoms and objects allocated for the parse tree. - AutoKeepAtoms keepAtoms_; - - // The current ParseContext, holding directives, etc. - ParseContext* parseContext_; - UsedNameTracker& usedNames_; - Maybe tokenizer_; - FullParseHandler factory_; - - friend class BinParseContext; - - // Needs access to AutoGCRooter. - friend void TraceBinParser(JSTracer* trc, AutoGCRooter* parser); -}; - -class BinParseContext : public ParseContext -{ - public: - BinParseContext(JSContext* cx, BinASTParser* parser, SharedContext* sc, Directives* newDirectives) - : ParseContext(cx, parser->parseContext_, sc, *parser, - parser->usedNames_, newDirectives, /* isFull = */ true) - { } -}; - - -} // namespace frontend -} // namespace js - -#endif // frontend_BinSource_h \ No newline at end of file diff --git a/js/src/frontend/BinToken.cpp b/js/src/frontend/BinToken.cpp deleted file mode 100644 index 75b0754b3fae..000000000000 --- a/js/src/frontend/BinToken.cpp +++ /dev/null @@ -1,29 +0,0 @@ -#include "frontend/BinToken.h" - -#include - -namespace js { -namespace frontend { - -const char* BINKIND_DESCRIPTIONS[] = { -#define WITH_KIND(_, SPEC_NAME) #SPEC_NAME, - FOR_EACH_BIN_KIND(WITH_KIND) -#undef WITH_KIND -}; - -const char* BINFIELD_DESCRIPTIONS[] = { - #define WITH_FIELD(_, SPEC_NAME) #SPEC_NAME, - FOR_EACH_BIN_FIELD(WITH_FIELD) - #undef WITH_FIELD -}; - -const char* describeBinKind(const BinKind& kind) { - return BINKIND_DESCRIPTIONS[static_cast(kind)]; -} - -const char* describeBinField(const BinField& field) { - return BINFIELD_DESCRIPTIONS[static_cast(field)]; -} - -} // namespace frontend -} // namespace js \ No newline at end of file diff --git a/js/src/frontend/BinToken.h b/js/src/frontend/BinToken.h deleted file mode 100644 index 3f2cff616c72..000000000000 --- a/js/src/frontend/BinToken.h +++ /dev/null @@ -1,201 +0,0 @@ -#ifndef frontend_BinToken_h -#define frontend_BinToken_h - -/** - * Definition of Binary AST tokens. - * - * In the Binary AST world, an AST is composed of nodes, where a node is - * defined by: - * - a Kind (see `BinKind`); - * - a list of fields, where each field is: - * - a Name (see `BinField`); - * - a Value, which may be either a node or a primitive value. - * - * The mapping between Kind and list of fields is determined entirely by - * the grammar of Binary AST. The mapping between (Kind, Name) and the structure - * of Value is also determined entirely by the grammar of Binary AST. - * - * As per the specifications of Binary AST, kinds may be added as the language - * grows, but never removed. The mapping between Kind and list of fields may - * also change to add new fields or make some fields optional, but may never - * remove a field. Finally, the mapping between (Kind, Name) and the structure - * of Value may be modified to add new possible values, but never to remove a - * value. - * - * A Binary AST parser must be able to fail gracefully when confronted with - * unknown Kinds or Names. - * - * At the time of this writing, the Binary AST defined from the Babylon AST - * (see https://github.com/babel/babylon/blob/master/ast/spec.md) restricted - * to ES5, with a few amendments to store additional scoping data and to - * represent the empty AST. - * - * Future versions of the Binary AST will progressively grow to encompass ES6 - * and beyond. - */ - -namespace js { -namespace frontend { - - /** - * The different kinds of Binary AST nodes, as per the specifications of - * Binary AST. - * - * These kinds match roughly with the `ParseNodeKind` used internally. - * - * Usage: - * - * ```c++ - * #define WITH_KIND(CPP_NAME, SPEC_NAME) ... - * FOR_EACH_BIN_KIND(WITH_KIND) - * ``` - * - * - * (sorted by alphabetical order) - */ -#define FOR_EACH_BIN_KIND(F) \ - F(ArrayExpression, ArrayExpression) \ - F(AssignmentExpression, AssignmentExpression) \ - F(AssignmentOperator, AssignmentOperator) \ - F(BinaryExpression, BinaryExpression) \ - F(BinaryOperator, BinaryOperator) \ - F(BINJS_Scope, BINJS:Scope) \ - F(BlockStatement, BlockStatement) \ - F(BooleanLiteral, BooleanLiteral) \ - F(BracketExpression, BracketExpression) \ - F(BreakStatement, BreakStatement) \ - F(CallExpression, CallExpression) \ - F(CatchClause, CatchClause) \ - F(ComputedPropertyName, ComputedPropertyName) \ - F(ConditionalExpression, ConditionalExpression) \ - F(ContinueStatement, ContinueStatement) \ - F(DebuggerStatement, DebuggerStatement) \ - F(Declaration, Declaration) \ - F(Directive, Directive) \ - F(DirectiveLiteral, DirectiveLiteral) \ - F(DotExpression, DotExpression) \ - F(DoWhileStatement, DoWhileStatement) \ - F(Elision, Elision) \ - F(EmptyStatement, EmptyStatement) \ - F(Expression, Expression) \ - F(ExpressionStatement, ExpressionStatement) \ - F(ForStatement, ForStatement) \ - F(ForInStatement, ForInStatement) \ - F(FunctionExpression, FunctionExpression) \ - F(FunctionDeclaration, FunctionDeclaration) \ - F(Identifier, Identifier) \ - F(IfStatement, IfStatement) \ - F(LabeledStatement, LabeledStatement) \ - F(Literal, Literal) \ - F(LogicalExpression, LogicalExpression) \ - F(LogicalOperator, LogicalOperator) \ - F(NewExpression, NewExpression) \ - F(NullLiteral, NullLiteral) \ - F(NumericLiteral, NumericLiteral) \ - F(ObjectExpression, ObjectExpression) \ - F(ObjectGetter, ObjectGetter) \ - F(ObjectMethod, ObjectMethod) \ - F(ObjectSetter, ObjectSetter) \ - F(ObjectProperty, ObjectProperty) \ - F(Pattern, Pattern) \ - F(Program, Program) \ - F(PropertyKind, PropertyKind) \ - F(RegExpLiteral, RegExpLiteral) \ - F(ReturnStatement, ReturnStatement) \ - F(SequenceExpression, SequenceExpression) \ - F(StringLiteral, StringLiteral) \ - F(Statement, Statement) \ - F(SwitchCase, SwitchCase) \ - F(SwitchStatement, SwitchStatement) \ - F(ThisExpression, ThisExpression) \ - F(ThrowStatement, ThrowStatement) \ - F(TryStatement, TryStatement) \ - F(UnaryExpression, UnaryExpression) \ - F(UnaryOperator, UnaryOperator) \ - F(UpdateExpression, UpdateExpression) \ - F(UpdateOperator, UpdateOperator) \ - F(VariableDeclaration, VariableDeclaration) \ - F(VariableDeclarator, VariableDeclarator) \ - F(VariableKind, VariableKind) \ - F(WhileStatement, WhileStatement) \ - F(WithStatement, WithStatement) - -enum class BinKind { -#define EMIT_ENUM(name, _) name, - FOR_EACH_BIN_KIND(EMIT_ENUM) -#undef EMIT_ENUM - BINKIND_LIMIT /* domain size */ -}; - -const char* describeBinKind(const BinKind& kind); - -/** - * The different fields of Binary AST nodes, as per the specifications of - * Binary AST. - * - * Usage: - * - * ```c++ - * #define WITH_FIELD(CPP_NAME, SPEC_NAME) ... - * FOR_EACH_BIN_FIELD(WITH_FIELD) - * ``` - * - * (sorted by alphabetical order) - */ - #define FOR_EACH_BIN_FIELD(F) \ - F(Alternate, alternate) \ - F(Argument, argument) \ - F(Arguments, arguments) \ - F(BINJS_CapturedNames, BINJS:CapturedNames) \ - F(BINJS_ConstDeclaredNames, BINJS:ConstDeclaredNames) \ - F(BINJS_HasDirectEval, BINJS:HasDirectEval) \ - F(BINJS_LetDeclaredNames, BINJS:LetDeclaredNames) \ - F(BINJS_VarDeclaredNames, BINJS:VarDeclaredNames) \ - F(BINJS_Scope, BINJS:Scope) \ - F(Block, block) \ - F(Callee, callee) \ - F(Cases, cases) \ - F(Consequent, consequent) \ - F(Body, body) \ - F(Declarations, declarations) \ - F(Directives, directives) \ - F(Discriminant, discriminant) \ - F(Elements, elements) \ - F(Expression, expression) \ - F(Expressions, expressions) \ - F(Finalizer, finalizer) \ - F(Flags, flags) \ - F(Handler, handler) \ - F(Id, id) \ - F(Init, init) \ - F(Key, key) \ - F(Kind, kind) \ - F(Label, label) \ - F(Left, left) \ - F(Name, name) \ - F(Object, object) \ - F(Operator, operator) \ - F(Param, param) \ - F(Params, params) \ - F(Pattern, pattern) \ - F(Prefix, prefix) \ - F(Properties, properties) \ - F(Property, property) \ - F(Right, right) \ - F(Test, test) \ - F(Update, update) \ - F(Value, value) - -enum class BinField { -#define EMIT_ENUM(name, _) name, - FOR_EACH_BIN_FIELD(EMIT_ENUM) -#undef EMIT_ENUM - BINFIELD_LIMIT /* domain size */ -}; - -const char* describeBinField(const BinField& kind); - -} // namespace frontend -} // namespace js - -#endif // frontend_BinToken_h diff --git a/js/src/frontend/BinTokenReaderTester.cpp b/js/src/frontend/BinTokenReaderTester.cpp deleted file mode 100644 index 177909efbcbd..000000000000 --- a/js/src/frontend/BinTokenReaderTester.cpp +++ /dev/null @@ -1,536 +0,0 @@ -#include "frontend/BinTokenReaderTester.h" - -#include "mozilla/EndianUtils.h" -#include "gc/Zone.h" - -namespace js { -namespace frontend { - -using BinFields = BinTokenReaderTester::BinFields; -using AutoList = BinTokenReaderTester::AutoList; -using AutoTaggedTuple = BinTokenReaderTester::AutoTaggedTuple; -using AutoTuple = BinTokenReaderTester::AutoTuple; - -BinTokenReaderTester::BinTokenReaderTester(JSContext* cx, const uint8_t* start, const size_t length) - : cx_(cx) - , start_(start) - , current_(start) - , stop_(start + length) - , latestKnownGoodPos_(0) -{ } - -BinTokenReaderTester::BinTokenReaderTester(JSContext* cx, const Vector& chars) - : cx_(cx) - , start_(chars.begin()) - , current_(chars.begin()) - , stop_(chars.end()) - , latestKnownGoodPos_(0) -{ } - -bool -BinTokenReaderTester::raiseError(const char* description) -{ - MOZ_ASSERT(!cx_->isExceptionPending()); - TokenPos pos = this->pos(); - JS_ReportErrorASCII(cx_, "BinAST parsing error: %s at offsets %u => %u", - description, pos.begin, pos.end); - return false; -} - -bool -BinTokenReaderTester::readBuf(uint8_t* bytes, uint32_t len) -{ - MOZ_ASSERT(!cx_->isExceptionPending()); - MOZ_ASSERT(len > 0); - - if (stop_ < current_ + len) - return raiseError("Buffer exceeds length"); - - for (uint32_t i = 0; i < len; ++i) - *bytes++ = *current_++; - - return true; -} - -bool -BinTokenReaderTester::readByte(uint8_t* byte) -{ - return readBuf(byte, 1); -} - - -// Nullable booleans: -// -// 0 => false -// 1 => true -// 2 => null -bool -BinTokenReaderTester::readMaybeBool(Maybe& result) -{ - updateLatestKnownGood(); - uint8_t byte; - if (!readByte(&byte)) - return false; - - switch (byte) { - case 0: - result = Some(false); - break; - case 1: - result = Some(true); - break; - case 2: - result = Nothing(); - break; - default: - return raiseError("Invalid boolean value"); - } - return true; -} - -bool -BinTokenReaderTester::readBool(bool& out) -{ - Maybe result; - - if (!readMaybeBool(result)) - return false; - - if (result.isNothing()) - return raiseError("Empty boolean value"); - - out = *result; - return true; -} - -// Nullable doubles (little-endian) -// -// 0x7FF0000000000001 (signaling NaN) => null -// anything other 64 bit sequence => IEEE-764 64-bit floating point number -bool -BinTokenReaderTester::readMaybeDouble(Maybe& result) -{ - updateLatestKnownGood(); - - uint8_t bytes[8]; - MOZ_ASSERT(sizeof(bytes) == sizeof(double)); - if (!readBuf(reinterpret_cast(bytes), ArrayLength(bytes))) - return false; - - // Decode little-endian. - const uint64_t asInt = LittleEndian::readUint64(bytes); - - if (asInt == 0x7FF0000000000001) { - result = Nothing(); - } else { - // Canonicalize NaN, just to make sure another form of signalling NaN - // doesn't slip past us. - const double asDouble = CanonicalizeNaN(BitwiseCast(asInt)); - result = Some(asDouble); - } - - return true; -} - -bool -BinTokenReaderTester::readDouble(double& out) -{ - Maybe result; - - if (!readMaybeDouble(result)) - return false; - - if (result.isNothing()) - return raiseError("Empty double value"); - - out = *result; - return true; -} - -// Internal uint32_t -// -// Encoded as 4 bytes, little-endian. -bool -BinTokenReaderTester::readInternalUint32(uint32_t* result) -{ - uint8_t bytes[4]; - MOZ_ASSERT(sizeof(bytes) == sizeof(uint32_t)); - if (!readBuf(bytes, 4)) - return false; - - // Decode little-endian. - *result = LittleEndian::readUint32(bytes); - - return true; -} - - - -// Nullable strings: -// - "" (not counted in byte length) -// - byte length (not counted in byte length) -// - bytes (UTF-8) -// - "" (not counted in byte length) -// -// The special sequence of bytes `[255, 0]` (which is an invalid UTF-8 sequence) -// is reserved to `null`. -bool -BinTokenReaderTester::readMaybeChars(Maybe& out) -{ - updateLatestKnownGood(); - - if (!readConst("")) - return false; - - // 1. Read byteLength - uint32_t byteLen; - if (!readInternalUint32(&byteLen)) - return false; - - // 2. Reject if we can't read - if (current_ + byteLen < current_) // Check for overflows - return raiseError("Arithmetics overflow: string is too long"); - - if (current_ + byteLen > stop_) - return raiseError("Not enough bytes to read chars"); - - // 3. Check null string (no allocation) - if (byteLen == 2 && *current_ == 255 && *(current_ + 1) == 0) { - // Special case: null string. - out = Nothing(); - current_ += byteLen; - return true; - } - - // 4. Other strings (bytes are copied) - out.emplace(cx_); - if (!out->resize(byteLen)) { - ReportOutOfMemory(cx_); - return false; - } - PodCopy(out->begin(), current_, byteLen); - current_ += byteLen; - - if (!readConst("")) - return false; - - return true; -} - -bool -BinTokenReaderTester::readChars(Chars& out) -{ - Maybe result; - - if (!readMaybeChars(result)) - return false; - - if (result.isNothing()) - return raiseError("Empty string"); - - out = Move(*result); - return true; -} - -template -bool -BinTokenReaderTester::matchConst(const char (&value)[N]) -{ - MOZ_ASSERT(N > 0); - MOZ_ASSERT(value[N - 1] == 0); - MOZ_ASSERT(!cx_->isExceptionPending()); - - if (current_ + N - 1 > stop_) - return false; - - // Perform lookup, without side-effects. - if (!std::equal(current_, current_ + N - 1 /*implicit NUL*/, value)) - return false; - - // Looks like we have a match. Now perform side-effects - current_ += N - 1; - updateLatestKnownGood(); - return true; -} - - -// Untagged tuple: -// - ""; -// - contents (specified by the higher-level grammar); -// - "" -bool -BinTokenReaderTester::enterUntaggedTuple(AutoTuple& guard) -{ - if (!readConst("")) - return false; - - guard.init(); - return true; -} - -template -bool -BinTokenReaderTester::readConst(const char (&value)[N]) -{ - updateLatestKnownGood(); - if (!matchConst(value)) - return raiseError("Could not find expected literal"); - - return true; -} - -// Tagged tuples: -// - "" -// - "" -// - non-null string `name`, followed by \0 (see `readString()`); -// - uint32_t number of fields; -// - array of `number of fields` non-null strings followed each by \0 (see `readString()`); -// - "" -// - content (specified by the higher-level grammar); -// - "" -bool -BinTokenReaderTester::enterTaggedTuple(BinKind& tag, BinFields& fields, AutoTaggedTuple& guard) -{ - // Header - if (!readConst("")) - return false; - - if (!readConst("")) - return false; - - // This would probably be much faster with a HashTable, but we don't - // really care about the speed of BinTokenReaderTester. - do { - -#define FIND_MATCH(CONSTRUCTOR, NAME) \ - if (matchConst(#NAME "\0")) { \ - tag = BinKind::CONSTRUCTOR; \ - break; \ - } // else - - FOR_EACH_BIN_KIND(FIND_MATCH) -#undef FIND_MATCH - - // else - return raiseError("Invalid tag"); - } while(false); - - // Now fields. - uint32_t fieldNum; - if (!readInternalUint32(&fieldNum)) - return false; - - fields.clear(); - if (!fields.reserve(fieldNum)) - return raiseError("Out of memory"); - - for (uint32_t i = 0; i < fieldNum; ++i) { - // This would probably be much faster with a HashTable, but we don't - // really care about the speed of BinTokenReaderTester. - BinField field; - do { - -#define FIND_MATCH(CONSTRUCTOR, NAME) \ - if (matchConst(#NAME "\0")) { \ - field = BinField::CONSTRUCTOR; \ - break; \ - } // else - - FOR_EACH_BIN_FIELD(FIND_MATCH) -#undef FIND_MATCH - - // else - return raiseError("Invalid field"); - } while (false); - - // Make sure that we do not have duplicate fields. - // Search is linear, but again, we don't really care - // in this implementation. - for (uint32_t j = 0; j < i; ++j) { - if (fields[j] == field) { - return raiseError("Duplicate field"); - } - } - - fields.infallibleAppend(field); // Already checked. - } - - // End of header - - if (!readConst("")) - return false; - - // Enter the body. - guard.init(); - return true; -} - -// List: -// -// - "" (not counted in byte length); -// - uint32_t byte length (not counted in byte length); -// - uint32_t number of items; -// - contents (specified by higher-level grammar); -// - "" (not counted in byte length) -// -// The total byte length of `number of items` + `contents` must be `byte length`. -bool -BinTokenReaderTester::enterList(uint32_t& items, AutoList& guard) -{ - if (!readConst("")) - return false; - - uint32_t byteLen; - if (!readInternalUint32(&byteLen)) - return false; - - const uint8_t* stop = current_ + byteLen; - - if (stop < current_) // Check for overflows - return raiseError("Arithmetics overflow: list is too long"); - - if (stop > this->stop_) - return raiseError("Incorrect list length"); - - guard.init(stop); - - if (!readInternalUint32(&items)) - return false; - - return true; -} - -void -BinTokenReaderTester::updateLatestKnownGood() -{ - MOZ_ASSERT(current_ >= start_); - const size_t update = current_ - start_; - MOZ_ASSERT(update >= latestKnownGoodPos_); - latestKnownGoodPos_ = update; -} - -size_t -BinTokenReaderTester::offset() const -{ - return latestKnownGoodPos_; -} - -TokenPos -BinTokenReaderTester::pos() -{ - return pos(latestKnownGoodPos_); -} - -TokenPos -BinTokenReaderTester::pos(size_t start) -{ - TokenPos pos; - pos.begin = start; - pos.end = current_ - start_; - MOZ_ASSERT(pos.end >= pos.begin); - return pos; -} - -void -BinTokenReaderTester::AutoBase::init() -{ - initialized_ = true; -} - -BinTokenReaderTester::AutoBase::AutoBase(BinTokenReaderTester& reader) - : reader_(reader) -{ } - -BinTokenReaderTester::AutoBase::~AutoBase() -{ - // By now, the `AutoBase` must have been deinitialized by calling `done()`. - // The only case in which we can accept not calling `done()` is if we have - // bailed out because of an error. - MOZ_ASSERT_IF(initialized_, reader_.cx_->isExceptionPending()); -} - -bool -BinTokenReaderTester::AutoBase::checkPosition(const uint8_t* expectedEnd) -{ - if (reader_.current_ != expectedEnd) - return reader_.raiseError("Caller did not consume the expected set of bytes"); - - return true; -} - -BinTokenReaderTester::AutoList::AutoList(BinTokenReaderTester& reader) - : AutoBase(reader) -{ } - -void -BinTokenReaderTester::AutoList::init(const uint8_t* expectedEnd) -{ - AutoBase::init(); - this->expectedEnd_ = expectedEnd; -} - -bool -BinTokenReaderTester::AutoList::done() -{ - MOZ_ASSERT(initialized_); - initialized_ = false; - if (reader_.cx_->isExceptionPending()) { - // Already errored, no need to check further. - return false; - } - - // Check that we have consumed the exact number of bytes. - if (!checkPosition(expectedEnd_)) - return false; - - // Check suffix. - if (!reader_.readConst("")) - return false; - - return true; -} - -BinTokenReaderTester::AutoTaggedTuple::AutoTaggedTuple(BinTokenReaderTester& reader) - : AutoBase(reader) -{ } - -bool -BinTokenReaderTester::AutoTaggedTuple::done() -{ - MOZ_ASSERT(initialized_); - initialized_ = false; - if (reader_.cx_->isExceptionPending()) { - // Already errored, no need to check further. - return false; - } - - // Check suffix. - if (!reader_.readConst("")) - return false; - - return true; -} - -BinTokenReaderTester::AutoTuple::AutoTuple(BinTokenReaderTester& reader) - : AutoBase(reader) -{ } - -bool -BinTokenReaderTester::AutoTuple::done() -{ - MOZ_ASSERT(initialized_); - initialized_ = false; - if (reader_.cx_->isExceptionPending()) { - // Already errored, no need to check further. - return false; - } - - // Check suffix. - if (!reader_.readConst("")) - return false; - - return true; -} - -} // namespace frontend -} // namespace js diff --git a/js/src/frontend/BinTokenReaderTester.h b/js/src/frontend/BinTokenReaderTester.h deleted file mode 100644 index 7fa8ffe03b3b..000000000000 --- a/js/src/frontend/BinTokenReaderTester.h +++ /dev/null @@ -1,357 +0,0 @@ -#ifndef frontend_BinTokenReaderTester_h -#define frontend_BinTokenReaderTester_h - -#include "mozilla/Maybe.h" - -#include "frontend/BinToken.h" -#include "frontend/TokenStream.h" - -#include "js/TypeDecls.h" - -#if !defined(NIGHTLY_BUILD) -#error "BinTokenReaderTester.* is designed to help test implementations of successive versions of JS BinaryAST. It is available only on Nightly." -#endif // !defined(NIGHTLY_BUILD) - -namespace js { -namespace frontend { - -using namespace mozilla; -using namespace JS; - -/** - * A token reader for a simple, alternative serialization format for BinAST. - * - * This serialization format, which is also supported by the reference - * implementation of the BinAST compression suite, is designed to be - * mostly human-readable and easy to check for all sorts of deserialization - * errors. While this format is NOT designed to be shipped to end-users, it - * is nevertheless a very useful tool for implementing and testing parsers. - * - * Both the format and the implementation are ridiculously inefficient: - * - * - the underlying format tags almost all its data with e.g. ``, `` - * to aid with detecting offset errors or format error; - * - the underlying format copies list of fields into every single node, instead - * of keeping them once in the header; - * - every kind/field extraction requires memory allocation and plenty of string - * comparisons; - * - ... - * - * This token reader is designed to be API-compatible with the standard, shipped, - * token reader. For these reasons: - * - * - it does not support any form of look ahead, push back; - * - it does not support any form of error recovery. - */ -class MOZ_STACK_CLASS BinTokenReaderTester -{ - public: - // A list of fields, in the order in which they appear in the stream. - using BinFields = Vector; - - // A bunch of characters. At this stage, there is no guarantee on whether - // they are valid UTF-8. Future versions may replace this by slice into - // the buffer. - using Chars = Vector; - - class AutoList; - class AutoTuple; - class AutoTaggedTuple; - - public: - /** - * Construct a token reader. - * - * Does NOT copy the buffer. - */ - BinTokenReaderTester(JSContext* cx, const uint8_t* start, const size_t length); - - /** - * Construct a token reader. - * - * Does NOT copy the buffer. - */ - BinTokenReaderTester(JSContext* cx, const Vector& chars); - - // --- Primitive values. - // - // Note that the underlying format allows for a `null` value for primitive - // values. - // - // Reading will return an error either in case of I/O error or in case of - // a format problem. Reading if an exception in pending is an error and - // will cause assertion failures. Do NOT attempt to read once an exception - // has been cleared: the token reader does NOT support recovery, by design. - - /** - * Read a single `true | false | null` value. - * - * @param out Set to `Nothing` if the data specifies that the value is `null`. - * Otherwise, `Some(true)` or `Some(false)`. - * - * @return false If a boolean could not be read. In this case, an error - * has been raised. - */ - MOZ_MUST_USE bool readMaybeBool(Maybe& out); - MOZ_MUST_USE bool readBool(bool& out); - - /** - * Read a single `number | null` value. - * - * @param out Set to `Nothing` if the data specifies that the value is `null`. - * Otherwise, `Some(x)`, where `x` is a valid `double` (i.e. either a non-NaN - * or a canonical NaN). - * - * @return false If a double could not be read. In this case, an error - * has been raised. - */ - MOZ_MUST_USE bool readMaybeDouble(Maybe& out); - MOZ_MUST_USE bool readDouble(double& out); - - /** - * Read a single `string | null` value. - * - * @param out Set to `Nothing` if the data specifies that the value is `null`. - * Otherwise, `Some(x)`, where `x` is a `string`. - * - * WARNING: At this stage, the `string` encoding has NOT been validated. - * - * @return false If a string could not be read. In this case, an error - * has been raised. - */ - MOZ_MUST_USE bool readMaybeChars(Maybe& out); - MOZ_MUST_USE bool readChars(Chars& out); - - // --- Composite values. - // - // The underlying format does NOT allows for a `null` composite value. - // - // Reading will return an error either in case of I/O error or in case of - // a format problem. Reading from a poisoned tokenizer is an error and - // will cause assertion failures. - - /** - * Start reading a list. - * - * @param length (OUT) The number of elements in the list. - * @param guard (OUT) A guard, ensuring that we read the list correctly. - * - * The `guard` is dedicated to ensuring that reading the list has consumed - * exactly all the bytes from that list. The `guard` MUST therefore be - * destroyed at the point where the caller has reached the end of the list. - * If the caller has consumed too few/too many bytes, this will be reported - * in the call go `guard.done()`. - * - * @return out If the header of the list is invalid. - */ - MOZ_MUST_USE bool enterList(uint32_t& length, AutoList& guard); - - /** - * Start reading a tagged tuple. - * - * @param tag (OUT) The tag of the tuple. - * @param fields (OUT) The ORDERED list of fields encoded in this tuple. - * @param guard (OUT) A guard, ensuring that we read the tagged tuple correctly. - * - * The `guard` is dedicated to ensuring that reading the list has consumed - * exactly all the bytes from that tuple. The `guard` MUST therefore be - * destroyed at the point where the caller has reached the end of the tuple. - * If the caller has consumed too few/too many bytes, this will be reported - * in the call go `guard.done()`. - * - * @return out If the header of the tuple is invalid. - */ - MOZ_MUST_USE bool enterTaggedTuple(BinKind& tag, BinTokenReaderTester::BinFields& fields, AutoTaggedTuple& guard); - - /** - * Start reading an untagged tuple. - * - * @param guard (OUT) A guard, ensuring that we read the tuple correctly. - * - * The `guard` is dedicated to ensuring that reading the list has consumed - * exactly all the bytes from that tuple. The `guard` MUST therefore be - * destroyed at the point where the caller has reached the end of the tuple. - * If the caller has consumed too few/too many bytes, this will be reported - * in the call go `guard.done()`. - * - * @return out If the header of the tuple is invalid. - */ - MOZ_MUST_USE bool enterUntaggedTuple(AutoTuple& guard); - - /** - * Return the position of the latest token. - */ - TokenPos pos(); - TokenPos pos(size_t startOffset); - size_t offset() const; - - /** - * Raise an error. - * - * Once `raiseError` has been called, the tokenizer is poisoned. - */ - MOZ_MUST_USE bool raiseError(const char* description); - - /** - * Poison this tokenizer. - */ - void poison(); - - private: - /** - * Read a single byte. - */ - MOZ_MUST_USE bool readByte(uint8_t* byte); - - /** - * Read several bytes. - * - * If there is not enough data, or if the tokenizer has previously been - * poisoned, return `false` and report an exception. - */ - MOZ_MUST_USE bool readBuf(uint8_t* bytes, uint32_t len); - - /** - * Read a single uint32_t. - */ - MOZ_MUST_USE bool readInternalUint32(uint32_t*); - - /** - * Read a sequence of chars, ensuring that they match an expected - * sequence of chars. - * - * @param value The sequence of chars to expect, NUL-terminated. The NUL - * is not expected in the stream. - */ - template - MOZ_MUST_USE bool readConst(const char (&value)[N]); - - /** - * Read a sequence of chars, consuming the bytes only if they match an expected - * sequence of chars. - * - * @param value The sequence of chars to expect, NUL-terminated. The NUL - * is not expected in the stream. - * @return true if `value` (minus NUL) represents the next few chars in the - * internal buffer, false otherwise. If `true`, the chars are consumed, - * otherwise there is no side-effect. - */ - template - MOZ_MUST_USE bool matchConst(const char (&value)[N]); - - /** - * Update the "latest known good" position, which is used during error - * reporting. - */ - void updateLatestKnownGood(); - - private: - JSContext* cx_; - - // `true` if we have encountered an error. Errors are non recoverable. - // Attempting to read from a poisoned tokenizer will cause assertion errors. - bool poisoned_; - - // The first byte of the buffer. Not owned. - const uint8_t* start_; - - // The current position. - const uint8_t* current_; - - // The last+1 byte of the buffer. - const uint8_t* stop_; - - - // Latest known good position. Used for error reporting. - size_t latestKnownGoodPos_; - - BinTokenReaderTester(const BinTokenReaderTester&) = delete; - BinTokenReaderTester(BinTokenReaderTester&&) = delete; - BinTokenReaderTester& operator=(BinTokenReaderTester&) = delete; - - public: - // The following classes are used whenever we encounter a tuple/tagged tuple/list - // to make sure that: - // - // - if the construct "knows" its byte length, we have exactly consumed all - // the bytes (otherwise, this means that the file is corrupted, perhaps on - // purpose, so we need to reject the stream); - // - if the construct has a footer, once we are done reading it, we have - // reached the footer (this is to aid with debugging). - // - // In either case, the caller MUST call method `done()` of the guard once - // it is done reading the tuple/tagged tuple/list, to report any pending error. - - // Base class used by other Auto* classes. - class MOZ_STACK_CLASS AutoBase - { - protected: - explicit AutoBase(BinTokenReaderTester& reader); - ~AutoBase(); - - // Raise an error if we are not in the expected position. - MOZ_MUST_USE bool checkPosition(const uint8_t* expectedPosition); - - friend BinTokenReaderTester; - void init(); - - // Set to `true` if `init()` has been called. Reset to `false` once - // all conditions have been checked. - bool initialized_; - BinTokenReaderTester& reader_; - }; - - // Guard class used to ensure that `enterList` is used properly. - class MOZ_STACK_CLASS AutoList : public AutoBase - { - public: - explicit AutoList(BinTokenReaderTester& reader); - - // Check that we have properly read to the end of the list. - MOZ_MUST_USE bool done(); - protected: - friend BinTokenReaderTester; - void init(const uint8_t* expectedEnd); - private: - const uint8_t* expectedEnd_; - }; - - // Guard class used to ensure that `enterTaggedTuple` is used properly. - class MOZ_STACK_CLASS AutoTaggedTuple : public AutoBase - { - public: - explicit AutoTaggedTuple(BinTokenReaderTester& reader); - - // Check that we have properly read to the end of the tuple. - MOZ_MUST_USE bool done(); - }; - - // Guard class used to ensure that `readTuple` is used properly. - class MOZ_STACK_CLASS AutoTuple : public AutoBase - { - public: - explicit AutoTuple(BinTokenReaderTester& reader); - - // Check that we have properly read to the end of the tuple. - MOZ_MUST_USE bool done(); - }; - - // Compare a `Chars` and a string literal (ONLY a string literal). - template - static bool equals(const Chars& left, const char (&right)[N]) { - MOZ_ASSERT(N > 0); - MOZ_ASSERT(right[N - 1] == 0); - if (left.length() + 1 /* implicit NUL */ != N) - return false; - - if (!std::equal(left.begin(), left.end(), right)) - return false; - - return true; - } -}; - -} // namespace frontend -} // namespace js - -#endif // frontend_BinTokenReaderTester_h diff --git a/js/src/frontend/BytecodeCompiler.h b/js/src/frontend/BytecodeCompiler.h index 44142cb2c0df..82ea548279cc 100644 --- a/js/src/frontend/BytecodeCompiler.h +++ b/js/src/frontend/BytecodeCompiler.h @@ -124,14 +124,6 @@ IsKeyword(JSLinearString* str); void TraceParser(JSTracer* trc, JS::AutoGCRooter* parser); -#if defined(JS_BUILD_BINAST) - -/* Trace all GC things reachable from binjs parser. Defined in BinSource.cpp. */ -void -TraceBinParser(JSTracer* trc, JS::AutoGCRooter* parser); - -#endif // defined(JS_BUILD_BINAST) - class MOZ_STACK_CLASS AutoFrontendTraceLog { #ifdef JS_TRACE_LOGGING diff --git a/js/src/frontend/FullParseHandler.h b/js/src/frontend/FullParseHandler.h index fa16f43ff5de..9824d6c5e101 100644 --- a/js/src/frontend/FullParseHandler.h +++ b/js/src/frontend/FullParseHandler.h @@ -21,13 +21,6 @@ class RegExpObject; namespace frontend { -enum class SourceKind { - // We are parsing from a text source (Parser.h) - Text, - // We are parsing from a binary source (BinSource.h) - Binary, -}; - // Parse handler used when generating a full parse tree for all code which the // parser encounters. class FullParseHandler @@ -48,8 +41,6 @@ class FullParseHandler size_t lazyInnerFunctionIndex; size_t lazyClosedOverBindingIndex; - const SourceKind sourceKind_; - public: /* new_ methods for creating parse nodes. These report OOM on context. */ JS_DECLARE_NEW_METHODS(new_, allocParseNode, inline) @@ -77,24 +68,15 @@ class FullParseHandler return node->isInParens() && (node->isKind(PNK_OBJECT) || node->isKind(PNK_ARRAY)); } - FullParseHandler(JSContext* cx, LifoAlloc& alloc, LazyScript* lazyOuterFunction, - SourceKind kind = SourceKind::Text) + FullParseHandler(JSContext* cx, LifoAlloc& alloc, LazyScript* lazyOuterFunction) : allocator(cx, alloc), lazyOuterFunction_(cx, lazyOuterFunction), lazyInnerFunctionIndex(0), - lazyClosedOverBindingIndex(0), - sourceKind_(SourceKind::Text) + lazyClosedOverBindingIndex(0) {} static ParseNode* null() { return nullptr; } - // The FullParseHandler may be used to create nodes for text sources - // (from Parser.h) or for binary sources (from BinSource.h). In the latter - // case, some common assumptions on offsets are incorrect, e.g. in `a + b`, - // `a`, `b` and `+` may be stored in any order. We use `sourceKind()` - // to determine whether we need to check these assumptions. - SourceKind sourceKind() const { return sourceKind_; } - ParseNode* freeTree(ParseNode* pn) { return allocator.freeTree(pn); } void prepareNodeForMutation(ParseNode* pn) { return allocator.prepareNodeForMutation(pn); } @@ -248,7 +230,8 @@ class FullParseHandler ParseNode* elision = new_(PNK_ELISION, pos); if (!elision) return false; - addList(/* list = */ literal, /* child = */ elision); + + literal->append(elision); literal->pn_xflags |= PNX_ARRAYHOLESPREAD | PNX_NONCONST; return true; } @@ -260,7 +243,8 @@ class FullParseHandler ParseNode* spread = newSpread(begin, inner); if (!spread) return false; - addList(/* list = */ literal, /* child = */ spread); + + literal->append(spread); literal->pn_xflags |= PNX_ARRAYHOLESPREAD | PNX_NONCONST; return true; } @@ -270,7 +254,8 @@ class FullParseHandler if (!element->isConstant()) literal->pn_xflags |= PNX_NONCONST; - addList(/* list = */ literal, /* child = */ element); + + literal->append(element); } ParseNode* newCall(const TokenPos& pos) { @@ -309,9 +294,7 @@ class FullParseHandler ParseNode* newSuperBase(ParseNode* thisName, const TokenPos& pos) { return new_(PNK_SUPERBASE, pos, thisName); } - ParseNode* newCatchBlock(ParseNode* catchName, ParseNode* catchGuard, ParseNode* catchBody) { - return new_(PNK_CATCH, catchName, catchGuard, catchBody); - } + MOZ_MUST_USE bool addPrototypeMutation(ParseNode* literal, uint32_t begin, ParseNode* expr) { MOZ_ASSERT(literal->isKind(PNK_OBJECT)); MOZ_ASSERT(literal->isArity(PN_LIST)); @@ -323,19 +306,22 @@ class FullParseHandler ParseNode* mutation = newUnary(PNK_MUTATEPROTO, begin, expr); if (!mutation) return false; - addList(/* list = */ literal, /* child = */ mutation); + literal->append(mutation); return true; } MOZ_MUST_USE bool addPropertyDefinition(ParseNode* literal, ParseNode* key, ParseNode* val) { MOZ_ASSERT(literal->isKind(PNK_OBJECT)); MOZ_ASSERT(literal->isArity(PN_LIST)); - MOZ_ASSERT(isUsableAsObjectPropertyName(key)); + MOZ_ASSERT(key->isKind(PNK_NUMBER) || + key->isKind(PNK_OBJECT_PROPERTY_NAME) || + key->isKind(PNK_STRING) || + key->isKind(PNK_COMPUTED_NAME)); ParseNode* propdef = newBinary(PNK_COLON, key, val, JSOP_INITPROP); if (!propdef) return false; - addList(/* list = */ literal, /* child = */ propdef); + literal->append(propdef); return true; } @@ -350,7 +336,7 @@ class FullParseHandler ParseNode* propdef = newBinary(PNK_SHORTHAND, name, expr, JSOP_INITPROP); if (!propdef) return false; - addList(/* list = */ literal, /* child = */ propdef); + literal->append(propdef); return true; } @@ -362,21 +348,26 @@ class FullParseHandler ParseNode* spread = newSpread(begin, inner); if (!spread) return false; - addList(/* list = */ literal, /* child = */ spread); + literal->append(spread); return true; } MOZ_MUST_USE bool addObjectMethodDefinition(ParseNode* literal, ParseNode* key, ParseNode* fn, AccessorType atype) { + MOZ_ASSERT(literal->isKind(PNK_OBJECT)); MOZ_ASSERT(literal->isArity(PN_LIST)); - literal->pn_xflags |= PNX_NONCONST; + MOZ_ASSERT(key->isKind(PNK_NUMBER) || + key->isKind(PNK_OBJECT_PROPERTY_NAME) || + key->isKind(PNK_STRING) || + key->isKind(PNK_COMPUTED_NAME)); - ParseNode* propdef = newObjectMethodOrPropertyDefinition(key, fn, atype); + ParseNode* propdef = newBinary(PNK_COLON, key, fn, AccessorTypeToJSOp(atype)); if (!propdef) return false; - addList(/* list = */ literal, /* child = */ propdef); + literal->append(propdef); + literal->pn_xflags |= PNX_NONCONST; return true; } @@ -384,12 +375,15 @@ class FullParseHandler AccessorType atype, bool isStatic) { MOZ_ASSERT(methodList->isKind(PNK_CLASSMETHODLIST)); - MOZ_ASSERT(isUsableAsObjectPropertyName(key)); + MOZ_ASSERT(key->isKind(PNK_NUMBER) || + key->isKind(PNK_OBJECT_PROPERTY_NAME) || + key->isKind(PNK_STRING) || + key->isKind(PNK_COMPUTED_NAME)); ParseNode* classMethod = new_(key, fn, AccessorTypeToJSOp(atype), isStatic); if (!classMethod) return false; - addList(/* list = */ methodList, /* child = */ classMethod); + methodList->append(classMethod); return true; } @@ -428,7 +422,7 @@ class FullParseHandler void addStatementToList(ParseNode* list, ParseNode* stmt) { MOZ_ASSERT(list->isKind(PNK_STATEMENTLIST)); - addList(/* list = */ list, /* child = */ stmt); + list->append(stmt); if (isFunctionStmt(stmt)) { // PNX_FUNCDEFS notifies the emitter that the block contains @@ -448,16 +442,12 @@ class FullParseHandler MOZ_ASSERT(casepn->isKind(PNK_CASE)); MOZ_ASSERT(casepn->pn_right->isKind(PNK_STATEMENTLIST)); - addList(/* list = */ list, /* child = */ casepn); + list->append(casepn); if (casepn->pn_right->pn_xflags & PNX_FUNCDEFS) list->pn_xflags |= PNX_FUNCDEFS; } - MOZ_MUST_USE inline bool addCatchBlock(ParseNode* catchList, ParseNode* lexicalScope, - ParseNode* catchName, ParseNode* catchGuard, - ParseNode* catchBody); - MOZ_MUST_USE bool prependInitialYield(ParseNode* stmtList, ParseNode* genName) { MOZ_ASSERT(stmtList->isKind(PNK_STATEMENTLIST)); MOZ_ASSERT(stmtList->isArity(PN_LIST)); @@ -469,7 +459,8 @@ class FullParseHandler MOZ_ASSERT(genName->getOp() == JSOP_GETNAME); genName->setOp(JSOP_SETNAME); - ParseNode* genInit = newAssignment(PNK_ASSIGN, /* lhs = */ genName, /* rhs = */ makeGen); + + ParseNode* genInit = newBinary(PNK_ASSIGN, genName, makeGen); if (!genInit) return false; @@ -680,20 +671,6 @@ class FullParseHandler !node->pn_funbox->isArrow(); } - ParseNode* newObjectMethodOrPropertyDefinition(ParseNode* key, ParseNode* fn, AccessorType atype) { - MOZ_ASSERT(isUsableAsObjectPropertyName(key)); - - return newBinary(PNK_COLON, key, fn, AccessorTypeToJSOp(atype)); - } - - bool setComprehensionLambdaBody(ParseNode* pn, ParseNode* body) { - MOZ_ASSERT(body->isKind(PNK_STATEMENTLIST)); - ParseNode* paramsBody = newList(PNK_PARAMSBODY, body); - if (!paramsBody) - return false; - setFunctionFormalParametersAndBody(pn, paramsBody); - return true; - } void setFunctionFormalParametersAndBody(ParseNode* funcNode, ParseNode* kid) { MOZ_ASSERT_IF(kid, kid->isKind(PNK_PARAMSBODY)); funcNode->pn_body = kid; @@ -704,11 +681,11 @@ class FullParseHandler funbox->functionNode = pn; } void addFunctionFormalParameter(ParseNode* pn, ParseNode* argpn) { - addList(/* list = */ pn->pn_body, /* child = */ argpn); + pn->pn_body->append(argpn); } void setFunctionBody(ParseNode* fn, ParseNode* body) { MOZ_ASSERT(fn->pn_body->isKind(PNK_PARAMSBODY)); - addList(/* list = */ fn->pn_body, /* child = */ body); + fn->pn_body->append(body); } ParseNode* newModule(const TokenPos& pos) { @@ -724,7 +701,7 @@ class FullParseHandler if (!newExpr) return nullptr; - addList(/* list = */ newExpr, /* child = */ ctor); + addList(newExpr, ctor); return newExpr; } @@ -767,13 +744,6 @@ class FullParseHandler return node->isKind(PNK_SUPERBASE); } - bool isUsableAsObjectPropertyName(ParseNode* node) { - return node->isKind(PNK_NUMBER) - || node->isKind(PNK_OBJECT_PROPERTY_NAME) - || node->isKind(PNK_STRING) - || node->isKind(PNK_COMPUTED_NAME); - } - inline MOZ_MUST_USE bool finishInitializerAssignment(ParseNode* pn, ParseNode* init); void setBeginPosition(ParseNode* pn, ParseNode* oth) { @@ -835,10 +805,7 @@ class FullParseHandler } void addList(ParseNode* list, ParseNode* kid) { - if (sourceKind_ == SourceKind::Text) - list->append(kid); - else - list->appendWithoutOrderAssumption(kid); + list->append(kid); } void setOp(ParseNode* pn, JSOp op) { @@ -912,19 +879,6 @@ class FullParseHandler } }; -inline bool -FullParseHandler::addCatchBlock(ParseNode* catchList, ParseNode* lexicalScope, - ParseNode* catchName, ParseNode* catchGuard, - ParseNode* catchBody) -{ - ParseNode* catchpn = newCatchBlock(catchName, catchGuard, catchBody); - if (!catchpn) - return false; - addList(/* list = */ catchList, /* child = */ lexicalScope); - lexicalScope->setScopeBody(catchpn); - return true; -} - inline bool FullParseHandler::setLastFunctionFormalParameterDefault(ParseNode* funcpn, ParseNode* defaultValue) diff --git a/js/src/frontend/ParseContext-inl.h b/js/src/frontend/ParseContext-inl.h deleted file mode 100644 index be2d22b53b47..000000000000 --- a/js/src/frontend/ParseContext-inl.h +++ /dev/null @@ -1,96 +0,0 @@ -#ifndef frontend_ParseContext_inl_h -#define frontend_ParseContext_inl_h - -#include "frontend/ParseContext.h" - -namespace js { -namespace frontend { - -template <> -inline bool -ParseContext::Statement::is() const -{ - return kind_ == StatementKind::Label; -} - -template <> -inline bool -ParseContext::Statement::is() const -{ - return kind_ == StatementKind::Class; -} - - -inline JS::Result -ParseContext::checkBreakStatement(PropertyName* label) -{ - // Labeled 'break' statements target the nearest labeled statements (could - // be any kind) with the same label. Unlabeled 'break' statements target - // the innermost loop or switch statement. - if (label) { - auto hasSameLabel = [&label](ParseContext::LabelStatement* stmt) { - MOZ_ASSERT(stmt); - return stmt->label() == label; - }; - - if (!findInnermostStatement(hasSameLabel)) - return mozilla::Err(ParseContext::BreakStatementError::LabelNotFound); - - } else { - auto isBreakTarget = [](ParseContext::Statement* stmt) { - return StatementKindIsUnlabeledBreakTarget(stmt->kind()); - }; - - if (!findInnermostStatement(isBreakTarget)) - return mozilla::Err(ParseContext::BreakStatementError::ToughBreak); - } - - return Ok(); -} - -inline JS::Result -ParseContext::checkContinueStatement(PropertyName* label) -{ - // Labeled 'continue' statements target the nearest labeled loop - // statements with the same label. Unlabeled 'continue' statements target - // the innermost loop statement. - auto isLoop = [](ParseContext::Statement* stmt) { - MOZ_ASSERT(stmt); - return StatementKindIsLoop(stmt->kind()); - }; - - if (!label) { - // Unlabeled statement: we target the innermost loop, so make sure that - // there is an innermost loop. - if (!findInnermostStatement(isLoop)) - return mozilla::Err(ParseContext::ContinueStatementError::NotInALoop); - return Ok(); - } - - // Labeled statement: targest the nearest labeled loop with the same label. - ParseContext::Statement* stmt = innermostStatement(); - bool foundLoop = false; // True if we have encountered at least one loop. - - for (;;) { - stmt = ParseContext::Statement::findNearest(stmt, isLoop); - if (!stmt) - return foundLoop ? mozilla::Err(ParseContext::ContinueStatementError::LabelNotFound) - : mozilla::Err(ParseContext::ContinueStatementError::NotInALoop); - - foundLoop = true; - - // Is it labeled by our label? - stmt = stmt->enclosing(); - while (stmt && stmt->is()) { - if (stmt->as().label() == label) - return Ok(); - - stmt = stmt->enclosing(); - } - } -} - -} -} - -#endif // frontend_ParseContext_inl_h diff --git a/js/src/frontend/ParseContext.h b/js/src/frontend/ParseContext.h index 04e457f0f8fa..53dee523b115 100644 --- a/js/src/frontend/ParseContext.h +++ b/js/src/frontend/ParseContext.h @@ -7,11 +7,7 @@ #ifndef frontend_ParseContext_h #define frontend_ParseContext_h -#include "ds/Nestable.h" - -#include "frontend/BytecodeCompiler.h" #include "frontend/ErrorReporter.h" -#include "frontend/SharedContext.h" namespace js { @@ -293,10 +289,6 @@ class ParseContext : public Nestable return declared_.acquire(pc->sc()->context); } - bool isEmpty() const { - return declared_->all().empty(); - } - DeclaredNamePtr lookupDeclaredName(JSAtom* name) { return declared_->lookup(name); } @@ -410,7 +402,6 @@ class ParseContext : public Nestable { public: explicit inline VarScope(ParserBase* parser); - explicit inline VarScope(JSContext* cx, ParseContext* pc, UsedNameTracker& usedNames); }; private: @@ -526,7 +517,6 @@ class ParseContext : public Nestable return sc_; } - // `true` if we are in the body of a function definition. bool isFunctionBox() const { return sc_->isFunctionBox(); } @@ -588,22 +578,6 @@ class ParseContext : public Nestable return *closedOverBindingsForLazy_; } - enum class BreakStatementError { - // Unlabeled break must be inside loop or switch. - ToughBreak, - LabelNotFound, - }; - - // Return Err(true) if we have encountered at least one loop, - // Err(false) otherwise. - MOZ_MUST_USE inline JS::Result checkBreakStatement(PropertyName* label); - - enum class ContinueStatementError { - NotInALoop, - LabelNotFound, - }; - MOZ_MUST_USE inline JS::Result checkContinueStatement(PropertyName* label); - // True if we are at the topmost level of a entire script or function body. // For example, while parsing this code we would encounter f1 and f2 at // body level, but we would not encounter f3 or f4 at body level: diff --git a/js/src/frontend/ParseNode.h b/js/src/frontend/ParseNode.h index f5e0e5fe30d7..d068f5580f4d 100644 --- a/js/src/frontend/ParseNode.h +++ b/js/src/frontend/ParseNode.h @@ -13,27 +13,6 @@ #include "frontend/TokenStream.h" #include "vm/Printer.h" -// A few notes on lifetime of ParseNode trees: -// -// - All the `ParseNode` instances MUST BE explicitly allocated in the context's `LifoAlloc`. -// This is typically implemented by the `FullParseHandler` or it can be reimplemented with -// a custom `new_`. -// -// - The tree is bulk-deallocated when the parser is deallocated. Consequently, references -// to a subtree MUST NOT exist once the parser has been deallocated. -// -// - This bulk-deallocation DOES NOT run destructors. -// -// - Instances of `LexicalScope::Data` MUST BE allocated as instances of `ParseNode`, in the same -// `LifoAlloc`. They are bulk-deallocated alongside the rest of the tree. -// -// - Instances of `JSAtom` used throughout the tree (including instances of `PropertyName`) MUST -// be kept alive by the parser. This is done through an instance of `AutoKeepAtoms` held by -// the parser. -// -// - Once the parser is deallocated, the `JSAtom` instances MAY be garbage-collected. - - namespace js { namespace frontend { @@ -619,7 +598,6 @@ class ParseNode appendOrCreateList(ParseNodeKind kind, ParseNode* left, ParseNode* right, FullParseHandler* handler, ParseContext* pc); - // include "ParseNode-inl.h" for these methods. inline PropertyName* name() const; inline JSAtom* atom() const; @@ -753,12 +731,8 @@ class ParseNode } void append(ParseNode* pn) { - MOZ_ASSERT(pn->pn_pos.begin >= pn_pos.begin); - appendWithoutOrderAssumption(pn); - } - - void appendWithoutOrderAssumption(ParseNode* pn) { MOZ_ASSERT(pn_arity == PN_LIST); + MOZ_ASSERT(pn->pn_pos.begin >= pn_pos.begin); pn_pos.end = pn->pn_pos.end; *pn_tail = pn; pn_tail = &pn->pn_next; diff --git a/js/src/frontend/Parser.cpp b/js/src/frontend/Parser.cpp index c89639b50ff9..1bca2fb6524e 100644 --- a/js/src/frontend/Parser.cpp +++ b/js/src/frontend/Parser.cpp @@ -43,7 +43,6 @@ #include "jsatominlines.h" #include "jsscriptinlines.h" -#include "frontend/ParseContext-inl.h" #include "frontend/ParseNode-inl.h" #include "vm/EnvironmentObject-inl.h" @@ -1720,7 +1719,7 @@ Parser::checkStatementsEOF() } template -typename Scope::Data* +static typename Scope::Data* NewEmptyBindingData(JSContext* cx, LifoAlloc& alloc, uint32_t numBindings) { size_t allocSize = Scope::sizeOfData(numBindings); @@ -1734,9 +1733,8 @@ NewEmptyBindingData(JSContext* cx, LifoAlloc& alloc, uint32_t numBindings) } Maybe -NewGlobalScopeData(JSContext* context, ParseContext::Scope& scope, LifoAlloc& alloc, ParseContext* pc) +ParserBase::newGlobalScopeData(ParseContext::Scope& scope) { - Vector funs(context); Vector vars(context); Vector lets(context); @@ -1799,14 +1797,8 @@ NewGlobalScopeData(JSContext* context, ParseContext::Scope& scope, LifoAlloc& al return Some(bindings); } -Maybe -ParserBase::newGlobalScopeData(ParseContext::Scope& scope) -{ - return NewGlobalScopeData(context, scope, alloc, pc); -} - Maybe -NewModuleScopeData(JSContext* context, ParseContext::Scope& scope, LifoAlloc& alloc, ParseContext* pc) +ParserBase::newModuleScopeData(ParseContext::Scope& scope) { Vector imports(context); Vector vars(context); @@ -1871,14 +1863,8 @@ NewModuleScopeData(JSContext* context, ParseContext::Scope& scope, LifoAlloc& al return Some(bindings); } -Maybe -ParserBase::newModuleScopeData(ParseContext::Scope& scope) -{ - return NewModuleScopeData(context, scope, alloc, pc); -} - Maybe -NewEvalScopeData(JSContext* context, ParseContext::Scope& scope, LifoAlloc& alloc, ParseContext* pc) +ParserBase::newEvalScopeData(ParseContext::Scope& scope) { Vector funs(context); Vector vars(context); @@ -1921,14 +1907,8 @@ NewEvalScopeData(JSContext* context, ParseContext::Scope& scope, LifoAlloc& allo return Some(bindings); } -Maybe -ParserBase::newEvalScopeData(ParseContext::Scope& scope) -{ - return NewEvalScopeData(context, scope, alloc, pc); -} - Maybe -NewFunctionScopeData(JSContext* context, ParseContext::Scope& scope, bool hasParameterExprs, LifoAlloc& alloc, ParseContext* pc) +ParserBase::newFunctionScopeData(ParseContext::Scope& scope, bool hasParameterExprs) { Vector positionalFormals(context); Vector formals(context); @@ -2021,14 +2001,8 @@ NewFunctionScopeData(JSContext* context, ParseContext::Scope& scope, bool hasPar return Some(bindings); } -Maybe -ParserBase::newFunctionScopeData(ParseContext::Scope& scope, bool hasParameterExprs) -{ - return NewFunctionScopeData(context, scope, hasParameterExprs, alloc, pc); -} - Maybe -NewVarScopeData(JSContext* context, ParseContext::Scope& scope, LifoAlloc& alloc, ParseContext* pc) +ParserBase::newVarScopeData(ParseContext::Scope& scope) { Vector vars(context); @@ -2059,14 +2033,8 @@ NewVarScopeData(JSContext* context, ParseContext::Scope& scope, LifoAlloc& alloc return Some(bindings); } -Maybe -ParserBase::newVarScopeData(ParseContext::Scope& scope) -{ - return NewVarScopeData(context, scope, alloc, pc); -} - Maybe -NewLexicalScopeData(JSContext* context, ParseContext::Scope& scope, LifoAlloc& alloc, ParseContext* pc) +ParserBase::newLexicalScopeData(ParseContext::Scope& scope) { Vector lets(context); Vector consts(context); @@ -2116,12 +2084,6 @@ NewLexicalScopeData(JSContext* context, ParseContext::Scope& scope, LifoAlloc& a return Some(bindings); } -Maybe -ParserBase::newLexicalScopeData(ParseContext::Scope& scope) -{ - return NewLexicalScopeData(context, scope, alloc, pc); -} - template SyntaxParseHandler::Node Parser::finishLexicalScope(ParseContext::Scope& scope, Node body) @@ -6586,16 +6548,44 @@ GeneralParser::continueStatement(YieldHandling yieldHandlin if (!matchLabel(yieldHandling, &label)) return null(); - auto validity = pc->checkContinueStatement(label); - if (validity.isErr()) { - switch (validity.unwrapErr()) { - case ParseContext::ContinueStatementError::NotInALoop: - errorAt(begin, JSMSG_BAD_CONTINUE); - break; - case ParseContext::ContinueStatementError::LabelNotFound: - error(JSMSG_LABEL_NOT_FOUND); - break; + // Labeled 'continue' statements target the nearest labeled loop + // statements with the same label. Unlabeled 'continue' statements target + // the innermost loop statement. + auto isLoop = [](ParseContext::Statement* stmt) { + return StatementKindIsLoop(stmt->kind()); + }; + + if (label) { + ParseContext::Statement* stmt = pc->innermostStatement(); + bool foundLoop = false; + + for (;;) { + stmt = ParseContext::Statement::findNearest(stmt, isLoop); + if (!stmt) { + if (foundLoop) + error(JSMSG_LABEL_NOT_FOUND); + else + errorAt(begin, JSMSG_BAD_CONTINUE); + return null(); + } + + foundLoop = true; + + // Is it labeled by our label? + bool foundTarget = false; + stmt = stmt->enclosing(); + while (stmt && stmt->is()) { + if (stmt->as().label() == label) { + foundTarget = true; + break; + } + stmt = stmt->enclosing(); + } + if (foundTarget) + break; } + } else if (!pc->findInnermostStatement(isLoop)) { + error(JSMSG_BAD_CONTINUE); return null(); } diff --git a/js/src/frontend/Parser.h b/js/src/frontend/Parser.h index eaf500103650..f69b25109cb7 100644 --- a/js/src/frontend/Parser.h +++ b/js/src/frontend/Parser.h @@ -49,6 +49,20 @@ public: { } }; +template <> +inline bool +ParseContext::Statement::is() const +{ + return kind_ == StatementKind::Label; +} + +template <> +inline bool +ParseContext::Statement::is() const +{ + return kind_ == StatementKind::Class; +} + template inline T& ParseContext::Statement::as() @@ -257,13 +271,6 @@ ParseContext::VarScope::VarScope(ParserBase* parser) useAsVarScope(parser->pc); } -inline -ParseContext::VarScope::VarScope(JSContext* cx, ParseContext* pc, UsedNameTracker& usedNames) - : Scope(cx, pc, usedNames) -{ - useAsVarScope(pc); -} - enum class ExpressionClosure { Allowed, Forbidden }; template @@ -1282,21 +1289,6 @@ class MOZ_STACK_CLASS AutoAwaitIsKeyword } }; -template -extern typename Scope::Data* -NewEmptyBindingData(JSContext* cx, LifoAlloc& alloc, uint32_t numBindings); - -Maybe -NewGlobalScopeData(JSContext* context, ParseContext::Scope& scope, LifoAlloc& alloc, ParseContext* pc); -Maybe -NewEvalScopeData(JSContext* context, ParseContext::Scope& scope, LifoAlloc& alloc, ParseContext* pc); -Maybe -NewFunctionScopeData(JSContext* context, ParseContext::Scope& scope, bool hasParameterExprs, LifoAlloc& alloc, ParseContext* pc); -Maybe -NewVarScopeData(JSContext* context, ParseContext::Scope& scope, LifoAlloc& alloc, ParseContext* pc); -Maybe -NewLexicalScopeData(JSContext* context, ParseContext::Scope& scope, LifoAlloc& alloc, ParseContext* pc); - } /* namespace frontend */ } /* namespace js */ diff --git a/js/src/frontend/SharedContext.h b/js/src/frontend/SharedContext.h index 56fd3bd5c231..508a7f645ae8 100644 --- a/js/src/frontend/SharedContext.h +++ b/js/src/frontend/SharedContext.h @@ -15,14 +15,12 @@ #include "builtin/ModuleObject.h" #include "ds/InlineTable.h" -#include "frontend/ParseNode.h" #include "frontend/TokenStream.h" #include "vm/EnvironmentObject.h" namespace js { namespace frontend { -class ParseContext; class ParseNode; enum class StatementKind : uint8_t diff --git a/js/src/gc/RootMarking.cpp b/js/src/gc/RootMarking.cpp index ac9e2a2f0a58..c0ee94921941 100644 --- a/js/src/gc/RootMarking.cpp +++ b/js/src/gc/RootMarking.cpp @@ -153,12 +153,6 @@ AutoGCRooter::trace(JSTracer* trc) frontend::TraceParser(trc, this); return; -#if defined(JS_BUILD_BINAST) - case BINPARSER: - frontend::TraceBinParser(trc, this); - return; -#endif // defined(JS_BUILD_BINAST) - case VALARRAY: { /* * We don't know the template size parameter, but we can safely treat it diff --git a/js/src/irregexp/RegExpEngine.cpp b/js/src/irregexp/RegExpEngine.cpp index a34b846cbfcc..10fe9a069ae7 100644 --- a/js/src/irregexp/RegExpEngine.cpp +++ b/js/src/irregexp/RegExpEngine.cpp @@ -2323,8 +2323,7 @@ BoyerMoorePositionInfo::SetInterval(const Interval& interval) } return; } - MOZ_ASSERT(interval.from() <= interval.to()); - for (int i = interval.from(); i != interval.to() + 1; i++) { + for (int i = interval.from(); i <= interval.to(); i++) { int mod_character = (i & kMask); if (!map_[mod_character]) { map_count_++; diff --git a/js/src/jsapi-tests/binast/parser/tester/StrictEquality-001.binjs b/js/src/jsapi-tests/binast/parser/tester/StrictEquality-001.binjs deleted file mode 100644 index 925b6d52d433c088dc5154744a079d04e936aeef..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7935 zcmeHM%We}f6rJ*B1MFcj3l>GFFBV8tX;B-32r4NeQN<3qiJOd=&IFIs$FHzu$8Yc# zu;c^Sv0}l!9#8Cvoryb1tJ1P*RF8e1=RSO0;e&oi*DF0rI_qy)++}3nyW)A?ZrnNc zHtUVo&DCZ*?o+R_B=%IoAmQs94?OP!Q(D99aQ zND;0AnFGSi?Yc-Mt@|BlpP_YkYVVq}vhEEKy;gm*@!^SSnX@^{9_vYjdAUr1}ul5Tr5l=l!*{HUE*xYziaSj{1xy38a7~C!Fp>XbKq8 z;kq@3t0WB7QE{RTOH@UkZUBdfzYWSKoG{*^2`|u4lGUjzIi^tobE#B;urlSoaX=GzZOQyP3HxESnx6DsA^}LOz8C- z?1|9IbqAYq98waEt*LX?LfoK-$`GOjm{l+#hNMhm)L4ZbW(+y2A!~f*<6P9_i2$Er zO31d4oX(bYD#|eb972AA#s)(2zDCPWm-`DnY%}NxL~U--?eDPtVtetA&5Mp*NorhK zU>rh!dN^P^nF?pddr350Z1?tTX*?gKv+Qn){3FWBHaO78$BuAAL3@G4@%cimhxe3} zbyAl;Q+xyS8~NU$mBKR(GU2j5D>|3nOJ7gZOAWaDK<}9Kf56JXDQJ=PL)0wn5>vC;|ar>jX?o6Ik&%X;6R}OT5=9K ztTy_w)9Yq$0dt%=R!KsYSu+&`unz#2m_c&TbO3|%^s6iy&~WE!-sb=>$8H^Gb7I_W z`Xuv>jt>WKplp^jSdv;%Iy|9ZMLA>4#Z@lrjPxf!&~z9@nSR-CnKKjEVcJgF!`oL{ zc4?;p&w7bmu97|x-#7mxd`IG&<^1S?JTr#vX#%rPcR#cN z;>ZW!*>w`PPD^OhO`Mv>_IrN6_j~_h@!=pKHLFjsUpr(`kKuE410i%8`6E2HW zju#CGvZ`{A70{U1em+9zA?&jBl6FBF%d+xEbQ|WHt!5|n_Jci?bg_D?Xm>R26WqN_+B03Zq4F3y) zpO-)oIE3oQ?>ff^b^B3|)0Pl9Dm@6+ zTwrEy*UgzmK+vrKn%}P$%@g~`DGSXzaCN(Ju=i!lL}m#f%Sm^Fp{igcHA?qZ0rK4k z2{FfvyO6o(Sg6G6(ih~yudCyNsDWM=-D)$ZB$%kAeCKO%AXl#ffF zsp8t%Ap*0kc0v@aO9qX>K6FcjxludnnI_BB`3+cUq|Q1GF&ky9mqiMCD=1lzMFZ01 zh|yj@OQI?(2|+J1MY`KoAhJNfl%1`GftAd_lr%X3SKxMY7@taBSueH+4R9|MUF%|g z-pydp{anCoQSzF$(>Q7!mR3d=4)+|-Wq3?BNo4+baD9N@13>MMhtQSS&CDwag>>%} zOrC<6gs~{6zeuDezq<4Vf$NaV>}089l>kPR$_9>!35*P_-w@KbVB5rGRe;20XO@2@ zu#WrkUe%?oaLg4z6Btrw_~H{R8?~sQabn2V>%FOBdaPYpW}O01ShQT*Ctwq^dX7!X zaY-~P8+CW;qn+q6#{Z!m9M4$9@4)wnSiRoIag#FQaT~mpj!0vqzz&hQEmiAhW^uKi zpOn;MZuF?NoT{jaG{adFX^awTO}IcCiZw-3A6?YSj6Pefn(j~we`&iUjBC^1RsH}2 C(igV? diff --git a/js/src/jsapi-tests/binast/parser/tester/apply-001-n.js b/js/src/jsapi-tests/binast/parser/tester/apply-001-n.js deleted file mode 100644 index eac0584461e3..000000000000 --- a/js/src/jsapi-tests/binast/parser/tester/apply-001-n.js +++ /dev/null @@ -1,29 +0,0 @@ -/* -*- 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(); - - diff --git a/js/src/jsapi-tests/binast/parser/tester/boolean-001.binjs b/js/src/jsapi-tests/binast/parser/tester/boolean-001.binjs deleted file mode 100644 index a724010a7b3799aefaa8ad782dab6ceca9bd139e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7700 zcmds6&2AGh5MKU4h#!d?a0oXLqAd~!ghC~n76_^WA`u5Jm76umw%c{&b=rnU;URbq zUV$q&E{I29?Dejvv9ocOB!Zr*)b?l3=b3NDvvn~X#B{yhrzBi|$61e)gWzls1iLI8 z1sl!QoA$GImknr8UsZGJag>VnZ+C*=D$J_m_dx?a8*m~cd7oiv6=x^GOcb?e9ET6|;%i~en-D!5Vw`{wyLwLI7T|nE&+;U~W znP6fxpeur9%kMw1H~9;4w~hy#rYQt_TM$7HAPANB(c=HkXl;-a4$&|)6l-7<@5L(oO6l(*?GIu?!0fdUfH%| zDmR%xvM4p1?e5X82p~~{K8lf3va7A~P!OqaI#rjS+XG8RX_4-2wA=$Q8y={a0W~ij zCWGeS6{_40ADOhPo*psl?gxF6gfZ0e`MU!jdqd6`TU7d9`F%c6DR3U|mCwubYZ*R{ zCk3XWMUTe(d0sV$RFh22?Q2(J{1GNt0q&{)*I;dni5jU*^nUG1g=cB2D|nb8$oPyr zI4v(xUqDscOJp5q0A?wqo*UlqjV(+|JiKLY@s17h0F}~IBGBV^jL{AEGhN^BsRSb^)!^~LgY4rTcr|1oMPf^SjOEd&Nr(2`8shCltFdc4< z%1?oJujs3bE5qcS$d*=vq}U>TW@Q)!wSofoq*{4gw|8@80llC91JbjaeG24fG7n!F z@`~2cdaVft6>kPw%if)iW)yZu&jZMtybmoDdgQ=!xw(gTOc6mBs^@8C#x7|>SG0d( zYQlIPc9&(%32zd-Lq!3ZEsuDZAq7ErwZf<9wr`#I6(-(*P4iD&&eld+@*z%-x!#?6 z$kA`rBNHANdep6 diff --git a/js/src/jsapi-tests/binast/parser/tester/boolean-001.js b/js/src/jsapi-tests/binast/parser/tester/boolean-001.js deleted file mode 100644 index d2cea72b2913..000000000000 --- a/js/src/jsapi-tests/binast/parser/tester/boolean-001.js +++ /dev/null @@ -1,47 +0,0 @@ -/* -*- 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(); - diff --git a/js/src/jsapi-tests/binast/parser/tester/boolean-002.binjs b/js/src/jsapi-tests/binast/parser/tester/boolean-002.binjs deleted file mode 100644 index a52b8a39dfdd3439994c3e4fee0861d161194ac1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7749 zcmds6&2AGh5MKU42n6B=mvAdWv;`p{p-_p2AX-H!BB2K^m78^wh3z`>I+XAzybX`R zl>-t7cm~E^?|K@0Q)fvc=qcKG{n_(*=9}?sU5th?-KY;J2{&GI*5~9fI2#1PJ`2ae z=2m;V^R&}rLmJfA)I0S!O2x+4J3(+2-m2s2yM#w%Kc+8eFD9Ibh$RXtG|y@9AxgsI zSlv$Ix z3H=7xOC)r+`KB{3LNCD9w>uB_9^1q$pT}Rz<5Ak(-RicQw%ynvJlzt4GuX`Ba&^d= zU}8L^tIC6S4p#2jYy1Vb%}+y4(-dO8BZ#1f5QED3Xz{-@SQ{jc%~Um`2Y*o$V%Tnv z(7pmTr-E?NrKy-=p@zliW*>iJf)q_{0^$9UBqDX1?qSRgz&hffKCeKQDetlt>)SRd zLHPoaZUy^hln_2Pb_G&yK*T|mK}chIAOars2S!J=DoLRGW+6<{0w6tzn73d{18c^> z!tWhk;jz0ZQClEqs$V=h7OJT7Kfx61;3u)>lQv~+(N8@(lqub254(w{LfrzyHmen& zH8J4q$bnrDcN(+jMPLEMa}+xSs{*MK?j?z08ro;Hd>(&;b1un0FN5K`&s%Ssdpj>} z(=n4Tm_Vv1C7bQPr#%rsngn?iW2a(Qo8=)OQr>i;p1yAnEE%LlvbWK42f%E2pvoQU z!l4{9$F5M~cKO&OU3Kq>S?@zIAW0ZQA)jA5@UA!I8xxbJURHjc4^#r2$7SX7^1NCG zkK;apsc6%q33r}X1tPU1({lURl@z~&7p(C1RR3!*x6MS2)JmOSyHep<+Ug1(W(YDq zBR5W`7pTvnrtK%PiZcMSlu^$NZ}`L(CM6!;GOuvQ_IO|#bzXO<^W+I*aKrpeM>pHu z;xwGdB#AmqFqgQMBYh=%hI%pU*3hsG{StFwQ89iyk8yN8z>0KoZQCHCH)zCUlu{Ku zL+A?~miLzMhCMt>g|UgVoCSHqJDo8hYS56KL*PX(WXhr>vb7OX7e=SN%mn<)Wa6YC9N7nR&3MA;mpQ7tNF z)F@1cTch$_;MFVo>f&lJc_y-()gURhNbgx07J^zqb$eW`JdWGDud;x)&;J4GS;{^E z@-vx-?+bZ3Yd2kMfq*-zw!7EhMkJ-|QhZ#~2gjW-MPG#Z`IM$o6X#Q2TJ?xqB++2j7{XT%YY=yh^q{oC`mm+PO5y{JI{Gkr)a7G(NCpS0t`S^n df7j5X_F3xzcRtsH(m1QBqsLD8^x#aVe*kq6)J6aR diff --git a/js/src/jsapi-tests/binast/parser/tester/boolean-002.js b/js/src/jsapi-tests/binast/parser/tester/boolean-002.js deleted file mode 100644 index 8dd55ed6b432..000000000000 --- a/js/src/jsapi-tests/binast/parser/tester/boolean-002.js +++ /dev/null @@ -1,51 +0,0 @@ -/* -*- 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(); - diff --git a/js/src/jsapi-tests/binast/parser/tester/call-1.binjs b/js/src/jsapi-tests/binast/parser/tester/call-1.binjs deleted file mode 100644 index c695c8be4ef547bd7005592da25172bb4ad5f837..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6585 zcmeHL%We}f6gBV10@$(5vK6HPBsSG3Qj-P<3Mp!$ZjqBXsoTjo@;EK|0X_hU4WGsr zz+Z6famLPgk~(QpO4Uu(jO}CJ$2q>fffx-#QVNa;?v_4t*5`PDZX<-+tUE^KTH|AL zr`cgcf`X!&6NEGtrEkv>dJMAyd-);e6t_dNM>-+qSWp%zsIK`PqZ1l+r?Gwk&aLyX z7*|lVi)che3Se(v>yk*&9wl7CMR;Hi9ScsQe(3>h)2vonwf#m=)Zc=l2C=c4YJQyx z!f~kJPH{ML@a_X%2Z!Oy*Dl-ywx}Ey=-uwXic`$p>Gtmbha(TG2hCMFvRe7H`{j-6 znag+N9|+PVW#m2Bs#R;%tFGO4MtJ5UuoAr+MIA}K?ICA^iSdwZ%M^9-FW}ee*C8iy z47)T17Gwa#Qw}5P_gscn;2dVDS|N`{46kgPJ^1_x?2QHHqD5jc$3hKjqnmSF#0067 z+62t|Bk71Z*K`kKo&nYw2g&&WT1 z(i4c&{*e(+ElCpSh1tk<(i$K=9Ixyc!I{WjQuKy?=djPSn2|!;!(pBr*$Hz)K=puA1l)kD&LN-&zokO!D7qB4oxL{I z@;-rwHL@y9i(l8CS-NpOFYULWAy+|0b{3bBZT05f?`>?}2uenQ-K@4*>cJ7u8~yjX z1tp{2vQ(Fa#*8Q7a`Lm>Di0_A1JPPA%<_bqMQ+NZLa0Hrh1A*vaj~F#1VU!BShxi+ z>6F<0N{Iwb#v$}C2l4DC=z?MJs>zkR>#)Bh!Bh$D;Q{s5Zy)CbIfbEpF%Mm*F1ne;%?3V&+b)%PbZ;u!mAo)sxL3M|uYleBLn@uZ`9>`T z0Q>}3wrr`k;yO;rw1HK|k#uzL(Yg2PVe`?@#|`@sBe(H^QIDa4b=9)0K6S^|R=e}A zyViB+5LSOyPLj#I;C3cnY9T-*$1p$pOJEf(y_<869#)05ff z!ZAaB1b2k|Q4a4Z;O$|rbuz3wGyuSn!zp{Uy81c~pG;Ga2(;zw*8t%Nv3z&knu^5! z0PHyuyWiUDo)@t|{EwR=0Qyx+PaO6v1IpauB27Hf2A zIS)DmnV@=x!w{mp%Mr%|h`vZ}IQ`!krcLDgYG^dVfxoZ{F5S@*L460D3^`)FheKZA zp@h}Zl^s*LunAs!fpAy>SR#@kPeR^~L$y1TY^P`K&go1g|0nW8o-s6S?SSmw*yW1Ws_u$3vV)tBCptP(93>J_RT5KP|&138V8PTs_1`Le&d=@m=ZO$e7cl`s)+%pgwPiw-{4 zB3>9aTk0wbu`HVv_6^F`snS~}LknW0n}~TMk@iAkCMu!ydw{j+x*}6IQD|U0+8lj{ zDMdOxwY%IR0b*n2(liP8r4p^aoF%L12AC2j!j&|Mtz;8VZM_zUu+}FDnYT4Hf3mC< z?05loEa~NZIcG&tiLWr@LzwYnT!iEv;#09F8R?u6A%88QmWkyOYMrjYBr7WeHT{&l z>+~xXU#`IX1`C=C%#u;`B(L6(j+kRe0yeT;(Sq!0Y3r7dCjvI%IC+lfC5oS(=H0)iW@Y;}c09%b0P zQPEYgU?RE;Occ5P4+zPdK}gT?LK=*GPJ9xaQR@~=N8;39;Q4guI==oUBTR|E;eI84 zcEN539zN6oJ=!h)hK`S+Z}RFe@faS)??DlM?s;U>q)H~6Cn!s6HKZ@CHN6c`@hDrf2T=L9X@9Tb8E&y{X DZqXtR diff --git a/js/src/jsapi-tests/binast/parser/tester/constructor-001.js b/js/src/jsapi-tests/binast/parser/tester/constructor-001.js deleted file mode 100644 index b268ae5ed099..000000000000 --- a/js/src/jsapi-tests/binast/parser/tester/constructor-001.js +++ /dev/null @@ -1,66 +0,0 @@ -/* -*- 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() diff --git a/js/src/jsapi-tests/binast/parser/tester/date-002.binjs b/js/src/jsapi-tests/binast/parser/tester/date-002.binjs deleted file mode 100644 index f79e4756def10a0baceafd9b732d10b198773592..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8840 zcmds6&2Aev5Z?ZzZHgXR^imWEqN9VLvHNps6$7#CAPyWgjTQlND(GEC+Ge#YaH%+Y zmA*`oLmr|)Z#^|nkr^&`IbKo{wO$L2FE+F!KXQgM-+Uzdaz0D>et*JQy#H9_W5K4u zhd~gW=J6spI37M6{XB~D84voqs!u;n3c3I0W)OS<3k!10CtbYLKgLPQBP*6!6Bv~SB06P6~%rluhPqhzFW^^*wBNb!+``KFM1D)M;!-I=2UmZoN?8WF)K zZZeA+?UB*f!QetNAwyos6&7k(if-0%5fhLrwFyj&=je#SX}X6oUjo*d0MdB?Y|KTN zpX6iPCdDRyLYiBdevo8LER0C8sanZu8U+W~qcLcu9RCZ59-+IC-iW)BNVxmFKyFi^}XJef)dP7<;l3A!=a)I5rdLBe~!1<+W=-usQ{H*s#X~CUazx2w_^_|(CdCKhGk(K%lQHhy+g}N}Ls)sWT-RmmH52gAHL?#oyGs9){z^nR-WYB!QzE zZF&lR4er1j&vV4ua?>yAFxE~{gp;H&c7TO;Y3^_*G*tJ99p>Z}-yW~SDBYlTan){= zN1`Jyxvy8~qCJ4H$kk6-4%TQFt6uJ{qP6-@SN?>{xoEt6Rj)s_YNi7`GPs&Y7cx4U zYHU~XS3}#3Su-7K<0aP)<>vvLfiIj_5&uGs_zK2XGT)AhqI{ND1*dTjNShk9NH;n4 zux@ia(dZV`Vzxjhkk+HNZd;qVX~~<>hBGhSxE!3k_Ho$y{nkj|K9=H12G{0 diff --git a/js/src/jsapi-tests/binast/parser/tester/date-002.js b/js/src/jsapi-tests/binast/parser/tester/date-002.js deleted file mode 100644 index 0f379b541276..000000000000 --- a/js/src/jsapi-tests/binast/parser/tester/date-002.js +++ /dev/null @@ -1,54 +0,0 @@ -/* -*- 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; -} diff --git a/js/src/jsapi-tests/binast/parser/tester/date-003.binjs b/js/src/jsapi-tests/binast/parser/tester/date-003.binjs deleted file mode 100644 index 206cfa318f41de9cc31b42acb195b2a1bb5ff0f6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8996 zcmds7PjA~c6xaT5zz!P*>@aMAjtPp@8M@Qv23VXFO^`W7Z4|u?jKtV#70ICJrv57X zHv0y<4%n%u_P!6W_b5_&HfftyWuwg{f<^I1zQ^Bt??*CSIh~~Zush}~K71tdkzm)s zhd~fr=J6~zI_;kgei=mhga_S@`lg#Eg*?0rgWyZ}s!O{+VIpCdDL>{>$^?^1o++rf z{#^vmlPsRc`WJ9MScjDh1(n1>k|nYNpu?ZWJd?>)!i9p%*mXVWLW(3C9exJG3{HB( z(~Ew$qu+Hq8iZmE)c5C!f8_Yw4Y!G!%e z9lxO~{{ieBy7I}%<3U@l`~;?cHu&j}pKZtN-jA<$=SQ@Acse{kvF)aW@Fe87fOZUo zygL!O%;jvt?<(S6T-oq%;ntIv6TyoD0(>B0v}*`F#XDZTcSdNBrD@$&^@!jVuj7iE z>=DmjfVqWaLJoN$S6HZFDSADRw=n@Tr8a?y(G(p~I8FC3<}1Lu5s-2oLN4ZFn4jk( z+a{Gu{)8a6;`}Jdn3&ae1(<0db3-PE?3wZ_8Hi*wu9K%uNCa;Xgf=z zfnjZ6#d`-UJZ85dU@PP@;a5K$1HJnR{!{Q81o<>|1Qz9pXJ$gU2P{c>ynH2gS18}W zY^(rUT$6S*2j(dLGU5}|L$>V=T=@+k_Vcg;4dqzmHxBHIfVWYAAfce%@Tfh0K4L}D zGCzl6R@WD$tJ6Gs9*kKQryx{~sHQA9!Y>v&trX)=KMs^QZbOX!2T`%3z`*i!adfsi zB>Mb@RJ1nBEo%4QXBU^xoD5PC^EZ5AIb(Y>f@M_V&Gv|z%{}LAKy!#BGCLLcq~g>< z^e_9Vsn;O))(ca!72O3y3QM!Fg+GaZSIH!gn zMRP@}05mwLFFA91!DG5!0pfv!dTRYH!0=%4S=J8fX?iMv>s|ha>RE35dEAGscP)bz z!1wT-3MH}&o)7+VoQkD-Kss)Z$!Oe5*|gw_FB3RqxL$rxLA!c*NinykmYE1e**G)b zfh9yj%w^`9^|vf+Je<6$Xd924C-wY$=d%q|-#e0RJoxXiz*tpfUhWC(U@}X)^tn3O z0Cts27a=HH+zINO%M}UgJHVz1YSA6;^kim1M{mg0?db|!6Fea4v4Y!cq6~Wqi3;V% zT%z(=Ztt!77ETi04@l4LaR;0a^)S32X8a~Jx^z$d!UMg%gZ=$qL-@j+=k4v=OG#Pi zIWBS|+=C4yjA{eA=N#DEN{8VtM2~r{sz%h8o>0q9OSH5$lQd5{Lc^S~ zS?TaF19O1f_$>9oG>hnQGHkaq zo8tnB3}p*-0%={i>$W9=OSigY4(aHiFzL7`YDmYzzIoNH=*)Q;p&QVd_V!RWIx4Vk camIvhTXSt%mTvX;2N+x_1KrbJa<@|ZA1|O|`~Uy| diff --git a/js/src/jsapi-tests/binast/parser/tester/date-003.js b/js/src/jsapi-tests/binast/parser/tester/date-003.js deleted file mode 100644 index f8f48c6992f2..000000000000 --- a/js/src/jsapi-tests/binast/parser/tester/date-003.js +++ /dev/null @@ -1,56 +0,0 @@ -/* -*- 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; -} diff --git a/js/src/jsapi-tests/binast/parser/tester/date-004.binjs b/js/src/jsapi-tests/binast/parser/tester/date-004.binjs deleted file mode 100644 index 75e32116f50ba886aaca695cd325485fd07f71c1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8655 zcmds6PjA~c6xY`M>4qLQ4CtXiQQwxLSknPJZEk?ZNwE~E7tBV1o(9HZZLPB8QFK#( zm3^}TyX~@li@irt;*0rg(~1(Lxmd6${>bDEA<$)ZfLJ6JZnSqMk{~~&u zWbt{dzX9i?O<1`yP)QsmS)ywIy8KZrGo8Fiq%v@sn7U0DS|!-%2dsd1jmo-qy<0HnolySgbp3{^ z{0p$JP?fI^e;u@?%1>eIF9zTLb}jVy@73uMs&8p z^6^;eVKS9I`~}?e@cm55qJRJ&Xjp9ufoJ?q*6-N}?TIvXQ_YMKypk@iXbc3z^A{j) zp@q^zS?DzqG7;|faS;(PQ(6&(8qZM?1uJ@hFkb=InSzw_Gvs2ahWT+m_GL1;AM#~ypvrFmv7dKp(2ky{{EWe_9q=X+5OgT0H*(aTf1ZeW6RttgK4RM2c)>%g-{YQf1S28BJdP zhq6+3#4_$fPwM!g0f0uj3^>ci*r?ddCwfAUCcRY53u(M&1`YUhbrVl_9iS-Vzs|v` zD4{4@XRSwE)^fgo!-6M3$!K{<5^O=MG+sTa=07-{ZNZ4HNzMuI{{REyX_3xLzU&86 zW!ja`_4x*{>x{Y#LA`~~QO8oR$x-(J8&yypVJ)kJPfyh@=;{r9^*jY=v*|{g;Nd|} z6bv0Of}KF3`UIt?f&`d5xQ)GpF8jlP3~U|01?86&zw@+{$+ON&!`^lt{?sX7S7%&1 z5B;#BMhjdIeWJ4iO%*KV19EO1;0+s+9)}vZU5rLXa1JqGpX;g+)ny>mDq?Agb+yUr zNmpo?E4C{c0b*e6>#ffhpU<-qcKq}*1d-qd!*H{rHF9PcZh+u; z(q*nam>^(^(Y9^tYfy*Rwl*~SC3R2Dnwa4vDV!XjM87h(XbB6|K4Ob8dBe>U)JIYS zHS?=xvjPGg^Adj^LN^@%ghj5td1A6gGhYo-Z{@A^lgUuzHk%8|YAO|)(&cq?Y&}~w z74zJR(}41IPt5dOu_pxoK<@q;=2z_7w^mW!ZgWQmbZDtY*ddmt+A-#?!;bL0nLv7X z!**;153-{i`yim+VGRLg{EmPw^AIwz@GlVUC~EqA<+lTTCuawlvS~*)-0+niYku#; S%BEzKoh(IY`E}*9_W3^r`1AAt diff --git a/js/src/jsapi-tests/binast/parser/tester/date-004.js b/js/src/jsapi-tests/binast/parser/tester/date-004.js deleted file mode 100644 index fd8733cbddcc..000000000000 --- a/js/src/jsapi-tests/binast/parser/tester/date-004.js +++ /dev/null @@ -1,50 +0,0 @@ -/* -*- 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; -} diff --git a/js/src/jsapi-tests/binast/parser/tester/dowhile-001.binjs b/js/src/jsapi-tests/binast/parser/tester/dowhile-001.binjs deleted file mode 100644 index c606d8345fbfeb7256a42cccf4d6285fda744ecb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7058 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 diff --git a/js/src/jsapi-tests/binast/parser/tester/dowhile-002.js b/js/src/jsapi-tests/binast/parser/tester/dowhile-002.js deleted file mode 100644 index e25557e70bcc..000000000000 --- a/js/src/jsapi-tests/binast/parser/tester/dowhile-002.js +++ /dev/null @@ -1,71 +0,0 @@ -/* -*- 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 ); -} diff --git a/js/src/jsapi-tests/binast/parser/tester/dowhile-003.binjs b/js/src/jsapi-tests/binast/parser/tester/dowhile-003.binjs deleted file mode 100644 index 57436770bd007f90b3e4420eb03ed8e7257e2be7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11729 zcmeHNOLHSN5T5W_-t3tws?0eg*@7Eo!fqT>YbqpL*t>9}WRKzuJDD+>@n%!}2+r^y zxN+mo58y%-7w#OWV;u(EXfBL%B-I{tn9K?LLe!^L}`#_|9 z!A^r0f*|Oo;d!vvI{du-al4lecu?Pw@6_Wc%Xi<~41%}dtvVh4h>3`GW4_OOF%vA0 z(nLaq=I<o36Bn1+=K2^EDwltj4(pwqWPp5)PS#D#=Q*r{1`mWwFq@7{uG z+Ra9%b#z$YQNPu96bQv?%l8kWoC_99xF;+gT6k{&UYMSpL^0pGbLS%)v%ubwtku<& zFT$`VOxUl}CCtg@pMbqaHXk*=Y%hz=S77PQ#uxX#`Os!&{Y3t^J|bU+sXDFBLDROI zD#BBg9{^gIZf|c(UDnQ`{G`TeG3)Y}hqYb`PLd3HEz4QXPr+sENf#iy`E($7mVxWH z3w$X@u77v>ZiB_K87fEg;3sZ8juPSF>8}9^V4=u6Jey>pf~DwY9gCQNF;tnrM1P1x zXHL^SjJXY1X99xJeTdRrbkc*gZ||B6F+YLtTkgLXB}|+fy8;YA5Yr(>LtKsdaUO`M ze`3O_ic<)*X(pm1tpL)4h-JrbG_Yn2)Vg=5!eez4+*l)z&H??WV>VMpdWj2^5(E|>|GN?g=W=@?WcY}HA1O^&AbA#X=6E?KPk9@b=u=i#KR z9?G!e=xI>Y9y-$?sr{DD<~GXa&YB?=not^$eIl<+sVbITsAbgM3d=4^{3yl63gMRk zA)mPh{%n}^uzyEed58r4w*j>FPP6L%AQiz9le52JcFO}i@UbY9flZ6unW=doy^i){ zLlB9{7KVEj;CK>NtW61ylDQYBy~m~|oZh7U7k12|%#>sX3RT7@H)!rbPp6+?7sCKZ zaL+cvCx$O-(|$_v(4%Ooq_?wM#U9e0EYRW5TbWT6eVv}5vlU!rDf<-Zuu8UrM`HorN zsX4tRcLa;J5?K$Qz)P4>3^ozF;KxPntcTJw=*D0sQOY>yyzBbKW#c&3a&8Wh%E)Gf zDrPL>g#p&7G)AO~Zg@sdy$)3UPID^g^B=Q2JriBf%n8Hq*EL~SQ1_Hn52zWFiHCy_ zZsN>&QckOM0jCPOqGPPIgDTiEgllCS`$DH1?x*j~He0X!; zU|H3j<8PoFE0ORJ=(6vS-+`sZX*#I+_6Dwkj(jU4Dk2Z=t0LdZt~oDMq5nXnz6=U| z6BIg1>9;GoO>`Ttf;{~yLTXi`{DBdkq09Oj0ka`E(z@L7L7x=%AMgSy{~9J|b-%{A zt8gSIFp@K>x1o3&wVZi)2;Xm-FQz1s?-oRoOAK0+O%Efqs$cD_Q%ptyR+v2cxxohc zP&jG$5mx>->PgYyYzC-j6TW>=Z@A=3fUVDE)icM(PU?yK>?V-bH=|^r-4Rz0t4<{K y*j19KM-`s}s;3yB%l9Mdfuo93Po{j1H&UVe_iF%`9e6czPOjaIj=SC{-2D$jFVlYj diff --git a/js/src/jsapi-tests/binast/parser/tester/dowhile-003.js b/js/src/jsapi-tests/binast/parser/tester/dowhile-003.js deleted file mode 100644 index b482823e12f9..000000000000 --- a/js/src/jsapi-tests/binast/parser/tester/dowhile-003.js +++ /dev/null @@ -1,63 +0,0 @@ -/* -*- 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 ) - ); - -} diff --git a/js/src/jsapi-tests/binast/parser/tester/dowhile-004.binjs b/js/src/jsapi-tests/binast/parser/tester/dowhile-004.binjs deleted file mode 100644 index e2b7f4de99b53c54df059a4e92ca524cd9878d59..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9961 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 Y{0&6l#tW-9*`*QvdW83YmOJ?V1!Ux?9{>OV diff --git a/js/src/jsapi-tests/binast/parser/tester/dowhile-005.js b/js/src/jsapi-tests/binast/parser/tester/dowhile-005.js deleted file mode 100644 index 3c339f493a0b..000000000000 --- a/js/src/jsapi-tests/binast/parser/tester/dowhile-005.js +++ /dev/null @@ -1,73 +0,0 @@ -/* -*- 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 ); -} diff --git a/js/src/jsapi-tests/binast/parser/tester/dowhile-006.binjs b/js/src/jsapi-tests/binast/parser/tester/dowhile-006.binjs deleted file mode 100644 index 7ab5fde070571e7caa03a24269f94f48da7076e1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15060 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 DTALMt diff --git a/js/src/jsapi-tests/binast/parser/tester/dowhile-007.js b/js/src/jsapi-tests/binast/parser/tester/dowhile-007.js deleted file mode 100644 index 44adbcafd988..000000000000 --- a/js/src/jsapi-tests/binast/parser/tester/dowhile-007.js +++ /dev/null @@ -1,97 +0,0 @@ -/* -*- 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 ); -} diff --git a/js/src/jsapi-tests/binast/parser/tester/exception-001.binjs b/js/src/jsapi-tests/binast/parser/tester/exception-001.binjs deleted file mode 100644 index 8ab757348fe2a72cf382c4fdf4aaffb7d1fbe7af..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6518 zcmds5&2Ah;5FQAGAc4dQp>UaFP=uUFIa!M(yjg@Jvx(T1C4^Aap6T7~q&+iq_t-Iy zkPCMnfrsD#N1lKqZ<4Csp6S}1@otYjHa{1yXL|bUs;{fQs_ua)3(5Be3(nHLXDXj7 zb`rfEMbUAdo=5u!<0q5dNs<>l8tm9_22yCV_vgn^bO*i~(CJ4^33e>`W1dK+m=Sqq zp;G^>qn9E}SF!#EoVT`N<;p^dG!mIGH2_`yAmy16Gr^UG%h-uGS{o&@`QCf5%w#m2 z9y}cncHFzcjsu}s6Z`$4FkCTd;ZB(>8+acA9)Fea0)74b!GniQ)Czsa@-}db-hzpz zOf^5JMqHB5zX1CN`8*nZJL!whcfs@*`r-3OO=51I$J;>S4e^M6PYJ|JkrltD(C^wu6aSc=|{3n-?}1*YaD5}{jN z4{+uqz&cZ)N?(Iqb2ZHm^Lf)Jt2Do~Men}Im^$}DgvzAkj^#ovK-Wp*A{+P&!F4D4W{MuP1WsRZ2vo8 zzv-O(UzJ&cRh>37m@UwOT-X}Xya))BO~g{DeVHdOy^3z{&VKtKvYEZoo%yWyP#7Fr z1o=zQ@Og%+ji)>SVzW^BS?0}L z&&leUuIah>kC2IFuy(oWEA?$$N?CQjFsrUr6%XsbbnaB0dqOZ>jxlzl1@s*f`tljn zA1Qu<|Ekjjo!mLje}@Gyg!_o|-Wv~;oo|>~G|65k&>am{s2~R~z^Un4pGxNpnMoEy z$x6*_f);QFJLyfVtW-38p$2r`zaxl{zV>gze=K>HaG#lL?WS+KZ0Y?2WE7QjC3gNd zV)qGnRxqtm>`>tNnHRj~CRR~JH}jvPqJva*OWMadtzo$N`SA;$n5aD($ zhuRIMly?@A*F6f!n4b|1!6@nL^oARZr_dqOln>{*rR7&x4-3bNDh0$&@OkJOj%(Kd z8Q9XnC8RB}_dbii_xctK9g}c#^wRhWAasieRoO>T1C7RrihpPtcm>FAYENwrU;W8=s;l3&Q=e1HX3OXXTGQK&wOls1k#@Zykd3QbH+DhryV16QAQN@-vdxV)58`g1 gz4E!iEq7kajkAA$29}YHis?(yxskN)#I$F~8xpiaoB#j- diff --git a/js/src/jsapi-tests/binast/parser/tester/exception-001.js b/js/src/jsapi-tests/binast/parser/tester/exception-001.js deleted file mode 100644 index 987ba0af888b..000000000000 --- a/js/src/jsapi-tests/binast/parser/tester/exception-001.js +++ /dev/null @@ -1,45 +0,0 @@ -/* -*- 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 ); - } -} - diff --git a/js/src/jsapi-tests/binast/parser/tester/exception-002.binjs b/js/src/jsapi-tests/binast/parser/tester/exception-002.binjs deleted file mode 100644 index 2a03114aa34971b4bab34be4985c222a69e171fa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6710 zcmd^D-EQPG6b>w~%b&y@E4axe2%+vGE>Ja8+RhH5t1=*F)EfjVH}TAPn&Eumuj zTLot#jhC_h1)SHmVP&#}5^*3>p&I}?{87wPEoOqt5-w%ucG5~qky4mJ|-&`+&z^MLfq?KY#S-3m3IU-z#|=m_hGB#|tLi z&*>zt$>%?SeT#gajDDQ-#pjza^%v^#^DkXuZlA|@fW%wk5#yd7O^-)z+*A;rs{9Jk zxY8<|WioumF4!cJBG=(WvovNh4o9_S)qXh4QV?Yk>5-IKiz0U*e)KArTq(#67+Ldk z$j_2d-n?&3IJ7SeFu<>07XDE~nXXHg{tx-R93W1s{r($txRIfL;U!4~7jUoA8+qq?j+P z#~RDRRQSveL`k{O+iSHm zs8VpkOSRfH*W?Mf`8-AcvH)ESLonvwG&;5F;I+LiVhG94|32`dyYog{~&<9Tn^TBe~J6P-Y3p`Cz~`x4rO zzbtqf@s+i-&SC4slJ393@6qy?M1FTh(z7c+gvfHH6uL4xF~79V>@H%hD!Q0=M@0uu z?RLOof&o^M|&-44wzOaG0dK_;6h*yLo`aL=xo%C(L zDIpwL`6XK8xy=1>D*Pwxf(-)^Wzru?mV``%e!t>ue&~;wm~hz_B5k1K7O3}MW`gHA z1O^N%`8foqf|J+3H%4)f#j)wCdIazjH?c<%aftc10gYTTArTTA-`YcMmRdLS*v17^ zQ|$skT_6y7qw5aNya%=}1<2Ajpx0cC(vx&z`=q4imnQliMF|r#C#tRf7ORFR5y#rBJLraYv#cA-u zpt!z7`}uuOMfY5Zw&8+&1v)-SP`QkOHq!CP(1!Zt0MMI&H>8mwZjf$j$}u&51m?yp zig|eGC#hf8ZoZs~^fEEitk}Hxq+=Q^%(@^~`RWXJePCiLtX;N!rM?Y{IIhZH=vC*d zMLeo^+IJ*o1`rIGGvux}h2kTI;(QD_D2{%D|Eeto?cAE@e}mZKApd=ym$`P$y6{Uw zJGCX+RcV2dRz{IM1C^_u!Ust2IiMZm4&`bZ*@pG5sAAFLlM=(YZOCn#PIQKIb@il!Y)I=~t8LQWRtQDoO4(XLSU<}$nj%UMtzdd}Al6+P zmb%AeFzv;x$hk@;8Ju68@2tvGGG%jaZqjYbyHm({mKtwJrXl~a;7PzucV(K_b&T1s zD!6|Ky+g^H%LLa~*6g@O`~W=5Se|2zh;<>qGbr=q$P)$SrX<;*J1RZq&j*7frzP(Q07 zsTHFHt%|L|-l|izQHC9SkL3;7Tfx$UT|RE~=TymoJI+T*dpPO(-3}flC^KM--){XX{O=0Lb_{a9( zx9|Ahn}p*>x$icj1Jl=Jhb{cTYQX=&ZK96Qv`fQu;T@1zRWj^8D^$R0%XF?ZNdSgU z#j0zcHN)YWm8RgLaXu%NKlfNB3(=UTeuId87pI$>i&bl z$_47yik?T)Mk`V1MwEK%zEZa>2@cX)Yk}dpZf&9y>6qKsPo!h{uVvFdv(|l@YaQLV j=7OlKAJpGJ01L!pk4xB`wDn9^pQTtxb`iWA z1i?(i*TM10_{rpO5{aA#g9G!;AWf7$`umF@_!zz#(C%kUCTy1S$2>}zWI7RY0<#@4Dk4?i02sVw+|kC*F>$*4-9VuJLr4R@si2r z=X4Uc%I^`4E3Lx0 zkl_<{$tICZave@I%VH+ua8zkl9fni!boP=*dL*T25#$c~9lgpWR|--C2G;xn($f&i z>-VjBJY;F=x|$vlyy7nVXp(qj{XO7AX(lz2(qy=fu*C=5Ja!2I{nUoQor{YvBnlTx(`J+w1$4SQIwTml2D*}H9zXp#@`CJDwSuCB!TF1gn z_{I%HmtYT&9z^u*%b-sHq4J3r57(1a#X{BL zq_#^6?H7L1VgWS&$`J+^-TLt<+URO zB{)Ov21_VGQYg{qun(ol@9yd1@R&yb`mEoCbX5HJ)IhA4>zvZU5q6KmYg{jqH-Rw&H44ICW!;}?@8;8o_JbKZa zW1IBu=4WdGp8-{U33$SPD|i-hXH5p$Ig+bB4c%`*Jt&}+e=nTgvfHH6uLb+ zJil^|-(18>Ra8xPN5vLiz1^|tvDlM)c;tqM2jSh47NyCoU!!WR>fiQ?+FrfT6{Qzj zFqD_4&^{Pt`FzTCSsU_r3^z_UGV3e&&SW(?MR5{P`-E3!x^2bxxG@?j%4wEPLzrJ{a!d+`0!y&z%;P2D|pN`!go*KM$Wdj|&qO z63JPLsm44=-C#sj22xbdiKD8*=gkT30J)vx(>Z%E(X~5Sr>Ul1|CVV^2cl*I1gtfn z9w2TtZ1;?D&B_Sij(XMp%GX1d>q53#;;-O`pJK$;5?j;Nwzb@%*p_zxu#M|Z)MUiQ zt+j1iqjTHZD2?s=Hcb#f)x3PPt<6gb+t9uN+QtocfaThmzpsI4B+-ZLPD=aZr9DUf E1-=}goB#j- diff --git a/js/src/jsapi-tests/binast/parser/tester/exception-004.js b/js/src/jsapi-tests/binast/parser/tester/exception-004.js deleted file mode 100644 index 41b7ac3aa4ec..000000000000 --- a/js/src/jsapi-tests/binast/parser/tester/exception-004.js +++ /dev/null @@ -1,45 +0,0 @@ -/* -*- 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 ); - } -} - diff --git a/js/src/jsapi-tests/binast/parser/tester/exception-005.binjs b/js/src/jsapi-tests/binast/parser/tester/exception-005.binjs deleted file mode 100644 index 7bb22fc467a9c75fc8dcdcef3e7ce6f17305f212..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6792 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 diff --git a/js/src/jsapi-tests/binast/parser/tester/exception-007.js b/js/src/jsapi-tests/binast/parser/tester/exception-007.js deleted file mode 100644 index bae0027b5ce7..000000000000 --- a/js/src/jsapi-tests/binast/parser/tester/exception-007.js +++ /dev/null @@ -1,57 +0,0 @@ -/* -*- 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 ); - } -} - diff --git a/js/src/jsapi-tests/binast/parser/tester/exception-008.binjs b/js/src/jsapi-tests/binast/parser/tester/exception-008.binjs deleted file mode 100644 index 9e6209ca559176801ced6461aa9b9f0e425e4bce..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6852 zcmd^EL2nyH6y8#xAcVvb!DZDG2%)r6kx(#^8pl;rMFwFj7lf+G?%1Aov%8&{P2&EJ zp7;5!dANFTlPha4bJ~6k?;{zb^mUzUt$H(K7fgd*&L`zkE zhiF`B6;3i4zF-$@6iJcmaHLrpGZ}}2O0#M|9L-bBt_D(O4RYLq^}$sxxl)iAFs

h#eJ3}Zm1a%!B5=f9%ZCO&VLMSD9xlsN_>9n2rVo{ck9?D1awmy0+Z7M ziBOH9w+QAlz`B%ROV7ctxg2LF+0>88Sk3QE@;wwOlXDkWfJOxF4sHz&oA8Maq?pc} z!CJq)L(g}!u&mycId zR7FCy;e@tL0&O3``w)Tdoc_;>G{VA8`x(p^XhK$YM>P5tLRn8O1v^Z#=(S^UbBp#b zG$**)g%<6a8}bxOy!=V$bX>T7L9O!j74GiH#8Oy??8i!D8x~1YwZAZ`u2;)^RNv{? zv79?XP=aTu-CzdIM*_|H1Zq$s-opQ?BLyAYS?7NP<;eQ~L+4BF(Jp%nG)WG}9A6lw zRGq?OkLQ+Yhr)|8IGv>h|G~$%XQN6>-e*}V7gRzHrnso`p!%GtBO!UD2M|W3u6y+X zufnB3eWs&XKVgO9#?W#&xSsFK-f?N%kC!f>v))f3qr82%rWK9&n}Vkicf$>|Gcebv znmzav^oEjK$hEukvmF-)xYG!7rW6(jEC~G46$pP5o78l7RCKWRB@00guz}K9X+x{`sM@Rgv$^@UKD3aY#AsluI@lV? zzPxG-Mp>HE3D;#K$>SkhO)X{C7x13RYI5MB&e6Q!g;~2ci0^i2Btw2lJY<(u2{#x| z?tP{xA2xDB%O5Zw7O$=fY<-5jfg|n>K(?&KAuxqy{;P*oMSl2o_^WfeP^i$)B&xI) zX}Q6Us_dbtEtikl3V-t#xCLZ4-=}MC!Nj^6wW{walbudPFXDlKl{Qqdu))ckD_x^y zqHF04v|(X*S}5`1@_W%P%b)u!*M+PswEV3xhVt(ehp@m;kS}YijVW)RHJ`=p!-g9j zGR!w9GM{%rZlA5l5&N`BH)NplZ#3;w|E|M6XfBoZ;f9OFQjzB03!u}utsS|E(v{qF LkG~X;*Udjqu z+x6l;wVaZipskK@bUw~0&*16kJJkZBRq&B3FYhe#5xWle;Vr#;M`b* z6*CDH_*M`Fd;);CulqFOK|7#K!bPN~jZQcVqE2}YwsC9KR{d+!DXHI_k^;e4uAJWp zIAtW1a3>@jWbhsV9zFGFU-xFsqN_8U%4gaTI>H>a9jC>o+EZAuHbqG@9_lZpX~tB`3u7SkULT z%Sq%D=G(QDv&pvYjv`J@YmCJ?bXB+R!baLJOK3V2 zN+^6#tU}u677IFEU8|Jz3rTsdH^M=>1W1EG6kQaBgSK{X9xDv2n>XQO(8Cb=g*N0e48Fr(X_qsV7BN>ZU)&w-zz$-QsqRQKMMH^D(fNn? z1DyL#B$%!NmZ91^oeAudLF9#)fpOH!IqDe7uqr(RxIRe|>Tlb26x)-&$>v=a4U8?VYpR5M-D*e%36;mE4__#~*gYxkQIrW?HNv!)Nx#?4w zCrO676N-quxU??K>vbrgMe({xhq@BT8-k+RLm^V4&8?CI$3x{vhGh%9xDC^$4yXY; zif*_bfDMt7T_IU2&dK&=`H5qv_gKDWVQ-eMS$gB?tL~|I7$z}2##g3oJ-Svrz}{RZ z9^i8_PeT^aPBR_;xiF_Kd=C>J3aL_U;f$+NHJV>T)L?G6qsDSBcMxQ@{X&qLe>fgM7|!_ql(=#W7dRm3HX)%+S*5iNtf(th(+w^Nd5zatWJ%>X>vrUC@YA@# zl|R6d*RB(Lb+%?}wp}Oti9Mjwi@m3 z2XEaQ#$#+bHSvxUl7!X&KC!Gv@Rp-b-$j(5y%4wXFhmqF5=R2cSN{|18;SgrSib;g zX&zQg1r+fu5)qaI=*zc#95J#_FcokSI#8QV7$woDeixSU+~%PDvFp_2Gp8m&bSzK2 z-ysZB6biUQ6s88=W5B~lLpP5n&8cmi{6BZhlrZ5>zlYBpFaWn3i;f1 z`(9Oi-hr*V&F#&vt0prG5a}L`DNYhNBab154?rh^A)G%i6jT$1p_(dY4B-)0GSE+} zg#7M9cnL$44RFHFh_FDA7u3R^tJA`5SZdH7bX+qqou-nR^%T%rarA=OO^TAhW&w>S zkivG9hM~E_wTpvWrW6OFqm)Z5DHK%+nSi%i6AIq51*VMYAnwE?Gi2c>KOoVKTyKyF z(PK@y+-<W= zjyyH}{BOZR>X;VsrYhyf;~K+tS>RA2oG&nLXs%>hb7^-WgQxjyGw{LJ1qbq07iB-ulVyybe$e!Ev$ z)%E}|#eFjGGN~?IuaCfc5Ul&T2Su;jQm2qPl71Q`Q<&QWrZg@nUNh9}S4UUEIhW6M z@kGrOEkISbEGLH7VNH}^lNjMZzrp5i!D}bFoD!m~`reu+Se@s^Pfa-U@mR< zRUZDl8sqx{r~d}#zT0ef+}5*o+Y90}^z8s0VjCYpP3_wg!U8*uhA4#^7#_;@y?h-a z^`al0{-K2PH2n`v+w@xq_Pg*kB9V``P|_k4519+{&zl6{IL|>MT)o+Mf>W>Wk)QxiFl)hJvnwpjabNV1b*i!!aMkc^N)3qI; diff --git a/js/src/jsapi-tests/binast/parser/tester/exception-010-n.js b/js/src/jsapi-tests/binast/parser/tester/exception-010-n.js deleted file mode 100644 index 46fe72fddb23..000000000000 --- a/js/src/jsapi-tests/binast/parser/tester/exception-010-n.js +++ /dev/null @@ -1,25 +0,0 @@ -/* -*- 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."); - - diff --git a/js/src/jsapi-tests/binast/parser/tester/exception-011-n.binjs b/js/src/jsapi-tests/binast/parser/tester/exception-011-n.binjs deleted file mode 100644 index 8397356dc8f41ffc250635ba4bddcfc1ea417b31..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4530 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 diff --git a/js/src/jsapi-tests/binast/parser/tester/exec-002.js b/js/src/jsapi-tests/binast/parser/tester/exec-002.js deleted file mode 100644 index 86d8ccb9a59b..000000000000 --- a/js/src/jsapi-tests/binast/parser/tester/exec-002.js +++ /dev/null @@ -1,188 +0,0 @@ -/* -*- 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] ); - } -*/ - } diff --git a/js/src/jsapi-tests/binast/parser/tester/expression-001.binjs b/js/src/jsapi-tests/binast/parser/tester/expression-001.binjs deleted file mode 100644 index bbc38b49e83cc5ec1f2c0641e99f6be1bf4db9a8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6002 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 diff --git a/js/src/jsapi-tests/binast/parser/tester/expression-002.js b/js/src/jsapi-tests/binast/parser/tester/expression-002.js deleted file mode 100644 index 0110f23b774d..000000000000 --- a/js/src/jsapi-tests/binast/parser/tester/expression-002.js +++ /dev/null @@ -1,60 +0,0 @@ -/* -*- 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; -} diff --git a/js/src/jsapi-tests/binast/parser/tester/expression-003.binjs b/js/src/jsapi-tests/binast/parser/tester/expression-003.binjs deleted file mode 100644 index dc2656b14bf3bc14b01d1945d35c943063c2e4d6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10356 zcmeHN&5qkP5LWu%LxH00DJNYDv;myYOig0Yx*hTWX$`%S!-Q>w6sbPY@|k@HMhesyeAxoI2vp=O4D#R<2jHXj3m zR7|J=muk6<3RNijhAKRT<7Sj%q*MUG8dQB!NlB&g@Z1NW>+_QfI6^B3mts9WC!%3J zv8xdO2(XI0X3L;i^Bef|J(#vooOq^9bmlA_^6NO|LmQu(>*uCi0X4yOd|PI;GNGA- zf#Tg{akay}1z~%T21Ohd^#@EY0SapupH!mV>*zrVM2v~6oS@2so=+7xRvPMH#o|984d%fG4%U6Ln+hD`i{D0kirqnTe0iGkb3p86 zVF?5Q?8DpjfJHbGir-Fov^##jU{dawp967Moz=R_OtR>8FlOm6fws+c0H5HD z+M>qR^jE;O$Xp#p6%XtGFma91G1}Ez?oobIt8Z{ zHe2O!bof>i9#B|P>K5J3DMj4VH0^d(SPN&#|2F(QjNFu&n_U0K*=&uY z{SaBp!!;iK_dq#{L_w1as+E7gEmc{sPYkF1*`PhoYA7T;-> z*pRFH?Gmva?=s2l1g90_kf^LK(Zk)|S1WtC`FS%SJq!0IK)oNhf_j~Y#X%eDGd#?$ zLzaelZ4%DMndD|5mSNeQhqhxWCq1P=cYXye1D`waTwM2{$cjwpLiLmuL-cD~Zx^D6 zoJ~g)HKixivU+vNMF8Dl!vwP4IpU!PCIq$iHQw1Qjj*4k555oyo>u9CP428>^SJ$L z0Y^5;YeTye((H^WdW+}efjACO5byKl(r zJ@uWNHFAS-EGs?0igxQl4d=m+CaP_b%9gRWfGj?#w3TAVa4~R94q6s=E-TjZF!q1u z7Gmp1ddQXhaI`akuH$+zL07TVtsW$7NK#7nLqG2#hLcs z@@LdpxTiUm{L>Vh4*F~v?FO+3Z&xuu-h+a4<8^gMJMyMAE4IU2nnS?@nZ;&4|GCSi zY9^cw{v%lY1&W*J@{aYW&iszyT8|MjRDa-WhTOHN8FY5Z1hZc&>dX*2zV;4`8NuD` zj@}I7Zq_SEW^73_W=2tUUVCmrhUx_)8LC$sWT@TOM&S1yF)3%>V!Z diff --git a/js/src/jsapi-tests/binast/parser/tester/expression-003.js b/js/src/jsapi-tests/binast/parser/tester/expression-003.js deleted file mode 100644 index ba5f9c076970..000000000000 --- a/js/src/jsapi-tests/binast/parser/tester/expression-003.js +++ /dev/null @@ -1,55 +0,0 @@ -/* -*- 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; -} diff --git a/js/src/jsapi-tests/binast/parser/tester/expression-004.binjs b/js/src/jsapi-tests/binast/parser/tester/expression-004.binjs deleted file mode 100644 index 2a5ba62ca9bb7bbb0d238ede3f9f18bfde38c89b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10202 zcmeHNORwWJ6b^4#fDo);l?4mX2z8KHpi!wbw{r*X)m3Lis@Z~X;@gHvlgf6d_b&Mx z{GRy}Y!MrN0z1xeoY;+>)P1Tmn#Fyjwmxfs0sDhNJ?S$%W)Gs04GozX`$&IltSEpiE!=w}{0 zPxE9I>uBvhINX`YH2z})^Kp}9zJQpzM;PGoDr zQ=j#F3dF>U@SLfY?@TBEufCj!ir%c?1 z591i_PE*-;1lm>)N7Kp-~>pXn>QxJN| zz+-=gP)6CfxGE;L$kGY_1n;mMr1=OCxFAf7 zDHrWJszfo-w+!wfBxj4eO|1Q7%lARJCuf(CFKx+8Nk(+3?Xg#%{t!-31v2{#k|zJb zly~80r4sRslejKlWSI@UA|A}BDgjtf$0wIj_q_3pvNZ16TNM@6QR=_1W37R7gi33X zIULQjm!}O7?lDO-n%L$)z8?RD(;UgIF=o-*n9i|4w`Jc#m7fFRs0eG&P)u2|bYLG} zuScwfkx=w@PUHRY^C{tc&-@&-JDoCRqn8!&^I%HyB!kY$l?TsoMq^QDcld`ZN9h!y zp^)*QGSxphH-8AN)g;HtPy+-Tlx9C_hMUax$nC!Ircu+bDJmWnrXXm5;`(>sOfXjk zyHg9>t@0GoC&zn0VPz+~WUcYq-<9e&v;d}mQIzq#9kjVg{ahwNb5HX=1F&mV*GnAd z91;;vhZ$LLDtR}DtBqOv^@zEhhti}6*s_@@8@t~=QVRb4<&a+<}TB} zayr`}wI3sDd6>q7{~jnO5h%>yf?}1=S5%bup)?u6jikQbkkRQ&n1^$#Yr&>E$`ID% zX!UGHi7mN$*xn7h;vwPG4scSi-yl#~y_<)*y>B=UZ~^mbKzjB-KLGW9q5|r58dixm zlsP;sZbFiWWo;5Jrv;~KAmt(U%%N>lla8JTKudlN-2z=Y@LV+aV8@yu=tA{8EqdoS zw%jg6k8^fqB~z82P;ISo%N2pS!MIK`-Yrb|uBzRXOYc;;N zV$I_^ss|j|CZr)5N@uhAWtz%Eiyd|NhDdlQF5iUhd?@x@S}@rJA|?}_EwP9U-PtDuv2JCPRT%RZs*cs zBMxKh7w_q%8givfj&=l)CEN%m$O6_hs|N`?f>cYwa!LM%Kdx^%bjDg`C(~R9=Fg}l z?7!j9WUz8Yb1Lzt%QqeL+0ok-V&&ehV!-$o5`-JCTRXEE?^?5FJB+0z6ue?x?c>Xj zhh#1m%-P$20gLg?NY&e;TQ+^64D$mVYTm-CA$QHG2Az$tff+T5H#LL?ZhYHBjo@x} z)2;?_H|xtjYOJN{QllszZM+&WhMI+;G1ROojG<=3qlWM#+z-G>@* k-!7>^hqI`WHD5?6uXg0`2XJJ0VXIcIVM^4nsyku+56!Xl!TWCLaec=-|K5j~FCKI_DkQxT zO1XlHLJ}pBC;;&G^^heZI*Axpa0%@jqcg#yq+59e+q7!ccKu5;DC_@%vIfCeEj7Op z3C3xx;Ld0~wD6t*9y=d!mSy1V>z$o(~$$aDCFf^xHcb~^F{U5aoRa0J(`3uG^&%P8e6|7XUr^G z*o>b-2CO8QbHG5!NkB#2t~xjW0G(_%k>{8JSmq$vHJQOadFZOI-Za?=nI>JjTn}*{ z5I$4UGlm!G)*e{jISsIX_@V@OMQCT2;x$z&I=yO4hZ$259>ATcKmXo^mwJR#<=XZM zqbyCdZRjW@ho^3RCK|&ZtvGu(kp}^uI-O9fkOymzOENsG4hq-pBO<%!0Id}5j zFdL5CGRt5cWE|@ixjHS=>%1q)oXGoLm1fM&iE`{G>?d`7N~k>2?S1pOf{W1=Kzg?3 zk}G+qzpI`Mwcu{BK()R>MxV;M&GPqJyEoGV&O+5= wjtjaTaVrOcw4O5c*c=M$Q5SL0&@2%UW@f)#=}|lMdcb`m>A?%0kes6b54IY~O#lD@ diff --git a/js/src/jsapi-tests/binast/parser/tester/expression-005.js b/js/src/jsapi-tests/binast/parser/tester/expression-005.js deleted file mode 100644 index c1e76b7c63fa..000000000000 --- a/js/src/jsapi-tests/binast/parser/tester/expression-005.js +++ /dev/null @@ -1,41 +0,0 @@ -/* -*- 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(); diff --git a/js/src/jsapi-tests/binast/parser/tester/expression-006.binjs b/js/src/jsapi-tests/binast/parser/tester/expression-006.binjs deleted file mode 100644 index d19dd551a8d26becf3efb5d3867e9dc4cc9e56c6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7177 zcmds6OK%e~5MJI7Aq3(C7ji6A(DG^}NGp*vK&p^dP1-ARvu?8Ob~o}mef$qj{4s>Y z2?-?r1v8F!?Z!^xq-jKZiW2XB_RM_q&5V=hopwl<^DRpJ<#iS}8QJ$Pd!Dx)`^R3P zTwSfbtu^8{_40G#nS2-|eEIuB&$|Op<@MLM2n)z|NLOehB#iJNjs%piz9-&Z5cwyu zegn>>VOTK}P=W6SQNS|*efzRcBOdGolnJ=w5-|4J{QSc6-NZyrcbF5t%gc?gz{>}OnUCuS z8Plgf0DFo)-70O=Cgsy>aP-yMi!ZND$4uXkzozF$w7XueS4yVcIw2gHc@NQAG#Ams z9AqzKV{BpC^d0(hdJeq>TNO4xRyRKvN*fb#>UBVT^>T4>;f)D*3Rjjg1*vhu=|0Gq zNM5BZR=q2dFjTLKHyZF0RVtM2 z8d9MMcflCz;AD(EWTulC=$=1!J{zG88Es5kiFL(7a>YViy*9()gCASv&LK1o{C7aP z2?yeFw@EdVDNU-rpIs5qBd_ZXU}x6#LiBq_X;g*s0UGrPuyu{Cbez|og7drGS#C+($*qa3 zewXXE3h9rce$PBHqo~KtaZ98{ZU%-KxB)Z)ZOnEc#1P%Hp*kKH6VhV14bkD8g9?%E zOGl`F4V`Rg(?h18`VM2t#b{N-!3<1)?sTswjna+KRazR7I0 zlkPt=ww_U6>X|U)l2xDNn&oCmuGj@rgEaomkZXO|FIR1x)0TQUq+urJrK?;uqb3*Z Ng;*{Qx%;%%x_?Y`5W@ff diff --git a/js/src/jsapi-tests/binast/parser/tester/expression-006.js b/js/src/jsapi-tests/binast/parser/tester/expression-006.js deleted file mode 100644 index 2ab13479a1f0..000000000000 --- a/js/src/jsapi-tests/binast/parser/tester/expression-006.js +++ /dev/null @@ -1,46 +0,0 @@ -/* -*- 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(); - diff --git a/js/src/jsapi-tests/binast/parser/tester/expression-007.binjs b/js/src/jsapi-tests/binast/parser/tester/expression-007.binjs deleted file mode 100644 index 39c1bbdedc646eceaf3a19d9e7b7ec56770932c7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6728 zcmds6O>fgM7|!@cAcVvPamsOMpbiNM39?G8?L?<4Otjk(s1#4#gh1k(&IMtv!C$|#Au)%$QwyHV>jKl@%q{N_~zh>F$D_O}Sb z6h#@_1&W3m-V?yXmjjB^6qJ3vyZcUu&EYGV;XHBcZ8&*>sJ>m5Vnu`g1ne6$=t<*C zdtC;-3!)#k-+X(k8|LQic!R{`dUu+gRzufYC4?m{pK`Pwc4ItpA#@=W69dz(V9-Xv z`8Gog_aX2y#>rSPMraL1kvy862;e6y<4RT5BAy?DqA5d^b#Tgb(-j&DSQTB$aTOJK zrW7h5+8uI3q(;>(l;K_*QAjzTAQxlWNm@x)*D1>)KOnrd2;V0$qGPF-!*fjTeka0b z%%P;)lgU%0A`Y}8FH((k4UiUwSa+7@3c6CkGFDhfR}!iP@+8$4p9cE<`>FjNSPcr> zFfs&|$`Q+)#NiGQiEudI6E{~Pe}gny0L}VjJv|4{QTQ^z1Ktnmy02i$XMpG@ZUO4D z9!*9D?1F&*W9z{Q1@#68>*MDUO4Bv-vqQ(SzGQuMlmzEa55-{wjcVRht1Q^(J7x}* zHsgN)mqSlA`%isCPy#oxB_uT8e6S2d=qDh|EG;Q)cs_hEo#coj+_Y0CGv@{Z%ED#@i6< z+h%(okECvE>flPeKF`*oQm7_ZXVo&dsb^}41-)8?hAGZSK7g^cKY#R9k6JJ~3%7D6 zFCFVU(9~^ytlP59!pLQ1V3s|q|0IhyBtnWP}`Ik}S4?@(5q0p-&J8y6W+ zwV#D+EckDM@&E*4$)wBFgK5^q+V`aOQ6*m`QK)CQT9fY`|6x*`Q#i W`U|L7)$K19%tci!E_jGE)~&ze)rS87 diff --git a/js/src/jsapi-tests/binast/parser/tester/expression-007.js b/js/src/jsapi-tests/binast/parser/tester/expression-007.js deleted file mode 100644 index 3e01e0d8c90a..000000000000 --- a/js/src/jsapi-tests/binast/parser/tester/expression-007.js +++ /dev/null @@ -1,44 +0,0 @@ -/* -*- 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(); - diff --git a/js/src/jsapi-tests/binast/parser/tester/expression-008.binjs b/js/src/jsapi-tests/binast/parser/tester/expression-008.binjs deleted file mode 100644 index f09c68a792ac9181f4be0977fd7a753f1c417fe0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6615 zcmds6&2AGh5H|lHA%w&MiPIj7DwHB|K(LKO(;!ksp(3FYC*)?`WT~?od7Y+t6`q5a z;fA>J7L2{#wG%t3lctf{Q?#}HdFJ!XHy$_Sqah{LuupJQJ!EN*;Q_jh5IRny3EFG4 z4%+Y9-E>G$Sdnu=8fU!v=Q%=;VOD4^Kf)}=$CT`oF2xME&xFO@60@F$}4%5>HvpC5sv8OMxwNXBjIN)HvRiLULq zj0-|3l?#~lMuLdU>AHtA;?%|rBB86^tLj5FHSIm zB_|xQxYyU>sia5%ZR?FplCA*KgNSvjv~V!c4larc59=1BYKfdnefjAKzZIqZ7r0^_ z{4CabYUN$ns`a(mw23n#q&1?nD3h?DjQv^PZ)Ekm4-P}^A5n+)m?U}1wt)MHV@e{M z^ODbv-6H;hH5&>wA>-t{ONQdgX#2hbmCpdNl?Ekf!22v6JFqv;>jrOUBA}oolkWQB z^AKm*n&Y#>Cb|U6)`OpOix&1Prx3|jFzZsOp~NJhOx@_6 zn}2}IelHQFUIQ#sYj<^on?8Az9$&p_k+ET#aOrZ_tofy&OdsV*`JKy@>7Ut4f<+~@ zU~Rx6zD;0{Ft|YNT&SMriZpaM?n3mib5Z$O(&a_B zFV)@_Mi#&34l9bpa<#&P5s~!V>$yxhWjf*3S$Ke0ptIlLMCJbqviuR=zD=qDr?jXs x$E%APaci9cX}wRYu{j~EMqPnp49&Lv24-eINUBkrdNts#p=$7gcR^>F`VYHpU&;Ug diff --git a/js/src/jsapi-tests/binast/parser/tester/expression-008.js b/js/src/jsapi-tests/binast/parser/tester/expression-008.js deleted file mode 100644 index caf310195bc1..000000000000 --- a/js/src/jsapi-tests/binast/parser/tester/expression-008.js +++ /dev/null @@ -1,41 +0,0 @@ -/* -*- 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(); diff --git a/js/src/jsapi-tests/binast/parser/tester/expression-009.binjs b/js/src/jsapi-tests/binast/parser/tester/expression-009.binjs deleted file mode 100644 index 392209cb016b9160ae3878ab88d350a07f9f1307..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6652 zcmds6&u`N(6b_7^5<*B^5T}UCh9=Y@aRIVQtSit_m1&7~;efoxYs1o{a@=+OSNOL$ zaplH;!L#GUUhQUX*Hvt%Dzp9hz0co!&(HJdXc*(V*T*QV?~}Ag(7?IvIL=WTPMn=q zXU~7DBMUHh!}aw7zz{n)sVn6Cf&< z&*!%ziV2E2+$oAj8s1~T!)HT+vkaVlwYBwDhb`c1oH$SHx&|vx5z(isRxC*9Z@^w5 zp@+=_e_4dy1=IKZ*Wcgh#H^mj6$+F29khaWQ}Ftk2)6FhbybRiT|gVHWR zXtUJ3PZ7lf2t2Mh84Jb;ZJ;=oOZkc}{0YmrQk}Jk=ZD~EMiHR_&ZtgZ>7jsC(WM=i zae-w@;Q}JP5hEfqx^CeNJGC)^l=B&KF(yIUPJ6mfJd6B<@YW)HCrS{RNWUDGV~XQ< zVth;;67~8rd5ToTfHvhuDoIxWX+gxYvov$il@3;^!os?WP%V-3R9}7?tqY)DNDFv#FOqA14U z|G?v4ux3R{WLX}cb@7nhD0SZ#pz3_i@;C}ZRFt`;wh6Z~rs8v*vpkL)CN&F^nR+0kj9I8) zy!cg_zjmC>QO4$Lly*}!)i80TM?Zj1XGqxfpH9k9Qu(tu8VmhfpgaJBXqsOW^WIa0TX%0)&|F>*NXw4t1(2UNVD7fNzW(0LdkOep?>hO& z#!LP5)bq03ipjywtyARbUGtT#)ZfsFvokKr}dRLbR~6ssPRDa@7q?y#E$P z7QgBa3#N(rs)Yq3EbOV(i<)psb;6u!;fg0<7a~&0f7d##sOVvLZV`>Hf diff --git a/js/src/jsapi-tests/binast/parser/tester/expression-009.js b/js/src/jsapi-tests/binast/parser/tester/expression-009.js deleted file mode 100644 index 9a997d7fbb25..000000000000 --- a/js/src/jsapi-tests/binast/parser/tester/expression-009.js +++ /dev/null @@ -1,42 +0,0 @@ -/* -*- 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(); diff --git a/js/src/jsapi-tests/binast/parser/tester/expression-010.binjs b/js/src/jsapi-tests/binast/parser/tester/expression-010.binjs deleted file mode 100644 index 988918403d223d43870d24304b8f5479ef43e1c4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6623 zcmds6%We}f6g6*<5JF;s#D-ZG6_i$Dg{F~68q`!FR88oH1#)NHWawlj@;FWNEBpzc z!j=URf5ElKGj?Mqb<#9ayNVLq$G*qsz8s&8hB2x7eS*X40Zn@p571qN&~X}0P_5bC z?|kS4>5w45BIfvUl(FjHmk2$DS-!sf2-653$7GiTF{YSBX(FIP^*uwUQ4(In`U5z3 zF2hQxfQmvCB@rtD^zEA=Nmz6e5h~ykJWz+u7>$x%^$~2-Y1F&TFKxdffAcF6M91og z`K^c%iemwHhU1Ze_YCmJ`H+$<17qK9ZEu;d1$;#i=gVF1!OAmC&FT6nmL&8yV6TzT zqsC!pRfIl(qwjaNzrQz$SwD|!6ehR3+w8U)rro+A9A){OqxFfGkg*4@3$B=2ly(I| z8>Qwu3^OtS#}kTEzF_sxI*wztRICW#C!+jHH`c+QpMaqm!<2PN#!Tu;3ni?MuFi24 z6L_SQCSckdaUwFS=?=#5TN_gdIeQR`3GJq>v}f8RqR3BhZ^OfDQG)42*@bwFDXt&I zXFN+{zTld4d996k7t2&XZ&8=5U{I z6qC@Tz2tLkrNlot&6@PaV>vkw$dK2KrtM2m`2rBzsaJw}tWVRi1$+IxuCYYpf`YtE zg4OBs0B6~X_1UEpm4`+D5vRc^>f}9K2o--X;rU(xERt|{l)`nJ9P*EAylIoMb~J9%)oLxi@2q@KI*_!b{GJCY-9o*k z1jLfua*3R*uc>1e^y@JmWkhg1gzj=MyF=BNIuI&uTU|$S5FKS%-=Z97D!`@wL`n99%{I_(&HZx)zOghBA-o4SJL@&xEcrjJD@y< z1Fq6Z-g z;q8d0oBZdEH|Evpm*uz**MheJ6)?OBnSh17bzlb-ToUYTsE)_wUT87ghUjq4dD&+{ zljoIRvcD}3S$yg{EEyvfOBD``aGz&Rk7m*+-3WV_g=dI4VfGu`sQAYq%b((H<)j?4 z#uhndd3}*1_F$($8t>F{Y=(&Cs7*TB&~)doVP@vTq#QNLmjm`BDhDrlAGGGF|NZb` A`Tzg` diff --git a/js/src/jsapi-tests/binast/parser/tester/expression-010.js b/js/src/jsapi-tests/binast/parser/tester/expression-010.js deleted file mode 100644 index f8ad983cc480..000000000000 --- a/js/src/jsapi-tests/binast/parser/tester/expression-010.js +++ /dev/null @@ -1,43 +0,0 @@ -/* -*- 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(); - diff --git a/js/src/jsapi-tests/binast/parser/tester/expression-011.binjs b/js/src/jsapi-tests/binast/parser/tester/expression-011.binjs deleted file mode 100644 index b61edd52d2096810afab769b198edb0674802dc6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6754 zcmds6-EPw`6wdfZ{0NB~#0|MZLlYX4xPq+G+7;2Mv=gm%i@e5b!_v5N+;zR-L3kS; zgIn%+3yxhUb`z&{yQ~tsno`@J&+m86@jNyjg}CAkF!C$Ml=LYYI=39hIVJwosWw_i zoe!NJ8DYoU6??oeh*{;!3&(j3yFC5)38Dcy4e=rFg@_^+kVruJ>N|GMgUFx9`U5yy z%diL)P=W6RQNU6F{rZNFBNm(mmv_HPfUpe9XB=&S-3U)yNL@%pVu-XW z7_^?oe1{>1hmd$8;#4jeGqi@nP#qN~dhiogd8I3Bk91x;SQe)1?|pSRGx- zaTOIfQ%V&O?T@)3Vx#I7%5bkuC{WI4;9^X>q)GaDodk>gg!Im3cr}O+ohrQ?&M}Gm zoe-ZfhX(zDB2P(09B4;fq#NlPAT110HcN8_U8UfnsIZW3L8_+6GpbKN4dJ&Ywf_QD za*oepl~*gP?RK+%u%uR22?;TZ3XA1dT47Uz+{99N4_pI{z&JDzk)BhQ9M0iBp&-P5 zapZ2UrTDwKxZ|9TFMD{z`^UWQYnbvmAhw8`g1T%#$;5zt#%qN)}^*+7`T9VvCCEt;T`Dhcy`Rq-^%MM8^q;l zw{Faz0~lWW5pP`;z$(4tzS3<)%h;Ao3nO!=B6iEhs4k^a`9HDQ3gvONaqE!i{^!9( zPQOF7a7L655o~G<9t+o4#J>f~0}zOjS@Wac`p4Z>D06Wz#3sH22t2M)D zVzz*zUcx@UH+lKVn!`*_i4^+nYsTt)Jt%WxgX` z9(@9rCTweLUgOz+1Gu}g4Ygb{(vMs-JOIfRGaqV@xuGv0cjF=TDrGUJ5(Wvc{=4gWH(^#qU%pRRKn_Csns!6N2oK^&K>6x>;(ZGu|0vcU zz`1Z7R?Gxc;Cn$7@EkzjzUkA52VVlp1YAT0>d*;iLDZ{WgKgT4dZ)S5s+8q#m9hlU zvD#w(cEBkkp@92N!jXY@3-IXSkkKRoV;^oj+B9J^__83bB6qz6E58$FPS;PdB%!|m zdxeDVH+I`a5qbrV{=WU_^AnSp)$_PQ$3(k3&CYhiv|D!wN4LC}hp?Y(X7eW*2d3nBF?AU@uF{`}cf6Yd05HgfrBbHeEWG)z2RB`a33 ztCKKPOT~&V{6v*R>3-uNjYwF+3F94_@HrMrSRGxR<0K|v(2*t()*B%aiPdxmWAFit z8L0O=2y2ve;_bL++9U+|Cn%*MmbD-vY@+P)P_DC=n)z4DMoUIXZoBwttYXp*l#X_1x7m7YQm6Y! zi;gv)EAl~z6NsF~Jb_?%2aaew1IKWK2ki$Yu*`U-@9tbCLP#*Afuqo(o%$6!Qi^bI zNDxxrLaW4E9glx)&T%?V1;Y?M?9w4t52o!)Pnd# z$>Pqs`75aVdJ(273Sg03VM}?qZj(dkbk&=qAq7o3S(=FZ&I)Du1Ih#{`%E8{ZlT^- z0K}Z!X$XByo$zkI9+FW)1;<0^F$`w+DfFcdgo@i%*O47WM_Jg_9zfcNUVNlWqCDlC zxtasX^HeBfJp0s{KXaTd5XKg(+hoL4XdRs(Y8z1 zt*`ZiwfiqiX=RZOiAr+)zIm7W?Ky6Y&QV&2lo(otCSd08IcO?5xykfjABN9?jG2T}Np|2^c`4DXktHlNdmrh5n)W@2_{<*0dU Qa=;#r<=`<*QftKf4>7DBk^lez diff --git a/js/src/jsapi-tests/binast/parser/tester/expression-012.js b/js/src/jsapi-tests/binast/parser/tester/expression-012.js deleted file mode 100644 index 69e39ba47c53..000000000000 --- a/js/src/jsapi-tests/binast/parser/tester/expression-012.js +++ /dev/null @@ -1,44 +0,0 @@ -/* -*- 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(); - diff --git a/js/src/jsapi-tests/binast/parser/tester/expression-013.binjs b/js/src/jsapi-tests/binast/parser/tester/expression-013.binjs deleted file mode 100644 index 2c33b5a9c52282454cac85de0787e40eaa58d4d7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7198 zcmds6%We}f6dm5M03or0RhC5vl~NuOq(Myx(5i&0NxMZ(#!ZG!W+IQ%$A7Tm&yZNL zLt?=vaIeQRc48-W(rKi&n<}w=?0bBD?jvPB9E7w|?or}bwprX|r0-qzJg*)5Cth`< zvDtjn?8F1=m6yewau_7M^7omfb!Mn#5)Kge-!IC z;9NNkD`o;J@Vy`kcn+X%zv0t}2m1kK0xlwbb?Ah%AnI0b!8Xl$t+nx`QC^ncm6s)m zj@1;)3KSKnzCMd%GU`et+G>kE^Z#q+p8$3(kZ8?CLnX}9hWj&6A$(R#EL(W4SPU3iMI z#nTo~=&!{&<{j9oy8E%Q`?*@*DTLIUfVlen_3KwJO}H~qSr5|(In2iZKRWQ z4v-E+6dmx;z>+dB_j`+1IGk>Z>gC93)XYCxHkva^?%OVY9IKeL1Es@7i5m1s^SL4) zggC*l-=>y0AQ)bUBjV+bByB=kqu)@X+H99bmm++CB%B4*;`*AsN#&VMN^B_zD?9(b4#Cn@Z$^U%nsm0r5ci!Fyz&PmZOK2U z4@$RCZzTX?PHw(LPS)4d2=DZ2AsHrAa6EvnLVt2+LSO1YsJLx)9oa#2l$l-a2_%Z> z#Uo)85=Vl$baXQkI zO***F^_;#sD%3@0`*?SW8TN9%P%9Io5Bpgf0q_hLXg=KD{9{4}hV z)0bQolOKUC}d2OOOvkXV3)9oLvWY@QG8T&xY!F zTzr!j!)=HT=bRRcW;A(PGB%+I)_0gwF=h)K4ve4zaHoEsG)gzZF1k=8P7&SjaHII6 zNhZ4JI+iwVlKxy{OFi|Wv4(~mvPzU3vvi!~h+Q)^NaJS?IX1!j<*3c)w4w0^f`*xx W%~&~V-kKb+$6`5nN>9`p?*0RB1s8Jw diff --git a/js/src/jsapi-tests/binast/parser/tester/expression-013.js b/js/src/jsapi-tests/binast/parser/tester/expression-013.js deleted file mode 100644 index f4986a5c02b5..000000000000 --- a/js/src/jsapi-tests/binast/parser/tester/expression-013.js +++ /dev/null @@ -1,44 +0,0 @@ -/* -*- 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(); - diff --git a/js/src/jsapi-tests/binast/parser/tester/expression-014.binjs b/js/src/jsapi-tests/binast/parser/tester/expression-014.binjs deleted file mode 100644 index 80dbbd50cb112fdf4c2be739841958a57df43fc4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7117 zcmds6O>Yx15M91O0tDg&ryN^V5Xx62NFz0AfS@$3nzZ7E+^m~yyV;GrPSgAmB=~0_ zPDmX17mU5$wHrH$lWrr?QQ zz_~IFD?j9XZ({&$%mzjjzGt6GZgs>Otn@ z^e131kkkFjZX+vBZ^F?l<*kh`t2#4_C-V2=h`a$?HLJ~9MYmgx2+PoXz|cB47vMn- zt}k52&=6{iC-m3i2)zSamG(Z=_qIxv-AqVjvH9}F+S;4fI@~#^tfUgsporow=or7f zQd*3HS4O@sm+}=Y_z6pyQsc%#9vNW~MT9nSL?>7%U{!Q^j`Ntn5|1zek#?UE5gARl zFos=#0RaX72&oN|W>^c`x=mb>zk^h2YFY9EM26BXhv{{4lN=u(Qipi$j?6_u))~-> z+(;$q0w67j$U5mU19Q^AH0}*iVR5<%s+S_iX*2z5*l5l)dDrClQLOBq9;NN=T4iI( z)1!_DO3*Q~&v&Vr`%7WyV-$>cTFULhUMN4{Sj@PIFUV}DXQ~ZPw7zf9H1&E~W>yCG z9(g`?C-Av29{(>Ejch_HZk^_}oEJ zlyQ7E$xx)7d_!1bZzO3Fhu3QBCo$fAj5Wnj`{sfH4YDF;v{3NPd48&H$A z1NMZF0JG%qbs6ERO%^H5R&Opu>Bps*^acrI((kcSsV1sbKk%Hgn=TQP)iq^ATb;6x z`Vr-)Nf@Bu9aHotilrWxr zs?7g)oXwEOW-GBaLse^7aD@j)z^BtAtZ<;i^eU70$y5ua?_!Bwv3jMcMBon@8Ee8Q^j zGK#S76K>dN5UT6UdesmMcU#we7f_b|ACQ(0{ydN`O1IoPZ>WiSYH9ghE-oyR-{b7N zw5+>Qb)MzEEH-jW@Fa#7o(`CVy9#U(6;s5|glc(Qb}J2rn-DF|IVl^>X!4}@m}to- zhfF@z9p==G*;0oEBTNIRRbx&Vr5a(DU1)VoklnA~(fhDzBD=hkF#5iX;(u0HSQ&b) zV$|4!P{y?XWW<=EIV48Rx~V{Fe@Te3G4U@(O;M)|jdl?f%t-H>ic#HfV!)h_#o(0o Ir7`9G0~Z4RqyPW_ diff --git a/js/src/jsapi-tests/binast/parser/tester/expression-014.js b/js/src/jsapi-tests/binast/parser/tester/expression-014.js deleted file mode 100644 index ac2dadaec5cf..000000000000 --- a/js/src/jsapi-tests/binast/parser/tester/expression-014.js +++ /dev/null @@ -1,46 +0,0 @@ -/* -*- 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(); - diff --git a/js/src/jsapi-tests/binast/parser/tester/expression-015.binjs b/js/src/jsapi-tests/binast/parser/tester/expression-015.binjs deleted file mode 100644 index 87a6c892fbb55b76dcf2f4d93e8f614801940a1d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6274 zcmds5&u`N(6wdgKkPs4r1E(A}O;9G_0$G7|oz|)9CR*)^+{SCe(xh_Sb^R;2^Ph1; z-1skecAVIa)7I&-^5aycwmxN}n-O!y{dyUpn z`)#`yjiB}4&Q9*lz?%Rsw^d_U4*ui(yl z%J?=#6b~WoINxL@5Y_>kp)K3L#=Z+j1k-N!I{r;E1v{ni*(I15@7Tu)^SU3lcR&j)gw`%-QJg7xp{g zH7ILiKPRzNjuxVJ9Fd$IlZKMJ4mIL#DF6@UGeqd*{{w1+EWmYSL1xEZAc+ zGK&_r;_rdU8kuDskWg$AxJ)#wxtnK7beZ+-7TX<~XgvowJ-aZhSz#zHPhf4VRrap^ z>ILuAkIy!@-syV@jY(5OcwYQH69?t$!wwc-g$_})?-5{K9d=1vxRG8V5?mFihG=h4 z^U*lMye5y}YBZdGy;7GN)FU2L-A)yyFr&7ibzq^Nx!kSDsE=?n>IbYdk^n_olU-?> zYLkIyOe>fn6l6}W*d!rOe$`V-lM7|xpYvIPYL$@+#=`~O{C=p$pOGuh3FYwS^~gC0C8IE<`LQ>|$3#5!PeE4SNkj#p+5? z(imScuHgpsZ$KJWUiJj26kI(_D#HvhS={YSXln7q)&cXVYmneege?!%@VG4Fwn{sv zXRuNE`IS-(E_uV^nyod< FzX4OU@EZUC diff --git a/js/src/jsapi-tests/binast/parser/tester/expression-015.js b/js/src/jsapi-tests/binast/parser/tester/expression-015.js deleted file mode 100644 index 4febd4c3c935..000000000000 --- a/js/src/jsapi-tests/binast/parser/tester/expression-015.js +++ /dev/null @@ -1,40 +0,0 @@ -/* -*- 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(); diff --git a/js/src/jsapi-tests/binast/parser/tester/expression-016.binjs b/js/src/jsapi-tests/binast/parser/tester/expression-016.binjs deleted file mode 100644 index 0632656da96188c756632a945ea6330a1f3d6f31..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6523 zcmds5O>Yx15Z&^PKnTGBiBpcPDoBwK2Uvn=nu=6WT9MEb5^{H)#B{S8d7Y*?@;CTr z+z>bZ1!Kp%c48;>wrNCrsREP<^M~F^R)ztUrLW zb{1Ab1r!NA5)+mK=*QPX95d1(mk1gj{py!4k%7jF!sgPt2ZWW245DA^W~{G;g=_fn%nhToYSGd0DFZF zJ*<6hEz6;|;p%&>SKnTnj#<4Qf3MDu-0pV0-Kd#%>x3vk%iUod@C+;>Fe z%NgHdh~Yk@o#30w1Z#fsi>RN9Uj*geho7cqhB zq%;B1?vOhowVLi=%wxbBQ4pL@pv0KAlSa}tZ4w&t6O!A=?`;wzI#zahTwy@BL5D#* zBivygCEcEqPANnjXj2`eJLwW29UQT2jphcHlz}<#Ev#_3-GW5Tktaf*e_9Uu|AqYy zcn!+hFtQ|;&JjmN;&8i&L^zxuiPaUzzi=BPfo5Z}oQ{KQ6g~~`fNQa7`#D_s6cC$9 zDF-dF9!*9T?3{qtvGL%9f_j64 zj+q}VY{fqSu0dv12NV?F1TK@!s`c=X(8qRTUdI$bkwWrbFfivEK^3ur0Rxf;6R7t^q9dhbr^*#rX<@6Suagq=vb8Ay0QWKg4N`h>#fXz8T zp03h!1s%xCrkGLoJ1PjXm~+1;5}_ZdkAAM#tRfclsu3EdSg>XQQ(%AoB&i?gKoP-T z(>5KYaPn+Im&9o?6(q&|YnD6?PF|#|v+U75f8~5upfImOa~wkBz<&pnd%$*fTc(7{A>7W>)FljiR|C>;)9HDvmOY6|a<59^3%owc$I|Tj=eY2rDUY94H#c&&LKNDnO!pb ztDm5fyHMFLRvjEX!qc2Ny=Y0JbR+D_3bXA3W&H{feF%qU%4*e&bn=33dH;|rb`g_{ u9MX6vmTPmEDpzg%(3WQ3C^XE}d>WLiribN%y*SE6Ylkh@&Un4E)~0{K{zfJM diff --git a/js/src/jsapi-tests/binast/parser/tester/expression-016.js b/js/src/jsapi-tests/binast/parser/tester/expression-016.js deleted file mode 100644 index 9d0bfcef4e3b..000000000000 --- a/js/src/jsapi-tests/binast/parser/tester/expression-016.js +++ /dev/null @@ -1,40 +0,0 @@ -/* -*- 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(); diff --git a/js/src/jsapi-tests/binast/parser/tester/expression-017.binjs b/js/src/jsapi-tests/binast/parser/tester/expression-017.binjs deleted file mode 100644 index afd2dc722533a71d2c89709da600c796a7ff2e15..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6319 zcmds5%We}f6dm3m5JEy?!79t53Q8rUN@$2g(^RC2(uzdgf;;0T1I|ojJ5BQ|`~{!G z4zc4exOSYe8#_}^JB?^p(Zu$#&wZSG?U0X01lPj>MsfXsW_^l=!R;Ujj5LT1r7QOuvci% z!{+C1RR+BWN8jsietBmbX7zUby*fJz-n~|@-L!d|0Z}3>cgJZYGO*S_gfJWS66S2? z5#QyA;~}J-j5nPL&ioVy(M#ou2>!x4t4yjM+58BM#yFz9hZ!$ms9;TWeU8ge5IU(S zAle@bLog?G4>HdHYeGSAK7kTr+RNHm-{vGWt9pMN?w`u~OfK3EOP z+L$;J%Zw3EMG|nkC?Pmr?upeE$iHwJD}fe$QccGpGzy&6*B9AUlPvlk3{V;qXjA7cwHXE5V#dOv z!d9F?BwN9(>wtz5lfY!ES#@sy5&GDED(aX9C{sv2=m z18yBU3lYm_?tVI6Zdky17`aG`id=u~Y*wO}mCMte%oH3ET-nh#(Dq){%Y`1e402nXWXtktoTY0<^jcQry`ii@B%`)*@Cdv3vT2Od21^+Rs@66T4y^H+yO zbIeX=9atIJwDkpJwSy;mrBsco?n}Za;@;Ol4BI}D#I``F?h5uM5f68J-$1V5f^#o^IvlZo!F&He!0rvVG)ty-0KBMkupiRRTb`n1*-ZLJo*GSovW%- zFWBtG+3{YWM%)6X1_h+`uByhCM5-Ef#fKVN+Ugoh7w`PWp3Ht~Q=_&A)PTEis=;$! IyqvY^9~dtKl>h($ diff --git a/js/src/jsapi-tests/binast/parser/tester/expression-017.js b/js/src/jsapi-tests/binast/parser/tester/expression-017.js deleted file mode 100644 index 1e357ead7670..000000000000 --- a/js/src/jsapi-tests/binast/parser/tester/expression-017.js +++ /dev/null @@ -1,40 +0,0 @@ -/* -*- 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(); diff --git a/js/src/jsapi-tests/binast/parser/tester/expression-019.binjs b/js/src/jsapi-tests/binast/parser/tester/expression-019.binjs deleted file mode 100644 index ffa699e488bb803d2ad72111d117148a4f1de846..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7291 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 V5P|wHw&Hqiys#znT1!4!`aceRGC2SM diff --git a/js/src/jsapi-tests/binast/parser/tester/forin-001.js b/js/src/jsapi-tests/binast/parser/tester/forin-001.js deleted file mode 100644 index 215de6c4c8e6..000000000000 --- a/js/src/jsapi-tests/binast/parser/tester/forin-001.js +++ /dev/null @@ -1,297 +0,0 @@ -/* -*- 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]] ); -} - diff --git a/js/src/jsapi-tests/binast/parser/tester/forin-002.binjs b/js/src/jsapi-tests/binast/parser/tester/forin-002.binjs deleted file mode 100644 index 3c83f781854050e9d1bac3b4068ee9f62065e5de..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15210 zcmeHO-EQMV6!x;PEFd930&ci4d)3v7wk$WON+X&yt1arLK%zwg!OBUdsi|v6V`odn zJrb|L9TMW9Ks*2!yaVTq$C=a2*qQveX&3jRQ8M=D^FQZjTua8IfYoa!%p26d;L(tK zXUY^rI1TYFpx(THwb?{o$vM^CnzXqqjfxxbO7>w$J*3$Gyal zLIE{U-(%<04+odA{sx>|v#=sAp!|X3hkh~vppQQourTqDeZ~b`=$$E|LAM zrqgP6502WkE%{q*OM+0Wj=28NPZ;+C0r%Vs#v0yhfOi}L^hev<4|T*0c}vKwCLeek zZhG!<{c=jcg0lP*u&+>-Pg`GgRwc_jKzghBWbfIv5ad5sC&*XeQQd>?VXN38EKTx# zL_1+FnC0f?rXRX)oOlU41K-f`moU)Qk0Z|F7<{~w;S0-Sli!U_+Vp}z-74h_=V!j!B_*q8-g(e(10B$4)=#ADt^k4gg_6}gQyBhfV2?AsslAL z=qd&$c5ko>3+f6yc7mLS{K;3tgC32;KJJlpyL=hwggtHq+vi!FzXwwVSL2Y)fBq@^LRqZku4zl2*(;~d~d$>dk2bLMg z+i)*u$(V<30#?3R93C>(r$4DElpHFHQWk}3OrlgNx*9WiQaP^Gr20#k)O#kAav!+& z?im<2@4O~?RCZ-5l2f~CkI#C{P^6mVxK_LBEn!#h=GfJCWmYTCPq0u+qDB-2%nJ?j zm4WKo#4CRZyZS)cm1KB>?1k=q1N+5MOLmZ`aA0&j)@`} zIdYrOwSUPQ6yO8N2P}QG{_XcmEVRFV~J^_V#`R9B7fiqD6)yrnEVy=MAO| zYu;|*5AZY8iTmD9<6#xxEq$Z>l6X1%GkY; zmP8H8zI?lM*Mbv#q--~5LfPP6|CB8TBkyB8{ETHDM+!C8ixHY0(>c%d1&o5zF zO9PhY(OhCp*Y{Gcrj(T&*hBKthTmf^-uF2S|69ON)+i+H1Bpk~MLUIPTj_T=m6qoJ zY|w_|b#W1XdQkAgOipon0xw6$f^VIo862*WFgq2jkHG7vOG?o?ipjj@=yfe7e>WAA zRV9Y!l+)1i8%&h65PY+$?W&lB?V&0r>uAO|x=bsf@+$$-vLtaq8&xqWUYN*9*Rt$K ze$uVoQpQy=S;yqCDkjsHiezNF9^Y0e zY&0~z5u7WwZa&{b(lglF09}S2b}s7x diff --git a/js/src/jsapi-tests/binast/parser/tester/forin-002.js b/js/src/jsapi-tests/binast/parser/tester/forin-002.js deleted file mode 100644 index 7d898d6bcf40..000000000000 --- a/js/src/jsapi-tests/binast/parser/tester/forin-002.js +++ /dev/null @@ -1,77 +0,0 @@ -// |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) ); - } - } -} - diff --git a/js/src/jsapi-tests/binast/parser/tester/function-001.binjs b/js/src/jsapi-tests/binast/parser/tester/function-001.binjs deleted file mode 100644 index 775b94c1a520c4b87f50ea78f0428594596bf7e6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3935 zcmd5Yx15H()~geoB+A&xmx2}t3HmPjGZA*iIN8}%AFS!Zi-c2~C3Hh+~rfW)t0 z>~&%{-UN5k22Rn&_Vdh}c{Afk&I(3a(K*3M>l@Egj;H88LTHpHbM(2_{}O+U$9X|e z)YN+-Mulwk_7QplyCV1a8Ris^7&#(ihB=lr&ooqGzXke1v*bF~FTlC?H>{j%D4HOe zQMm+gukR%!lXOA}*Kir0TBC*JG)r5L;hMPH8T3y2QPcbvH4TW173=-SR1%JvhP%LQ z=Ha~nyi<~PuZremmW`FiZx0XO``C*+nwq`HT>Su!UtsQUcTK6u>QBJlA**NI)A+Vn z-2>CRov-cT2cMbU6Zw00L_UJ62ED;?*Z14ah`{801!!e*zHSs)LMmr(8WV<7(Kzrg z*n(I{e@=veu(sZ)yscDdMT~J1^K_=lo~W!u0h#^`u-ZwYDs=~o3bys2v=3LRa(Zpd z3~YZd;ao;88>R&wyc-U6Km zUvTa5jNRCoI%yhFR?)=v@qM0qud94Kit$c$fKjw_NYg$=!{BBR1l=^6278UxhxY4s zFCF2aT9JFIF=2e?+p{2e1iPx{@gqbD>c)5<_hLj5Cut&~BK^&R6Ou&dv3>#0jf=2S zDxpXekc998z`VW@;e?Z8f~kZ{&`=A_I3-Dc=N??suGcz^gI2Yo{;O6Lh>6vf`Q$+3UrUXkG^Cw`h(U?c|&+Szi z^Dc;9uYKJ8@=qA@_xcQZ2d?TgI?Z}{M0m#J6M;6s;X4_Z;X(H+?r|IW5}{c?8&S*{ zq<5Pmj)#zTGUjmczcW8;D30|}d7=k@VVzZG{Ci~c1JIOlM0p3ZG7TO1t>w6k3W6t< z3W)Z{!Vt`$9WaD16q#Bhd}nx-VhMr-0Z> z!vZwq1DZ}8*hK)Yt@&7Ud_ui(mbN8~D&q4HF}C9P?9i#MFS4tS)80uiKuHuso0_-O zroek*$IPM9R{Rq%f<+3t4rnN`2~4I+xAXE{sOtSh)G-aPNFmwQ5pL?_!K=P})4~%& zG@(*S578MAX6%N|h1NxKC^@a~ENM(F%webu$~;p;yf>)DXw0y*;|S)W;r!XkJnCUI z=}~R+Tn7_n;c(i7zClFlxyeo&@jnYE4SS!Dunsg$9 zE0se@FruPC<W+e~DYR&N^pjO;0WBi!W4nRL?AJ22YFk(>xT~XDyx`Hw HS%CfmU>fbk diff --git a/js/src/jsapi-tests/binast/parser/tester/global-001.js b/js/src/jsapi-tests/binast/parser/tester/global-001.js deleted file mode 100644 index 228b110c8954..000000000000 --- a/js/src/jsapi-tests/binast/parser/tester/global-001.js +++ /dev/null @@ -1,45 +0,0 @@ -/* -*- 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(); diff --git a/js/src/jsapi-tests/binast/parser/tester/global-002.binjs b/js/src/jsapi-tests/binast/parser/tester/global-002.binjs deleted file mode 100644 index 6e10384cbdb2a51a1f96e60c2a50f32c191c152d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6254 zcmds5O>fgM7!KcG2S7+1IORArp$^0Wp{#;+1v*vTv{t(!xA9uDG^reSUH=7V{uvi8 zocI^KcAeO(-OTB_3U;be+mGM(dA}X7@hHO8V1Q9rJ)lXSqM>)w^So{nPQ9H*Yp?yj z-AhK;3o2qy5RsHszd!f9N3bi~9i= zDT)N#DT>Ah-b29aM@bh&ueP?{n2;HCMUWQA8*jm>Q$)?}x&%v-`4h0$Naj)fu)QiW z?||rg?bl!5n#8Q1$KUJYk?Y-QbeeTjZ`~mrUGgbM8({yla7%x``wjP)iF^r0>t`d1 z(-fk+%@D&wh&thNIRD=oo;4Ij>Zmx;gTJr}DqUNLV159arVLTm!D*3(5>`i7a$H6Q zo+hOVi1x>vh}5dOgECJ5YeFI4e1SxaX(wqWebZ_pjr@T4HbQ)d#E4FnULH>}khUQW zL+Xt1G4m+t4^-xqxrhU8s*7}zt^m@3h*hU(uAr|J%>CZt6%NuB#A=Q_%k}xE<)VK- zx8DWUAjrp&C9rfKaZE}a?h_&r4i{TueKqnANMi)hyiHcqaPS<3&w6;on;}#8C8&G` zh^@rWL47u$$;5)4JK%NfJ-9RM?3hf+ri!tm=S*;+udnS-P#4e}t;uk9i$a0A&ivw(@XYCx^W1ns3TA z5uE`^HBEqkTqdOqRKm58at8&Te& zvS}WbI)4tPaqxc!l=~nMOJ<#n8BCdJ7yhm$QRvBqt2O&>Vm5nB!C?!YGt_h;E`0&} z_}=VYVV;heWQzpXxn9y&TX>>Qimb7!afsW5k99SaV$&uf&AHw;BP}0O45y&rm1w}IO1~K`y0^K;)!npX6~#5J6QdKIbl> zc-u}39*yOiI*fW?0X*`|EwFRCkS8e{GEzQsD8fI!fmC03;VYy(hjB@dU7b|P= F`3uh!>|6i< diff --git a/js/src/jsapi-tests/binast/parser/tester/global-002.js b/js/src/jsapi-tests/binast/parser/tester/global-002.js deleted file mode 100644 index 1639a34bb783..000000000000 --- a/js/src/jsapi-tests/binast/parser/tester/global-002.js +++ /dev/null @@ -1,45 +0,0 @@ -/* -*- 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(); diff --git a/js/src/jsapi-tests/binast/parser/tester/hex-001.binjs b/js/src/jsapi-tests/binast/parser/tester/hex-001.binjs deleted file mode 100644 index f210c40d6b2cccf3877e488290f3b2568060c45a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18562 zcmeHPUys{F5I6s!K>7Ct0s^(Cio3Sr0ipCzE=|RuBdsn+U!XnhIeR&CjuY%nn-l#Y z2)+c*d=y?lm3ZQXkHE}&H(uLoXYDv47x^A8N^Fm3X6N^t@r>;zn~Yt$+dQMBzx%)+ z4SX`RUbHOhWYoW~_V&A9_rB=aqcOFbJA9v}>jZ4~w~l4K1$#Bs!ygjgAtx@qOKq3< zggGORi|R+;1MA%J`f*v$LCy>FWQ}|-%IRB<=dhUo_4NCF>M`fkp*|Pqkzu5Cz2=yi`}e!e9r0UpM+i}6_4xh=4x>JCxwt39ouuSl1$l>b(3y_GInz&X-n^9- zE5+|{$2G-SUxFi_5I?=UszphM{sFRA=+K9q!(LSmeHB#iw7+Q`-%fjG^^Uv(UR;qQ zUjf69_KyxaX}i^kFpSI3L0TA>jWJ;m#9q)~XM{EEk;jPRHNK)##|B(FL*jMwU{I4e?KjHSEu zX=D;7)vEMD@PIlQB&UeS^# zB0#5Zr0J!D@ZW0&;rp=CWg(0l*wQ8TurkuEoFRrk0Le)V->wM6Sz4Dsv5BYz64BSO z(i6VJ->PA}f@R-q9M`GX8)T*?c~SHZM79d!Rz(o5E)Ty98e)NvUmmO{hL>M`Z8n6T zuURTy{(6>3am#|RN$NB#7VuIVF|4UXRD){}^TwdADy!>h-U>CiRG)iEyl7$dc$!W{ z2^v;|+7Ke|CKB=EX+@bB^XGi%8ER=JY%_5@f7ugJuwgj3Q@%m`7{yI`IE8JSYH}Pzo5~>43lmt`0F$@rgLG~0t*tli>p^jG!PJoHt zrvo}2r}J?^U9W(sfceK2iNgVa7y>P<+M7bPs^p>9TKpXxDtOIUgX6AfUeYH4bj*21D#{Rn`HaTmjC6q6BV zacv<7h?)1y-KyecQDERgq-Pim97#$ym^pMamt7+C#*tqzE-YFDt?RS`(~tQ>g)UT@Hesd-0=- zVMCIA9Z7aO>rzN3*ubr(S6Ai8vZm(URaf&1uDJ{&1Gc}c)cbQyy*2fUrx^^X7whJ& z?Tprugp6927@*Lw8C4VStb`20meiWIQ5IWr8AKb*yT8=DTk~!?-W^YJ9>^%jySY6O zRaVWso5sAkVPwF(_eOry#tri~JZH$~FOzW}o?Xfw=cs{I@{zsYp$JLM1(LF=dj?XB zx6-{w)s)28J-2%k-oY=DxY4tXi*$#Zk>aYt23Z;j!pQh?1Yw{-!3L;-#JtP=S?MAC zq`K={9@f#79-nZ`#)k4KwIomA801Dq$KOEN+y#)@s#+GFs~*ECQc#Mlj6jY%(KVmd z`~-_z&uZlJ>5FhiM#wHfqyY-*h9}a<)^`z)OX$l_l>!VLT9{T0n*+!ZkIb~(^ND>< zmvpB>^;x5^$I9DRcZ%1sQ*0Cf8HKa>Sp}*3st^FptZa~gmY-S2Aksn^Q1*s51k!#N z-rcwv C5O*;E diff --git a/js/src/jsapi-tests/binast/parser/tester/hex-001.js b/js/src/jsapi-tests/binast/parser/tester/hex-001.js deleted file mode 100644 index 04c3a97b9450..000000000000 --- a/js/src/jsapi-tests/binast/parser/tester/hex-001.js +++ /dev/null @@ -1,68 +0,0 @@ -/* -*- 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] ); - } -} diff --git a/js/src/jsapi-tests/binast/parser/tester/if-001.binjs b/js/src/jsapi-tests/binast/parser/tester/if-001.binjs deleted file mode 100644 index da9cb6cb563fde67bd6e9a6a0d84b8e797b46de4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5066 zcmdT|-EPw`7&ZSOxPTWxz61g4Htk}XLZ!7-P_z}aX1hghc(E3by*2PT($AfvA^S!^Lk&c^U{v5vKO};Y0jIC%kP|@^OX3VFvdje$d7Bmcqi`CD@?=nRN z;ThZs;b|e>C=oB#*4BNzIc_6kEHKO6fGwO5;SYD0Uy;dg^)h+b+3#1yu2;weT?3NrCJBC zdk1^1&b}Y}3an~zu5WH_ZB#4H&ZnuMQi4tP=SP)U4b9sNeXdP7w^OqjLujJbo!k&h zxS}Qu#3EEkv}) zw~zu=l-S)8+slz>c{6`3SZKvO`2|Ap4t^1U&)Mq0LegK-espE75DWUhOtBMBf0WK>~ z%uzmlj!!34Pfi7GLN|p)SB$p4Ymop<*9BKA)9X`iIxe}y%m9-vH-e6IRX@ z6ipFjRFnYr_U)7~L5GxZ1;_B%1YHPD*{FUGwn*?FD_5yQvxxMd}6#fA0JyLkq`jAvb;UR?HYQB5@@wv;) z{)zm#KO*nKR=sww({l5+6%nY!CxAv-Aut<|d>BE&LILI;we7%Z>&t|bqJXka1Quir z<)&0e%5iU9HgT4jU)3K27$T;c?0f^NSQ-yx%0-V9!ey__P{Z2jCXQWFkp8Gsz-bcrWkdBR41IBwwM#oholohWVw*3rU|@96!p)P#{i6=f*O% z9Z8^Lvyn~G4L}AEQMEVA1S6B+b*c!6?wV>Xk>_?_etP7$rM(~e4t^D@nj2EG)^}O6 z<rRm8|F(&u#a>?I6Y_s!b#vxTDuulE#H`AEAJYm zor<7_QQt93GO!-P(h=qlW4MCnZ(Wjh;k9XcK*h>aSSU?s@c{ICfbPb8Tz;yy5iRir?wcH7&QEb*a@88=70Mczy%!u3ozU diff --git a/js/src/jsapi-tests/binast/parser/tester/instanceof-001.js b/js/src/jsapi-tests/binast/parser/tester/instanceof-001.js deleted file mode 100644 index 9bdc7bfe3f8b..000000000000 --- a/js/src/jsapi-tests/binast/parser/tester/instanceof-001.js +++ /dev/null @@ -1,34 +0,0 @@ -/* -*- 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(); diff --git a/js/src/jsapi-tests/binast/parser/tester/instanceof-002.binjs b/js/src/jsapi-tests/binast/parser/tester/instanceof-002.binjs deleted file mode 100644 index 293e9645539ddb3fdb5b4264e834523ea11d3b48..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6327 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 Rp5+%at*@IH9^O-!^*>m|T~Yu5 diff --git a/js/src/jsapi-tests/binast/parser/tester/instanceof-003-n.js b/js/src/jsapi-tests/binast/parser/tester/instanceof-003-n.js deleted file mode 100644 index 1b3937ac8ab2..000000000000 --- a/js/src/jsapi-tests/binast/parser/tester/instanceof-003-n.js +++ /dev/null @@ -1,88 +0,0 @@ -/* -*- 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(); diff --git a/js/src/jsapi-tests/binast/parser/tester/instanceof-003.binjs b/js/src/jsapi-tests/binast/parser/tester/instanceof-003.binjs deleted file mode 100644 index 7c92d661ec149be7ee8db05d540e1534c00b3580..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6082 zcmdT|OK;Oa5H|0Z;DP{&Q;r}6sVEPLx{;bRML}(fnzUE6i8qO<8KqGeev=8UXz zt^Tg@rqN~tYS~3K#`fGml>XeatlKck#?y}ocS*~m+qCTwPK3*R1?8CMz&dt)Cyw& zTRo>MOwJp?LizA*{cx{bJy;5_mjUthtM!*jumy;$ej0EZ1fZ4;K?LoCimCFY(fd@n zs}RpKQ`L+%yrM>=aN^_;M@bh*85d0&hzTBQSd6|i^xIPIvGPlW1G&!JNAUa{)=9V> z#*%hnoU+H-$8i?Zwy@X~w8g;^5!F#Z_25P4RQm%lGNz?1g_kgqHFKnoBWqb}CS=TBoVl<#8z9F;W?~K+>j&}$e z{$lVs!*@#WB+**$2=5MM$_Mi@eG9O*97pP2g#;-asn*ShC1p%vJ#X3d2_G4kW+}EO zCK#BXoO^r;OzCLdEr2pUdR*8neEzag2&+&(!l!3Z_~Bjnd81&KPYY8{Gai5$A!Gsd z9I0BJwoaKbj}kxZwE->)W9slZ3BL)r#ysOXW&I6OY7SVMu~eBMdWb zRcEes-@ucE*5y=$`!e2Id>EF5DM^qMUY?XF=V_;zSp3dbCvqfx4z 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(); diff --git a/js/src/jsapi-tests/binast/parser/tester/instanceof-004-n.binjs b/js/src/jsapi-tests/binast/parser/tester/instanceof-004-n.binjs deleted file mode 100644 index 1d16ce0406f3c64d759a004b04af2cb0b8bdde05..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21635 zcmeHP&2r;J5LWnIps3=)jVfF@?Gi$Ef#Q%dfy6OjDtJ@tuy9K$_Sg}tNG?fEHarRs zz$5T56h|)HIC7+WJfmrOM)p{iU5=wmRL*ExJ=5J^f72RGJsAysc2K`$ZtvhU3I~yU z<-FoJ&PCX}b&gu??>qaQZa8F4eUIN$_q{kd_~O)YK7hOGwEJ^6^4trb9kZ_QMsDJT z0TZ`fG{bB;6{THPDE@Ry2W4+Np2#*o9_UK zS#%bjgads{96)}9$ku}U$P3))R*lO+cmdc37zXI{SwC?iZ*ZxQQ=kwE+EEXple7ep z786l6MB@N!YJjQV8@$3oyD34MN*<$p`qS{BZ$?2Evm;HEuYsPB-G-1juj2gdOATb9 zFTy}eB&er-eHyr~|G-V?E}3L*A^ZXK2`_$O-Q@gO8`qKzJj-Wc<})>aD@JsEe#N{VYLCOFD+*e5f0T`jv$_rbmLbI2CHC-n*dQqnhH2 zUt=-~cIN`@CFSMgkmh+L5n~GF3?roL$!+R9 z)LG6hy;zL{I_W+}Z?|y#X_hc}YdI2SJWyTLuqyNP4rFx*xzm6JxPF6$f+1QAHfqBX zH1fK+RV(f`&V#ShikCEpyjEtJRY1gamW1Q1YH5_E@;;dmbX_=1-+;OrOj~k-kDzbF zl2H`YwjV+&*xpG1gg#MDxwD-zhDY1F0(sd}IGG9VNwpb$RaTs(d&(K(&M zA10wFR(=S5Q>+v~i4g-3Ic9eS0Fv5J!u;|Jh5|GUYqfRe{rf=r*SsEA3Ep^xiBAADa>06Dw~T<@eHcn{i4l=3`i%#!c@qrIHyW( zhql}~vsgqnve+x~{3U=~OHE$s7+20Z46k=8)?xP!Kj$rAF+i(WN5wjDyPQ@ir08I` z&j0r-O-KqkJhn6Bu1GbfNT2(a$_%hd4QY|eFpreYI;MCA)vhuX*`RA-s`X(V1_qUe zzOb@>1?=A_*>4bz?=< z4Fix;x3dV?g?NUIFHn8%7qeL0IP1eK41_ifc41-pn;LxO%;NBFF^fN{-BT5_*obmd z5oTezEe4CShPak^Bd-*9HX+fJUlP1y+XH?DyBFOaunT?D?E!L^buH}I%-gC8Y!;|E z?ut0BA@pgeTX5XY{(G$bTTYymHn&a3YDgP6=*r#u*zKAZUvSt zKTbQ61kOb0doLY%a7y|XCmx^Fgrxa8^m-|U+{$benb>>+H>Uz7Q_aXjyl(8`9 zJ224WW~cG2bz0gXR(Ot=dUVZ;YeAUQ+*)6pQj(e=cPG!Co>HtsHGe*ZQ^A_Y`cUc6 zEWrrLF^i%w(xolI7aQ4QmGCQwvJRHOD(cL`V}637nD)u_@(#Pe6Df|u&}XjUqgcLe zV;}C&3U#7O?x(R^%D2b6(xj!R{U?OLb2QMQx0m29SzSyz6-2NJufh3Re5Y|@bq?2z zQYAX@cuOCgeK-EziS^p>EmbW3-EfESQL6l({6>_|)cfFw{8U1bM2yZN+H#Rpw3}gp zG|F;{igM8?3P+^6mTe$!FS89~!&J6`oWhW8AjPR{1IhQIAupIkv+<-C(T0FFaWb7~ z!Aa7Oo*^Q&lL18=vI)Z%hoaSVzK3Yad$S{&^;(-~Kuz_ts`N(P206q>bTyr!B$}{e zte;OOT2a$%zz}8hPs~N5q3|MFW*i_lMiTya1W(4N%cBNxYI2=K$S%R diff --git a/js/src/jsapi-tests/binast/parser/tester/instanceof-004-n.js b/js/src/jsapi-tests/binast/parser/tester/instanceof-004-n.js deleted file mode 100644 index 18de1c8da079..000000000000 --- a/js/src/jsapi-tests/binast/parser/tester/instanceof-004-n.js +++ /dev/null @@ -1,88 +0,0 @@ -/* -*- 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(); diff --git a/js/src/jsapi-tests/binast/parser/tester/instanceof-005-n.binjs b/js/src/jsapi-tests/binast/parser/tester/instanceof-005-n.binjs deleted file mode 100644 index 170b78ef4b53fa652b295173d353fe2dc986b9cb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21583 zcmeHP&2r;J5Z3a$KvBh&f&y1gyJSPMP+Yc5AaM+s3f|P(Y;kib_Sg}tNG?fEHarRs zz$5T56h|)HIKqu?c}COnjO4K_yBtTCsGQNXdZxR-{-!mWdNdik?67{p?7`t#;Ew|P z(t5?RtaE>GV;#5J-*=vL`u><%_5Jvsy6c3|;YVkd^ o1UVZ=Nhah($RA%ki8j5kMc`8Za+%h7Jp2ah`oCl@6o8@kWPl z!ectkMz{5}UEk;btM79mR8}Xx|I~?CV7sxnE8CqY^4)Z z9y$O6Z-DB}#t%om&(xV&|3v<|zKMJt z9@TAiPn+tvsYe)k=G!1mdZsFJiK%S990x26A-X$}9kEM@y4cxR@_%i3Hf-0GUE>~o z_!pBwMTcn+%x}REA@qW%%fcvUgj_6@F7;Su2ndsW2zD@<;6#Mlp&JYak>ol6y!j4* zm<3(`)E}v1iUH(Th-@Xej~&krZsfQugcpEqfMI}6mklE;a7GsrIXMcUpk4VOI!P-K zX)qCGLo^PsCI^`Ky~ZmHw95(7MDi5nlb@OgeKYa;m>p@Nd=2!3>^6qPc^PJBUuqx& zeGvv)JV8Ajs?!kb`ZwH!?vhI82Ey+{AOHMk){lCRRnZG-N`z^Ue?eiGL;#LJGgU91 zg{j12*YCfONHCxN{0n}7cco@b2A>p#-Uo_sywrlj5kTq4L-3FS7Kz?3Krk@pPX-LO#oDWpvP`@%TM}8y-i&LS7>b(o1$9|foVfd@Coz{ zSTqT|+Rg(=1v|SDfY7JXDR*}g#_(`QRUj*SawpTlJ*hUMuZoJZa8GfiZdxSsZUf>N z;Bj^erxR!>2&?HD8*@oiV1+_};&eiaWqd=s=s6mFyn!IBr1pA1Kq9}_GqbXR)LVv? zE=)pEto#`ICRoXV5+ep6a?0)s03@}cfce!I3^{0M)@qx~`=0>m-|%`|F%+nHKfIPs zq3M<{%T~wxt!&<3aWTFDqF9g`Mf%*WRHlJdYDj}rhIyoH){)~GRJ+PlWP`4OsWyjoXc$xy z`rN|eH#PX$S;v7|@!Dk8@u;eG#2e8KVxfA+nQU^W5wc*O? z8yX;`Zf6j%OYsa7U!eNjEoQO2aW;opXb5c*?A*fQH#PX$nZ?oVVivzwyQeBzIb}za;U=R8x+XKWd>zY5T>9f4mc zO;uRiy29E5xTA^dZO<1K{jKP)d>wvw*^nmm>0}tvD)U##6)NR@6=*o!u*zKCZUvSt zKjs}t0%sx&otKt4I3;aUx%lrb>p zJ223bW~cG2bynITR>vSyKDy?FHM=(CCzL#@B|8|gUXi}d^P`&W@h=<_LuKywxz!Vo z)vD%CXK;2{^F$pg9hxCzA%$i^;0LO-6?kkTefSc7D^b?*6Ig4Vd&JE9P&!jS%uXMP zQQB@-4c3VnrFN3O9M|DE0s<8Jz06C1R_2qFJ>!yd!Or{aI&ThMr>{)5gRK!5SEbS5ftJL-d%G>X!QjK#DE zkV;v)fxL-KH;~Ow=>~G5Lb`zzn$iu#pLs)8$nj?FsV%$>VQ1!)Io^Vkq#h$fL@KBJ z@it@zny&|WtM050-jwy0hBvEqGv0ujs^?Crjj9bYNDS|)I}eFBVaHHCYmT>~rs<#{ v%BY`<^F~b(g}2N(3~q`R@!ttN8J{j90jDO@ne+T2*ZR7N;o&W?ieLW+b`ysO diff --git a/js/src/jsapi-tests/binast/parser/tester/instanceof-005-n.js b/js/src/jsapi-tests/binast/parser/tester/instanceof-005-n.js deleted file mode 100644 index 8f02162cabd9..000000000000 --- a/js/src/jsapi-tests/binast/parser/tester/instanceof-005-n.js +++ /dev/null @@ -1,89 +0,0 @@ -/* -*- 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(); diff --git a/js/src/jsapi-tests/binast/parser/tester/instanceof-006.binjs b/js/src/jsapi-tests/binast/parser/tester/instanceof-006.binjs deleted file mode 100644 index 36ed72efb86a8407430d1f7ad53bb86ad9e5f2db..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20918 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 diff --git a/js/src/jsapi-tests/binast/parser/tester/keywords-001.js b/js/src/jsapi-tests/binast/parser/tester/keywords-001.js deleted file mode 100644 index 411386100bfe..000000000000 --- a/js/src/jsapi-tests/binast/parser/tester/keywords-001.js +++ /dev/null @@ -1,48 +0,0 @@ -/* -*- 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(); diff --git a/js/src/jsapi-tests/binast/parser/tester/label-001.binjs b/js/src/jsapi-tests/binast/parser/tester/label-001.binjs deleted file mode 100644 index 92fc9e5e0842af0be46299acc7457e01809cb8e7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7746 zcmeHMO^@3)5asqWX?rMoE>QOz1RJ!sg?5|Rbx;ReC#aoV3)-R`A+o4aQg-)Jpg`|E zxBnu?{*?mlsXri>+%rQ_BxO-H{jo+G^s)=YlTC zJA{x453fjfFnlmN8BKZ0NN_CQ3F0Wr&u)B9$S3etU{8NSMMNht`<6{(Drg?@L_&q; zcSfE?Nm$4F8*q-+VR0d$qL4&MlxqNc`9a8%JeoyJNVtS9jL}&xqGW#dAuKcM_r`;V z!{Asw3yu|tjWv?*pGP?pG?sABXjyPL|W0Eg&nhCiD)J_AgVxvJBFDR4pKbj_K#l{Or**OVnT*H3i@Yp_N#svCEWA9Z)J5Y{YKNr_anK2PJxSXW_+1L|$EMf~yLeI*u&7OSGyt zVXy4L3SN;fIM*ugOo{tkn01jy*?_=6B1IZPfz|GiZO)bj{hzQPhJKBXWvu-)M{sAM zt}9~4&f1U+)BiVbeC$$m1ZF2~gFPZ)OWzx+ie!-5p{)$D?RhN2#@u1$ z#YLBDZ5I+uom(xH+KwJp+hrTMapImpHZ>x3Ff+M>*(TFw%9D)!R6t*X&=@*w2_}&% zg}03br0Vqa+JnJ^^%c6i7t((LPaC9n1*4Yc;&`c*E{;8%XqCyz1()tyonu&EZ?B%> z$cv3b?pK%hJq}&qq+llS-e>|eA*EE-Qg9m%tvTp-*};bcqrAVca0qSjOmBx=^oxo{ zRr)x^uryCwtL&_P+h+F{X?|tc2XMWd^L5=dG;`2$xMZjWBGGrG^3c9aO+znV9 zyC6N9F{2@s>5_+6U?5%sYp1eDCVBU^wpBhPuH}sI>>qy#2on^L4lnW!pLJ+QiU+il zXIyk*&eM}llNNhxJc!s(7d;SH-Agw#&Kds-qov+iqkyL!C`gYb*BPro>rk5JSh+F!~qDI{LZb3G_a;Y&_$XTl`)mv($ m<)eifZPuu2pm7GP=W9M2l&UTNo&o{56&01M$Z}KSj{VnJ*1JLg diff --git a/js/src/jsapi-tests/binast/parser/tester/label-001.js b/js/src/jsapi-tests/binast/parser/tester/label-001.js deleted file mode 100644 index 391732a2d3dd..000000000000 --- a/js/src/jsapi-tests/binast/parser/tester/label-001.js +++ /dev/null @@ -1,42 +0,0 @@ -/* -*- 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 ); -} - diff --git a/js/src/jsapi-tests/binast/parser/tester/label-002.binjs b/js/src/jsapi-tests/binast/parser/tester/label-002.binjs deleted file mode 100644 index be279c14ee9375841b79828fffde80c8524098d2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13403 zcmeHO+m72r7)6rQX&c&o1g?>| z;$67m8IZU`;+99?|Hos`?|7Vy<0MU2xmhV5`bCOp>n`Img)Gr?jn3?$T0 z|Bjq1FBs;r{sx>|%dkQrp}e8v1zwy1(Ctr$Jczvuj|&MGu(2jOiiH=9ns353-S$cE z^kJuQsGcju1l700O{?MuaAG+2|@m|Jwd(>TlG$RXYIunVQG>d0NNRv zBpFh zs9WHy8FCWsv!8~Iw3>Fs{Lq(V*f9H&Wa(G1ceJWp(tp_hi4S7UkhIK+K+B6g9%b$z z5q<|{pwk!-p!UE|W^(0Fwic)BKzbA2AT5bO z9hqy_u$0#T=4UR#4SClb(U=NyVFkHxoc}(r(*wvn8}M=tRP|p&O6ayIrO>p^3eJRh zfK?*+m(i0jJY?z15Gy55ztnc6eg1+eK`wdQ=3;|RRy5qwtdcrdeSa%W`D-Wn#`+qs z?Q8qAmFC))HEoqA_Z9r8Jk4&)hfodm1{Nrgxbm#x{xlfiER~K`5ea6Y6Bx6Oqw-lT zm9s^pwrK+Yg`H6sRkHw&_d?k#7AvKSWMcWkpH86dT+-oLu&l8R8A@dmN?ywk2Uogj z$3AoMr2P0@$3bo7_KAAA>>IR=1Otx3 zlGMkC9XQjQ8!6s~_oN-EXi~y}MUgO`#4{aVOf=_c6`YYofFva0XakWbli6Z1Z$)G& zEmRimYNFH0ON$$6Uy}Vg{E7Zjj)~WG_JTHpbMF%t8Rj@r=mQAmg*0yAPgq~9^ThcZ zz)KR=J@+CM?uTv~>Rm5zlX&8OY=*kzJX7e#|-w`&G zD|5G@d_a-s)V}Ws@!nw~pa+npF;V9Pr0a)DwPKw~3DU6d2%G73#gc|ac2yck?^K{*H8n=U~dUJHmWFxNiuT+#|OghwmH0vRn8` z54>*(WktBk=yFM-z#^t(e40EyVUu_&j3d=QfGE6itD(F^@yZM)Ulchc^EM9UAXO diff --git a/js/src/jsapi-tests/binast/parser/tester/label-002.js b/js/src/jsapi-tests/binast/parser/tester/label-002.js deleted file mode 100644 index 1e2b63adca7f..000000000000 --- a/js/src/jsapi-tests/binast/parser/tester/label-002.js +++ /dev/null @@ -1,56 +0,0 @@ -/* -*- 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 ); -} - diff --git a/js/src/jsapi-tests/binast/parser/tester/label-003.binjs b/js/src/jsapi-tests/binast/parser/tester/label-003.binjs deleted file mode 100644 index e0250521e717805f8eea014beb05fdead098fddb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2239 zcmd^AOHRWu5H&x+hO=~!LV=bpKvjiQiM^XlQ>#uKY!{UsJ5B?);65CIv17;Xmx5qL zHdd0EH#6_ecoIFUIJA=q(5!tYMJ{PU_6Z>)kv);l&ER%;HcUkYBxzZjgfpevZ^wij zqE!;R-&4uxh{H9coJy*hC@oYL-W8d$GF!xYMx4E`u!OWWEcnKeZ!#z~8#Ab_N?L?` zm6oi`+a|(1X}Pzg<=mUomX)~Q2Wb3A<*Iocv`2xvncFEpRRa4i3WW9MMK`B%!KpCc>`QB(1mvMzId1;Cc02Uk@1%*ek zIE*!sET8BGAQIv{)E2|;z|IC4W0b+H0Ljum)0hjlZSzR^tmz0W51)^V)gEvtF<3_e zjc7LEYl(kfUEhjv_(1P}(}!Gc)TdR?YRpr7Q5ki;I-b+zGxq%<$6d;KaJ9pq;wJz? zWsWUaYSp9>hufjaPp|^26iD5B2$SM#u+_hyiMgg1rg;bGKbfCe51*euc43|v>R*V{pFXGkzY(#({|(G6KT%v wQ)3#Vo+4c1^#+G*fQvMAu?0|QXE(pQ&e!*<`?+S9xj$RzcNWW?y0*za0juoL)&Kwi diff --git a/js/src/jsapi-tests/binast/parser/tester/label-003.js b/js/src/jsapi-tests/binast/parser/tester/label-003.js deleted file mode 100644 index 934732949857..000000000000 --- a/js/src/jsapi-tests/binast/parser/tester/label-003.js +++ /dev/null @@ -1,15 +0,0 @@ -/* -*- 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'); diff --git a/js/src/jsapi-tests/binast/parser/tester/lexical-001.binjs b/js/src/jsapi-tests/binast/parser/tester/lexical-001.binjs deleted file mode 100644 index 3b0f7fec00d51c7baadcbf3f817400234fbfa6ed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6153 zcmds5O>Yx15Z&_qAtWTE9ysl>fKXbA6QmI&4Qi_>t=P~jag+~dr)mBQ{|pHU zi5tIwD`T&B?ZlhZX}1yO6m4ujduHC78N13yLyBwFK1N~fki|WQ2Hq{t^N!hHumB~dty^%HQ` zF2ahLgd(9wBEoY3bNjszN1U7x%p_cd2KvwmXC&&??!z`gv(ec*Xjd!hziLH+m{@_F z-y$3{L?zrAq9Y4WxPanw(na+3=H`}-nPFF?*Q#pE+pz2mF?+gsgiCt!J7BNSn@7!0 zL0R6s3rF7%w!XZv9kY5r{#u|Vk|6eH22BK6il`B9t6l+nL#yW`kAsCu)#CQiMe1U}u)y3mXl0wrRj1f^AGsri)kccts#I3kz+a$BdH;}ib@H#}AO|)H}$T5(% zAq_+7r1*q;jP&|CbE;G%fL`g1Oeb9fq=O^MPSL_ZUmKY7zJL`Dr&}P^963$(`DejK z|9)z}2VMh_k7$9gOpZ9_Bmwsk5sJh4kyu@c{0*nE1T-6yavBbiqwskb4@EO%+kOdG zJ_E#d?B}39@3VMZfSnWYe{4Mjp`hO2Zh8DXL`hOIKRaxq>x*ovY1}>a`X~x1bg5ZK zZL**)X3Q*F*oprDCR=3IbwERjN#HV7x(he|09Cygi8`hMmMJ9Ln&GBR4tdoz-^?@- zWme!j!avaEYa22JNdbL^Vav~s>F)uoee!4?UsdAEcC&s{{hAInuVvy)>Gv*5b_fGW zG{K52zH9mQCc`y>8i;rM4T?qymT?}!wQVr}>Sr!>2&!b9?M@SAX}bRbP%8|Ytv7`3 zOO%Bf#tYjQw9PxQDP19t`1mVO!W%Nt4Dw0Fi>ZryIk9v=5klZ`sv4UZ8AIp(E>;3y z=hn?aOmWV5)DZ4W)ziW}eYe128(t1{BQH074)Y}KjJ6pY7NjSe-8K6*cfTZ8+jy*3 z%BPUBZXO~g;s(_~iD{8KvotJ#%Y;ae%aX>qm%oOq#?63qEFdqz`3LoVc)9Yo{Rof! z1F7nFe%hmFf65sfFAQF)D4GOx+)~iO-+<;4cC!JCnC+nd3-VqOs^f8mI13CfLUcH% zYkTPkHSZ=hr}CT8(xP9gv@KUP9Lx~%=T7e|$|%zavtJQ4DgA~U*L22R(8i>%&hH`0 z^3_>o;lli)#tLrgYNR;f8IabSrW%{WUNu_88DnUc0|sVdKVqp-+v{qexR9#B3*M4s IO1JvLzmr7AiU0rr diff --git a/js/src/jsapi-tests/binast/parser/tester/lexical-001.js b/js/src/jsapi-tests/binast/parser/tester/lexical-001.js deleted file mode 100644 index 3dbd61d997c0..000000000000 --- a/js/src/jsapi-tests/binast/parser/tester/lexical-001.js +++ /dev/null @@ -1,52 +0,0 @@ -/* -*- 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 \n - \u000D carriage return \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(); diff --git a/js/src/jsapi-tests/binast/parser/tester/lexical-002.binjs b/js/src/jsapi-tests/binast/parser/tester/lexical-002.binjs deleted file mode 100644 index a35cb02ca93d0ee66155349dd2938b502f697d9f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6134 zcmds5O>Yx15ZzL~5fTy-NSvaciV#XcoKPB-ra?^=g^Gk;k(+fBQ)f5wI!*Ie_-9B+ zNZj}ZTp4@4YbSP6r`<-tDcab6_RPFDGj@fKh7?yTeT>5DA&Ywq4T2j%5FE$hB-m}V z4%%?*K3`|hgPMm{;QM~h>6vf z^P7ZYhNy%)Lv&=}2^Ua&PP&M`+}e6=V`kW8>9va5avhePA!biEk8nwEego_kdh@9M zv0aomZ^6+I+OIypu^qE|KmJ^uABEkWMyFY~?KTPF$;n56)+7-wbub%{2=SODHt-c3 zT0b8$oFt&`Hb)!}Ky{LFIRD=%&l;jsFO@4mHWX`7nZ|mE`5qXWaKv~ACwzg03f4r| z=eUXqB26k25bKSEBNC_S9>$2MjTz*deMrQZb>e2+vu%=DZJID2aNRkI&-R2B!FJ%jZ7z91Ehx|icZnOz>+pF=e>g!9;aI%)f_oZ_4%h` zqrX43-v+ON$Vb#6ER!RiIZ431M}*>Vek4{`B7ebYECJ2Nq?m?7HDf>2OzaJM*q9-<^En4cXs(e*_()imy&27MHT6uQ)` zqc&NvD`w0rTG)wy2PRu&)^$KbiAmrxRl1#k}dXwRrKsCg>{TfB11j{%N;o3HsfAuq$dIVK6&UUAXvNYX)1E>`S&DMW} z?n{(~8O96S7qrcLu_;|4kNEftP$C#I(G2oQ#*3+odoi)}KoLUVajF`d7#Tz7{w`Jm zVCUA&LQHYac+?Q?Ox4rGJbkyoVGCXkbR#b}eFpO+?Toe=8y2J|o82}0Hg~@yS6g_j zSIVc5qHZ1{CgKKFLy2jTI)l6YLQ0bMlq5c>s5&V}lET%kmV;VwjvbNcp@o>23yO>@e; z87-~wrRvynCBnlDp>^){sG^KAjWC-NQGn8KxL!@C*9ARG`oz2gQI=24D&;zpi5hcU x%hiZGyBUzy1Ew0A!(KJ&;*2pg%K-y3v0tpzsO@z%;I5i#@PdaUnZK \n - \u000D carriage return \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(); diff --git a/js/src/jsapi-tests/binast/parser/tester/lexical-003.binjs b/js/src/jsapi-tests/binast/parser/tester/lexical-003.binjs deleted file mode 100644 index 40c4dc64d15d5fe3523b20ce88417e06beb98a31..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6286 zcmds5U2oGc6wUZ%NC*iDBzWl~bb<`Q6AIN>SF}!5nP|0F!+iV|n z-gbJ?2s@rD=6EECS?%j1$GHcyJbn2Qq5(Q4cn|joqKE}iD4=}xJ9f^3(4WQn0XQ4W zup%m;0^bS3fMo#s_Dvs$EI0`;6>uRMszb+&24TN;8@A~*>fPqYw&%+KJXeC~SRFCH z6);Q@5pd^-j19c|fJg8}&_m?K_V(+Sr?Cl}!n?w8p4|01tUO25oUWf@O^1F1>??HW zQR7pmEQj8NqaSo$eSTv)=IZ_U{p$S4?d~?at%hm0P6$g{-T}0FG#o-cluO9Q#faiK zhQ#hL#4z7LFb!w_7iMN15u%og6_7Cmt9;Upw8-PTU|`G;WnCOI(`6Y|B&?3E&ha}Y zaD|j6Ale@bPZyeQVax--noy9Meb8V`yHP9Zn>Gpc_yTEdWcF?lB05!eIb2&nu|a`B zH3>dp4h{MPC7M!#IM9~bNO#gDKw3DWY<1=aR+NE@SYdIx1u2>#Cla6iETG@tFX^|y zYmnq)Qjl0WM=Z67!+k&j!T$V6TwQ7W38ygf6iws)U2Ffa2_t`>GvW%{+wLV@hSMz z8ByM;vT2%2Gn}&sjRpTLQ22$3MTzJr!lfZy`kjZZ$Mhs-^bv5x9V1Bt8dkX`fG+vXPYHH=RoBdw7GavF#(HcY?16s zM6L+c^0++vo|kq`+eX*Iw-QndHUXgD2u1>c)^>p94mM;kR!$Fra>C7s&Z@&d*x^mXSAXGy~SIDmx2fzuvA6-tpfpt6miX;4$5P?4xNgxsu~m^!77iF1IX4`~IS&1qv)k$% zbho?xaEu+VCg*sRM7;j(iQ_zgS)RW92r+_=Dc-|d+BqBpB51!ZzJzqu2V_@oLF`UM&I9vAS}8 zn{dn!m2hW>P7FNZ0*cQ`AJG?ETdz#a6uTz9<|SL+gk@)lnbY+ntm(}kfPIDDJZgUG zR^`pxaP))j%P-f$k3X-@kHYR=tJiLp6T*^{_W?7#MNHcn?Rs#KMBKR_C~g2|^wd6A&9r zgd?It(=Cj71XxoBI`eHWtStg1>_p!7bKJ76YelF z7%Ig~BuD^ls*UszTmqzpBdV5WVW6uF%y?hG3X9W~q-cg5OMLcOu+jCG^gG}+Nb(6S zNGzQrmRcm>-XlV>zc>hd8A zrv=y<0sqIALl6q;4enRR&qEYN74x&lW~#o(W}1fmQ)h?*pF($JAn-Jy3jb3oGbGYlJ6Sc;1%ozO+Q!GuzG$K`B- z-?i*I+KPx{nbyYOkODg|DMlQC{#I>5IihtrBsco?m{9a;!f8<5jJBY4SNkjB}&Swq_MtTT*Bq& z-+;6%x(~tmxuR=^N@tlRu86(+40>8Tbxpt``dTFU5^*a+wLGrKy62Uh)3&R%FuAM- zE@*}HXsOIzseY|i8Z68ZInJ$~ca}7AqVUAh3>Uq5SuN@B;z#bc5M}wu9hJNuCu0Q< y1j$ITs%enM6KXQHfW66R5offa{3Tw)jLf&QWYqL}GEiJClfflVSW>r*hWQU8EbS=( diff --git a/js/src/jsapi-tests/binast/parser/tester/lexical-004.js b/js/src/jsapi-tests/binast/parser/tester/lexical-004.js deleted file mode 100644 index 853887db3ef5..000000000000 --- a/js/src/jsapi-tests/binast/parser/tester/lexical-004.js +++ /dev/null @@ -1,52 +0,0 @@ -/* -*- 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(); - diff --git a/js/src/jsapi-tests/binast/parser/tester/lexical-005.binjs b/js/src/jsapi-tests/binast/parser/tester/lexical-005.binjs deleted file mode 100644 index 880e4d9736188b7a93f1ba122d14c82bf32ae595..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6258 zcmds5O>Yx15Z&^P00{|+1E(B86-tpnNU)8dX;4$5P?4wyF38Qg$x>%GvYn*~L4?XV=%<|3Uhlqygh~Qn^BZwj%#*u^y^f&WP!YG)<`UyB2 z%dlc9p~AomqmX9+=Jw41M?5?ZF_mx;8tOwcPQ$2Qy9wKL8uf1TL))*a|NN=~F|j&w zekyb8-s5w)kAM_ALF-vRp)y?NO9 z*eT1K*Wu{KmNEpKMK3M&2Fn<+ieoUk(0Lo?LD4OVj3_T@Ene8oQ)`E z46?ez5ywNwHpw)c{a=`tbwr3>Dpx?d5Ui8QG}0l7Z-ar1Bg(s&@dXwtSQA~J<2)t^ zc~mAK+8+x?utL)vjJXe36AC)B2Lg;~H*Up!+a{?V-yp56%-#tjM5o#=PiPCsHOMbW zCc($tqhWub6;nx&0NT_WnNGR@NC!uhEzQEfiZ(FgeE};RPPZUMGvq|#v(JK!{(ecn z0bYY7ACrQ_GCAU?MFQ>}3JDJ8N8<8I<1aXkl|cEJl+$PkjlyR=JQ7WiZTlLod;o~; zxRQZZ_<+Wf0_=={|6|J`2nF>9_sZkv0b;CVes<|p*B9ALlel-{4Nw#i=uXp4+GN3w zn2}qwumgVyOt#3Z>wtz5lfY%FbQf-(E74`vw`*c|=$-8xko5cn!5Zu9P5Cs< zr5VmSgvNpY4k+S^#N$L}G~v>aF8xgks~LIoodmEm>+(?Z)@a3PVV*pn;Ghi;82Vlz zH+=-yVs847katINviz>;x4HY8Ty5itUMW?htc#F{iMY_!5yN&&q+u^Ws6;(kl{C&* ziwn5<{2P#t756SU->kTHoJ@*2f{MUb9z!>aClwp8h`SCMzC_uIP#upeQtnA<=XC97 z9ZX(S0O#~UX0&u#uT;ENs|yZhhy>?O4?9b`I8k*HU4|>(tfnq#?vm&2HxOm{yv-K8 z8>_K`rvWumENKR$^?0hr=CD_d7IDTH%3t3NOlH5DsZrbOYM{7Os=+0XS5maCZuvK! CaO&d# diff --git a/js/src/jsapi-tests/binast/parser/tester/lexical-005.js b/js/src/jsapi-tests/binast/parser/tester/lexical-005.js deleted file mode 100644 index 2f3d3bdd8226..000000000000 --- a/js/src/jsapi-tests/binast/parser/tester/lexical-005.js +++ /dev/null @@ -1,52 +0,0 @@ -/* -*- 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(); - diff --git a/js/src/jsapi-tests/binast/parser/tester/lexical-006.binjs b/js/src/jsapi-tests/binast/parser/tester/lexical-006.binjs deleted file mode 100644 index 2d07274734b8b6123e3a9f62d8973e7280ee23ec..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6274 zcmds5OK%e~5Z>}eT#$GiIOW)?LMamB0BL}xK~0I$ibTC4C+j9lo!!WGn&ww<=byoa zGyj6I*SmJso5V@C<#CEOwm*AjzWHYC3LlRMu2u#Z`PE|@^(h*9H$2blM*h^>YqSpA zuiL$7guO~x&Z&@q@#@#7p7#J|Rm|llhz6)j@ILMlL=g|7P(u0on|WtJ=+9#P1e}d! zSP_*_f$s%jz*7Ko`-YE09-Ic4O1KaW^`RN3LD;X}g>BmPTBmW;s+84#m9hdcvD$Ke zGvJsaBH_*v8C!V51q5FNJw%@G?7Xru6YR3|T19Pn6PBGLYEL(hu%NXopc3|4vr{VnuUQSZD7j#99B4-Zb6Es$g#wypE(=-{gQqM zyaq`=COL^^a>P-K1l$J{5bV#7#PyZNUvL^LfwD0vrqK`@g)e$|B$^=G_BCAj2oPIQ zDFrR@0gWa(*eL=3$Cg773hE8+701tG#8|=n?9i#MFS3~?QSZzfpwK7KohF^M$$~vG zBeQ5>2mThAY>`>l0SzT4fy-3s&fPpyqKm9=x5VzyJKH%R>Dh&0%L+$vc>-&@6r;1! zZYji*(oy#d@M3f8jlGxBm^3w%=hfdcaWHN?;$ZO&=m4?(fC73QOi5h0k=`5sg%%u+XNCwrm(?nUBQQOcuh|tg6>DFY_d*~DUq3Db>z$&fD zuC~pz$-y(O70eL|GACDTl8`6A<|(zwD`nxI^Vtg3DkBwwhYPy-{m6{JAXg-l)EiOJ zqw;BzOEa8v2#o{(9Z5SUHTgrSTpkGdkJ8t)@7mQtFO1cf0$6<#|U!rh%sE)@Kskc?w zIbHi(2a^{S!a4nr87-aOD;2TT>VtzBBGI|iL(h_KPE?;*pW(_ktE~%~y!g5M9Yk3^ zce4fW$Z9O-sX&e7OPc{{J*KL$IqX%Vd7LqZve$V7li9CmYSi|+8pto1YH-P8mK1NR GYyJ(pr|+}? diff --git a/js/src/jsapi-tests/binast/parser/tester/lexical-006.js b/js/src/jsapi-tests/binast/parser/tester/lexical-006.js deleted file mode 100644 index b37fe0d529a9..000000000000 --- a/js/src/jsapi-tests/binast/parser/tester/lexical-006.js +++ /dev/null @@ -1,58 +0,0 @@ -/* -*- 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(); - diff --git a/js/src/jsapi-tests/binast/parser/tester/lexical-007.binjs b/js/src/jsapi-tests/binast/parser/tester/lexical-007.binjs deleted file mode 100644 index a4f7be41d0ad81167a683f7eb09ff0c1be45fce2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6258 zcmds5O>Yx15Z&^P00{|+1E(B86-tpnNU)8dX;4$5P?4wyF38Qg$x>%GvYn*~L4?XV=%<|3Uhlqygh~Qn^BZwj%#*u^y^f&WP!YG)<`UyB2 z%dlc9p~AomqmX9+=Jw41M?5?ZF_mx;8tOwcPQ$2Qy9wKL8uf1TL))*a|NN=~F|j&w zekyb8-s5w)kAM_ALF-vRp)y?NO9 z*eT1K*Wu{KmNEpKMK3M&2Fn<+ieoUk(0Lo?LD4OVj3_T@Ene8oQ)`E z46?ez5ywNwHpw)c{a=`tbwr3>Dpx?d5Ui8QG}0l7Z-ar1Bg(s&@dXwtSQA~J<2)t^ zc~mAK+8+x?utL)vjJXe36AC)B2Lg;~H*Up!+a{?V-yp56%-#tjM5o#=PiPCsHOMbW zCc($tqhWub6;nx&0NT_WnNGR@NC!uhEzQEfiZ(FgeE};RPPZUMGvq|#v(JK!{(ecn z0bYY7ACrQ_GCAU?MFQ>}3JDJ8N8<8I<1aXkl|cEJl+$PkjlyR=JQ7WiZTlLod;o~; zxRQZZ_<+Wf0_=={|6|J`2nF>9_sZkv0b;CVes<|p*B9ALlel-{4Nw#i=uXp4+GN3w zn2}qwumgVyOt#3Z>wtz5lfY%FbQf-(E74`vw`*c|=$-8xko5cn!5Zu9P5Cs< zr5VmSgvNpY4k+S^#N$L}G~v>aF8xgks~LIoodmEm>+(?Z)@a3PVV*pn;Ghi;82Vlz zH+=-yVs847katINviz>;x4HY8Ty5itUMW?htc#F{iMY_!5yN&&q+u^Ws6;(kl{C&* ziwn5<{2P#t756SU->kTHoJ@*2f{MUb9z!>aClwp8h`SCMzC_uIP#upeQtnA<=XC97 z9ZX(S0O#~UX0&u#uT;ENs|yZhhy>?O4?9b`I8k*HU4|>(tfnq#?vm&2HxOm{yv-K8 z8>_K`rvWumENKR$^?0hr=CD_d7IDTH%3t3NOlH5DsZrbOYM{7Os=+0XS5maCZuvK! C5bEOq diff --git a/js/src/jsapi-tests/binast/parser/tester/lexical-007.js b/js/src/jsapi-tests/binast/parser/tester/lexical-007.js deleted file mode 100644 index 255a8b859fb1..000000000000 --- a/js/src/jsapi-tests/binast/parser/tester/lexical-007.js +++ /dev/null @@ -1,51 +0,0 @@ -/* -*- 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(); - diff --git a/js/src/jsapi-tests/binast/parser/tester/lexical-008.binjs b/js/src/jsapi-tests/binast/parser/tester/lexical-008.binjs deleted file mode 100644 index ac103a3ae5603a82d77f9e95301a3f3687c9ab72..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6272 zcmds5&2AGh5Z>~SKnMxJfzuvA6{JWNLa>dXX{x4*Le)e?oRFI}$+pgJWIIjs5WE0y z#+3`=Ef_oAwG(d=Cv3~lDcacn?3wxIo3R5v=o4HHx)_D!1DbRw>Umc@&pS@Sk+)rI z>^EOG+esgLK}pUDNW^&g%OlUb1G55i`4OTKIwp7rw+W(%M@cN9LjBFW(^u81?j_8K+U)Dc^)`n$=3H_P!C6)PF%qftXlL zIlmrpOc9ZAXNU|eynBF0@Ojim^(w49L)4ybo?=CZego`F zbm&p_uvwHtufx&zn=d|X+K#z=KmNEpKMK2BwN|}q+ieoUk(LhuZFj&26#IvmVS0u` z|3gB z#fXlyU7ipckZ+J8KiOZ{#KjAc10!_!Hn8rhB6h3d` zzG#YU+gEVq13+vfeg^9EE=`6x*ck!;$NobQ3hE7R7st;7#8|=nY|)XfFS5BNN&D36 zqBtbbt)`u|$%1V$V`|adj{GGs*&?&90~$(90+*@MoxAx|i7v9fT@$-QFKy?5q~}K% zwybazm%FgGjTrW~d`<`WjlG4EmMkNb!`0st?l&$z;ymMv&>mtt5e2eU!GhFtYuN=N z#WjH{h_|~Hf(8uBQrw4&QE&F;%3SJDhGZ;lJ57|OiL?$KgNXRV)ow*1y@U3!6N`pO z11!^#Y-!s}n;bmjTDTmcAYpPfCJlM|Yo1b@yj1f2IiD?2q^1-?@NiBOzmu5p7vxHg zPr#pEpNiI$kJ4P4;G9Ef9Qf~matjW`ld;NZ!lfZy_&ctvX5`Ih6Tr@_n}(XTMk`Jo z^YLp64jb^Ep|2Hk)5m}<=BAGd)9x6bYXje={3$z+%#rii=$1bSIK^liXA>N+I&0%6NT zbv&-fxTl4k)3uv*FnM16o6!cD(b8GHRP9=>EI61U@|!z7>nv#EM9~?`GFC3x;$?P{XHEMfZ4dho! OHMrpEN@}*%EdK&c74Pl< diff --git a/js/src/jsapi-tests/binast/parser/tester/lexical-008.js b/js/src/jsapi-tests/binast/parser/tester/lexical-008.js deleted file mode 100644 index b24b85875856..000000000000 --- a/js/src/jsapi-tests/binast/parser/tester/lexical-008.js +++ /dev/null @@ -1,53 +0,0 @@ -/* -*- 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(); - - diff --git a/js/src/jsapi-tests/binast/parser/tester/lexical-009.binjs b/js/src/jsapi-tests/binast/parser/tester/lexical-009.binjs deleted file mode 100644 index 952fefbd972d4c9dadfe711f0ddb459b3cfc6646..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6278 zcmdT|OK%e~5MJIO4j>^oaM~jXp_UtuG=io<1eJiAsGJaTv(sd$yBpcww)q|0_-An8 zi1-(b9q-y%ZxSaBL7bwE?QcAEn2!ew&8U@>}_S??$ zPA?roP}@*@YBc7e{`FoE+{9fq`}jU#F*%^H13gL@5pkL*sK|Wt;3!U_NvxlUb73A< z$`n)_1#uFK0>BpEiXaj3VGK;cCFIy#nhO>u{rWW&(`h!kt@rKPhW@X%p+Rh{j@rK) z3t)sQxD!G%2Tz)S!dcuS^zr8AGZ!<*-cVMnX_1%k*a>0ocKZrTTJr~DuhE+O&Ara5 zta%l$-fX;k_4$cwne`j;*ZK^31x0mR-QA|Ew;d6lL3tO^US}d>5bgm7b^=lOF=Y{V z(a&Mk=Gl+|=a}OiK?EFQ?y0zg;{VDdZ4gS$QFQ{7hk{8hTVs!uzJc0uL738z~cVE@TVpu3G~PavW@f?AUzDRYND13hDO06?kl3g<90LhwLl&d ze(_l$Xi0+qj;c70FJrByTuMU5B+qC?V%ag`NlX&%HHj%i(><}iLiu}rc9a|iXFV9o zmdMq82~*xd#C94MprIJB^t1xI2*9;9AZw0KtT)hGU3`8ZoUb@OyKH3Yi)yWD+B*sc zB#9{Ys(D{+N5Qt-Q93lUAAgRF;E;l;0|rWNLX+vzT`9a&qE}hpE=%dyNxM0q!t)a@ zJ6d>>i!7ZH9Ay1Iuy89BEQ1%W7)>ulR%oN^zb9N^jXv^D<5B1h;X5(IfNP=_x%Dm- zBSemC12u@~4H}eW98@_T;%Ia{eY~=ddXysNPghSHW#M3Ygk6L5`owUzWH7zL7O|hm zrpN#+(v@r(-E5saEaO|eJfSdYDtRV%dH!qP(x|*p0{%OjEl{XREFt4?MkBwI+Wwcp zl^%RSdj>-$+fy;hb7>;xJY3@u{~jpU@j@aUGmQzj+@*7W$Fm z$=L0GEZFT`|ttwv~U`_fK}n^k>qp8 ztqRrix-#n?uI!$&a80W=wkc>97Gv1Q*TEzo_Ua4j^3(|Q|)oW9tSFcvZjI~rA;w?<>zMbh+ U*Xnwqx?1YRIZs%Mx1EOh59WySkpKVy diff --git a/js/src/jsapi-tests/binast/parser/tester/lexical-009.js b/js/src/jsapi-tests/binast/parser/tester/lexical-009.js deleted file mode 100644 index d5dc0ed44303..000000000000 --- a/js/src/jsapi-tests/binast/parser/tester/lexical-009.js +++ /dev/null @@ -1,53 +0,0 @@ -/* -*- 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(); - - diff --git a/js/src/jsapi-tests/binast/parser/tester/lexical-011.binjs b/js/src/jsapi-tests/binast/parser/tester/lexical-011.binjs deleted file mode 100644 index 717f1822c139d32948285e3eb11cf43730c64219..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8799 zcmeHNO>f&a7*_T@>;nUeU4|XB+lFGzf^8Vkx&ao)MO_455qll5%fLvq%~qB?l8Tdm z&|}a0XFKgU>|gACDN3Y8$)+7QYlj?ViVyjIJ$(4e9huJ)df1s#5+6S1*@Tl>@J0{> zXIXq19Q6l}hIfZiHm5;nU%k^wn2?8`he7Z$yw$O%KOvlvvxFYgC?T9kmZb_RHqRn> z#?p8h>o36BTZff#1;yfkrA$@;_VWFhrjm^rbN=@1HP9IY|`UIZ1K{?*qU~=mm>N^7S_d2QFrby|291(M!Gw)6NNZU$?ig zr8oZs>}&MqliulYSKfRZw*F{%@Y{E;W3Jzie_x*;(e6=ybkcL}wiCiLCqD(W2f55S z4Ns|{{G7(&FBy-8i+%;K_Acg}3IQcPltj`Ql%7gETK(Qwqg|3DW~!P2wUba&S+>O< z75zR~Dop@y~5%|5PT0&=A`f$&L=ju4Hedl>TxU@bV1&O=~h%17BrHgRoI zRPqPZxKrjwEG7KX*cBkr0Cxiy1AiuTECbFaQ$wGcj}Yj#S;%(MOMvun#IAW74GfKe zRo*vbg~#qz)N6%Y@O|~zu#gGUtCD_b*Bs8thB{K_Jcn^7=R8^I9?Tt0nFuA+X~^mC zIRpL(vpK4S@F_VbBI0Z=?-aj?JD8f03~7prB5sJ?dJp%<#cJ`D;5(0&VEibE0*jCh5 z!=PP_X0af3WGVwI;Z$b1y#voOnh_aI+Ywca=diYucBga#eklbSx^qq>sI@d0CuCw6 zScm2vc%jHBvzQ)&5%8gYFgC4EucIW3o-JqCYSH{HSm79AqHCb=CA!f;>YYy>aakE_ z<(47r&oN}^Cz+cfQ6`X9$D;vLh%tAF1{>IBi0Ck+D4Cb$il_yJ+f>Pq8XU*F=N zrZc4;lihTI@XkmtBC52fd-QMN%3FXq$ifOVlvAE9QWv|H(wb}jC;cGIPmnF3PF=&d za4Nz*CPFl-|Lya0#4nA~Lfv$RIxd)!G)|y(*mNn_Sn2)ndMLfOFksNwbi<_>_g5I+ zR_1*Kb43m}l<n167s0_d+Eu#CzHrpl- z&-k8Po=|NhQ?aYwp1n(BvZ;O*u+{gh|ITL{oKl-z_qS^)c!b6y|2sp~p|;C%bUb!*2C zx+f?WWB4VgS-J>az_JK!V2_ZmVYVhz&+TH#eYLZF`s!H^lUE&pEjq|{swwM@4zJD5 z1rIZ@z_E+o?&30dYcA&~X$oG3E8a4vt`K*{e-BJV_$_rG7QDF*-m diff --git a/js/src/jsapi-tests/binast/parser/tester/lexical-011.js b/js/src/jsapi-tests/binast/parser/tester/lexical-011.js deleted file mode 100644 index b6703284269d..000000000000 --- a/js/src/jsapi-tests/binast/parser/tester/lexical-011.js +++ /dev/null @@ -1,62 +0,0 @@ -/* -*- 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(); diff --git a/js/src/jsapi-tests/binast/parser/tester/lexical-012.binjs b/js/src/jsapi-tests/binast/parser/tester/lexical-012.binjs deleted file mode 100644 index 7f55206ac98ead7d1b534cc3b8097ba0cc857150..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6271 zcmds5&2AGh5Z>~S00{}ffzuvA6$(WlBuFD@nyRUyP&HAJxF9#{CQF^&$ab3M9e4uX zj1x!1TQK%|*G{}ioOD}$PSM8pXV1(x-;7=6!vVpSau1`RvQOhKMSbsz=XpnQF!r|U z&Arx}Rwo`{uUwLI$|PjG^7WDD-GNzUbNL~nAvz*>8+Qnzh=*|`p#uHQypu2rCb511 z&e|fZm`bQH@WLqM8GyNcJ-`tUk3&o)T!i}i(2UbC>Q-*THmzE`V0K zVeOz*lsB)#(f3*#pI_RJxqLtVygWY&yW914qh{M}62g&_4*_jw$cGgB2bf`ciUa>+ zOao@4pTn!QvjN47L5jCH;0$nH0<`Yd@4N>KEMW>by^tcYXdXh=di-zbaV1G zLr(NQ`^?$s@7MPm;5A6{A<0QBlOvA8B;a;XNN_Ma5|>vef5B<21e%UXF(;XC zLyBtxRmF*_1PvLMwRiy6qW*d8zFCb3R+5N=-?G;NhGuemgefFUS=i zeF1-Z11fq`K2CFKf^!a`ap1oL$}Kn$j}w{EgiAxZ@HZ)}X5`IB6Tr@_n}(XTMk`JO z^W-fB2Tgd*(Dw?t>0`habJJIaX?G+io8C43Hg{iUdm{a!(68r)xj!VDh{IIHM0Tqovb&sp7R(6GF8nwNy2J%a# O8eH&rB}LonmVW~iRPU+) diff --git a/js/src/jsapi-tests/binast/parser/tester/lexical-012.js b/js/src/jsapi-tests/binast/parser/tester/lexical-012.js deleted file mode 100644 index bed3322dde22..000000000000 --- a/js/src/jsapi-tests/binast/parser/tester/lexical-012.js +++ /dev/null @@ -1,53 +0,0 @@ -/* -*- 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(); - - diff --git a/js/src/jsapi-tests/binast/parser/tester/lexical-013.binjs b/js/src/jsapi-tests/binast/parser/tester/lexical-013.binjs deleted file mode 100644 index ce63ba5c86efc04e7eecdf0b94e8ade1d1412285..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6275 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 KsSW{0eg6w)dnnof diff --git a/js/src/jsapi-tests/binast/parser/tester/lexical-016.js b/js/src/jsapi-tests/binast/parser/tester/lexical-016.js deleted file mode 100644 index 419af22c0e99..000000000000 --- a/js/src/jsapi-tests/binast/parser/tester/lexical-016.js +++ /dev/null @@ -1,62 +0,0 @@ -/* -*- 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(); diff --git a/js/src/jsapi-tests/binast/parser/tester/lexical-017.binjs b/js/src/jsapi-tests/binast/parser/tester/lexical-017.binjs deleted file mode 100644 index a1e0e6e591981f371c016327a719040ea662e56b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6265 zcmds5&2AGh5Z?0tb3sCI;Iv0jg+dV$5~L9{P1RIUsG6ufA~)+MOP$@wcADk|cnIE% z6Gy~bF!p-aPP|E+bQ^w7(Z=>?&&)U9j9uo#0l}4W52K)RNaHR=eeZ_nd8ctO_IB#c zgVwuNCmvw0T#|FjBxJnu^{MAQgjr>C`7xp)Iwg1)cL<`0hjApK0{zXr^Dqh~v3>x~ z#v-hkN~kdK!YJe!fVq7=z!4A6LQExGg!=l>jMFgcR_?+!ty;BR|I{p()PLoY0x_{# za(*M^m?9$KE)W@7c)|q)Uxpn-UcTCTYh$L^CF!-Y+VUnWyFk>QZXRJpZ+-{tHG1>7 zcGN1$o44WU2d%BoZ*0e`-;Y1n=SN|8yWVcpY`aZDICAm{pzRI$kYfJ`GfXdV;Ge`a zU^e;{yjr^)P|O&lc#9*B`;dB)b~yV#H%F_85WQ5cfZQQiXO?NPLq^{RYZ*tBw=v^$ zEL5;2x<1EMOb}YBOhB|d6pmoIraKt(2(U&JL}wq=7}Iv#h`Y8;QcAu-j$3KI6Gn)R zwOyVN8qjXgV$e^5&$vg!Zcodn(jx)1sW&p6bPbRWjwo8Eg@L{{Fynm=D;!QYCtow< zMDMfDoQ?i|eZK=5}PGcp|bWDorI)p~y%MKoh zj>xus1y?=>#AfVgpg!->c$9;k5%7QPKLnwm-r!Dg{5(XA70k~z9qalcJ8Kem&b=Or z0s^gS+E$w^*by_P7R_zP-vE;>GV3~^p~NI`nJV46n@^SKBJ0~Nu{$)DUfVDyFZ~L4M@q2p%B`jG!D0i#BC!BBGdBkawJJ3F2yCDUt)!_W8-!`(lLyBtx zRT1y>sss%gmW6l#ccT96dzHD=p$N%H+IE^KOVel*`UMg1iCf)@H2Mh5VK)-(kOo+$ zAKBKnnKn6i#g291Ij%(5RVg$(S%Dwy6`uts%GTP7ZbqFteb|KwMHvW1M}n| z1qV%d%Fvezx#=^&7IV`lg=u#rC!5|i{Wf=Bk*iHS(krEE6m<&{F%h@9Dq`4!Q^?>Z$=YjMoZ`PQk84DqTpbL$ZqcRq_d!f6D21RWw_i;3hJEBE_vnt z08y5&+-%PCu^P*H6i_4idS*acZ>VZ)27A?L9%qc9>5IF8$?W$sHEMfZ4dmBJHMro} KN-DP1D*py;ne93N diff --git a/js/src/jsapi-tests/binast/parser/tester/lexical-017.js b/js/src/jsapi-tests/binast/parser/tester/lexical-017.js deleted file mode 100644 index d7d33b4f0182..000000000000 --- a/js/src/jsapi-tests/binast/parser/tester/lexical-017.js +++ /dev/null @@ -1,54 +0,0 @@ -/* -*- 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(); - - - diff --git a/js/src/jsapi-tests/binast/parser/tester/lexical-018.binjs b/js/src/jsapi-tests/binast/parser/tester/lexical-018.binjs deleted file mode 100644 index 8d7deb8b9cf35de802a770077a28cf6eb5c561f6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6275 zcmds5OK%e~5Z>}eNPvXkz-f=53WZ8YywV7orfRAvR83SaNXX5)$x>%Gvb|07FF5nh zIB`V$3&vjW+KD%blcwcyiZ-@CduG1*X6!Og1_W2iJ&c0NK8?E+^}Q>e=N-kt$lIzn z_gZgSop^w~a!Jl9laTSs*GHar2WFMc<%fud=!oEL+#!e}9>$S`3iLPgPQoY{$NB*{ zYxA&TDxt!_3!{+d0Ot1f07pDL4l$K*5$fwhGfu;(Te%6_v})CM{X?@{Qva1p3dF=} z$@z_tV~U7`J4Gb1@PrEpJ_|dDJbS+J%ErvFOVVp)wdGYOm*~yI z+Cgho-nhHk0mY0#inlo8xDTl(X@~Rw3v;xJ2+>RB3dkLTb!M3sJ7n~2u$FN|c^fl6 z!$JjXqU&><#{{93$^=BaiEsofG~L0N`+zm1AUeCC#+bI_M%=Y+l2Y;wa@7K45ge9S!>c6(Yrl^zM8b-j`4qziy_aKx&0S{UeS19RRNu)^VVGx9Y@ zPW3+jEZFGp*Y_LXHAwP=6eO0(5l3MXa62d@IG7%Z%d3;W;51eOO~zz3U5C&peAdAO z(Gl6UFX74ufY^-v9MtDM8V?Jwa{~U4{f8hF)EnGc9Y6OGV=Lxon~rpSk)1V(J11Tb zMFD|UHEXL)7Ho+b6N_fH6a3cRMX5`k6w2r7@39CN7awt?^dhv2*mg*PZ#6I?bKY8h zfyi)8peo{>UX`GPVOfm_a53snzg(G19V(Fwr){T+vM`s{p=l67AG_Ku$))$uA$B9t z6KQ}&nvzXzn`x7SXIyKSBNXIJq0D3<&wkBQYLgerzdz@*1?tp+`37qX=}9N zG%!zJQ*h9P_Y8frkefaRY%w=`SD181da}t~vu|_vCAr$fL%mX}#;UGDA|~QWS49ll zF_DJ71fdcYWl_>NUoI}-?(=UzI@a8~;QaBLYe&i?nIo(Sz5fI{T0Hb^z#{fK~S00{}ffzuvA6$+I=2uLGnnyRUyP&HAJxF9#{CQF^&$ab3M9e4uX zj1x!1TQK%|*G{}ioOD}$PSM8pXV1(x-;7=6!vVpSau1`RvQOhKMSbsz=XpnQF!r|U z&Arx}Rwo`{uUwLI$|PjG^7WDD-GNzUbNL~nAvz*>8+Qnzh=*|`p#uHQypu2rCb511 z&e|fZm`bQH@WLqM8GyNcJ-`tUk3&o)T!i}i(2UbC>Q-*THmzE`V0K zVeOz*lsB)#(f3*#pI_LHxqLtVygWY&yW914qh{M}62g&_4*_jw$cGgB2bf`ciUa>+ zOao@4pTn!QvjN47L5jCH;0$nH0<`Yd@4N>KEMW>by^tcYXdXh=di-zbaV1G zLr(NQ`^?$s@7MPm;5A6{A<0QBlOvA8B;a;XNN_Ma5|>vef5B<21e%UXFU-af8*LC4wPJjb`jeSDX^^uCZw)g%dQV8 zt_f5{ywj@^G-O!T;sIQX`m?WA=2C|`B!g+&X`(F6q;+T+M93#Db}KUJJ@kj&NOVLR zV40R=Q`=_RAi84M@j|dl#H0Em~g=QMZ8 zTlYJNvV7}ia~_e^SkBXc8p)S51JZg)Rbw;Qt48xUV+>7S-wjM=znZC0+v{o|zf`Kh M1&>!!w5@LWH^S8L6951J diff --git a/js/src/jsapi-tests/binast/parser/tester/lexical-019.js b/js/src/jsapi-tests/binast/parser/tester/lexical-019.js deleted file mode 100644 index 0280b77102cb..000000000000 --- a/js/src/jsapi-tests/binast/parser/tester/lexical-019.js +++ /dev/null @@ -1,53 +0,0 @@ -/* -*- 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(); - - diff --git a/js/src/jsapi-tests/binast/parser/tester/lexical-020.binjs b/js/src/jsapi-tests/binast/parser/tester/lexical-020.binjs deleted file mode 100644 index bd74082c9a61646f63217d75f6546cf7219be058..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6271 zcmds5&2AGh5Z>~S00{}ffzuvA6-q%MBuFD@nyRUyP&HAJxF9#{CQF^&$ab3M9e4uX zj1x!1TQK%|*G{}ioOD}$PSM8pXV1(x-;7=6!vVpSau1`RvQOhKMSbsz=XpnQF!r|U z&Arx}Rwo`{uUwLI$|PjG^7WDD-GNzUbNL~nAvz*>8+Qnzh=*|`p#uHQypu2rCb511 z&e|fZm`bQH@WLqM8GyNcJ-`tUk3&o)T!i}i(2UbC>Q-*THmzE+ zOao@4pTn!QvjN47L5jCH;0$nH0<`Yd@4N>KEMW>by^tcYXdXh=di-zbaV1G zLr(NQ`^?$s@7MPm;5A6{A<0QBlOvA8B;a;XNN_Ma5|>vef5B<21e%UXFo#gHE0*H?T`Z7YG6X@y0z^3 zkm8y^Rm3~JDnUbrWi1}SwWvS)YGp2Us6#TCww)%*(o9;1mO+Gk;$pWVliovr*o{O- zqyd&`Nj9}@rcDl>ajjgAP>?aXB9n$Z{WVXiOaF8oajs~LIo(FCwF>!zV*t5LM7_SvZQgoT3o=*=ih*Ithjf<`DVqn<786I5mW@;e*)bs9{Dz49(Nrwe1Wp% zp*kK{q}m^l<&0wz@&Et$QG<|(HFq!>orbcbAtAYGd OsRkE3UP;lmy5-+F%nKJ0^&f^mActf4O&9A2}PXHtUXD*b?kIzyxIK+ zJ@(8$gCiHjzuzbfl!S-RSUO>3=Dp>4 z-dP%6c}M-hkHa5^K{}^i=Rm&Gi6br!KleTFBY3N0PJd2VM9yM*OoNy(BBC^rP@#V2 z-is&+m$Ci^oV|5eDU(o9=tW5+N&s{Den=A$jU&n=Tta4g(_FA9nH;_c%M5$nQUB*b z=Rp0|IZz-b)=<8G5(&ykEa5IloLPA2f|y=L0g1o*`kM#)=iG)Z;18tZI%?HBF!O>i z`*m{{8#?qaz}}%lpZ89O+j8i;u=QT|r^mlPusySTNB*-rN4^6~jryaLo^7|85srEJ zDWE;cM8>FpN;zd0H1vN>S-9Qw>|M?oL;eU zx=f25s``DfmJ7nfh;m{3ugn_-YohCYyom|Om&ydfCK)<{*P8BN%*TMWU_d-ifsrX2 zr6=jcwn=iyA5i30ogYOBVOQEN519t|8~7MFG^S(Wv1l^Y6siabf$r;tOeb9fq=O^2 z&DCh2uMJ$46%M;wQLiO(PWa{HjYvPVYYt~+O&v*dUctDPbB?U^5ay1i5%&eusn6)k zECT-U(>W>y|D0S99`j3{F~hqbM=JEarwOCi$GFLNS5u_fL(CKJuT zDm17q@{H1psUa8vAF2m!)B5x}iqqi5a)zxI&fkI+mLWR28VX;ctqxM>d~%4(%2-Rc z3}JtkAwxIWTo;KVfs{-xA5}uBpUw0#FDH2b^9zbKRZTMI-qJ!Y+++xEX<QH`KjNK{UItWZPy6WKz?Gi>;vn@)P+v@0x=3v7N=hrPxz2{rj`I^_3#e1u z@C}@b>HdsxUaS5$&(9IN(nOET_n zFubYE`w*d%Z00}m1e@_WNhC5^+dSF2jwmmK2Rfd>}*TvgLHzpaU zvNbY?PW7z0+igyD(9O6tYTId|v`(b^Kn<9qOLxf)uMCf&T{lUvL8SrObch~l+f17r zJmY$BIYKpYOi8Y4d*&{+$-4Muz*b+g{y(3!IHcO$_BZP&IE2O_{~b{7Lbi)EmoPfv zs-bOs&ZVLmdDp9A(;Uq>CsgF0w`e$k4@|nrAQ$}%HjeKWUwNwTXb`d6%hds0=q#74 zp)Pktze;b|wAC>t*kA7wUPExwu=5xa#8!vuxLvHcFSoW&JhYllnwBQ7I{zAEkhy}c>Q-l0 zyJNv2a#-KkLvMC*5xg~5b5t}rEyG25nNnA1yZqk=uOZ6v-v@lfXMHtR^PxtKU}oEl zWXrod*t>vQ8j8uQ4Q3eylQaG Lr%8DRSmOIX<7O#o diff --git a/js/src/jsapi-tests/binast/parser/tester/lexical-021.js b/js/src/jsapi-tests/binast/parser/tester/lexical-021.js deleted file mode 100644 index a3b4422ccc75..000000000000 --- a/js/src/jsapi-tests/binast/parser/tester/lexical-021.js +++ /dev/null @@ -1,62 +0,0 @@ -/* -*- 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(); diff --git a/js/src/jsapi-tests/binast/parser/tester/lexical-023.binjs b/js/src/jsapi-tests/binast/parser/tester/lexical-023.binjs deleted file mode 100644 index 39a9aca701bbc3d9a58b34e8d969317678588c8c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6271 zcmdT|&2AGh5Z?0tBOxRN2TpqgRZyVf0^5i-P1T?fswOJjkehXrZJpi7cADlLcmm!G zj$9CL!PxPxop_TtVH?CL+SvZ=8GrN5j04{95nKv77=@(+nzSkEdRIKpJ5Iu(w^OaZ zZ@g)=k{;)rJe=JwSP$2>ZTFqLpI>gq!?PNTS8x(VAfD&=PNV?EeV{{V!rR|y3JM!1+9C;nKYF3-Iify;a2uEH%1hl=+hhQCDro|3XeH*N098uoH zjNAUpc%xuVbbXG$F+u31G6B(cUpRv0n(koCeZU$}5T1QdWK5e$Eos{}NiF#XL2kwQ zP81_L)OLA7X+Xb0k3mBTKH(mX+8r&SN{|H5y57ii(j`DTIHG8+76$s-z*($tINgkR z&5%cepMB=gZ%Kjw4yITaKZ#XL#uS1KLEa}hfn{>UQJ4hW9*PJKr{Bct66NpJ`B7*T zzG&f|sETacmvH3+K&&Tz2I}(;O$IsG839*TfUKCGkZ*9SIDQ@=#tPfw5 z8i*9v1S%um>XZrUGb}T44;rKH^ybQ3>X3!xRoZr%C=2sw9SR0<;bX1cl04dm>aZP) zdPoB-QjlzE+f17rJmZ?T9HAgyawR6c^7Pj{r8aq?*!y=rTOdbG2!!C_j2eD7G4EfH zD>*&|e|kMCDpNj8V`+?Y4p-yAe+QIXa3G$HL`D-Xz0$eAqqJ(?y!mVb*qL>cP}A0E z#i?OFdQHJ$9o{o^S0Oij4A^3B`lvAJj?u{`cTK;|-IwHQ9S`(MsTxJKLE=tCJ6A>w z+jk-j+XSH!*uz8&`^8L+ V+Fn-!`H4~u&Uv_!l5N$>e*h>D@3H^@ diff --git a/js/src/jsapi-tests/binast/parser/tester/lexical-023.js b/js/src/jsapi-tests/binast/parser/tester/lexical-023.js deleted file mode 100644 index d5df7ce7d8ad..000000000000 --- a/js/src/jsapi-tests/binast/parser/tester/lexical-023.js +++ /dev/null @@ -1,52 +0,0 @@ -/* -*- 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(); - - diff --git a/js/src/jsapi-tests/binast/parser/tester/lexical-024.binjs b/js/src/jsapi-tests/binast/parser/tester/lexical-024.binjs deleted file mode 100644 index 8f4f5a90348a177c7c5cba6a82810807d58b4897..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6252 zcmds5O>Yx15Z&_qaX~`jz$r&ig#uMi5F%(A)RZVxBq~SbWZlHn*^RtT)BF|w8C*E? zFBp5hYiGULIO(<&PSM8pvuEbbo3U$rI-$5;8)4+vk61WlXzbnaJg*=6b8oNJIqbgf z4#ElcYE?O>MoGl$^CzD75N6fP<;RE-)TekK4=7@YlQ57_zW$E9Qxf=#Sib;gYZX?= zBoy&I5)hsOnA^8}9B^_%Fq3cr8tX$xoRMHyzYE)Rn~h%UQ>Ru{|JAAr#Kh{#`E9~6 zLsY_@Av(42gbOG>Cj&%ZyxiHfF%#^n^jb}Ac@vhMA!biEkFcRPe*pFsdh@vXxm%Vu zZ^O|KyRW`p3qSt6IzI}#d#zr(Sxg8=PTm8wk9a-{nIGAJ7a(Nwe8O-PK~{G;;&=?% zCYgrQ|8vu_fhg5W`P;c;{JboUbC@PtsJvP_%MK;qk9GrS16!;Xn)1;F&S+FN&WEK^6;Jd(N zi_E$XXecoWT&7BQ?&g^iU1oi|C3c72+0Fq;&o3}+S>Y%y4`3~H(Um^K==6=fffAN9 zAC$Y*-wVz+t~uf~@wMjwMf-#S)tYer#BW>abs@nuff|SpMh%Ll5tfB`0@tAN@~f1& z)S(E;NZNLqC~MPb8~Ozi?}dxphBSH)&EYT*?T`joryqH%Z8L3h@QiEOa)g3($yJyn zri zM?8!*MiVXx>B`@@s+y5EA4vc^wJr;_Y>if&Hs>6KD7%DM%Kn26h414Y=5i8O2ngh~{XbxGrVuegM3&%XibSZ;-0 zq~+EQlF2VeL=pAMGw5UStYQP^5!WHTSIAl(s^f7*zCADPoUWa$gULnJZ%GqmMoZ`P zT9s?PqTpbL$ZqcRq_d)h6D21WWw_ie3Ti=T7e8#jgDA^~?Wo|zSdHa83aF8MJu@J! qXHzw{guQAsk2A(l_Tp|}M)rG|8nwNy2J-8q8eH*gB^BFhmHz+`^ywP_ diff --git a/js/src/jsapi-tests/binast/parser/tester/lexical-024.js b/js/src/jsapi-tests/binast/parser/tester/lexical-024.js deleted file mode 100644 index be1c3a7b9145..000000000000 --- a/js/src/jsapi-tests/binast/parser/tester/lexical-024.js +++ /dev/null @@ -1,59 +0,0 @@ -/* -*- 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(); - - diff --git a/js/src/jsapi-tests/binast/parser/tester/lexical-025.binjs b/js/src/jsapi-tests/binast/parser/tester/lexical-025.binjs deleted file mode 100644 index aa3e59877d2d36190013e5c81bbe26e6788c4ccc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6248 zcmds5O>Yx15Z&^PxF8{M;FKe%LMatoV5y*KP*b8%k9)2zF8+l27sq$_~*a75YCEDfv}19RRNu)^bX3sN*kP9;A7EZFGpm-JiUHAwOi zEl4bzBc56$;oc!aaWp>?n=6gK;51GG&BmmhMnh^8zUbniY=T_d*Kp+nKx`$I9JC_( zEEyMI=LGy8TMkJms5iJ<9zTx}=Oy#A!zQM_sAifb-LF9(#Sw+>H0z{o7VOIzGm92> z;Jd(Nhs>r97$`XjT&7ER;pQ_Xy3G1^L+%c}vzr5oo}XaYvBFbaWTOLJbmc5zuUvR7 zD|t3(XY0SGTyI@+az`J8hJeNwf{!f{gamHEvB3y@l4W7t3bI0IbrDyf(JkHhFl)w`h4nL9!I; zOBV9%*FL2&d8Nerb3R+4K+ULwB|X@TJUyZt`ut1M}RHoW^V|y z?nqBIyKDAs@4hBiTX<|%D%B|K4kTkD?{YQ7u^SU**bWGlEG4Uw#`{)r1(%+G1JbkD zN=NEq>xRf?mnWW#dF3(muy|Z?0gGtsk=#o}tq9fgxH8+Gly*+vF4n{3MYV5E3uH&j zWb{gPYqgT#VTR0Y;q{!eq=AzKCzWKl*iFmng1#<&)P4g|R*%|z!E3P|D|islBgJZF sK{`*SdTb7R^=J`itfARUyM@W!w=zBIdR-3`S4lm%Yx15Z&^PxF8{M;FKe%LMavE0HK1WK~0H5MMAI0&AN%f*^O+cY5ofT3@)7c z7mU5$wX@zNPPz>rr)XpQ*)#Lz&Db?D9#Onk8(PJ{hs`>6A> z(~Czqs8!XR8YNupjUNWVJ(yLqm!BX;&?&_SxJMB~g2a)63e7hUzLF@M#rg?2Tg$Lw zrl3d|kcfy3z}~(Y;z*D)f|-Jg(9j&33r3>;-fh^X)2MfwAKJC5{;yWmAU0M<&2JHb z8KMgA9MQ3ZCtX1C1?eIBbZ7U4iZ095HvgeS|f=`5mw~=*^SH$4*(^ zya`7?>OA}W+;z<6{rF>Zew221o84B!wc93yCnxU!+Iu{m#4O}4;3XW{xEL|aIb?N5 zAc2RFZHj3)`@b+P>xfdbRIPw?q1YsoZKOvM-vtA?KumNo7Yi)Zur|6m$7M{A@~BNf ztUs2H;Dx4p7;_)6CJc1u5Cj;rZrqCdu1!ikzCl_$nY~XU#HPlsKxzxfHOMbWCdFqW zV5C1Vim4??0&Sa(Y$sg-q=zHQmS$;S#Tc0JzJL`Tr(2Ms8FC`=*=NBVN3scWZC}Hc4*;Tx6pIU34YFlUFXh zmX$0Uw6pc!Gp@HTIr1#YrRNaw1Hyo44LE)3wXN*3kmA}vbtHO&Iz?lSRT&<^C1^PR zB4sc2C_yTYuAMf@$|Tx`Zb3$S<{GyqiQYnM*pFm0WB^v_MqV4+Y@0kh<6E>mp&(fb z^(75?`fH!kn7mTr{W+hlP@r<^AbGf;fj@}t_)Budr(eLI!HCJWR7}%cn&F&BXgv7u zfg(ji#EHTf!lfZy`kT~LJM#7u31DZ|<)P-SF^bc|B6&H%VH@5q%#}iI`UtS)-1H40 z?~deT`CZd*d-pZD+Qt*JQmIB+cOV%Pd6%mrj@_6j!*)QZWGPvdG~Tz0E4cLh8<3vG zRytA_TQ@{DyFBq^%qx$fhsBeM3s^*3kK|q=YDK7?$CcUkq_lJTcCj8NFRFcWS|B@G zCZkuXTdS1>4>M$L3$N##B@LV`IEf^~#cozk7xZ<>qxKt!vU=3!3to%$SiysU9w}Bc s3(|Qq)njwmt4E7CV-4jm?G`3?-^%o;>vcU)TqX73k|!&r*G{AS8<(f&nE(I) diff --git a/js/src/jsapi-tests/binast/parser/tester/lexical-026.js b/js/src/jsapi-tests/binast/parser/tester/lexical-026.js deleted file mode 100644 index 2711de0892b9..000000000000 --- a/js/src/jsapi-tests/binast/parser/tester/lexical-026.js +++ /dev/null @@ -1,59 +0,0 @@ -/* -*- 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(); - - diff --git a/js/src/jsapi-tests/binast/parser/tester/lexical-027.binjs b/js/src/jsapi-tests/binast/parser/tester/lexical-027.binjs deleted file mode 100644 index a29bed12aad5bc0fb704cec2979e99b70ceab20b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6248 zcmds5O>Yx15Z&^PxF8{M;FKe%LMasz5`+qx1~nxL6$!l}H|r(_XE(B)rui%UGq`Z( zUoiH1*UoyAIO#Tg9HJ<({p^`}^JeUt7>_94s|_#;_l{ZIXJ{B)3xeP@4yVC>vwhTg z+3Ce29Mr06PK^>S_Qnr`;2zAX*~?E5Bj}Xk1KgvCAwl9uL51cw55AHpoW=SHI9toG zVy2)-7?6mF48Y#L8RAHgGlH3di_p*s{XH5)gU%jN6l{$ zff=F-?i|svgC|`;@dfE2`gCXag^QVDSC!Xlddusu>>M$7x_yK-z4;xmH|Wii#>Y-s z-ncS=Kc6%bAFU|cbnZ-!?oKcgeNEO0NQ&zoy08UF5o2`*|-=n%sFIr zM<9WRkZp=-IQzdaE$fIst&J-$I&JDI&tBE+V~u0U!F$Ti3>NG8Q+ zB4DIHFp8-qNCIt}jcg}f0i=f`%9dtnV8s}i@xFi+9;aK7q8V}`@!8LUjsAW~zXe`{ zBp=g)#IiZ!sYMd*9U>Hm^CPjj()bHb<0Mc%Cgn65Qls!i507LMt{i&$!;YJ*JRR%Lhum!RSN zi9>7KWAaLg_vd`JLV?PugXH0Y2L2$n<1fh-pMC*<1|ufhQZY?)X@+wiq4D6q z2Z|I85hn^`2$zO*>3337?a13tB!Hb+mxr3S#wbn;i{#}5hi!PfFjoq-=_A0FbJI73 zygQPU<#$bg+qVwr18F0T*0O1-+=Ti zw$hQh*t#LI+2x5RV_ta-JuIG7T)-mQdL;J}Q7c0AJg&^PC#9X!w~O^Kc~R|~(*oJi zG8w&6-CC_Ac$gt`TX;R^ENS3m!AT?;E_SnWx}dL19<|>=Sq-=6~Km;e9( diff --git a/js/src/jsapi-tests/binast/parser/tester/lexical-027.js b/js/src/jsapi-tests/binast/parser/tester/lexical-027.js deleted file mode 100644 index 0d8ddf079875..000000000000 --- a/js/src/jsapi-tests/binast/parser/tester/lexical-027.js +++ /dev/null @@ -1,61 +0,0 @@ -/* -*- 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(); - - diff --git a/js/src/jsapi-tests/binast/parser/tester/lexical-028.binjs b/js/src/jsapi-tests/binast/parser/tester/lexical-028.binjs deleted file mode 100644 index c0ef34a00cd7dc9ef0be23f44e5881c58730a81c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6268 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 E0cuX~00000 diff --git a/js/src/jsapi-tests/binast/parser/tester/lexical-030.js b/js/src/jsapi-tests/binast/parser/tester/lexical-030.js deleted file mode 100644 index f5fc09620f44..000000000000 --- a/js/src/jsapi-tests/binast/parser/tester/lexical-030.js +++ /dev/null @@ -1,59 +0,0 @@ -/* -*- 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(); - - diff --git a/js/src/jsapi-tests/binast/parser/tester/lexical-031.binjs b/js/src/jsapi-tests/binast/parser/tester/lexical-031.binjs deleted file mode 100644 index 7430834e08b2cc23a5dd02dcfb08977b35171ad8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6254 zcmds5OK%e~5Z>~BT#%4BaLN%>p->erutd-_s3}pXNK|n{Zq_7Ao!!WGnnwH+{ux|2 z^Dh{Cy=!N^Nt|>W9;awy`?F`}n{USU`FKQd%^zSC)Q)J}r)cP1@jUM&4yN8-vwhfk z(doq_?DYL{{2XE`;UYBDhi06HQNMN*w&^tL-RAqYUseD4RRv;Vb>#e3 z$T3Ak!kr;9w(x`t2tE&ch&*|^yJKUf*j4E@Uu}66mYpGLPdAUSrZ>L>_6EIq-1yKb z%bVBX=!c!1PtR<}Y~GJQHs?oScemMXHEg?0LO62r7NEVu(@9JNW&>Wpk&W{a#f(8# zcR1pB2-zl?hO_?*)3S~T(M#nDNEd>2GMPp?B=K!9ka0wL7c;)VLIrE0>vLSh1R;;g z1VsB|;Rse}x`Q$I0Bb@)XAVGsG3~~!xNqAe)#DqawUya>VT9;Z+vN#u0l5bG1<54% zGxuoNA85r?5+s1O^+u+XE&Wcv66!5%7O(IRv4g-r!z&{5(R8mCVmBo$C4`n`sjFPQ3w&0s`G>+DV%%*b_5y zixzg^&w<+!Nodc4dA7R+C!ckmA^9@~egaa-AaA;mR;>WKFSb%MqW%St?g zd(d$HUCLbQP=#bDZ97erm3g!c4TA{y%uQ}h9=(C?upfzjNCT|Wki62inKn6i#t8F~dE2V0bbqx|R5!bmoV%Uy}G;9}yN>r0oN#lI6xP*Jp zzX9o3Z|{Kfb-lHtWD?8~QiQ$o2s&9jsn~!;%yr1`CAwCG>Udm{aF0tnr)w|kVDh5! zH>V3SqotF2rP8%pRd6svq&IhZ)LGKQiJFtBGF4K8`Ol9Fxp%D(}LY3f!0 diff --git a/js/src/jsapi-tests/binast/parser/tester/lexical-031.js b/js/src/jsapi-tests/binast/parser/tester/lexical-031.js deleted file mode 100644 index 53f0c399c8b5..000000000000 --- a/js/src/jsapi-tests/binast/parser/tester/lexical-031.js +++ /dev/null @@ -1,59 +0,0 @@ -/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ - - -/** - File Name: lexical-031.js - Corresponds To: 7.4.2-8-n.js - ECMA Section: 7.4.2 - - Description: - The following tokens are ECMAScript keywords and may not be used as - identifiers in ECMAScript programs. - - Syntax - - Keyword :: one of - break for new var - continue function return void - delete if this while - else in typeof with - - This test verifies that the keyword cannot be used as an identifier. - Functioinal tests of the keyword may be found in the section corresponding - to the function of the keyword. - - Author: christine@netscape.com - Date: 12 november 1997 - -*/ -var SECTION = "lexical-031"; -var VERSION = "JS1_4"; -var TITLE = "Keywords"; - -startTest(); -writeHeaderToLog( SECTION + " "+ TITLE); - -var result = "Failed"; -var exception = "No exception thrown"; -var expect = "Passed"; - -try { - eval("var return;"); -} catch ( e ) { - result = expect; - exception = e.toString(); -} - -new TestCase( - SECTION, - "var return" + - " (threw " + exception +")", - expect, - result ); - -test(); - - diff --git a/js/src/jsapi-tests/binast/parser/tester/lexical-032.binjs b/js/src/jsapi-tests/binast/parser/tester/lexical-032.binjs deleted file mode 100644 index daa962e4b9521b9b21242cef03fc1ccbd31478cb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6260 zcmds5OK%e~5Z>}e2!w>hfm4p43Wb*tf^7s%gPIbBibTC|KyKDemO8tU?KI7izrjC) z3upcXW3PAZtT&01F6D8GHnu-|X1@7mY@d%u1lRllMnP?##(j#0-UZL|4&z|zZ8zI{ zotK?nJi?w|m2-R&GG6;~*Yj?`EZ3kmjDlILAAqy5 z3@fG*Dh#|Z3V8-#Zr==W#KWTyQwbNLp*}R@G>rPStFTR{QSUb2xBaU6&#x*F6RRWV zw?d97A`VeFT%1DMD6M35!UqPH^4qeZyq#0 zbjtGPWjOj?=kcd!wqwrUkKfPFkHYS5v)gLecAJE7tG<`i1IFGe1U}u)x*orN!&a31}F*$bf;-2ZL(ln z%*ZWT*nz(QCR=3IbwERjN#HV7x(heYmFP0-+a<9(^v-q;NP2#RVap0fak&L+157Z- zm8}Y=WBkhAM2Sn56Uyc4@0kD?R~>PpodZkp2vTi~mCgMg{M-1CBk%m17p%MjURnj=$ zEq=q*=ih*IEV(zq`7#g|B15vt>HMb14a?VPS1 zt%J#nD&U+($c&cG>y@h4YK6hU43Xj7>1k(48z;(6BFu2fn-$ds-Cgp){TiYyAGq0q zmt!?n@Hn7GiZ#uEw4P7Z*c|q%(IU~BT#%4BaLN%>p#bd(mI#^#H6;oaiOLbVSvN6tb|bITG=GJE1{co! z3&vjW+F5TBC*6j}Dcacn?3wxIo3VX99#LHL2N(slBNp`;8hY0}&pU~Nskhf`A9h}K zdeI1bepSx#DT#S)`pEO{!z|xievBAFClv4F9z_gs5`_{f(BH9lM#5kg>nGrBEyIeK zgd%}QLc%iubNgn1LrzW!W)dz$Lw)F&GZOY|w_%%3quyL(XoXmTtM*!=^^^;`Oc1wnPOL^*L=0*by#+em_6M*!kXUv4%i#?=5gawrz~&Y zgrgsJUVPcL9kY2q{@9!!h27m|x7D!iHVNU#$vc4d0Z%6p3t}7a5{_(Kj2Mn%$m$M9 z91kJeB-3#Ae_>kI5v6*mTmk7qu}&t_NQWf83kJp7UtpnvHPQ7sE@Og_M`Z$H z{jqRFTxhz3F%JN1!a!#ZK!7ppMy;rC+a%TF8>F?B*?S~JY^v?@gtmZOgZzSIQhdri zM*0J-m`Z{K(6-*lbkY?-Iyjxix9@4w}P$DB2+nuu4DjM%!lECsCjF&;m@kFnbs!`T0NW?_k=ISWMc1)yUFF~k8F-dH!x%Sy-bbTURMLfby5v3dA5>@ZMDk30r}48R{#J2 diff --git a/js/src/jsapi-tests/binast/parser/tester/lexical-033.js b/js/src/jsapi-tests/binast/parser/tester/lexical-033.js deleted file mode 100644 index f36daaff80d5..000000000000 --- a/js/src/jsapi-tests/binast/parser/tester/lexical-033.js +++ /dev/null @@ -1,59 +0,0 @@ -/* -*- 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-033.js - Corresponds To: 7.4.2-10.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-033"; -var VERSION = "JS1_4"; -var TITLE = "Keywords"; - -startTest(); -writeHeaderToLog( SECTION + " "+ TITLE); - -var result = "Failed"; -var exception = "No exception thrown"; -var expect = "Passed"; - -try { - eval("if = true;"); -} catch ( e ) { - result = expect; - exception = e.toString(); -} - -new TestCase( - SECTION, - "if = true" + - " (threw " + exception +")", - expect, - result ); - -test(); - - diff --git a/js/src/jsapi-tests/binast/parser/tester/lexical-034.binjs b/js/src/jsapi-tests/binast/parser/tester/lexical-034.binjs deleted file mode 100644 index b3278d53d2172070ca4eb24cb0e59065c638ef6c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6255 zcmds5O>Yx15Z&^PxF8{M;FKe%LIF`OXj?(kpr%BjB2mQ+xmhRD|#biwJjz7dG*g0g;fT59h!}Gl3D42P>t;#LxM!1f(rCE_fAO|%wzomoQ-8z z5mQhk@JL8R24HUA3UDaM3BgRkg=nM?%>^UjVCODu(``0-t&bhQp8V(66A%-ttLC?f zzzk6ZcZTT1!jmqb_?+|+eg5LrmW`QW*Ok}&WXqed>mS$;SO&gf;zJL`Drz;833^|tg?6Y8_>o4hdz-tiX6Iu{h zCPy5#NW#5GgyLZFO zvVchZo%}uLeWTBj$BFx%eZ=<&1Fki}fYfmtS-+6tnm`RC`ojiA6OL6T9z!2ATHH&S zOC7S1x=Pzl6J=!{Z9>5yFMO_(Ta!ocpgJ6cvL4a^s}v;L+BVZB2hX_XEk`JbmqLk2 zuRQ%VPpM5_Dfa%J&sNA$If0NoEUDr5BJ=(wxuWB*;7@PNWMwL5X)Mig&f#ht`0s!s z8zd3MBBKeHUg^@`IIWsDZ@!WMc4l23YS9|4IBhKA#}gcM;Q2y#6>8HbfGy{y&j@*U z#3#$|ntq$RugTR8p6ZoKHL7ZZhTR6SyEGgn-(urjm`n!2aEvfC|x9zuZ%j#{LmpmFLV+HR5$w;xH8Iab?X)?Be ly~$`1XN;kI?`~jn`^hXBwY{DU6lcn0aLLP+(rl|({sW9|>G=Qv diff --git a/js/src/jsapi-tests/binast/parser/tester/lexical-034.js b/js/src/jsapi-tests/binast/parser/tester/lexical-034.js deleted file mode 100644 index b160e3d030a5..000000000000 --- a/js/src/jsapi-tests/binast/parser/tester/lexical-034.js +++ /dev/null @@ -1,58 +0,0 @@ -/* -*- 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: 7.4.2-11-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-034"; -var VERSION = "JS1_4"; -var TITLE = "Keywords"; - -startTest(); -writeHeaderToLog( SECTION + " "+ TITLE); - -var result = "Failed"; -var exception = "No exception thrown"; -var expect = "Passed"; - -try { - eval("this = true"); -} catch ( e ) { - result = expect; - exception = e.toString(); -} - -new TestCase( - SECTION, - "this = true" + - " (threw " + exception +")", - expect, - result ); - -test(); - - diff --git a/js/src/jsapi-tests/binast/parser/tester/lexical-035.binjs b/js/src/jsapi-tests/binast/parser/tester/lexical-035.binjs deleted file mode 100644 index b5015535d3c6013bfb084d5cf5c3d7d0f8af230b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6251 zcmds5O>Yx15Z&^PxF8{M;FKe%LIDaF6e?&M)RZVxBBAtn2eWGS@>9eJI-~dy_b6gWkT_CMq50;)R}zKuSU&-0XBAe= z6ch;q5)qLB*xNTl90_txFjH_58k$3M!AR8KzYW`T8uf1TW4l(>|JAA*#K!8V`7I(a zLsY?CAUbyNqzfpXk{+T@pY6SJF;ncS@>)%Ac^#HrAm&cDkFcRPzXSFby?NUB)G5oG zH{s~Vo#&rlx{letAAfAmkJ9dLv)gL8cH4yTN3s~WCx+Ni+Atw@_eHLu=_e=UM@EQd9 zm=*+<%@I#6l5p=4p*UQ86WdFTzu+`Z0OjwboI*ot6rT3*NESh^?HjoA0U);HN(NdH z0~SvTurmVwk0pmB6yzJ+E03Qii1U*9*<~}6UsN$ob(&VvHVY2qjNGE7 z75E-7*&(yZ0|rV?0+;F3UATEJMVFc1ZphuCc6MVx(eo6B9V-Gi=X|zChRVr<_6`vU$9MoiYFVwT3z9Opc)#)JPJ zD6%~gaUwB>aOst<{7sUoee?Dk31DZ|<)Id>F^bc|B6&K&VH+MVOi!UUeFWHYZu*Fj zcSmxv{I2P@z59k-ZR3eqsZ^t^CP?0iZ072S7YMmB>;(vw%q8oR#=EV!g0AP^fGj85 z+WhiFl($}a3}q~yR2D~~4eSx#D`c%G96XOJ37IDTJ%J=OSCU>99^r-7~Jy4t{_27zEE2Y>@sr(ynp6Lbv diff --git a/js/src/jsapi-tests/binast/parser/tester/lexical-035.js b/js/src/jsapi-tests/binast/parser/tester/lexical-035.js deleted file mode 100644 index c061c60abad9..000000000000 --- a/js/src/jsapi-tests/binast/parser/tester/lexical-035.js +++ /dev/null @@ -1,59 +0,0 @@ -/* -*- 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-035.js - Correpsonds To: 7.4.2-12-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-035"; -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 while"); -} catch ( e ) { - result = expect; - exception = e.toString(); -} - -new TestCase( - SECTION, - "var while" + - " (threw " + exception +")", - expect, - result ); - -test(); - - diff --git a/js/src/jsapi-tests/binast/parser/tester/lexical-036.binjs b/js/src/jsapi-tests/binast/parser/tester/lexical-036.binjs deleted file mode 100644 index 5836694ee868559f4d00ebb8d6c62420f5e35786..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6256 zcmds5O>Yx15Z&^P;DCh0fm4p43I#;f18gH`8q}01R3xgz3AtG}S?cUYw$n5R{s{jJ zE}Z!njJ@8qv)&|5x-B24Xk+`?GxO%n*ghYR2(I}9jDp%Bjr$Z0y=$K59mm1c+ikWF zI}lmS-!da2+Veufwu4MD6M35!UqPcfh_vZyq&1 zcFOYRO*r~N=f&qO+c8(~#~)YcM`3rj*=;p!yG=qka`FzKy~oo@Oao>EUcix!^AW|2 zK~{G-;&=$zCYgq_{|nQyjtJ39F?B*}Gwc=v3R~32gzn2Kfca zB>04TH0%$wVk!v|K%06a(@B>A>EMX6rCAtQ(FSI`FJOhk=@z7DhMY)z_F1se-!JL6 zz-y4?V^WYU-ce&eDe&XZhx_7U3)DUhuJ7Nnlr$Sw>it_f5}yf>&5G-gCsCjF&;m@kFnbs!`TGNW?_k=jw=IJ0{YwEf6YEPF5w2^UdNC zEz48QlSv;xOfJM}GNbn`XR)p$!T#<24OFO4)H|t>X zqWU+d4KkypvwEf4wOUzlFhk@wcY4-Y(!`0PlgKh$@Ma}-L2s8lZoh#j%g1fD;MG`- z6+8^6kzz$NAg!lUH8zL6YP5(m#!&w9ZeTL|%}kBjURMLfl~N5ZdAgFCZ8gik0onrU A8~^|S diff --git a/js/src/jsapi-tests/binast/parser/tester/lexical-036.js b/js/src/jsapi-tests/binast/parser/tester/lexical-036.js deleted file mode 100644 index 6b0c3e9edc2a..000000000000 --- a/js/src/jsapi-tests/binast/parser/tester/lexical-036.js +++ /dev/null @@ -1,59 +0,0 @@ -/* -*- 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-036.js - Corresponds To: 7.4.2-13-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-036"; -var VERSION = "JS1_4"; -var TITLE = "Keywords"; - -startTest(); -writeHeaderToLog( SECTION + " "+ TITLE); - -var result = "Failed"; -var exception = "No exception thrown"; -var expect = "Passed"; - -try { - eval("else = true;"); -} catch ( e ) { - result = expect; - exception = e.toString(); -} - -new TestCase( - SECTION, - "else = true" + - " (threw " + exception +")", - expect, - result ); - -test(); - - diff --git a/js/src/jsapi-tests/binast/parser/tester/lexical-037.binjs b/js/src/jsapi-tests/binast/parser/tester/lexical-037.binjs deleted file mode 100644 index ff6c26bf64799bfc29ef046af0103552d987b619..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6246 zcmds5O>Yx15Z&^PxF8{M;FKe%LZOHQf)GK|pr%BjB2ll%&AN%f*^O+cY5ofT3@)7c z7mU5$wX@zNPPz>rr)XpQ*)#Lz&Db?D8B<)Z4KWJq$1EN&GzzW-L2w#}vtYl~IqJUZ z_Tw=QYE?C-MhO>n{xAsc!K|9S`~)$APANXXeTot#+XU|`{m??Hud99|mybjCG5p$>8N7&Gt-vN7z-aKi3>Xzlr zn{f1_?%wAYu4A_E#~<7CqqMu%>b0A$-8LaSIe7=rKH%9jW+8V0FX71M#h78vA*;Ir z2|R*qQ%u9z|AlGUK$M!LY6YYV#U`0-BR!J%E*QuKVxot+SYn}uwb9KvE@Og}M{NRP zgNbwmFEri5nEQY=WuP;MAi$XQ;&wc6ZBpv-4bs}l?0pg;HZyhwQd>Z-L4H9pDLxYc zBZHw)Of5kYXxD6HJLw7_JseTCG)n_3#=wmC1+4Hm-I5f|kQ0f|J_|Pb`z8Grcny+# zLJJbh=7^^jNx1ijP#i9f#P&+#FF1{pK>3)I(`ZPI!WVr!mQ9dr`v$Ij0EnHql7Uvl zkj2vi?2Lf_W6L241@#8^%j4%U;=E*j_SnqS7u8JDxc@a6q9~-$ou-|%&4PV7Be!U2 z2fhbPcF1h%fPs>ez-7907jB*_(Ph@R8*+E(o!uNz^z6Z~V}+-<$ch17bcIB(U39G~ zSu$u}>%ZqbZ{2a^QIb2)A>s#w0neIn_|$1T*vJT)toYLs;ak};82xd!6cjfpa>3PL3-$-1QRzEoVno#)?x^sKc~ zW0P9zM#v_YC!7p<eY^_a7wf0OklQDnH*&8z8>wk~63p0pSI?% diff --git a/js/src/jsapi-tests/binast/parser/tester/lexical-037.js b/js/src/jsapi-tests/binast/parser/tester/lexical-037.js deleted file mode 100644 index d42c13170aee..000000000000 --- a/js/src/jsapi-tests/binast/parser/tester/lexical-037.js +++ /dev/null @@ -1,59 +0,0 @@ -/* -*- 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-037.js - Corresponds To: 7.4.2-14-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 in;"); -} catch ( e ) { - result = expect; - exception = e.toString(); -} - -new TestCase( - SECTION, - "var in" + - " (threw " + exception +")", - expect, - result ); - -test(); - - diff --git a/js/src/jsapi-tests/binast/parser/tester/lexical-038.binjs b/js/src/jsapi-tests/binast/parser/tester/lexical-038.binjs deleted file mode 100644 index a490d4fc7b2a0a911f741538856a303b4d7405fe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6260 zcmds5O>Yx15Z&^P5C{p01E(B86$%K15Nso88q}01R3z$!19G!&V(RQhUZ-h}{0;sY zTsZSD7<;{IXT3?BbXz`7(Z=?(XXeeDv3))sQC#x}7zMR`7WEk#dY3%UJB)&- zbzXIP(Fl8fRnGA#iFxhoeb2iEvwU;;0b&FlQoMtE6fwj}6iTQ-f5+Z234>XzpMbNm z3@c(1iUb}B3C{q`?VAA(IXNPjNw^RV^`T?VNZ7Akhiy8IdbjzZ?N`-*epP{(SRFaP zML1@NO1Kk5#}=M&0mY}Jhv?%c&tBS?DRxzQ%~xAqhGi#++0)GkI5v6*mTmk7qu}&t_NQWf82?oX-G2X>7UtpnvHPQ7s&SHX) zM`Z$H{jqRFTxhz3F?RuL!a!$sL4YyqMy;rC+a%TF8>F?B+1n&UY^v?@gtmZOgZzSI zQhdZcM*0J-m`Z{K(5BwVbkaFMIyjJ zRN1OH9Bv_u+Um7Ziv+h*G2 z;2GD_

2SQ>Zd&$kSi*l-lH#((ljtY=ttF(+I)C1#SFJWX4~RD?0oF{`5vnG^c!; z=F$x3975y3e+LwCN8(YUGn#N|NSFR5mDP;A`A`DbnRR)nd26)dv@lQJPjJwN7Yu!| zkefaLY%w=|Nyxh+Iaz+!^xNEhO|G`_M6Z;pQPxdJ#6;Za>L|u`Or&8iK&V7PS(P-- zcZ+kl`urP^jwSatIDe+(+JQ1T=7=gHUwH`qES^+sz#{TGr1%nPD?)WVuE@DZrJd8Y zqjfNOQ3agS2$|8+dA(BgTCFfRm?1KpJ3Z|zY2!rMNrV|Ld9$Lrpu0;RxZgmO=$O$U95(L4HoaD}-~P~b>+(OhE^M1-iNVg+Oj!7870JJsRE%%VKL4<3sdqO6Z&w!%UQtD~!PT*U;gkkSN1 zhg0r|xX^S9V;%z5jDpl0g9c;Tk2=xNv`GlaH^^)wxetR7(YdnA;qn5C4GIjZN$@#y zXfPZp(UdC0fp*nKx|6N}(!vo{t1~ySrVPw@U%(2B)2+zT3^`Hx?6Y8_zhBkwfY%_& zr=%dUbdFfc5r=z^0)qYJk=R~!`~{~m5-1;&YI+T>QTWos6W#}zwr}9dM}XLkY8hya zjc7D0z|IKxKXx6QP*88MR~nu3rGjfYo zHsJ@rWP{AA4k#!-30x*icj4x_5?y6|yTx~h_SwtITP!ln4)FfycV^N1Ea1k0W zzf9>%EozVmq-m#)Qkq4(&@S+BFI?p|WYIh54TmA`h7>@VcI1t+O}ELyGqzRB5(=`V zP+-!Kr@#6smC2Tef+qnvQY>d0 rr15Sl$Cj{Hjuvr78_HkXHO$z2Et8|B*X2NQnUsTT9<7968=dlRD1+$Z diff --git a/js/src/jsapi-tests/binast/parser/tester/lexical-039.js b/js/src/jsapi-tests/binast/parser/tester/lexical-039.js deleted file mode 100644 index 01e4407b32ab..000000000000 --- a/js/src/jsapi-tests/binast/parser/tester/lexical-039.js +++ /dev/null @@ -1,46 +0,0 @@ -/* -*- 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-039 - Corresponds To: 7.5-2-n.js - ECMA Section: 7.5 Identifiers - Description: Identifiers are of unlimited length - - can contain letters, a decimal digit, _, or $ - - the first character cannot be a decimal digit - - identifiers are case sensitive - - Author: christine@netscape.com - Date: 11 september 1997 -*/ -var SECTION = "lexical-039"; -var VERSION = "JS1_4"; -var TITLE = "Identifiers"; - -startTest(); -writeHeaderToLog( SECTION + " "+ TITLE); - -var result = "Failed"; -var exception = "No exception thrown"; -var expect = "Passed"; - -try { - eval("var 0abc;"); -} catch ( e ) { - result = expect; - exception = e.toString(); -} - -new TestCase( - SECTION, - "var 0abc" + - " (threw " + exception +")", - expect, - result ); - -test(); - - diff --git a/js/src/jsapi-tests/binast/parser/tester/lexical-040.binjs b/js/src/jsapi-tests/binast/parser/tester/lexical-040.binjs deleted file mode 100644 index fd39cc1f252e5610d90e799b96fe785fa68aa89f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6253 zcmds5&u`N(6wdgKxF8{M;M5~%Lfynp5Gq(#v`$r-XtgVH6R!<(lge?|l|P05j057# zf5Efk#BQ9nPM4J*rz*Am+3&sYeec;Wn@$LBxFd}G#wm@46pfu*j^hj>f9@Q%yC=QZ zJujMI$E}MwE(v1R`1;gw9>FYEUw(#YfCdB~VUHk+SP+E*%2(g9a}k98BGym9*;$7b zQ2`bBP7nqx1JJi``#5C5d4Q>a3(;5|I%YHohmHHNO|RALw?B5>y8O?rOAsBaC+2qo zhAAQf?h=uyfyZ4y@KxX;@^bHB&%{iz>%wcU-10UoyF}ESt{-7TZ+-{tEqe2;^{H2t zH}AsHPkQ^G4@}2w-;Y1G=SOaLzuoV&OuKbLl;EUFh1kTrhA&%J6N=*)61&F`!(&J| zK{lNIUznLqM2K1{RzSuOtnx{>QypH+EXw1D;IWt?%KA8FD=d_-I=VW?bxhz2DNR6h zIOUFr3r)8$<}qN+C`ipQXfUSzs1prMn}mRTgUmLP`!EO*oh!Q>E-#?ipunJ-1fMg9 z2E&mOO{qd0Xjg5dJLv`>EgVs`I&%YS%D{~G1+1_*-HI&DkQ0^9J_|Pb`&IoOcny+# zN(vH7=ZK{oakvjCAlP3XiS1R#UvL^Df$}k_rq|#ag|9q3;eC*4`v$Ij0*KwHmVwsT zh(@yl?2Lf_W7ok61@#7d)$#Kb#c{>_?9;ibFQT6&k$2&YQ0NnAP}62wXTc$#kz2H~ z34aAlHpr~%fP&(az-6*@7jB*_(N)&BJA8L&pUoT)^gM%M!wO4r;W-A4bZs9Eyf-Gk z)Rin9q_^eY3%=JbI{Yxn#pf8sM*#(p&(ld z1ttx7`m3K(nOrLK{+!QBRH&Rha2~Gc;Ey6b{+wLV;0yTEnNZ%BvU!?I3!JkEjRpTL zP#(a6Sd>VNB3v5MwZBPG)g!MzlK^&RT^?%L8l^ZL%#zm=?04b)Lft9Erq2MI&rRPE z^6p4Zmftn~)_32Kt6e-(D}`!QbqV4z;g`84im@3JVc0$h6|W^_Nn?GjxPe>GzX54k zZF!8+YHP+wr&kHU+H>e)@vLS77V*|1yVs~%5vt{JdAhx*?3}iJtcA&|irGC68`T@DnNNjbRY(Mkxm(JB81e@*D! diff --git a/js/src/jsapi-tests/binast/parser/tester/lexical-040.js b/js/src/jsapi-tests/binast/parser/tester/lexical-040.js deleted file mode 100644 index 346345579623..000000000000 --- a/js/src/jsapi-tests/binast/parser/tester/lexical-040.js +++ /dev/null @@ -1,46 +0,0 @@ -/* -*- 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-040.js - Corresponds To: 7.5-2.js - ECMA Section: 7.5 Identifiers - Description: Identifiers are of unlimited length - - can contain letters, a decimal digit, _, or $ - - the first character cannot be a decimal digit - - identifiers are case sensitive - - Author: christine@netscape.com - Date: 11 september 1997 -*/ -var SECTION = "lexical-040"; -var VERSION = "JS1_4"; -var TITLE = "Identifiers"; - -startTest(); -writeHeaderToLog( SECTION + " "+ TITLE); - -var result = "Failed"; -var exception = "No exception thrown"; -var expect = "Passed"; - -try { - eval("var 1abc;"); -} catch ( e ) { - result = expect; - exception = e.toString(); -} - -new TestCase( - SECTION, - "var 1abc" + - " (threw " + exception +")", - expect, - result ); - -test(); - - diff --git a/js/src/jsapi-tests/binast/parser/tester/lexical-041.binjs b/js/src/jsapi-tests/binast/parser/tester/lexical-041.binjs deleted file mode 100644 index 57264e20375fcc7abebb470b315ba9b4ea819bc2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7088 zcmeHM&2AGh5Z>~S5E2q6IOPbcP^jPpOVlNxbPcfaodOc>UQkp6?satjk72f@^LcBfoY;qaH;A=bGalKlw_J7lF`@xFA@~4$1X09-C=^h>e2$&7AoORkege+c zDy)bKsK9rEFkm@=x_r~eAq!3eOa)ws26EFeqe0lK-G*g4je58Fq3u@F|J-T{qGEN# z`>lXsiim(aM`Wbo-2*&=CxM5^v*#~&bj%F9D!k^VOJ0X*=ZNaBt6Nypo8JL@gWf!D zeC(9v&0DbbM*aQXr@z9HKQ`yco3K>3*=;qJM?`_3lw62)%nJl%V=|;Tj)B=7h8P|I z<3zOK{C^`g>xd9JRm=d&5G)C$M!wvSX<)QWn#O+rDw0JSxC?*}2GQ)!pO^#vpwBp76q;8W(% zpx2kGnaU6c+LjBcM{o&{7LF)ep1FY)X<#1rhN!UE-4d4O$cfD7kA{WhF zoF93X#}f|^c`2dWzJ@Cw0%AL=BCP@2&(3Tsuemc^6{wDw z*RK;aim|xK4xyJYSlo|Lr&`?N_|~v)r;1WIinigx&5wJg8?t5;?Ll?b3wb>u0g7Dc z-$>h3n=CwIo3$*V770vtjCAS%C~ytOh=a)br=T6`gzr8aYGC zD?2vLxHJ=U7Drq<^ zQ|4brGL1E=N1S|-F*McE5wo17gB()(^pK7%h~9M66f?@ueA%vG#(KXw9o4;_4w%zq OI=G@~B?Mc$DgOqosrrWi diff --git a/js/src/jsapi-tests/binast/parser/tester/lexical-041.js b/js/src/jsapi-tests/binast/parser/tester/lexical-041.js deleted file mode 100644 index 9687c7adc472..000000000000 --- a/js/src/jsapi-tests/binast/parser/tester/lexical-041.js +++ /dev/null @@ -1,48 +0,0 @@ -/* -*- 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-041.js - Corresponds To: 7.5-8-n.js - ECMA Section: 7.5 Identifiers - Description: Identifiers are of unlimited length - - can contain letters, a decimal digit, _, or $ - - the first character cannot be a decimal digit - - identifiers are case sensitive - - Author: christine@netscape.com - Date: 11 september 1997 -*/ -var SECTION = "lexical-041"; -var VERSION = "ECMA_1"; -var TITLE = "Identifiers"; - -startTest(); -writeHeaderToLog( SECTION + " "+ TITLE); -startTest(); -writeHeaderToLog( SECTION + " "+ TITLE); - -var result = "Failed"; -var exception = "No exception thrown"; -var expect = "Passed"; - -try { - eval("var @abc;"); -} catch ( e ) { - result = expect; - exception = e.toString(); -} - -new TestCase( - SECTION, - "var @abc" + - " (threw " + exception +")", - expect, - result ); - -test(); - - diff --git a/js/src/jsapi-tests/binast/parser/tester/lexical-042.binjs b/js/src/jsapi-tests/binast/parser/tester/lexical-042.binjs deleted file mode 100644 index 47f879d5daebdd7c53c0be93ff95dd359160a195..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7085 zcmeHM+iue^7|u8&goMNuT=fz(p>AVWP%2ngv`$r-XxT0D8m~3DN#(d}`zkyNZ^8xQ znz!J$&+|?~f9mZuT8Hfy z?QS^4UZpJGsZbK}>eok}cOTxWnA?vLBj|+UecYvpAx^?TLizeR@;;NmpT+tCI2)_5 zLMEYz?~#D;6u>;b;p2dlQ-Ya<3(!DcI^v83z3Oc^rd_Xf8t+<_vih%5Rv;!;TfW~U z95X~E+!>-H3-2D_Q9L1CM4xT#?%0?Kc3EnzqK>={+s+WPUpKF?rZ&F;_9bfbxcQIPm%ya0nJ{d9`MG)9+jyN7b zz)5Gr>HnFLSwocSt#SuM48=O0OgZ)C<(pY?d>1qpam08BM|_Ed3f4r|_c)ITf+3X% zi1kK75mBb-4#GSDtT6+sIRFmEtP?iFo-LCkkS`F~R&ei;0I{i-%MSEuqFWH1kS0eoBQ=>U>zL35+*?E__7`*6<<*xz;WkzZnzuvaEnd=&nqIIc-k968w2j>XPqv)7m=s-Pg?K|43>r{72Bdp_fMrVx zM{>CXd!ZFAZSOpPX~Qd8Nuxn2Tm3zwdSg-`?h;Q94p6jD7&uxTZl9QJBki~oTob5< zc(-4pXcS>t$PQtWFjzc|Ft<7sapG#&meWMZ?L?bUZwqVB%tF?5qBqc7^#ajOXn;KR z{3|V+DU*X{T$7d~)FOUKOrHFjx6~r*7?uWG-d+Aao#jYS`C8!p(6qmBuJGg&gpoI7 zqOs%CB$j4;&cQSe{_lVyNP~wl!)S*~OuF(n&Z(y5%{e1rr_#+sE!v|Qr-^wye#CwY z27tOLmxn$EZ1HZ=ILxafzS;b#$+LO-n!eh?W4%+dMp07)VG}V8si7!?;G|$%KvW`? znW3m;BRLRy38`HZS@r2DwPoRdy`AF8(s~8mufn zizF1ANgh%BIVNMIrdG1qOf3pX>$`(mTj0HFHOps=rTM1az>Mr^vs$&at`@Shq*`1t LvXXpl70SN=&ae2H diff --git a/js/src/jsapi-tests/binast/parser/tester/lexical-042.js b/js/src/jsapi-tests/binast/parser/tester/lexical-042.js deleted file mode 100644 index 0defe9708958..000000000000 --- a/js/src/jsapi-tests/binast/parser/tester/lexical-042.js +++ /dev/null @@ -1,49 +0,0 @@ -/* -*- 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-042.js - Corresponds To: 7.5-9-n.js - ECMA Section: 7.5 Identifiers - Description: Identifiers are of unlimited length - - can contain letters, a decimal digit, _, or $ - - the first character cannot be a decimal digit - - identifiers are case sensitive - - Author: christine@netscape.com - Date: 11 september 1997 -*/ -var SECTION = "lexical-042"; -var VERSION = "JS1_4"; -var TITLE = "Identifiers"; - -startTest(); -writeHeaderToLog( SECTION + " "+ TITLE); - -startTest(); -writeHeaderToLog( SECTION + " "+ TITLE); - -var result = "Failed"; -var exception = "No exception thrown"; -var expect = "Passed"; - -try { - eval("var 123;"); -} catch ( e ) { - result = expect; - exception = e.toString(); -} - -new TestCase( - SECTION, - "var 123" + - " (threw " + exception +")", - expect, - result ); - -test(); - - diff --git a/js/src/jsapi-tests/binast/parser/tester/lexical-047.binjs b/js/src/jsapi-tests/binast/parser/tester/lexical-047.binjs deleted file mode 100644 index 483ce6f420cb1da7077a22bf97bcdeab264f2ae7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7567 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 diff --git a/js/src/jsapi-tests/binast/parser/tester/lexical-049.js b/js/src/jsapi-tests/binast/parser/tester/lexical-049.js deleted file mode 100644 index ea2483fd8fb1..000000000000 --- a/js/src/jsapi-tests/binast/parser/tester/lexical-049.js +++ /dev/null @@ -1,49 +0,0 @@ -/* -*- 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-049 - Corresponds To: 7.8.1-1.js - ECMA Section: 7.8.1 Rules of Automatic Semicolon Insertioin - Description: - Author: christine@netscape.com - Date: 15 september 1997 -*/ -var SECTION = "lexical-049"; -var VERSION = "JS1_4"; -var TITLE = "The Rules of Automatic Semicolon Insertion"; - -startTest(); -writeHeaderToLog( SECTION + " "+ TITLE); - -var result = "Failed"; -var exception = "No exception thrown"; -var expect = "Passed"; - -try { - var counter = 0; - eval("for ( counter = 0\n" - + "counter <= 1;\n" - + "counter++ )\n" - + "{\n" - + "result += \": got inside for loop\";\n" - + "}\n"); - -} catch ( e ) { - result = expect; - exception = e.toString(); -} - -new TestCase( - SECTION, - "line breaks within a for expression" + - " (threw " + exception +")", - expect, - result ); - -test(); - - diff --git a/js/src/jsapi-tests/binast/parser/tester/lexical-050.binjs b/js/src/jsapi-tests/binast/parser/tester/lexical-050.binjs deleted file mode 100644 index 38c0cbdcfdefdad1ccbf659d1cf6cfe938e78830..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6284 zcmdT|%We}f6rJ)$Y><#xu$m=Rh0+IXP^f6rpr(pKMWSwzJL4t>XB^p1(+cq+@Mo-8 z^9^jcc4lH{JV~5(8ekP=Y#-m}x%av%hXaatt38b3-DA$W9QA`+K@gm>_%hgUw2s=Z z+YuY!pjy#;s+0)1`|W8EJc3G}ceRSzCm~ zxP~HeKoTM+0QU8b7$=gP5zIAQg8D{iAvsC9yZ7OmcD>eVyl+)2>9=Yn1+lT(dViBh z%n{Xa=ZFp+JY@okFGz&wi_KS?E@p;Z(N?RbSKfwW=ZL%8Z4s_$%^!fhLTjGXKeWrT z=3Nl|sJ->^rE8eg+wu46?5OnaG&;??tG68xo-w%&X!Q%!hqM+UI}7)QlJy}Oqp*$p zBw~~$VIvWktNe6tyoROg7Xyxk0NA!f689k;btvM=_rkobAxh0reFE}{Vv}vQ6+E*1 zAy`02#AOEyIY+}3)E`6{1bJKoCVvYq`u92i9#{>Md`Jrt%Z?FGvQlvG5TQ7p?TOXZ&R-ynlR$Z& zl+%eQj=~oa9u%|i6-@aA5L+yqfQGWi*{EEG&)dSY!&_lbq5=x)4UWo-&toJ+$?@6Y zm!`hxZkw{`bI?OcOrd?vT5UTD_SKHup}8&k4n(pO%%%<)D76VpmX_|q%X1~V%=&gm z-44yQoBx_FPhi>6!joK7j(rKY!tL;DxZ~odypreR^z)SMtuaUmGaic$kvJe6BCQVM zXJ%WQj1w8I4OBxi>eVP33asn!0LG;L>`}`;>QRHVBV9dhl%=C+1KI`U?x{iVicz!& zybhCBxu#9ij@`QqHDI}Q8<=L+-rBQjQ%=>#bTcSec=t0HdoDTkg z+5T6-#ZEtgJ%a&PeW|?6a%n2&JY3@u{~jn0Kp@G+6k`G|bLqn0ag%3z-hM;@?1^@H zs99$W<211xzpdc71+N=srqGu@18lW7du7O*qqzOdq_A(lVyw3C$eh%yQPvQoe4>WA z8WPy`iB@bIh)UIxWrN0hthj-x=l_5#r`p=_<%y`g9zKUQ7LP*L>qUX>Dr9wO;?Lz##+kH?G~nRpUcu!*Xrp)ah*&T M7ra_&#&%leKW%dI#Q*>R diff --git a/js/src/jsapi-tests/binast/parser/tester/lexical-050.js b/js/src/jsapi-tests/binast/parser/tester/lexical-050.js deleted file mode 100644 index d0079468a916..000000000000 --- a/js/src/jsapi-tests/binast/parser/tester/lexical-050.js +++ /dev/null @@ -1,45 +0,0 @@ -/* -*- 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-050.js - Corresponds to: 7.8.2-1-n.js - ECMA Section: 7.8.2 Examples of Automatic Semicolon Insertion - Description: compare some specific examples of the automatic - insertion rules in the EMCA specification. - Author: christine@netscape.com - Date: 15 september 1997 -*/ - -var SECTION = "lexical-050"; -var VERSION = "JS1_4"; -var TITLE = "Examples of Automatic Semicolon Insertion"; - -startTest(); -writeHeaderToLog( SECTION + " "+ TITLE); - -var result = "Failed"; -var exception = "No exception thrown"; -var expect = "Passed"; - -try { - eval("{ 1 2 } 3"); -} catch ( e ) { - result = expect; - exception = e.toString(); -} - -new TestCase( - SECTION, - "{ 1 2 } 3" + - " (threw " + exception +")", - expect, - result ); - -test(); - - - diff --git a/js/src/jsapi-tests/binast/parser/tester/lexical-051.binjs b/js/src/jsapi-tests/binast/parser/tester/lexical-051.binjs deleted file mode 100644 index fa840f33e0af9c2ca316c15c9a39b9a7cc395288..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6321 zcmdT|&2AGh5MKWOE=WimI9Z&i3M!S#rA;f^G>D)oAQJV8++8;@b=HyX(B@Tm7~X>u zXP$uzV`n#Z)|I|7&#;{!vZVHQv;RQ|1vtGX)=xV18}Y_ z!s5a}(IlcNRTBVr`({E?MNcUa1}?>YduXWyO}l${V4HTM-f6yX)i$zkwT%qK#cG@R zM^q7knSuL)+0et&E@0$>#+bc$`D)Y0%&|9&*J|08H(=QpEd1&25iaS??|{8RZyq;3 zwyW~yEjaqS_U5N8-!ZHA~8UH9f$Xhk$i1K#1OgLKD&9N4)FX zWaQ;5Ow7!d;Zlf+&NO45dlnBH)A3WXh zkB~`EQL?koQ{i!LO8UIxo6}n?52*k$Ho(H%v)3j!jvUtos$&)R>I@GhF{OF{H>v*Y z+nBpFpiG%q`*yl0OA~D!IttB*sk`7MiM9{zV>i_elLc6&W7)N~xi$rOCbX~xLP0{6 zYET~X{MS9DHF>Gz{ChrIqKFj~MDuV?lYhwF_-k_Ulh5GKXdra!sz!M(O>r(DGy(h% zK)DMCQhcmJmT-AU7ygd>KsWO4I}2b>tSdszT4NRGh^X=N3rSk=0AjBlX45Btt>@+s z5k+^Dcc}R(+}$t9)fPFoD~)PYbx+bU(f7SNmc);VF>DKjN|&2uNfUhYxPpt({{b0T zko9w!Q;_{IxeN=$)Nx18pw}hm$OkN=Za{)B5VkVZz~kzSTdVAxq1|qP$@A*pj5f%P zmd)y=YS(gQA;1is-zwnX7&CExtCzlIGk9#vp(&MMRm~t|YK8d2} zqDWWK$#8Tw{&k!b3mWx~^gBJ433>eI4^i|Dyw$_gpA(*u3r0_A!U!iaD{>8$+Gi2H z%JOs*>mR_mwF|4@8Y)YpEYD;GfR`VpG?&?BM!AN|$=q&QNS@`><1b*D@t{8${xRwu zng4o61_Wb`_50_Uq?|Af_nNS!gZDMyF?yXPgx!De%TF%m8v96lt!I|}6sEl<+jkGm0PI*2N#~G`nu@gg-=~6jDcufy5=3BtJ z;!ud5K!v7!Qk)l4*Ct(F-ay_vseh8?gs-e!kt#k=&!Ij;O=a{_Mm(F&Y)LgWN&(%o z3t=bS0Azq8x~|>Iz}OmC@!rFVfZc7$;R?Cz0o9{tq5po({~WvqNxo#B#KIg2ELIBc zG07NBn++@#3o63Saj{pu#(# zCQ*cfenXS)`1zCw(J?~o4K475~ zKpv|VaQX>|ijU4#R+JmvNY;2df z#Bi+z*-L1cjv(9fT=W;%tysEIGwWF0oHx}n!c7M3iomog*{kY{3%9209!K_WSgj({ zRnt@arf}`=nyDM!84NqY3t(qMBpMQb$H7P0TWS-a&89Xf|9(QmsqO&-u%wbcjd}%B zM89;a`aH6ZEv5{XRv%$2H|U%f5GMVBOO#)Znrey}_No{&=D8X)BYs(hAf2x(W~`xU ino(b?LPPcIJA^6RTXQq&7JD<`m+NM5$K|!3VgCX=nLr8v diff --git a/js/src/jsapi-tests/binast/parser/tester/lexical-052.js b/js/src/jsapi-tests/binast/parser/tester/lexical-052.js deleted file mode 100644 index b134b9743095..000000000000 --- a/js/src/jsapi-tests/binast/parser/tester/lexical-052.js +++ /dev/null @@ -1,47 +0,0 @@ -/* -*- 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-052.js - Corresponds to: 7.8.2-4-n.js - ECMA Section: 7.8.2 Examples of Automatic Semicolon Insertion - Description: compare some specific examples of the automatic - insertion rules in the EMCA specification. - Author: christine@netscape.com - Date: 15 september 1997 -*/ - -var SECTION = "lexical-052"; -var VERSION = "JS1_4"; -var TITLE = "Examples of Automatic Semicolon Insertion"; - -startTest(); -writeHeaderToLog( SECTION + " "+ TITLE); - -var result = "Failed"; -var exception = "No exception thrown"; -var expect = "Passed"; - -try { - MyFunction(); -} catch ( e ) { - result = expect; - exception = e.toString(); -} - -new TestCase( - SECTION, - "calling return indirectly" + - " (threw " + exception +")", - expect, - result ); - -test(); - -function MyFunction() { - var s = "return"; - eval(s); -} diff --git a/js/src/jsapi-tests/binast/parser/tester/lexical-053.binjs b/js/src/jsapi-tests/binast/parser/tester/lexical-053.binjs deleted file mode 100644 index 10394859b5cf6c6e27b63f679536519ccf1d4d6e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6943 zcmdT}O^@3)5LKFfq%8sj=&3ysIc2dZHbI(8;24O#F5+O}2DOoEKucVk4J{fZon7C0 z?oa4H>nZ2_hFmhFD3L45HoZ}d?#YlSK5`ys-ptS)wOTUL?aT?zx~~ME3A{+YN|I#C zvvtxNj$V$Rj#IuQN$13T(_vJqZt`=I{0Lul{OPZ;pm@s2DM=X?SW%uEsLVafwX8zj0gS6@Q+dF#J=mC zSP&m;Y`#CEiU`aM+&j!x0iLFSkxQCl_UpqZk3-B7`^2!;u}j{DY45NIKlitAO*a1n z>;tm-dhqACEjGV_t-l;Udh=UI%;9U9s%0m5-%XECF1Ak z`AYEx1Y?TEWIfuRPP((wvQQeQ_T#B zCq`Vf`7A_4`S-wpR9L79k!p*D7S>01`}iCaw0>F>u$Zkh5wg+r2xIO6)`b8edI1Ve z#Dt&mS!k1ymwzGdgV68M9E-KHE79TudJg&wn##zzN(7zFoupcg(m=;>dj#{yA)3!rN=oVINw;T->NG7a(4Oaqd3EE z5Hr)gm;oxQ(=92e|F%F$t)6SM82VbfDs*C@*(SIC4a0$cM`ohOFqfXA2N-qH^ymk| zBtb=@L&wk1{ikTg6;hzDdO()-?fq~kHeJ<;wXc1C{q9AcVIN)i*5OX$8An>%=aYGeqK&`uv^Z*e*XWzvpuv&AX47>XcyTi&X>lF$5& zldU}ppPG>95ZTfgo^n4qY3Jh8zaWf~rO@q;T9>hO#pfc9Mz6cW|07WD0E*&;7=^)9 zKjPrI=pFo%_tgWiE9>f0H_dU1b4FBgWk<3RT$;I7)hzl8VC!$o%d0va&0S5o3xD-% z`s#>WxS2*Z+Ul+Kndm!$K9&s!Yz*sxQ0c6*uhT?#t6!j*z8R2_c^NL6P1M8nE#zah z5;=k!WRoD-It(P=-y&DgUVt7zw?r;b2-xJv5#hc==9*9=x2xmtsI`4=%R4@o5hicT zh8v0^e+3ugdllgOC5Z?#bhN9ei^ClyolZf8NJHCvRbaPNdd2@M3{Lqj%r8Z^QBGv> zr$)oolO1W+H#?{ygWG#MrhUxoy1chu$6?=Y@N_%cAC%dj05u5DBme*a diff --git a/js/src/jsapi-tests/binast/parser/tester/lexical-053.js b/js/src/jsapi-tests/binast/parser/tester/lexical-053.js deleted file mode 100644 index 8739afbadada..000000000000 --- a/js/src/jsapi-tests/binast/parser/tester/lexical-053.js +++ /dev/null @@ -1,45 +0,0 @@ -/* -*- 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-053.js - Corresponds to: 7.8.2-7-n.js - ECMA Section: 7.8.2 Examples of Automatic Semicolon Insertion - Description: compare some specific examples of the automatic - insertion rules in the EMCA specification. - Author: christine@netscape.com - Date: 15 september 1997 -*/ - -var SECTION = "lexical-053"; -var VERSION = "JS1_4"; -var TITLE = "Examples of Automatic Semicolon Insertion"; - -startTest(); -writeHeaderToLog( SECTION + " "+ TITLE); - -var result = "Failed"; -var exception = "No exception thrown"; -var expect = "Passed"; - -try { - a = true - b = false - - eval('if (a > b)\nelse result += ": got to else statement"'); -} catch ( e ) { - result = expect; - exception = e.toString(); -} - -new TestCase( - SECTION, - "calling return indirectly" + - " (threw " + exception +")", - expect, - result ); - -test(); diff --git a/js/src/jsapi-tests/binast/parser/tester/lexical-054.binjs b/js/src/jsapi-tests/binast/parser/tester/lexical-054.binjs deleted file mode 100644 index 142d4f35c604634dec18f9fcb4536e533cf7b326..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7538 zcmds6O^+ir5cTr8zyT!01ulJKM=LZS!3AXlJDH%(Y7|x^+ADIpJ&9ST9of##%s)Z= z4}J_M&fK_jp~~rQJKavlne7?v>?umS{p>2&dsVLPne|Gres95O)_Y*-M3B568qSCtye7hHcWd-Rr7U!3)l4K zUx0m!-h4j%Wzv;5--WF|oqY4_YvITLZqJWs_jEKp8@2~TWK13b+VGMtfz~>a=gH%> zkxL+BnoQV|r&7o~8ReQOX~t4B(Ss zj%_|IB3S+bct9Jf%#>-e3HeS`WZJg4f)*+o!%K+i#+K~n`gH$?II!bxhOQ3&+VE#x1;4M0XXqHFC& z0~2Rp759Oth}c~Vhb!bw4ygVH7JB_P|2^;;kbEry#PVY#Qmhc}C&~rOcAv!U<<5U# zHw^;S&!n451T~6Xrfd~f;cK|^Q$QTcqykOMLdlD66~69^$O`WkYZ447$TuwQE;^wHEU5clVGKK`Jcv=?gFrl)ce7*kbPj?pGA(zY! zatS(d>;8g1BIMs6s=Ln{=b*F;2azA&Tn7abuFr}Zsdhxr{Tp>q?PAbnRs9ZxKLbiM zqr?_zGZ;pbx3n{|r1=cy@$=*XP5Q~~=tCwnOVZ>~5^#7?+0@BbJob;nZ^YonHvgYc zeaaQ&x*?cSir&3O%=$nBYSP6((6we(z*o?yS?+H3_){a*nl*juqa2*a9>RqMkACYc z?wn}H*3A)4ZYy!>q2zo1&iU+s8o4GFNRgHv!m0G@7z{2s`weJBRtj&%=BnhaICXan6|8baz=chW@JSYS=|T z2W)(|>~q%L5xxMIyYN@PW~`3cg_~(rqpLOyo(Z;-22=+Q*c#Rcp~Ad!XwXDAHg2Hr zayKBm&%A!DMWSN_BoE+H%`TGNtn`5+sJ=(yLez-dE^_avvwgPZoC8g6%Y-`$B7X(P z?}M&uhb4%JlS8JPsQ&Vvat_naMxdd)vMsJHRo><^-0yJ8AH)1oaD!5!H{ZSj9m--P ztZl_0LN-3~6k`};-sRkT>fKMhr{1N^d+HU&#nT b)\nelse c = d"); -} catch ( e ) { - result = expect; - exception = e.toString(); -} - -new TestCase( - SECTION, - "if (a > b)\nelse c = d" + - " (threw " + exception +")", - expect, - result ); - -test(); diff --git a/js/src/jsapi-tests/binast/parser/tester/match-001.binjs b/js/src/jsapi-tests/binast/parser/tester/match-001.binjs deleted file mode 100644 index 075236aa2fd129bbe9720356786f53abaf21b32f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21482 zcmeHPOLN>r5Eg_-cvFxQ2k;?>m=xalkvO524YA`;rh)@mlM7I;@oKVGEbnef+EiRA zuJ9lDBUJG#xWb)+V~Sru_h_^;yED?Z9^QDdQmHtWM&I=GbbsB`Gg31e4t(Bf9&qNi zz7G1`fE_t6I*zm7caNQo?VT^%pSC;w0e6}W(WdEpVbuEg8^?JQS~c~@AF#k<`#!(T zJ3b3o{nSkyWA zc8Yu%y4u~|y}MhOfM}2yvv^q78cEpN+@{i$spii z2yWkwSj3OO9fb)(Px89eZ#S9mt4GBX9k|4mx9Ni?c=>BE@GxRQw9CUNV}ue`M^|!` z83OXB90CivLsUd)9Xeq!Zv)mX*S*iXAloJjxrJQ>sXPO3N6#6f>3?z zz#@p&J?Ej%x@sQ6IPhbG)iq^N@-iy9tF9($EMU4QU}JTyQ4Jb0*y`Hq8vfO!w#i2` z<#fX84gEaGfPY0GL3O86QgSu*ef0JADf0lxqSnrD%e3!h{A zmBdJd>bNG<^YRePlFAk1U}@n*x$AIuhP@8%ALv^Nhy?Zj0c_f*v+Z>|~RUcGP=uA9UEnLt+TnjHOzz(Z-V-bI?smJV}V}s#1^n82zz|6FX!`zkrQ~`1GOy|TU84Od|7og zrscB=nIo;dw4iinTgMa0C(XrekVNUQKDn?cH> zai(Xq!E5s~qB?P7VR0!X>$Kq#IEa|X7NhGrI7F?}7aTICJTapGacuakjtzBeNKRy6 z)@D62Id@BkBsL6&8E47#+>Q_%FpH$5(sghcEsbJzwUA=xbL9{RhfFIX1cy8QK&=>J zNH`9S1y*M`aN*Qtda+8k(SnDHe*^6s>#<3!>W*s5;+?rj)Q2*0016}=*~}>D%Jx#f z(v+}>HTCp$nH0aN1lI*7@B?xVY4F7ef*=8*cA9fcq?NP8)SW~~;?aRDVMJ|<<+ z(VWZ4#Rbykl-eU<_?Z)sn3XPN?yB)QC`lQvq(-Tn92@adUN!y*^i@}llhTz^0@gX?MT+Kx@l_w$@&}8; z)aBV0MB4`vHC7J2e*|FCJ{sV#| B9Mu2- diff --git a/js/src/jsapi-tests/binast/parser/tester/match-001.js b/js/src/jsapi-tests/binast/parser/tester/match-001.js deleted file mode 100644 index ab6082a1a7fd..000000000000 --- a/js/src/jsapi-tests/binast/parser/tester/match-001.js +++ /dev/null @@ -1,106 +0,0 @@ -/* -*- 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: String/match-001.js - * ECMA Section: 15.6.4.9 - * Description: Based on ECMA 2 Draft 7 February 1999 - * - * Author: christine@netscape.com - * Date: 19 February 1999 - */ - -/* - * String.match( regexp ) - * - * If regexp is not an object of type RegExp, it is replaced with result - * of the expression new RegExp(regexp). Let string denote the result of - * converting the this value to a string. If regexp.global is false, - * return the result obtained by invoking RegExp.prototype.exec (see - * section 15.7.5.3) on regexp with string as parameter. - * - * Otherwise, set the regexp.lastIndex property to 0 and invoke - * RegExp.prototype.exec repeatedly until there is no match. If there is a - * match with an empty string (in other words, if the value of - * regexp.lastIndex is left unchanged) increment regexp.lastIndex by 1. - * The value returned is an array with the properties 0 through n-1 - * corresponding to the first element of the result of each matching - * invocation of RegExp.prototype.exec. - * - * Note that the match function is intentionally generic; it does not - * require that its this value be a string object. Therefore, it can be - * transferred to other kinds of objects for use as a method. - */ - -var SECTION = "String/match-001.js"; -var VERSION = "ECMA_2"; -var TITLE = "String.prototype.match( regexp )"; - -startTest(); - -// the regexp argument is not a RegExp object -// this is not a string object - -// cases in which the regexp global property is false - -AddRegExpCases( 3, "3", "1234567890", 1, 2, ["3"] ); - -// cases in which the regexp object global property is true - -AddGlobalRegExpCases( /34/g, "/34/g", "343443444", 3, ["34", "34", "34"] ); -AddGlobalRegExpCases( /\d{1}/g, "/d{1}/g", "123456abcde7890", 10, - ["1", "2", "3", "4", "5", "6", "7", "8", "9", "0"] ); - -AddGlobalRegExpCases( /\d{2}/g, "/d{2}/g", "123456abcde7890", 5, - ["12", "34", "56", "78", "90"] ); - -AddGlobalRegExpCases( /\D{2}/g, "/d{2}/g", "123456abcde7890", 2, - ["ab", "cd"] ); - -test(); - - -function AddRegExpCases( - regexp, str_regexp, string, length, index, matches_array ) { - - AddTestCase( - "( " + string + " ).match(" + str_regexp +").length", - length, - string.match(regexp).length ); - - AddTestCase( - "( " + string + " ).match(" + str_regexp +").index", - index, - string.match(regexp).index ); - - AddTestCase( - "( " + string + " ).match(" + str_regexp +").input", - string, - string.match(regexp).input ); - - for ( var matches = 0; matches < matches_array.length; matches++ ) { - AddTestCase( - "( " + string + " ).match(" + str_regexp +")[" + matches +"]", - matches_array[matches], - string.match(regexp)[matches] ); - } -} - -function AddGlobalRegExpCases( - regexp, str_regexp, string, length, matches_array ) { - - AddTestCase( - "( " + string + " ).match(" + str_regexp +").length", - length, - string.match(regexp).length ); - - for ( var matches = 0; matches < matches_array.length; matches++ ) { - AddTestCase( - "( " + string + " ).match(" + str_regexp +")[" + matches +"]", - matches_array[matches], - string.match(regexp)[matches] ); - } -} diff --git a/js/src/jsapi-tests/binast/parser/tester/match-002.binjs b/js/src/jsapi-tests/binast/parser/tester/match-002.binjs deleted file mode 100644 index 772363013e947c229d2d07748285db83a20ccd66..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 36161 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 Z>9 string.match(regexp).length ? - matches_array.length : - string.match(regexp).length; - - for ( var matches = 0; matches < limit; matches++ ) { - AddTestCase( - "( " + string + " ).match(" + str_regexp +")[" + matches +"]", - matches_array[matches], - string.match(regexp)[matches] ); - } -} - -function AddGlobalRegExpCases( - regexp, str_regexp, string, matches_array ) { - - // prevent a runtime error - - if ( regexp.exec(string) == null || matches_array == null ) { - AddTestCase( - regexp + ".exec(" + string +")", - matches_array, - regexp.exec(string) ); - - return; - } - - AddTestCase( - "( " + string + " ).match(" + str_regexp +").length", - matches_array.length, - string.match(regexp).length ); - - var limit = matches_array.length > string.match(regexp).length ? - matches_array.length : - string.match(regexp).length; - - for ( var matches = 0; matches < limit; matches++ ) { - AddTestCase( - "( " + string + " ).match(" + str_regexp +")[" + matches +"]", - matches_array[matches], - string.match(regexp)[matches] ); - } -} diff --git a/js/src/jsapi-tests/binast/parser/tester/match-003.binjs b/js/src/jsapi-tests/binast/parser/tester/match-003.binjs deleted file mode 100644 index 1422b2f79d54876b0c68d87ce4a3a885164ec239..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21251 zcmeHPUvJz*5I2IB? z--XY?m*9mb9(myj3GvJWGwb#3od4X7?f9B&-G^T8ygNHHJM){}+3|Lx;lP!v-9stt z)jNUT55$r6x@B4WzI|-1Z*BjudwI9#52V#yR&Bbj6Gp4ccP#5;Xw{|N?~1??`>wn$ zd#(sX5u}O@z|gRqby&kqm^Z$UPD6FhlPXq^FuLABm`U`1Q)l z#id7KmUc46veI5x4}Au@KM_H;Ic24yR{sFnGt}zc&7Iwo(&}5l`sT*1wTBn7nwh;K z|DBy8--My|w)SprX62?9!8FbeP>Y)`4FW&%qvL^GQf9i)31nYB9ds761JzLQ=F>qS z!w}qlHxiLN0(Vp<2qWp=bNzNhxUT7{di3BYX}paJ&+zhhLGUmVL9{2sXo7^AETwMv zC?&!gNZt2PU_-z{?*`xmAO!Go>8SMpOhh^q&d+t&QT7kQ<-8TcGLYbp575zSgvEP6$V`~S-FdS1~cRUds z8~ZBbgy+pXPz5k27O^{!ovR%~C2;{tt%jTx$uVqqEeHfv8g`Mc0&rs#YVLO62|gX0 zyAm2IviEpdlt`#oNu#e?fmDxXicbTCT=yyPqoMlyk7O^hAn-y2h>k}XOJ%5G3nj^5 zM07wB=}+3d;{2Q*l=^+XQ0i3!J|^bi2JH&0 zc9%xh4+y=IgVBjCQyXUZXA7<*ebCS<_$36_#zbP+Bg3k31MW(%9~~CQio{`(PwF^x z5B~qb-ffPSs11OB10nTaRGPC}jHCGvSH76VQgpw#X_YNm=Bvo6lA zn_&YLb|6*v0*$GHVaE(jypO>(*^AviCaH(Bvz{z~Y9aXy{=cYRw*zdGBF%z7i_>f9k;{s^x6b`<_ zzkjZcYCe)hPx_M*t>}AIr=PKeEP3Ge9c-!FMNqp4G6fZ3Tn<$uo6+K>s)l1Y>uKBX zQE01;my{So7mOYBtCI;z1qjqluU6d?VtiD(tU%Tt=dFNP-;1VD$b*@xD>SH z?3WB%S3o0G!WN!h#Px02+($`{-vd&Bl@Cvd9C8*zZ*9*-!PlgW#mTzP!>M9B< z^1AEy9-D#*%LmiE;zV0zJ9$7anqobg$lT3MZGH<1=W4?L6V_XE=(}CE)1;;IR%N-#u$(_3I6lUmdPC++jkb{C=k2@ z3@r7>l#MHG8=Y~R)*%G@G~w(I)l z-P*vs+CcreXN0#Gvsg-2#-q=;G%}2jM{#>J^?HUIeqb_d7`xQ{6eAMcTtc0T_jn|mfIcRhh+_|UT&@SA z_gFS`rNGIrw8{sI%JQ|lh|{=>U>QI`a;nC048;n1QyqF*{2f-+aaohJx8XXt)MX|e zXs4DSdd-wCM#0-s@y~TxxC|^{I7n`U%UK&%VD5BsHD#tz4F$6n|GXgvaJrW}lYhfB zs_O`~vZhy>>4t^H2t@0d3j_5toU7DrZKPM`LOlJf;6+INw6IuIKgVO9^a+4|gzTh> zd-RhDh_73q?&&RJWVCeYn|_3TLoRsIzoKwq_U1MHwCMbwj28cCqNIM5Q`s2%pZfnC Nj7t5ua8mOj=zk4$_CEjs diff --git a/js/src/jsapi-tests/binast/parser/tester/match-003.js b/js/src/jsapi-tests/binast/parser/tester/match-003.js deleted file mode 100644 index 24453e621cc9..000000000000 --- a/js/src/jsapi-tests/binast/parser/tester/match-003.js +++ /dev/null @@ -1,132 +0,0 @@ -/* -*- 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: String/match-003.js - * ECMA Section: 15.6.4.9 - * Description: Based on ECMA 2 Draft 7 February 1999 - * - * Author: christine@netscape.com - * Date: 19 February 1999 - */ - -/* - * String.match( regexp ) - * - * If regexp is not an object of type RegExp, it is replaced with result - * of the expression new RegExp(regexp). Let string denote the result of - * converting the this value to a string. If regexp.global is false, - * return the result obtained by invoking RegExp.prototype.exec (see - * section 15.7.5.3) on regexp with string as parameter. - * - * Otherwise, set the regexp.lastIndex property to 0 and invoke - * RegExp.prototype.exec repeatedly until there is no match. If there is a - * match with an empty string (in other words, if the value of - * regexp.lastIndex is left unchanged) increment regexp.lastIndex by 1. - * The value returned is an array with the properties 0 through n-1 - * corresponding to the first element of the result of each matching - * invocation of RegExp.prototype.exec. - * - * Note that the match function is intentionally generic; it does not - * require that its this value be a string object. Therefore, it can be - * transferred to other kinds of objects for use as a method. - */ - -var SECTION = "String/match-003.js"; -var VERSION = "ECMA_2"; -var TITLE = "String.prototype.match( regexp )"; - -startTest(); - -// the regexp argument is not a RegExp object -// this is not a string object - - -// [if regexp.global is true] set the regexp.lastIndex property to 0 and -// invoke RegExp.prototype.exec repeatedly until there is no match. If -// there is a match with an empty string (in other words, if the value of -// regexp.lastIndex is left unchanged) increment regexp.lastIndex by 1. -// The value returned is an array with the properties 0 through n-1 -// corresponding to the first element of the result of each matching invocation -// of RegExp.prototype.exec. - - -// set the value of lastIndex -re = /([\d]{5})([-\ ]?[\d]{4})?$/g; - - -s = "Boston, MA 02134"; - -AddGlobalRegExpCases( re, - "re = " + re, - s, - ["02134" ]); - -re.lastIndex = 0; - -AddGlobalRegExpCases( - re, - "re = " + re + "; re.lastIndex = 0 ", - s, - ["02134"]); - - -re.lastIndex = s.length; - -AddGlobalRegExpCases( - re, - "re = " + re + "; re.lastIndex = " + s.length, - s, - ["02134"] ); - -re.lastIndex = s.lastIndexOf("0"); - -AddGlobalRegExpCases( - re, - "re = "+ re +"; re.lastIndex = " + s.lastIndexOf("0"), - s, - ["02134"]); - -re.lastIndex = s.lastIndexOf("0") + 1; - -AddGlobalRegExpCases( - re, - "re = " +re+ "; re.lastIndex = " + (s.lastIndexOf("0") +1), - s, - ["02134"]); - -test(); - -function AddGlobalRegExpCases( - regexp, str_regexp, string, matches_array ) { - - // prevent a runtime error - - if ( string.match(regexp) == null || matches_array == null ) { - AddTestCase( - string + ".match(" + str_regexp +")", - matches_array, - string.match(regexp) ); - - return; - } - - AddTestCase( - "( " + string + " ).match(" + str_regexp +").length", - matches_array.length, - string.match(regexp).length ); - - var limit = matches_array.length > string.match(regexp).length ? - matches_array.length : - string.match(regexp).length; - - for ( var matches = 0; matches < limit; matches++ ) { - AddTestCase( - "( " + string + " ).match(" + str_regexp +")[" + matches +"]", - matches_array[matches], - string.match(regexp)[matches] ); - } -} diff --git a/js/src/jsapi-tests/binast/parser/tester/match-004.binjs b/js/src/jsapi-tests/binast/parser/tester/match-004.binjs deleted file mode 100644 index 7643a2be422b5fb00c3c86ab6126240c46eb3ec8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 30346 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 string.match(regexp).length ? - matches_array.length : - string.match(regexp).length; - - for ( var matches = 0; matches < limit; matches++ ) { - AddTestCase( - "( " + string + " ).match(" + str_regexp +")[" + matches +"]", - matches_array[matches], - string.match(regexp)[matches] ); - } -} - -function AddGlobalRegExpCases( - regexp, str_regexp, string, matches_array ) { - - // prevent a runtime error - - if ( regexp.exec(string) == null || matches_array == null ) { - AddTestCase( - regexp + ".exec(" + string +")", - matches_array, - regexp.exec(string) ); - - return; - } - - AddTestCase( - "( " + string + " ).match(" + str_regexp +").length", - matches_array.length, - string.match(regexp).length ); - - var limit = matches_array.length > string.match(regexp).length ? - matches_array.length : - string.match(regexp).length; - - for ( var matches = 0; matches < limit; matches++ ) { - AddTestCase( - "( " + string + " ).match(" + str_regexp +")[" + matches +"]", - matches_array[matches], - string.match(regexp)[matches] ); - } -} diff --git a/js/src/jsapi-tests/binast/parser/tester/multiline-001.binjs b/js/src/jsapi-tests/binast/parser/tester/multiline-001.binjs deleted file mode 100644 index 7c56b53f6e51409086a4a9ce792fdc20db17512e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15866 zcmeHO-EP}96xRMbciY7<>|z%~E(&Z}k)&G(Z0pYA~vZ@;%27{d7n`Uw+S{Vd@|IlyPz)=_#g@l=)$2`#o5u z-P}FgyWgsBiD&gKK}4t3=HvJMlrj=TiIm1)Ipx?7D0rqHUz^ZS<;E{?bnkO!tQOK#a{U~tSZno8lqx&&sx3PDow}(LGYp(`FsUsn zac`jwtOlVPrRVpLP0dOTbK@SsNCTZL;}~-~58Z+_vIvn&>Bih)jOeg~tJ8pI1m!jh zma>=q2UN4IR%cGKh6`@Ez#Fs17U^z>0v;4n2=e&#TBQ zW;;=ROic@O8qb_lQ~D4n^+@V=Y4VI<&NC?rf7Qip1d)59vJ93c05UG+9Y zSH?)9=hRh_%X&oq^2+D|3^S@Wi=Z1DDLM4i&DiP(fvojm>7oBfrsS_aXC9`v5YZy+ zbS`ZrE0nNmtbPuGik>|Zt194B%<`JJQfCCoii|Y%&JYV4*coDn1owreFLEEOfv+M$ zj0iKS(NW-%rowWNwD3$@n6TV^@hvrC#h0dmioDf=!}0JS!bXoCOIFdk>oeoBVuY{K z#r7i7MJ{_3dEfy}`%LTqf>)TCBx@Y#PNpB#6;2U@iI>1{5A5l%#| zD=K8?)}^xra0{fp0wSbQ2A}1?Sme=`kh?_L0d=vy8PKqkcFT34Bf{J)Trss+7#i&` zf6;OQVqFZ*O_4JUl}oxMnvv}-(&n<}uwPa=OuK=U3(-{$>&S)zs-o}?(h}t`+&Qgp zmNX8F(zpeDU{|k%;`GTd=Z>q4AubA9*k$}KIorR?-sFPRgkj-{wpG^a zw`Y)e8~4Xt;?hylLYrgbTBkKx)x1L7h4i6xLs=L-OR{6#$O3WiMocyDGm>zXo1eP% zV-IeXl^^2i{7!ho@GmG7u!tJz#OGi5LUuZ1`rk;yqf-mEIo8}J>+h!wx-!_IC*?L%%;K>gq_#)9WpgmnG8$0sW|tzV*MiR@b2rJ?U>r~Dq7Eq*W3+W6LFEFr7s0|M z79SzG!~)slT@u5of1y>bz~ql%zWio%+?`WlxYDah;(f{YaGKeTk7UI=+_mLCP}F7_ z-++pD=HZk^F4w%($niJ&w;3a|Ms}m(4JQ5kIih$q2IjRTjSI3G;ru;Z@v7uoIq?=n gAHBgWUKF2gi<+JGHf3E>)JzPtzUW_#V0rg5Hy#N3J diff --git a/js/src/jsapi-tests/binast/parser/tester/multiline-001.js b/js/src/jsapi-tests/binast/parser/tester/multiline-001.js deleted file mode 100644 index 9e69022d5d7b..000000000000 --- a/js/src/jsapi-tests/binast/parser/tester/multiline-001.js +++ /dev/null @@ -1,68 +0,0 @@ -/* -*- 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/multiline-001.js - * ECMA Section: - * Description: Based on ECMA 2 Draft 7 February 1999 - * - * Date: 19 February 1999 - */ - -var SECTION = "RegExp/multiline-001"; -var VERSION = "ECMA_2"; -var TITLE = "RegExp: multiline flag"; -var BUGNUMBER="343901"; - -startTest(); - -var woodpeckers = "ivory-billed\ndowny\nhairy\nacorn\nyellow-bellied sapsucker\n" + - "northern flicker\npileated\n"; - -AddRegExpCases( /.*[y]$/m, woodpeckers, woodpeckers.indexOf("downy"), ["downy"] ); - -AddRegExpCases( /.*[d]$/m, woodpeckers, woodpeckers.indexOf("ivory-billed"), ["ivory-billed"] ); - -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.toString() + ".exec(" + pattern +").length", - matches_array.length, - regexp.exec(pattern).length ); - - AddTestCase( - regexp.toString() + ".exec(" + pattern +").index", - index, - regexp.exec(pattern).index ); - - AddTestCase( - regexp + ".exec(" + pattern +").input", - pattern, - regexp.exec(pattern).input ); - - - for ( var matches = 0; matches < matches_array.length; matches++ ) { - AddTestCase( - regexp + ".exec(" + pattern +")[" + matches +"]", - matches_array[matches], - regexp.exec(pattern)[matches] ); - } -} diff --git a/js/src/jsapi-tests/binast/parser/tester/number-001.binjs b/js/src/jsapi-tests/binast/parser/tester/number-001.binjs deleted file mode 100644 index dea41480451cab95c845c9b34c4344105c50df6e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7566 zcmds6O>f#T7|y=G4y&}=wnL7ss*P6KVcJrpmNJbB(Q2?>CqrDw8e-&_QZD;T`#rnt zzUzL$UMEiMVgn|ni0*`f?Z@xu^S*iGvEd-ZWv_>kUp}FvOHtps>o`uE_+#gw);MZ@ zXm-c|J6pRz_~LI zi_ior@SPwESPr0GU-NOqg0leA1TI2-DRj(e5OvFs;F@N&(yARdyps6OD+v%4tC{St z2MkjbCU6%h9BOz^0WTW%+nB!D+1b@0Gw4!cG*8@k4^CYms&7{%C}_-IfW1Ovo>sp! zmu1WcAo@{r_uD(&FsrxY-__ZX>)oog>Q!BDH6ScQ(gn2YWd{#<`o-=Up>89I(6@}F z5Sv^2Mb|KJ^>RRQ9K&r*h8XTc5+)Id^Z$+6T0vnbk0vKN@E4XjrYdid+fP98m?6qq zIA$|66tF6~l;b)oaMlzmAle;rL&QeaEtJ^+tPutJ`3$^_X^YfJSJx?Fl?_ODE#nV@ z2+^_B%i){@EDo#;Od8@d=Fp(qlSC@0i34rRi&P_7NWE-&eGSrN(L11o5jGy+MdCOQ zYlG9*pI{$?`jA?~&=Ah5XDpe4!+k6qON-Z zQ@#Mi261yxm-Q$aMLKqF-~X`z-~k0Jk2}kY&l42KOODSL9ZObEI@^$R&Yd2L{195j ztgTg};DGO#I5e{zeh;SL411*=mh3B`c*KLrM8Py(z7Msu8}aHP0T!X}JsE|nP8Rgd z{Yl#2=lZjOM~Y}%rR!C0e(&*=d-DVmx@6C)YEqbWF!Ui&9mfMMwW$LY3<@wC8@;|n z_gFwZ2C1@kP=-rp+w51haWSomow87XhfLbm>f)(pvqME$xN2@g$>jWa`>Uo+*jpHxXAqv!P|b4vt)q$sI`TDP z3yb)-aPV3Xg-R}5t@OE$Svt4Hegh__a&nQpxx9pZd~Y_woHR%JdNUcL*|W+L1!MJU z&$-M|3-<{h8C6h>b%IM2`vF9CpKGrwV&QJ=xo7(cDm?w%Xrk(<6Q zY;JvY)4%hf5Uh)FXWrB0YuaYhBvf^=rF1-k+)Wq(fM9wAnUcUFcIHr|3Dr_up1U(f zz^VZ(kiW~MbIT11`Jpn1B>gT2?8gGja&!DVr;FlWKeVxqkm%m zf?j&xasNTzqe$_^q#fFE17{~eqWJOs`1n2QsUauhj5ixY&XVS-Ci*g77h@hZcGNqKEG=bo@24pG4&G|e>E}$O>>}eYc|T)<$+XB7RATST=uMg@ zx3N9|&S!UF6+%I!NtEWPtO4lqhY8PRdYN*e;Bq#yMwe2g`Jnj?EYoebdWR>S#*Tj0 z*wG*qtE=8WP9+yCQ*c)-n>ct+0WY77F1UEHyZf69X`pvh&>DKhFJRUc6YlHOf)#`L z9^AK_lR%%W-NGF!eU*?Bp<;ZR0QPpbMIztu`IJw)r>wo;&zKs z-vhSx6Y#r~OvoNDyr|d?_sw)8~z~8nV4F?B9t5uaS&w?(u`lqNTh?I)lscX2()b%qCpCh-=VT4n=XDyV!Mn|BvM#2?Zk0`|IQ9DJ#o0^Rp+WR@BwG zHY@sXq9MzZ3=WFsP)k{GfN#u9T6h@#144lUd+RW4#n(b1;~`|aUV0b*3rguA$KqiD zmQnA0%R=f?fO=y-i;I8m%x8yR6VuS8`xS0n_hinx^#;i&%<_;NwRaTjs`UMwCMs- ztp#ItDxK3}vOjEPY*KPnEymD)8O`tE(5V3~s=DP8nW8LRG`FE*qC7tSq8UQ_fFR=z z;&aYZi&FpSq+*E!`G%-P0RICLyb(e{#Rc7}?vJ^wnzlUYK-<*zEtEPvgZJ=V)4!Yz zM?IY(p8!eaa0(6W@z?RUlWw(H_$YsPrL=6|6r9%AKwlL zAkH27=tB)O7dP&L?k^2MfSrp9)(TMb%BXHi8Mn=quCSu4ELU9uB7!m@gWAv9De8n@ znV~1PK$+h`MzL3Hl-c)TR93&faH!fimZ*Bjt5kZ-^K(Lv_@$FTI{$|B*c^WAQ6HNZv#E*CR7jjYq=iue*NjOJ39N`Qu+}%%d2(( diff --git a/js/src/jsapi-tests/binast/parser/tester/number-002.js b/js/src/jsapi-tests/binast/parser/tester/number-002.js deleted file mode 100644 index 5f4462e043f8..000000000000 --- a/js/src/jsapi-tests/binast/parser/tester/number-002.js +++ /dev/null @@ -1,48 +0,0 @@ -/* -*- 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: number-002.js - Corresponds To: ecma/Number/15.7.4.3-2-n.js - ECMA Section: 15.7.4.3.1 Number.prototype.valueOf() - Description: - Returns this number value. - - The valueOf function is not generic; it generates a runtime error if its - this value is not a Number object. Therefore it cannot be transferred to - other kinds of objects for use as a method. - - Author: christine@netscape.com - Date: 16 september 1997 -*/ -var SECTION = "number-002"; -var VERSION = "JS1_4"; -var TITLE = "Exceptions for Number.valueOf()"; - -startTest(); -writeHeaderToLog( SECTION + " Number.prototype.valueOf()"); - -var result = "Failed"; -var exception = "No exception thrown"; -var expect = "Passed"; - -try { - object= new Object(); - object.toString = Number.prototype.valueOf; - result = object.toString(); -} catch ( e ) { - result = expect; - exception = e.toString(); -} - -new TestCase( - SECTION, - "object = new Object(); object.valueOf = Number.prototype.valueOf; object.valueOf()" + - " (threw " + exception +")", - expect, - result ); - -test(); diff --git a/js/src/jsapi-tests/binast/parser/tester/number-003.binjs b/js/src/jsapi-tests/binast/parser/tester/number-003.binjs deleted file mode 100644 index 5ff1d672080e763d18823bad698a60f83ae84427..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8026 zcmds6&2JMq6dzc=IRM%lATdV}f`Z_LvXy8EB2|D4fA9HCL(Zld-ENF2Nw(i}HsWLwU5ujWfF<*2r`_G{ zz3L6vltzs$^-d#8h1~vjKZ(bZ>tDdR za2yun3Mx&aG*4v(U?1O3XfD%XO1Xl|$;1dPBv13v_Ek8h*J}3Ld)>yC{;#p6L2Rs^ zdcTuO%1Nf+zL0F@;N1Ycd^S0t{K>OtFI>nHdP^Ctp-=n+c6}k-echH|O=JEI*r#aB z{nm%xri^(RMBnW_|Mb!|%<0?l|I@Q0>fLYmJ1tjlJ0Jo>@&TZ=z7FUV(@(@h#^bJv z(5EVb_l6H2x##?XeOq6roC*Pl^(2vW0y(GxkXHYDleI~*%xqOV2Jja(DQ4>)klNQl zZy^bneJbP<4K=KdZshnC6_7Nw3WSelXb9m|JwTb;fOW)yeck~rQ{HDCHga`Rq;dk{tmU*Jtc1$2IAlzG$W;8MWtsCg{%G7@#jT5zXpKPY)BQemD z5MABZFy)_s*ky4A8p|LI`P`7Y>T5GLIE=<5 zPcmo}%cj>zJY`t9pf@2^SEzWYW z1E7#As!HRc`HT^Oigi&pUyCtI?DE$(xCw=G5=-cky`5dSX}Jp9igoFc(M?_OHq}9) z1Vv?ZB~Wbq5ngaAP+%>^RB7i!yot_TcwI$HN7jFB{f+Wx!LcWrp&{Y0saEDuo; z`Oc630#wDc2x%%;yPo|vfm8Q&^;|S?c3jz`F)(UX@~SQRWqVJP$icXok(r>XrcYr? zHd#Drv$qELR&^IH9oZ-=w>FRA;)n(Qe782CQ6FGrgrW<&-es;oTTCCI=nB`SGeQ;t z@gJZ!76Zu^wGMR`JI|XT3Y%O|t>U>uWieW(Nf(COX1b&fy$kQDhDH>#?z%Y&$sB<_ zG__`|o?J7BKEbhGlL+b(oKh?YqH^wF0qzc-S)IU0?R-E6_QWmlQE_>N4=oF)b}tMTr1xkYv6F-Ex3_bDymPud(2gJ%Tl;}eZ6c=-K$yk0x zIhWO_HJ}#tiwo{K_6ch;$!Y~9z;nn9GU&U2R?1ewPsT8;Ttdd*!J~KJ(DIWXx}-j% z5Cu=;QvGtIm%QX;Z7ZV7B#d72d{ELWej>FN-2sqZL{XfNeR^#{Ug%X{G+G-y;}&aU gJ@%}P!u{BzS6y%G1%GYVi{2@XUOVP{jJLG@0KmLA!2kdN diff --git a/js/src/jsapi-tests/binast/parser/tester/number-003.js b/js/src/jsapi-tests/binast/parser/tester/number-003.js deleted file mode 100644 index 8d0ad83db006..000000000000 --- a/js/src/jsapi-tests/binast/parser/tester/number-003.js +++ /dev/null @@ -1,50 +0,0 @@ -/* -*- 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: number-003.js - Corresponds To: 15.7.4.3-3.js - ECMA Section: 15.7.4.3.1 Number.prototype.valueOf() - Description: - Returns this number value. - - The valueOf function is not generic; it generates a runtime error if its - this value is not a Number object. Therefore it cannot be transferred to - other kinds of objects for use as a method. - - Author: christine@netscape.com - Date: 16 september 1997 -*/ -var SECTION = "number-003"; -var VERSION = "JS1_4"; -var TITLE = "Exceptions for Number.valueOf()"; - -startTest(); -writeHeaderToLog( SECTION + " Number.prototype.valueOf()"); - -var result = "Failed"; -var exception = "No exception thrown"; -var expect = "Passed"; - -try { - VALUE_OF = Number.prototype.valueOf; - OBJECT = new String("Infinity"); - OBJECT.valueOf = VALUE_OF; - result = OBJECT.valueOf(); -} catch ( e ) { - result = expect; - exception = e.toString(); -} - -new TestCase( - SECTION, - "Assigning Number.prototype.valueOf as the valueOf of a String object " + - " (threw " + exception +")", - expect, - result ); - -test(); - diff --git a/js/src/jsapi-tests/binast/parser/tester/octal-001.binjs b/js/src/jsapi-tests/binast/parser/tester/octal-001.binjs deleted file mode 100644 index 5a3c602eecff39f4a9601c03641763c38a7e88cd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12564 zcmeHO-E!MR6c!XHQ0N7`fZO3BnNF<+n9k5~42f&NOzL*xv{%ezHqu5`D@*F`sw6Xg z1@3_x-iixefY;z0X=SbcoVBfZl8$=Qv3B>{J%8Uh`;(rCLXY-)Q%daqGZr|E%#8O9 z!#D}-b7Oxr{$=uLVg(^JdS=|G=eb<;?{*F2W9ZdWhrb}qB_|$zOf8QvBHX}_q3rB8 zH(t5EoyYnQaNfHJD_}8{Ya6cbiaCHf{m7=ia8F&zVmP17vPE;jT;J*6glQ(j!O`gH zxM#|5JyU|HSd+N_fh#B@UJUn!cu@)OOTas%&hRWW14|I^{(}cQ-Iu(Koz7v#+Uv=w zZ@}<3gq6FiOIcB?{{r>~wfbUsIB80&AHmXxgC~2(Uzatrc}3m;EpAAWAA;aVqoadi zS#H%MG@Ww?&=TkDghYTR`@AEjM0Bjc7sT~DPtj$E+#(^J(AN?5EqWzfcY_-L1a!3j z{HO8rC;P+0Mznq(5T`Xi$^#1Z9UfrJuP zMbFl;jtH2-qzHsL5h{XLimoBdZNS>I?Ie~4gjYpL%09%YT27@x! zN|lQAoXgMf8~^=Ksii%}$a&^vNql&5tYp@R?fEBQpuuwX)MQ^A*N{q3yb6WLTB5)f z^PiU%TDY9`*a00zEKLkQM!tnLrCMGh64Zntl$$eNU$d(G(qzE@1G*>$yv77LhEWGt zd9j~sKz#~OzzN3AfX<3h+Oq=hsIyE52i!OqB| zr@~;aGtEZJG=Xb;`!5v^G)-T(6pO9C==v2w~c}qKb=C$LwE% z={2}YBka^w>PnVMs*YVcR_{WfqTl7rmic5BvuIl&Zdqo})vZpxY7}Uw5IGfUQ7o&m z5-s~;?1Q(#S23D%!mMg^6!=~?kt*o*fYeZ{E=_0_e+bt_uGq@-mU?OWzp6)#6<(N3 zt8g`!ix%E)Y^6&^`KrOvri}PFQ#WN4GDwxT98wW6<=_CkVoq;q|EjV`IV7$eB0W8Y zP#yoe66`(57A?W1_XZmDwahj}leMlH$>Md%cGsi6Bc^&>dua@}BtvVM7j1F*qP3}_ zzvMhN~=0e$t$JAE+v!vAsRwLS*KQ6(upi~+4XF+KZr)H#0 zsH8AQdxt^4AGp!B9*Vsc+O8zB)?&2kSKR1ONa4 diff --git a/js/src/jsapi-tests/binast/parser/tester/octal-001.js b/js/src/jsapi-tests/binast/parser/tester/octal-001.js deleted file mode 100644 index 0aa1d040746e..000000000000 --- a/js/src/jsapi-tests/binast/parser/tester/octal-001.js +++ /dev/null @@ -1,78 +0,0 @@ -/* -*- 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/octal-001.js - * ECMA Section: 15.7.1 - * Description: Based on ECMA 2 Draft 7 February 1999 - * Simple test cases for matching OctalEscapeSequences. - * Author: christine@netscape.com - * Date: 19 February 1999 - */ -var SECTION = "RegExp/octal-001.js"; -var VERSION = "ECMA_2"; -var TITLE = "RegExp patterns that contain OctalEscapeSequences"; -var BUGNUMBER="http://scopus/bugsplat/show_bug.cgi?id=346196"; - -startTest(); - - -// backreference -AddRegExpCases( - /(.)\1/, - "/(.)\\1/", - "HI!!", - "HI!", - 2, - ["!!", "!"] ); - -test(); - -function AddRegExpCases( - regexp, str_regexp, pattern, str_pattern, index, matches_array ) { - - // prevent a runtime error - - if ( regexp.exec(pattern) == null || matches_array == null ) { - AddTestCase( - regexp + ".exec(" + str_pattern +")", - matches_array, - regexp.exec(pattern) ); - - return; - } - AddTestCase( - str_regexp + ".exec(" + str_pattern +").length", - matches_array.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 ); - - AddTestCase( - str_regexp + ".exec(" + str_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( - str_regexp + ".exec(" + str_pattern +")[" + matches +"]", - matches_array[matches], - regexp.exec(pattern)[matches] ); - } -*/ -} diff --git a/js/src/jsapi-tests/binast/parser/tester/octal-002.binjs b/js/src/jsapi-tests/binast/parser/tester/octal-002.binjs deleted file mode 100644 index 3a42bcc33bef51ac10902d1b4981c354cb25073a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16156 zcmeHO-EJF26kcfgEffjvK%fY5kxa^oN9nWQa=ktzby$!uO>hPx|a>>A>_o?lX zh;TRXV^YKPH?y9*{xD1HZ=mzaMYMt_Cglz-*LV4ZfI9ubkow#`acLBj^T}ztXvQPg zcXr-@Y5Lv$qk~7iPFuX|v;`5BRzL3lz~wX|UQF%<@x}#u9{{~W>U7V-c3^Yj-Mn?{ zPU{&f(w1|yWA1gt)K_5m3lbH(t4o=YtA7FQC35v?_pon@tFOb-yZaA!kM9&YvwTKg z0WL0yk*~qVj}DF=bc_2|H9}K4Zv(YNIX6PWL6d#9!AFE|*n!W9>u)?lmF+T{gtSk8 z98=$>E1|kemC~6`c0rX;yk?9ZZp8mF>4RT4hucP+iVp4bPT^* zw&Q-|4!6Jf@~hi-zb?)?hmHdhMU*i>-aaRso&qAq%1bBjOQCb0cwRa*9$~{PngX7x ze;PoGd}W+O{D?9>Wru>SNmBhII z$5qQh@XC0_WSDd%xGrIh)`>@)bWy@5d%*p~P)k1P8K2(?RR zg_r8YQae?dX(G~lFb5%nfo&6fz|%Ie_S$rNpb(L3OQ9r8Ov0P8?d?VpIZyR6u_!OL zu2g=p2K)~4McvP6fF^fv+=M$u_=0YWtRSU-dEw{dEVIjB7|RH`27i( zUuF1hE&_j71v6p_I2B)B;(8D`E@U;+FwMde5>)4)+6EOekDhQV za-C5+T6~G(8ehIlcbD0Y>yt=LZ`Gi=y(wYLEhUHbsu+7?&yy|$rkyZKE=oStF?$OT zy#`ikn4P*x-JO;0u&%9s3Wkb$ml0d4lc~+3Yyr4Mxn;s`b>XvGfd&f^Q=uk-`BeF+vBC?T zX&GJ3<)VbQjIFe$mCtG{jmwCSwdlHxoChh>mP5+Nky1bgt(d@@>|YiZDTjqhhX_rV zBvi#;SAe|%-l73md45a-zUq9YXrk7df$Wdtu?M< zXW3sDhGehdeb&_#{L;kQ%28qseQ8_)CfT-H6{)PUFiC@}n#r-*d`bhns|dVPL@t%+ z665Z#4emC$D=x5TelbYg4aZZ?Caa&P8n~-nFlmr?l1yO9t(+B2sA~v4LEfoqbcvDo zw*SWO}&l znjGt)!yeqOUA(zVzWLh$ThiECwz>20R_$7Ljs;xpef4E3ARowOyt(6r^(O#7Y g63xh+>>)AHP+ regexp.exec(pattern).length - ? matches_array.length - : regexp.exec(pattern).length; - - for ( var matches = 0; matches < limit; matches++ ) { - AddTestCase( - str_regexp + ".exec(" + str_pattern +")[" + matches +"]", - matches_array[matches], - regexp.exec(pattern)[matches] ); - } -*/ -} diff --git a/js/src/jsapi-tests/binast/parser/tester/octal-003.binjs b/js/src/jsapi-tests/binast/parser/tester/octal-003.binjs deleted file mode 100644 index c1c1dd331e5158404cba2a717276213a6ac90add..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18706 zcmeHP&2HO95N4aE{|yQhJ@sPr6eEZf*J)7%ii22D3KxkJSWYf&VXVou#DpSQa+TUZ z9;8pv2Pn|j=pn~m`WWd9xvO3AM;cM0VyC=Vuy%Jizu(LbchwQ&(BnIuA!p9c<0u$J zY-GJ_S=MpjoLRej`#<(?_3a?!R;QiJ>3D7|cK+yD)`u{wV=jNnB9|R|{2sSG7BS%l zenQI8|HsyI*LS9A{R?#7nMW>l>XxxOnV1kA_pIoucSiOZveoXPW`RGfq`~{2h(@jzMmC zKNqgMMvZ?2I@*2m!~To!l`I6CSop@}ZnUXmHF`)JHjjb)MH8}zUAc6d6nXH8@w($||+2nRzpG9Zd z9v0>+CC$KqHf^uJVB+A#FMvSdM@ehLl{M_ zty~$VOaxPlWqmXGw;;ZW_Cht9L9han7+P#Pv=mj-4G3aRPxrhfRieFT8OTF>Er;3w zUzS)HuD>_*Cnf{&-=K>e5ECANYa%}2r(r%m7UcC~ zAO(1Mv?6l2bCG#tY1TfGtgVV3#ue=9`03J|eFl_9OxQynAF(K6XL*VeVN7f6dV&31 zM-C##?A_~M-&z(bbSh8polKL!K(L@xj+4?@Cpq)U4}yUUA*bV)nj(?MmoK$+Cef-n z5^3JPT}<;_rnVJ@24W3A<+hewp}P7^QrcsfmP=^_OqdyYnS5uOaeq7~FUZN}nmSBR z5RnjeCYMynl={uJ3&-l$fG+6SQ?aT8PRA_T7JyrBeyUSFAA1D6D~QWG+%hX(8SDz$7(iPB1orSB{u6b zkd6pzmmjyQhPQ;^Uwyj?dud7;`Shuc0@slc9`uN`5jQ%}5Etlmo4Ao+z z%rnSB*X9wZs<-bIi|J>CuvpBA7f+8B5A^>7#>shUmey*nNnlmrxg)or8aH*>4SdJN zlV7x}zC4878d#FvN&o zXk6|_%zn;mx-+->DrRAgRjsoL*27|P=G&>uMZK)*3a=_kZAB_7;D6ttB6%dOF(qf2 zAY%UL2WWdz)+oSHpJi(h2~rwRQKy#zxw8+y#-Z;zCpG>C%uC7-S$h^sRs6bX4%<`~ zZUGC3uj&Um3hKfN%q^>!dbpaSGE_r})zYuKEQDj|g_b;q#a|j~oOMrA>a+B|j2tid zVFtq*x!-Y-V~7y_, , <'1'>, <'1'>. By contrast, the \011 in the - * regexp should be parsed as a single token: it is the octal escape sequence - * for the horizontal tab character '\t' === '\u0009' === '\x09' === '\011'. - * - * So the regexp consists of 2 characters: , <'\t'>. - * There is no match between the regexp and the string. - * - * See the testcase ecma_3/RegExp/octal-002.js for an elaboration. - * - */ -var SECTION = "RegExp/octal-003.js"; -var VERSION = "ECMA_2"; -var TITLE = "RegExp patterns that contain OctalEscapeSequences"; -var BUGNUMBER="http://scopus/bugsplat/show_bug.cgi?id=346132"; - -startTest(); - -AddRegExpCases( /.\011/, "/\\011/", "a" + String.fromCharCode(0) + "11", "a\\011", 0, null ); - -test(); - -function AddRegExpCases( - regexp, str_regexp, pattern, str_pattern, index, matches_array ) { - - // prevent a runtime error - - if ( regexp.exec(pattern) == null || matches_array == null ) { - AddTestCase( - regexp + ".exec(" + str_pattern +")", - matches_array, - regexp.exec(pattern) ); - - return; - } - AddTestCase( - str_regexp + ".exec(" + str_pattern +").length", - matches_array.length, - regexp.exec(pattern).length ); - - AddTestCase( - str_regexp + ".exec(" + str_pattern +").index", - index, - regexp.exec(pattern).index ); - - AddTestCase( - str_regexp + ".exec(" + str_pattern +").input", - escape(pattern), - escape(regexp.exec(pattern).input) ); - - AddTestCase( - str_regexp + ".exec(" + str_pattern +").toString()", - matches_array.toString(), - escape(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( - str_regexp + ".exec(" + str_pattern +")[" + matches +"]", - matches_array[matches], - escape(regexp.exec(pattern)[matches]) ); - } - -} diff --git a/js/src/jsapi-tests/binast/parser/tester/properties-001.binjs b/js/src/jsapi-tests/binast/parser/tester/properties-001.binjs deleted file mode 100644 index f520e8914f2bbe7043267ff27b287004f5abc42f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23094 zcmeHPO>Y}T7~b;zQE@;>d>pDAD%20+B!~#La#A&EKtXLlb=m{5izfEO-FCfecGqpv zj}xjmAP$`P0f++^_#xauf;%S;`~=>2cg8#Rj)oh^o~ zro-2ZcR8!Af8l#|pEa!KEX&&WYDd<__ReRe%cZK<$LSR*g2JD%kv{scFnR~J8T+&> z?MqPgt<4)(zxptZ%;s-^OWpq2;~ki-vnc@Q4cLSa_5p44NICg40In!x;e3xNoi{6(m4~yw?N0Ym>Uul90yGn!eYd= z4jfib27yo=e4%h5>2>iq?%8f-QgI{ls@uM<3+Akn%jhm4J`ojrW`I?=THY(yDvwv6 zrl^Ih%6jrtM+hRfw590mbrB3}(6J~#rCrH)<%)+yyptgmlJ)w`tJgOMc!rbVUb$4c zayB895H0LvJ9(<>F(S=$h3L!;#+Tuca^_j~vjLX94OF^wZjUWKs$4j~cc=WY9Fz~r zZrQI~ObDjXu8};|@q|b_QmH!ogYhs+x4NtoX*=^g{K)_h(QUR@zE*j>^1H0EV-sEcw$de1!belWm1^lu(MIePLaC3)xxuiIugrzvGa%*{cbtOeQ)Hy?()0ILX9aNwn|J$5x$RgE=WzzfmtpT>77q)!((W;hf zbu;>wE`z|deAF2ZKWBa}HO92%OCRf*W@h&gF|DJFp)qYZ{2V8yVG9R4l*8@_`#z8R zq~%sI9zzYyKuZu$(S%TqM$kLnV^~W2i%w|?QjQb0&lAS$*hnygJ)t@K?z6RMCBqF) ztV_mVC0fatT!>bjG`ivpPK9T~@v8Te<2LM<ZFQkexq01;E zg6OWqaFGJa%fi~4h!iP6WK-ycM@=3jq~XvFz$zI5e67isi%@yo@$?E~P^(Qag~29mrX^h|$t8dLw3>~s zG(3?(1~jSqdn%>seIQIB^kQMt%aur^v1u+@(Wy9LsJ;ToOW>J*EVw5k}G)Nd3{nkTfM-Cqrr5>B z4|!FqS(q>vEVF`zP8d3_`E(~=u4z!KY;#7Jn4#l_j*R_6$;!T_n7>MLXtaO( zzi^+N86_v2*dE^39b6>5sSB($U;i0!9ZsJRV%yuk{&VNkLqhhnO6k0(iP+6O4rAvg z#l>_32irugz}{F&cevWoM4`|qsg5>-)k|k_#2TFuk3wu8zz!2d5PvsCd$W>g2s=t-eUw#6ONEh$G;D@8LQbTo&m2WUm$OGa)veT( z49dDpJngmAQ8FpxTs%c=HA6?qqs)d%9?b-!q-yRYh*YGOdJ#=2NV!-hp6br5lv0B9 kXEsGDLfv`aPbBo%^v7c}`u7TC#Y)OyoJCF@{q#cfKhR!VWdHyG diff --git a/js/src/jsapi-tests/binast/parser/tester/properties-001.js b/js/src/jsapi-tests/binast/parser/tester/properties-001.js deleted file mode 100644 index b0ee18e209ea..000000000000 --- a/js/src/jsapi-tests/binast/parser/tester/properties-001.js +++ /dev/null @@ -1,91 +0,0 @@ -/* -*- 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/properties-001.js - * ECMA Section: 15.7.6.js - * Description: Based on ECMA 2 Draft 7 February 1999 - * - * Author: christine@netscape.com - * Date: 19 February 1999 - */ -var SECTION = "RegExp/properties-001.js"; -var VERSION = "ECMA_2"; -var TITLE = "Properties of RegExp Instances"; -var BUGNUMBER =""; - -startTest(); - -AddRegExpCases( new RegExp, "(?:)", false, false, false, 0 ); -AddRegExpCases( /.*/, ".*", false, false, false, 0 ); -AddRegExpCases( /[\d]{5}/g, "[\\d]{5}", true, false, false, 0 ); -AddRegExpCases( /[\S]?$/i, "[\\S]?$", false, true, false, 0 ); -AddRegExpCases( /^([a-z]*)[^\w\s\f\n\r]+/m, "^([a-z]*)[^\\w\\s\\f\\n\\r]+", false, false, true, 0 ); -AddRegExpCases( /[\D]{1,5}[\ -][\d]/gi, "[\\D]{1,5}[\\ -][\\d]", true, true, false, 0 ); -AddRegExpCases( /[a-zA-Z0-9]*/gm, "[a-zA-Z0-9]*", true, false, true, 0 ); -AddRegExpCases( /x|y|z/gim, "x|y|z", true, true, true, 0 ); - -AddRegExpCases( /\u0051/im, "\\u0051", false, true, true, 0 ); -AddRegExpCases( /\x45/gm, "\\x45", true, false, true, 0 ); -AddRegExpCases( /\097/gi, "\\097", true, true, false, 0 ); - -test(); - -function AddRegExpCases( re, s, g, i, m, l ) { - - AddTestCase( re + ".test == RegExp.prototype.test", - true, - re.test == RegExp.prototype.test ); - - AddTestCase( re + ".toString == RegExp.prototype.toString", - true, - re.toString == RegExp.prototype.toString ); - - AddTestCase( re + ".contructor == RegExp.prototype.constructor", - true, - re.constructor == RegExp.prototype.constructor ); - - AddTestCase( re + ".compile == RegExp.prototype.compile", - true, - re.compile == RegExp.prototype.compile ); - - AddTestCase( re + ".exec == RegExp.prototype.exec", - true, - re.exec == RegExp.prototype.exec ); - - // properties - - AddTestCase( re + ".source", - s, - re.source ); - -/* - * http://bugzilla.mozilla.org/show_bug.cgi?id=225550 changed - * the behavior of toString() and toSource() on empty regexps. - * So branch if |s| is the empty string - - */ - var S = s? s : '(?:)'; - - AddTestCase( re + ".toString()", - "/" + S +"/" + (g?"g":"") + (i?"i":"") +(m?"m":""), - re.toString() ); - - AddTestCase( re + ".global", - g, - re.global ); - - AddTestCase( re + ".ignoreCase", - i, - re.ignoreCase ); - - AddTestCase( re + ".multiline", - m, - re.multiline); - - AddTestCase( re + ".lastIndex", - l, - re.lastIndex ); -} diff --git a/js/src/jsapi-tests/binast/parser/tester/properties-002.binjs b/js/src/jsapi-tests/binast/parser/tester/properties-002.binjs deleted file mode 100644 index e657089d33e6b87ba8671797fa1ef9142248436d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 37649 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 Uep?c?eY@hIX1`W2Seftt0uneaCjbBd diff --git a/js/src/jsapi-tests/binast/parser/tester/regexp-literals-001.js b/js/src/jsapi-tests/binast/parser/tester/regexp-literals-001.js deleted file mode 100644 index cb2448d1ec59..000000000000 --- a/js/src/jsapi-tests/binast/parser/tester/regexp-literals-001.js +++ /dev/null @@ -1,44 +0,0 @@ -/* -*- 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: LexicalConventions/regexp-literals-001.js - * ECMA Section: 7.8.5 - * Description: - * - * - * Author: christine@netscape.com - * Date: 11 August 1998 - */ -var SECTION = "LexicalConventions/regexp-literals-001.js"; -var VERSION = "ECMA_2"; -var TITLE = "Regular Expression Literals"; - -startTest(); - -// Regular Expression Literals may not be empty; // should be regarded -// as a comment, not a RegExp literal. - -s = //; - - "passed"; - -AddTestCase( - "// should be a comment, not a regular expression literal", - "passed", - String(s)); - -AddTestCase( - "// typeof object should be type of object declared on following line", - "passed", - (typeof s) == "string" ? "passed" : "failed" ); - -AddTestCase( - "// should not return an object of the type RegExp", - "passed", - (typeof s == "object") ? "failed" : "passed" ); - -test(); diff --git a/js/src/jsapi-tests/binast/parser/tester/regexp-literals-002.binjs b/js/src/jsapi-tests/binast/parser/tester/regexp-literals-002.binjs deleted file mode 100644 index a3ccf7cc93a6876e15a53bf9977b885a4db8373d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2735 zcmcgu&2AeZ5T^fskI>6rTQ%7z$7*HCv3+pmxK-B5wZdM!A;qu)Y}qf?hv~h?K0>4p zEHlV3mc}ud$?f%1EEg7?xO5!7Wtb*9v{3ytt2b2RM)Zh9#thq6MOy>K#Dn zepnE$>6{X2;W%FSpp}-Cmz@{jCLi=B!_VU^b$eOrKtinC+K;Fv5;F_8!fYAgy#u@v zS<@M2J;7JTzu+pBq$KO=gw@y8$=TWY>8*-AZat@#)650*1VC3<#^zyw|H<_az&;|^ z*MqD4p}0138}u%_U(aJ^j!)#T;}Q7`Tup|P(ICz{R76Y3z6G=^QZAuFlfk-@L@Cg0 z;-vntBK7#W#+odkKCJqnIGo?cLhfP4{8f7c3XBn7eqr7%${v~(QW{G=Axg(A?$qO8 zLv$aQcb6TpA)&W9luEc>`G8qA;oSup)6fwwZhfm!^^2YtStv(uaF#nsgKB zV^$~ry%N{c;K)3o$s@r$5z|{T(}|cTdQ*`E^aZ?~#-WAGwhZPe1f%7$Ak}&C{-ZZ|=1?5<7f{TVm_+!wGNIIK80_``i4h5e$n{}r#SMFesI_f{sA1e3_x(R$! diff --git a/js/src/jsapi-tests/binast/parser/tester/regexp-literals-002.js b/js/src/jsapi-tests/binast/parser/tester/regexp-literals-002.js deleted file mode 100644 index 5b256dd22d9f..000000000000 --- a/js/src/jsapi-tests/binast/parser/tester/regexp-literals-002.js +++ /dev/null @@ -1,28 +0,0 @@ -/* -*- 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: LexicalConventions/regexp-literals-002.js - * ECMA Section: 7.8.5 - * Description: Based on ECMA 2 Draft 8 October 1999 - * - * Author: christine@netscape.com - * Date: 19 February 1999 - */ -var SECTION = "LexicalConventions/regexp-literals-002.js"; -var VERSION = "ECMA_2"; -var TITLE = "Regular Expression Literals"; - -startTest(); - -// A regular expression literal represents an object of type RegExp. - -AddTestCase( - "// A regular expression literal represents an object of type RegExp.", - "true", - (/x*/ instanceof RegExp).toString() ); - -test(); diff --git a/js/src/jsapi-tests/binast/parser/tester/regress-001.binjs b/js/src/jsapi-tests/binast/parser/tester/regress-001.binjs deleted file mode 100644 index c013b642ee7c044cfbd4fb47d044306be14c3461..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7756 zcmds6O^?$?7&e7|K-E?~bMc`9R;U|5s*sAc)g}bAXg8qEE|;oWP3&36tYcf_3EGtq zcYX+ef(!qHd(|sPj=b-9oEgXC?BruZ+e@r?W}bQ9=lz_q$H!Srx4a=G!PYaDhK!7y zuN=o2q`{ff-swH*|K9i0j5=OR%<&=V7HxKt+KQB@v$h=-clEG~v;4M45m~$VdsDa~37x*0-=tzuP(3 zdD`<@@}1X`AUalG%-@YTWh54GFG)PE;r$GF`!wvHWIzMB&gY<2WmLdoBvl|R93v6AQFRMtegv%TAShCHhvd|dtVND~ z54)mSEA?%PTWi4{rd&}W%2+yhL4EFI3<@jbXGV1jAgK4$0W0|nba>|lf?xMSwCGJlE+(Kqr zo2bF9n>RP=TIjev@G%zoCG)6HrTC+uj`Q&kBbVEZku%NOxSGZye3i-8!_^dZCJL3H z%S0&ZxLlG!_u_Nsmq+8o$0k$nHxUV%#0>h+QQq9d>h`v9f9t&Q0JuOADtW_V18jPV zQa#%@EugLe6h!;cir`SPm?j|~E-l#)042H(njaC2lRBdGS=~JCIQ37IdtxG-eKy$z zYvHVl4OZjn)+yh@PTzxwP>ZmvVkN3`A+kgdP6>EWs3_Bp62kN>gEO#{5Dw?0m>zS7 zMd45#lVtYCK)tOts<6CzNXz_;oZfPkRHi&-LFajHZ-TXy5L+O3W3wp=OvsCsdUhSH%Agd;H`y{(ozLEPNH)it=HcRyoJv4KiUf{ z6W|U0bpeo;{lLG!V?i%*H~v(au?(j2sfYeW1ga&I7;Tn(4 za=hVsUo(5{1E3r;e1Fka)jn~_F}&@m-i*otQzs^eW~3W!@$?0b9BR0bm!nO`U^$G^ VPF=JW&Mkg_fl)n38o4&d_h&BM%CGRvPx^$p`opVwc9Q78n-jc;>vM13gQvC;i-5A zE_ezafaA=LPv@jfyQ*U1DvEzTpY!?rI*@~YM61COC1Lfw;5|W3yz8Fl9rAGK)wY`N zT5nn%-ltwrN!J7sOJw!?BhPyXs{*|JfCxqoBf3F55fMZ(9;Z;D{ZG7O7Kfu)zX9jk zBrGmcC>DAwW-ubZRC}wv-Ej5B7E#hB9|PJR?FpJB;DElQiS)Z%__aar z3yUJ+KY9J?#Y^|7#Z$aMTfGaU)b`&t_jhWIJy-V`Xub)Eb0@O#xv%f7C5fab5YSR@ zrrCII^Z_Lcl@{#l>TKadJYQb%zkXZwO`!4D(qEW(mRUHA znQ64pR^ST8^#V+Ejq`|-*i`l)LPk*Dz5HK>dETWM9?TchH)B__1ZJ|Ju0$P^(}`gv zn)J;2+Z?JT6+TSa<657gG5b#63tDNfR&@AriRkbYNQEZZ?}E?A^vpK|FR!e^7;^au zmwmMyzJ&Fb$Y%v87c4OQ)xLpUWIh(B!T6B;(* ziO43%)Gt54!UwR{ywwz@L0woEG?seSsRi_Se#Fp|xsOzOF6XHL?Q&jY^xOq|(4z&l VBbrUz7EsT+_o62XN~zq;@)wAct+xOG diff --git a/js/src/jsapi-tests/binast/parser/tester/regress-7635.js b/js/src/jsapi-tests/binast/parser/tester/regress-7635.js deleted file mode 100644 index 7ea94e037ae9..000000000000 --- a/js/src/jsapi-tests/binast/parser/tester/regress-7635.js +++ /dev/null @@ -1,55 +0,0 @@ -/* -*- 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: regress-7635.js - * Reference: http://bugzilla.mozilla.org/show_bug.cgi?id=7635 - * Description: instanceof tweaks - * Author: - */ - -var SECTION = "instanceof"; // provide a document reference (ie, ECMA section) -var VERSION = "ECMA_2"; // Version of JavaScript or ECMA -var TITLE = "Regression test for Bugzilla #7635"; // Provide ECMA section title or a description -var BUGNUMBER = "7635"; // Provide URL to bugsplat or bugzilla report - -startTest(); // leave this alone - -/* - * Calls to AddTestCase here. AddTestCase is a function that is defined - * in shell.js and takes three arguments: - * - a string representation of what is being tested - * - the expected result - * - the actual result - * - * For example, a test might look like this: - * - * var zip = /[\d]{5}$/; - * - * AddTestCase( - * "zip = /[\d]{5}$/; \"PO Box 12345 Boston, MA 02134\".match(zip)", // description of the test - * "02134", // expected result - * "PO Box 12345 Boston, MA 02134".match(zip) ); // actual result - * - */ - -function Foo() {} -theproto = {}; -Foo.prototype = theproto - theproto instanceof Foo - - - AddTestCase( "function Foo() {}; theproto = {}; Foo.prototype = theproto; theproto instanceof Foo", - false, - theproto instanceof Foo ); - -var f = new Function(); - -AddTestCase( "var f = new Function(); f instanceof f", false, f instanceof f ); - - -test(); // leave this alone. this executes the test cases and -// displays results. diff --git a/js/src/jsapi-tests/binast/parser/tester/split-001.binjs b/js/src/jsapi-tests/binast/parser/tester/split-001.binjs deleted file mode 100644 index c9118cc73707008c915e4dfb7a429e9e9dae4cd4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22400 zcmeHP&2HO95N7)Sduq`F1p=t2*iCAs0eWa48;BhTaFM!g*Nr^)fiG@~ zf$v7H^uj=q8m9lp&SNha&eQrA=v*kH6-J7bH*~zflQRNz`n{nDr1#Jhks=qkTA8OCPHcT)%e?<6p`yIa!*`;nxpp#&=Z5Pdw8vzJkgCO zz9&Dwdi9HqM{#}%GgVg!v8OqB6{tLMqx^8nQBC3g1+-65xOaE&^qUgy8^HSR&Nnv> zujM6k`hxuL^aS}jOm(n#aCQ?-E1i2+ zd~fW@`{|9*9^jSfM6Msi%A_vjhZGy#zNJO;HfBb?J=7ybrW)42OLLnjJS57MMxU1z_bh z7&`~iOr1fTR4OtSd2vzkFzEp~SZv@aF9645(A z4wqU-Lw1b$#0C3*BB*>&DE6CxG|nAimknJ2JmM8YL+SIsg|u8 zIy^rObl4Y9QwcSI;}{X#5hI|PR|B(6bbFX)^B#~5#M4efdd=bkDbW^QmWOc!suo@_ zk(xO}oBpQ8vkbhTu$POUFpQ9uL#JEQV1PLwO$U(@kf>qqJ{LZ2dx0C#@DoQs{X}iJ zcfd@3-bDdtz< z+8r2&a5RT&4EiO$Et6hVWF8@zsAcgID$+%vl<0ScaU&}_QL1UFH$)MNN|i3QwlOw? z=feJIT^Kq4I04_ygx%JKWs*vpkuhcY7TDeThA)DVJmSH`iGg=%OieL_VbtghPJUsn z50qPH(g$+3pW&=(9wq(*)91p1EUjkFY0)XG6REuYQj6IMgQ15d2A7@}VZw#g3di-~ z_%?upClxq|pQm{KWR9^Zon>$zDmV}-nOJl7o1C9(SVwnK+MRPNjMBspy_f1zQeJ2}8KMg+?5Cn)&3aR22i5N| z;VF4$tUHZeIXJTQ9nhuhLzhG34NM^j9-Fz|nVj`_9kNuB_c9*4XZP3)Shc!nO}-gCxLs+ zEk|9r&*O4CatDt^odXrd`kHoX)%`^6)wK!D8BJ(dI#5t6)0e50(ib7XYG#3rv1s#K z^bDF>LIXnlq#;HO_u&nNOh;-5#^G4=YJhziNq%DHoc$)3mu2BPOpgF&Sg_RMbU0Uq zxwFsJ>9s3;2-1b_lH1sFFUlLa{{)4=%I{o3jRC9pOtMpXjHlbdAXRd*Tag;-4KUV7 z*OEm$jXhN4O05yNV$_`(5-as-Hjt^>P4(MFON76w>B@6Zi#A?Zrae zw4q*~FUu>PypynzWI$gDklLs+8T}Xp1FdwV4XEu-8zgVWnUY%?Pg3`HV)e)dV+{1< zobI$=VVsIj=>oZG*;wcGg194-Ra9gX0|%nujael!e17}fegQ>ogNrt};5)>&p&U9| zjITDo6w8=C8=-n7f(r~=Ah@W~UdQk{=pc(oQfb!n&~5qgjFul4ZM!k1Oq^gYQ>|#* z3h>)BR3dF#!R*r+h^(AfS{Nu*TCJj6z@W!ce@&B;eo5O3z6al;s`_-Tt6HZULytro zN}u~sx@~^Qe_jk>4+?b949-j2nIW`}OjU7YjYpY*(F;#uY{3YV+m#9U5yU!en?~~K zKZe3I9VFO~kF|@mDPa93lr~Q~qj?fb2MQ7;+X*W9UL{!f%iN~Xf#uch6ro`#?QB7M zFSttuy+;8H$>kk)BBznHd8P{we*n*$&Xw{$i^N%PE%>CK9)Z|r{UC_GZ>g^9I~WsW zzgeYkq4MXxMoI`~z5z*|%6(>2-zz*k(D!Y58JRHC`k?Qq^Su1Q33)DaY@_cK`U^@o v|5e7hySa7@eb*Yi=zF#(Oy9D6$S7%=Qh$Gf{ZN^W9=+VA=c<0zuC4z8jP7zt diff --git a/js/src/jsapi-tests/binast/parser/tester/split-001.js b/js/src/jsapi-tests/binast/parser/tester/split-001.js deleted file mode 100644 index f8e2c762a20b..000000000000 --- a/js/src/jsapi-tests/binast/parser/tester/split-001.js +++ /dev/null @@ -1,112 +0,0 @@ -/* -*- 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: String/split-001.js - * ECMA Section: 15.6.4.9 - * Description: Based on ECMA 2 Draft 7 February 1999 - * - * Author: christine@netscape.com - * Date: 19 February 1999 - */ - -/* - * Since regular expressions have been part of JavaScript since 1.2, there - * are already tests for regular expressions in the js1_2/regexp folder. - * - * These new tests try to supplement the existing tests, and verify that - * our implementation of RegExp conforms to the ECMA specification, but - * does not try to be as exhaustive as in previous tests. - * - * The [,limit] argument to String.split is new, and not covered in any - * existing tests. - * - * String.split cases are covered in ecma/String/15.5.4.8-*.js. - * String.split where separator is a RegExp are in - * js1_2/regexp/string_split.js - * - */ - -var SECTION = "ecma_2/String/split-001.js"; -var VERSION = "ECMA_2"; -var TITLE = "String.prototype.split( regexp, [,limit] )"; - -startTest(); - -// the separator is not supplied -// separator is undefined -// separator is an empty string - -AddSplitCases( "splitme", "", "''", ["s", "p", "l", "i", "t", "m", "e"] ); -AddSplitCases( "splitme", new RegExp(), "new RegExp()", ["s", "p", "l", "i", "t", "m", "e"] ); - -// separartor is a regexp -// separator regexp value global setting is set -// string is an empty string -// if separator is an empty string, split each by character - -// this is not a String object - -// limit is not a number -// limit is undefined -// limit is larger than 2^32-1 -// limit is a negative number - -test(); - -function AddSplitCases( string, separator, str_sep, split_array ) { - - // verify that the result of split is an object of type Array - AddTestCase( - "( " + string + " ).split(" + str_sep +").constructor == Array", - true, - string.split(separator).constructor == Array ); - - // check the number of items in the array - AddTestCase( - "( " + string + " ).split(" + str_sep +").length", - split_array.length, - string.split(separator).length ); - - // check the value of each array item - var limit = (split_array.length > string.split(separator).length ) - ? split_array.length : string.split(separator).length; - - for ( var matches = 0; matches < split_array.length; matches++ ) { - AddTestCase( - "( " + string + " ).split(" + str_sep +")[" + matches +"]", - split_array[matches], - string.split( separator )[matches] ); - } -} - -function AddLimitedSplitCases( - string, separator, str_sep, limit, str_limit, split_array ) { - - // verify that the result of split is an object of type Array - - AddTestCase( - "( " + string + " ).split(" + str_sep +", " + str_limit + - " ).constructor == Array", - true, - string.split(separator, limit).constructor == Array ); - - // check the length of the array - - AddTestCase( - "( " + string + " ).split(" + str_sep +", " + str_limit + " ).length", - length, - string.split(separator).length ); - - // check the value of each array item - - for ( var matches = 0; matches < split_array.length; matches++ ) { - AddTestCase( - "( " + string + " ).split(" + str_sep +", " + str_limit + " )[" + matches +"]", - split_array[matches], - string.split( separator )[matches] ); - } -} diff --git a/js/src/jsapi-tests/binast/parser/tester/split-002.binjs b/js/src/jsapi-tests/binast/parser/tester/split-002.binjs deleted file mode 100644 index 918343cc2e0648f6ea57a586bd626b8ccc7b089f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 70881 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 diff --git a/js/src/jsapi-tests/binast/parser/tester/split-002.js b/js/src/jsapi-tests/binast/parser/tester/split-002.js deleted file mode 100644 index 8f14e4facbd5..000000000000 --- a/js/src/jsapi-tests/binast/parser/tester/split-002.js +++ /dev/null @@ -1,270 +0,0 @@ -/* -*- 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: String/split-002.js - * ECMA Section: 15.6.4.9 - * Description: Based on ECMA 2 Draft 7 February 1999 - * - * Author: christine@netscape.com - * Date: 19 February 1999 - */ - -/* - * Since regular expressions have been part of JavaScript since 1.2, there - * are already tests for regular expressions in the js1_2/regexp folder. - * - * These new tests try to supplement the existing tests, and verify that - * our implementation of RegExp conforms to the ECMA specification, but - * does not try to be as exhaustive as in previous tests. - * - * The [,limit] argument to String.split is new, and not covered in any - * existing tests. - * - * String.split cases are covered in ecma/String/15.5.4.8-*.js. - * String.split where separator is a RegExp are in - * js1_2/regexp/string_split.js - * - */ - -var SECTION = "ecma_2/String/split-002.js"; -var VERSION = "ECMA_2"; -var TITLE = "String.prototype.split( regexp, [,limit] )"; - -startTest(); - -// the separator is not supplied -// separator is undefined -// separator is an empty string - -// AddSplitCases( "splitme", "", "''", ["s", "p", "l", "i", "t", "m", "e"] ); -// AddSplitCases( "splitme", new RegExp(), "new RegExp()", ["s", "p", "l", "i", "t", "m", "e"] ); - -// separator is an empty regexp -// separator is not supplied - -CompareSplit( "hello", "ll" ); - -CompareSplit( "hello", "l" ); -CompareSplit( "hello", "x" ); -CompareSplit( "hello", "h" ); -CompareSplit( "hello", "o" ); -CompareSplit( "hello", "hello" ); -CompareSplit( "hello", undefined ); - -CompareSplit( "hello", ""); -CompareSplit( "hello", "hellothere" ); - -CompareSplit( new String("hello" ) ); - - -Number.prototype.split = String.prototype.split; - -CompareSplit( new Number(100111122133144155), 1 ); -CompareSplitWithLimit(new Number(100111122133144155), 1, 1 ); - -CompareSplitWithLimit(new Number(100111122133144155), 1, 2 ); -CompareSplitWithLimit(new Number(100111122133144155), 1, 0 ); -CompareSplitWithLimit(new Number(100111122133144155), 1, 100 ); -CompareSplitWithLimit(new Number(100111122133144155), 1, void 0 ); -CompareSplitWithLimit(new Number(100111122133144155), 1, Math.pow(2,32)-1 ); -CompareSplitWithLimit(new Number(100111122133144155), 1, "boo" ); -CompareSplitWithLimit(new Number(100111122133144155), 1, -(Math.pow(2,32)-1) ); -CompareSplitWithLimit( "hello", "l", NaN ); -CompareSplitWithLimit( "hello", "l", 0 ); -CompareSplitWithLimit( "hello", "l", 1 ); -CompareSplitWithLimit( "hello", "l", 2 ); -CompareSplitWithLimit( "hello", "l", 3 ); -CompareSplitWithLimit( "hello", "l", 4 ); - - -/* - CompareSplitWithLimit( "hello", "ll", 0 ); - CompareSplitWithLimit( "hello", "ll", 1 ); - CompareSplitWithLimit( "hello", "ll", 2 ); - CompareSplit( "", " " ); - CompareSplit( "" ); -*/ - -// separartor is a regexp -// separator regexp value global setting is set -// string is an empty string -// if separator is an empty string, split each by character - -// this is not a String object - -// limit is not a number -// limit is undefined -// limit is larger than 2^32-1 -// limit is a negative number - -test(); - -function CompareSplit( string, separator ) { - split_1 = string.split( separator ); - split_2 = string_split( string, separator ); - - AddTestCase( - "( " + string +".split(" + separator + ") ).length" , - split_2.length, - split_1.length ); - - var limit = split_1.length > split_2.length ? - split_1.length : split_2.length; - - for ( var split_item = 0; split_item < limit; split_item++ ) { - AddTestCase( - string + ".split(" + separator + ")["+split_item+"]", - split_2[split_item], - split_1[split_item] ); - } -} - -function CompareSplitWithLimit( string, separator, splitlimit ) { - split_1 = string.split( separator, splitlimit ); - split_2 = string_split( string, separator, splitlimit ); - - AddTestCase( - "( " + string +".split(" + separator + ", " + splitlimit+") ).length" , - split_2.length, - split_1.length ); - - var limit = split_1.length > split_2.length ? - split_1.length : split_2.length; - - for ( var split_item = 0; split_item < limit; split_item++ ) { - AddTestCase( - string + ".split(" + separator + ", " + splitlimit+")["+split_item+"]", - split_2[split_item], - split_1[split_item] ); - } -} - -function string_split ( __this, separator, limit ) { - var S = String(__this ); // 1 - - var A = new Array(); // 2 - - if ( limit == undefined ) { // 3 - lim = Math.pow(2, 31 ) -1; - } else { - lim = ToUint32( limit ); - } - - var s = S.length; // 4 - var p = 0; // 5 - - if ( separator == undefined ) { // 8 - A[0] = S; - return A; - } - - if ( separator.constructor == RegExp ) // 6 - R = separator; - else - R = separator.toString(); - - if (lim == 0) return A; // 7 - - if ( separator == undefined ) { // 8 - A[0] = S; - return A; - } - - if (s == 0) { // 9 - z = SplitMatch(R, S, 0); - if (z != false) return A; - A[0] = S; - return A; - } - - var q = p; // 10 -loop: - while (true ) { - - if ( q == s ) break; // 11 - - z = SplitMatch(R, S, q); // 12 - -//print("Returned ", z); - - if (z != false) { // 13 - e = z.endIndex; // 14 - cap = z.captures; // 14 - if (e != p) { // 15 -//print("S = ", S, ", p = ", p, ", q = ", q); - T = S.slice(p, q); // 16 -//print("T = ", T); - A[A.length] = T; // 17 - if (A.length == lim) return A; // 18 - p = e; // 19 - i = 0; // 20 - while (true) { // 25 - if (i == cap.length) { // 21 - q = p; // 10 - continue loop; - } - i = i + 1; // 22 - A[A.length] = cap[i] // 23 - if (A.length == lim) return A; // 24 - } - } - } - - q = q + 1; // 26 - } - - T = S.slice(p, q); - A[A.length] = T; - return A; -} - -function SplitMatch(R, S, q) -{ - if (R.constructor == RegExp) { // 1 - var reResult = R.match(S, q); // 8 - if (reResult == undefined) - return false; - else { - a = new Array(reResult.length - 1); - for (var i = 1; i < reResult.length; i++) - a[a.length] = reResult[i]; - return { endIndex : reResult.index + reResult[0].length, captures : cap }; - } - } - else { - var r = R.length; // 2 - s = S.length; // 3 - if ((q + r) > s) return false; // 4 - for (var i = 0; i < r; i++) { -//print("S.charAt(", q + i, ") = ", S.charAt(q + i), ", R.charAt(", i, ") = ", R.charAt(i)); - if (S.charAt(q + i) != R.charAt(i)) // 5 - return false; - } - cap = new Array(); // 6 - return { endIndex : q + r, captures : cap }; // 7 - } -} - -function ToUint32( n ) { - n = Number( n ); - var sign = ( n < 0 ) ? -1 : 1; - - if ( Math.abs( n ) == 0 - || Math.abs( n ) == Number.POSITIVE_INFINITY - || n != n) { - return 0; - } - n = sign * Math.floor( Math.abs(n) ) - - n = n % Math.pow(2,32); - - if ( n < 0 ){ - n += Math.pow(2,32); - } - - return ( n ); -} diff --git a/js/src/jsapi-tests/binast/parser/tester/split-003.binjs b/js/src/jsapi-tests/binast/parser/tester/split-003.binjs deleted file mode 100644 index ce86209d718ad3b09a210323f8be3f32d97964c7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 38042 zcmeHQ&2QX96nFS6AS5IZNJvPF1X4powzMb8CeWl?DOK2_Y$%7Sirn4Fu3N`myxz1q zfdpqHPH^DB|G#r(qgHck|xYn)WK()es-Q zr8|ax*JRgN$J8C&HEhcx)eZk2YWEGR8>RI(&{>&8%XU0cMprW|!yOY4U%%63mTMdu z%<;%s`cXLOq3ak{Z}Vw*O}n|hzjL$IsPpd{bxuU2)%Nb+HC*QCrbq5rH%AG2$O6_m z(hn}x{U_?ffoZsJU%YsE{oXM7ir`gskBJRFg2#c%vF;>q7e`c(xxWGJQ)KR~=3cuh z<~{{OZ*G5h_25#HGpEnU|4xsQPr|GAclLLi$$5(sL6p(AfSP~n`oOVW+dUbubx%ys z*BsVk4+m?t+iRwAWVm-~tI1cEV0H81z+uB7;6U5eU3LWe=?NpelYcK&)lXytLG7Ob77Sh8arfEK&6pu4D^d@~QDzDVsC){#(;FcphSI4MCi6Vdy4vlw z5ooscA(Oz2hc17?OP_#yBM?oL8I-_2Gfg|mERi`a_8{a>1?z+wzsGt&Gx^>?48`{o zXY(wOwb+AN8flT_Rmag!Vv}N~C%WN^dHg*FSVcY+;V&X`KRHKnAjG*LB~}?Fa|S6% zWRRQBKqTV-ayE+G3|DmC)cBq0tFf;afwO~HHPBt~d@SwI)O(@W4}B*JMNSYD{w;h7 zh{pdZ<5QtGR5$C{wCHO32*@GHB5I1P=vSj%K&cw`AomwkC0>H5fo0o8SAqp#y3Iv~`D$JgbkW+@=0DGkX5wlt1veIN&`=F!@ ze+%-9{zBy4L??dge#R0igQb+AFrc3+s|=4o5tP#{;s4y*7^PM+*MVkZUQlYq_mG54 zf{JBvKkX-Ftt4pqv86j=G8Rn=Y(>J>B5Vi37Q&(NPz&KJ3CluAfk$)w7;1o8Z5 z$|y(#jj%jtOA26_kA(I>|&&kB+kQSc3KhW{0 zcyeq!3nP-HIgFCg_dDfTwPLT5>(IB)_f z3>Q6w4;dCnO7Q97+8*48a1_~PCeWW?+hSS#oP$S57Q`}r3OVT_QzpoFY~TT}#21B< z7Ft7OAmXAyA}`N@-mR{i%<8$4 zVgMQ8se$)IpIXEaf>NU~nEu3+4RkkW(gsqNpJ1#Cc3k`uUY~Fa;Qsx;_xUPsQQ%t^<7|gL4lwW>=hjSJlQ{WPgKm8+^9M;jCOl)F&-FCvj53QHi z%-OR-qd^xWw3$zUOG{nIaRE>Qi`2`r=vFjRn{sbts!iwRT8-wq6972_L`w|v z6<`V!z6nJ;s+O$d|J+xQAPc=e(O69_dsv}IfFeVwCHoHU^SnuMf&`JQ*5k+$@TfDL zbC~Ef2m)TIMlNqvT1Pn+)2&KVnaku)sAhp<2`e~X<=+U^Gw)b%mQKGAj$o%IMvXZQ z3QFPhC#KSt?&gAfCKN$R$$yF>Td*Rb4i?aYDI*2R)$)QwP|LFb${?s1fBKmSzPYB#4#nnMxMifu z4ky)I5(GWVTM7hG)VKvL^!o;4$b^47uZ4a;K-Hq!hgNj+)%y}3y0A%N9X z(PYE>tv`Yxui9hH^sr=}LGhAM71%9&U`LXsl=P#l&T6N1qkW~_fyONW6AN8_`5sJ9 zEWea;lE;WrXFj^0E!A9so9F~n3R9;vtO;w4j7S-s|Mj*$a7T``l(r5JzlgHJnKilU zlHZuoO^)Az*eh)h#;;?NFSdKnui%R9u^vPkVW|MWgbUqnZtw5hY$dKC!Tp{6-Dctn zK6R_P*Oonn!;}^$2!o05H3>6_<<$9=l)?<*xmZ~UzmjUNM7pl-xY%?}I!(ASS~AL? glx1i6rDWqm;cc=XQuLL_`@0F;6BV(*qRRp9f3_h^D*ylh diff --git a/js/src/jsapi-tests/binast/parser/tester/split-003.js b/js/src/jsapi-tests/binast/parser/tester/split-003.js deleted file mode 100644 index e887dbe0e917..000000000000 --- a/js/src/jsapi-tests/binast/parser/tester/split-003.js +++ /dev/null @@ -1,123 +0,0 @@ -/* -*- 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: String/split-003.js - * ECMA Section: 15.6.4.9 - * Description: Based on ECMA 2 Draft 7 February 1999 - * - * Author: christine@netscape.com - * Date: 19 February 1999 - */ - -/* - * Since regular expressions have been part of JavaScript since 1.2, there - * are already tests for regular expressions in the js1_2/regexp folder. - * - * These new tests try to supplement the existing tests, and verify that - * our implementation of RegExp conforms to the ECMA specification, but - * does not try to be as exhaustive as in previous tests. - * - * The [,limit] argument to String.split is new, and not covered in any - * existing tests. - * - * String.split cases are covered in ecma/String/15.5.4.8-*.js. - * String.split where separator is a RegExp are in - * js1_2/regexp/string_split.js - * - */ - -var SECTION = "ecma_2/String/split-003.js"; -var VERSION = "ECMA_2"; -var TITLE = "String.prototype.split( regexp, [,limit] )"; - -startTest(); - -// separator is a regexp -// separator regexp value global setting is set -// string is an empty string -// if separator is an empty string, split each by character - - -AddSplitCases( "hello", new RegExp, "new RegExp", ["h","e","l","l","o"] ); - -AddSplitCases( "hello", /l/, "/l/", ["he","","o"] ); -AddLimitedSplitCases( "hello", /l/, "/l/", 0, [] ); -AddLimitedSplitCases( "hello", /l/, "/l/", 1, ["he"] ); -AddLimitedSplitCases( "hello", /l/, "/l/", 2, ["he",""] ); -AddLimitedSplitCases( "hello", /l/, "/l/", 3, ["he","","o"] ); -AddLimitedSplitCases( "hello", /l/, "/l/", 4, ["he","","o"] ); -AddLimitedSplitCases( "hello", /l/, "/l/", void 0, ["he","","o"] ); -AddLimitedSplitCases( "hello", /l/, "/l/", "hi", [] ); -AddLimitedSplitCases( "hello", /l/, "/l/", undefined, ["he","","o"] ); - -AddSplitCases( "hello", new RegExp, "new RegExp", ["h","e","l","l","o"] ); -AddLimitedSplitCases( "hello", new RegExp, "new RegExp", 0, [] ); -AddLimitedSplitCases( "hello", new RegExp, "new RegExp", 1, ["h"] ); -AddLimitedSplitCases( "hello", new RegExp, "new RegExp", 2, ["h","e"] ); -AddLimitedSplitCases( "hello", new RegExp, "new RegExp", 3, ["h","e","l"] ); -AddLimitedSplitCases( "hello", new RegExp, "new RegExp", 4, ["h","e","l","l"] ); -AddLimitedSplitCases( "hello", new RegExp, "new RegExp", void 0, ["h","e","l","l","o"] ); -AddLimitedSplitCases( "hello", new RegExp, "new RegExp", "hi", [] ); -AddLimitedSplitCases( "hello", new RegExp, "new RegExp", undefined, ["h","e","l","l","o"] ); - -test(); - -function AddSplitCases( string, separator, str_sep, split_array ) { - // verify that the result of split is an object of type Array - AddTestCase( - "( " + string + " ).split(" + str_sep +").constructor == Array", - true, - string.split(separator).constructor == Array ); - - // check the number of items in the array - AddTestCase( - "( " + string + " ).split(" + str_sep +").length", - split_array.length, - string.split(separator).length ); - - // check the value of each array item - var limit = (split_array.length > string.split(separator).length ) - ? split_array.length : string.split(separator).length; - - for ( var matches = 0; matches < split_array.length; matches++ ) { - AddTestCase( - "( " + string + " ).split(" + str_sep +")[" + matches +"]", - split_array[matches], - string.split( separator )[matches] ); - } -} - -function AddLimitedSplitCases( - string, separator, str_sep, limit, split_array ) { - - // verify that the result of split is an object of type Array - - AddTestCase( - "( " + string + " ).split(" + str_sep +", " + limit + - " ).constructor == Array", - true, - string.split(separator, limit).constructor == Array ); - - // check the length of the array - - AddTestCase( - "( " + string + " ).split(" + str_sep +", " + limit + " ).length", - split_array.length, - string.split(separator, limit).length ); - - // check the value of each array item - - var slimit = (split_array.length > string.split(separator).length ) - ? split_array.length : string.split(separator, limit).length; - - for ( var matches = 0; matches < slimit; matches++ ) { - AddTestCase( - "( " + string + " ).split(" + str_sep +", " + limit + " )[" + matches +"]", - split_array[matches], - string.split( separator, limit )[matches] ); - } -} diff --git a/js/src/jsapi-tests/binast/parser/tester/statement-001.binjs b/js/src/jsapi-tests/binast/parser/tester/statement-001.binjs deleted file mode 100644 index 6b06c09c12642fe477212351360c1f68c963ce9b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6268 zcmdT|&2AGh5Z?0ta{(c7;Izk96{JPtf|iIj4Qfyb6^SZt$j!RR(#>vUJ53|R1MmvG z8C>DQTQK%|*UoyAIO#TsQh zV-Z$N1XSQVK@_kIKo{Team0et022Whp@F(IWh97t)!QJZU9WW-?^|9)e)B34M8|52 z{mp=3f3_F_W zH0g2uL%S@K-h!*wYwz|x?V6TZzaf9E&yY7kRHxBt)=j?0aFB)=(I#qvAvtK4Fzxy0#WMeHSzZ4GHUD%I0V&VRdwM zkISgQ*;1;2NN>ccfEKE5p$sRKF#*~+1U|;36F1|YsgvN5?~vd|j_(H%A`_*T!&wH{ z8`u~aG{mROAwjRN2vm|02ijJGbR%5>q=g~MW@@gWs}#)Qz91?rZZ{`aGvtKqv%dv` zRwVZypo-!6JXSgNl9Mqc`6w(%EImdnNr}U~K|zT9*`8Qmk^HkhJ93V~7hOE$J&~#V z3Z{Gnh^^SoKwZ`+@wfmx3&6ECA8U?Js5iJB6{mE?w&b)6!{@E zt7&7cN5MYdkvlZEA%6jkV32~U0}6_70+Y$oT_`+PqRXsrH@I|YrOg}=;rS7k4J|Cm zg^we=+u01Z+%NaOni3?lWCOeKb zy8T*+Mih%mJcO}mFnhGpk6KhA;Yw3a9cAe_+J=UKJA7)eTQQFIpgZhEydP2k%QPgf zly16C7M8KCTb59eFNGA7x;*{WZ>dyXD);`K&6cQ9IfCGEIH!j{h;{$-;EGQ^gFT%g z;hia)q`5Q|a~7_#h<^)|J8&TuCnTc+E_La`-=wVSp4T5u06Wtz4>jwIVw@&s$y*Bc zTkx8prV1hS31IWR>4QSv9Lde{Qq%vs^c7>Zg~#foV2!fIAnp@B&eagbrcZ=o&w;3T zHCZ-jtOtuLn0x*YNXvT5`2y;#D7OXGR*x@BMDBHW6B=1Oc1^Dr1+GPUFQBy|RLkq~ zeA_DRp1fqusx!JREmWRY{bn>lx&)QeOI5Drih_k2JiD3Io6dq3j+dN-lwnGqCe%5d zUGmWV8oVqXy6K!3WVu%GDj-*i`AmZ}UQp%QjOdlCMKPl-~S5E2rC0~dU3RcH$01Zf0KgPJM|6^SY#gpiwc6VuIZDxY zJOxKih__(u^{$zM6 z4mc~bup%a*sPEB`@(jS-zUq^Z(<4flgbQ(3A3ElYhV9Z-*rrh_H>CeGBg<;Kdws(uJ)bZf-udQB(AS^jlGFdJz_$U}jG@53!&>zXA3+ z`tzXjy0I*OUWTLZH6FcxVms#i{rKbj{3z^hR-3hoZMR7XM^@euXdQx%BDS$XLzFSp zMn8jBE2lk1;uw;=k!FCT9m&4uW@#A*fnF+CwBQrbxn)}Hkki+}TCkAuCW-kJ3l*%1 zuFr866NFkS6EJJ{g%rfOraKsO3$O+ZWM>!jn6PG4i`uqLQcAu+j$3KIO+(Cv+AdEB z4X8J$F(_z2j=0BYyQ2kE>5%|h*BhBm`VEi{j##!*3j>ihFynm=D;!QYC0{e-MDMe| zIUD```hEqx21(uzauUnrh@&tGxR;m)#Gf3A^Q)6T;WSnPjmKm;eTUE}a@rz2(G%IW zFW}1CfLM=E28wuxMS~pdjDY`R{~-tk^@g;T$IpEn$4lmClMQu!k-c>gwT`_G4*dX{ z)wHoTS+Ff;j4hhlkiP*YTV&RCKtqX1;4)RZb2lF=(aWrFm&ESSO4~Ug>G=tUEh`+w zr2uP1%Y#-Cbk>MIKs^M_5AV=;4Sht3jG^@{`Q>fz-81yrK7~@BENN6s)aQ{18CN55 zO`tO7txh?>{g}vV-Gi%Bck=biTSj96aM%+Z>@Fr*dT|4SD)&o>H4USAPCE zpUqLn#zaK$a7v%Q6PfWB!HI=p!3n}^)=9$<^P>ASH{6Z>4M@kDd>@?OjTnKNi$fHJ z1a(RGkTB?5(+q?eX9H9K diff --git a/js/src/jsapi-tests/binast/parser/tester/statement-002.js b/js/src/jsapi-tests/binast/parser/tester/statement-002.js deleted file mode 100644 index 7ac633058bd5..000000000000 --- a/js/src/jsapi-tests/binast/parser/tester/statement-002.js +++ /dev/null @@ -1,69 +0,0 @@ -/* -*- 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: statement-002.js - Corresponds To: 12.6.3-1.js - ECMA Section: 12.6.3 The for...in Statement - Description: - The production IterationStatement : for ( LeftHandSideExpression in Expression ) - Statement is evaluated as follows: - - 1. Evaluate the Expression. - 2. Call GetValue(Result(1)). - 3. Call ToObject(Result(2)). - 4. Let C be "normal completion". - 5. Get the name of the next property of Result(3) that doesn't have the - DontEnum attribute. If there is no such property, go to step 14. - 6. Evaluate the LeftHandSideExpression ( it may be evaluated repeatedly). - 7. Call PutValue(Result(6), Result(5)). PutValue( V, W ): - 1. If Type(V) is not Reference, generate a runtime error. - 2. Call GetBase(V). - 3. If Result(2) is null, go to step 6. - 4. Call the [[Put]] method of Result(2), passing GetPropertyName(V) - for the property name and W for the value. - 5. Return. - 6. Call the [[Put]] method for the global object, passing - GetPropertyName(V) for the property name and W for the value. - 7. Return. - 8. Evaluate Statement. - 9. If Result(8) is a value completion, change C to be "normal completion - after value V" where V is the value carried by Result(8). - 10. If Result(8) is a break completion, go to step 14. - 11. If Result(8) is a continue completion, go to step 5. - 12. If Result(8) is a return completion, return Result(8). - 13. Go to step 5. - 14. Return C. - - Author: christine@netscape.com - Date: 11 september 1997 -*/ -var SECTION = "statement-002"; -var VERSION = "JS1_4"; -var TITLE = "The for..in statement"; - -startTest(); -writeHeaderToLog( SECTION + " "+ TITLE); - -var result = "Failed"; -var exception = "No exception thrown"; -var expect = "Passed"; - -try { - eval(" for ( var i, p in this) { result += this[p]; }"); -} catch ( e ) { - result = expect; - exception = e.toString(); -} - -new TestCase( - SECTION, - "more than one member expression" + - " (threw " + exception +")", - expect, - result ); - -test(); diff --git a/js/src/jsapi-tests/binast/parser/tester/statement-003.binjs b/js/src/jsapi-tests/binast/parser/tester/statement-003.binjs deleted file mode 100644 index c77fa4f7e1e8fb83aa578062499b3b9ca0b78c2f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8692 zcmds6-HzKt6n6P5AV8H+Z;%kaY_)2)2r40(u3)oSb*m+!28P;n@<4Ly> z;t_ZOo`V}Mcn~hRLc9g%jK}tg$MKH6Nhs{i%CYC0^ZT81W_oHqi}+q|%2~MgR3;P2 z&b`+>&pS!Ng|~k+d_4Mc6eKh5^>+0)y-1{L@7GT}?>+dcN0&cmQm~VVAMhYzk|~kI z8Y(QGQ}0Z~;WE~rfOG9KtVC)k5qcsPssNzdAB8+t;#6>{;bL}P3Y{t`;>q51*k&~7 zkB^=Vd%Nbh-mU?mSR?)Yu~1yHNW;Bg(cHp&AMjGe6hDWp@7%lhnT?vG?`pgC%%-oy z!WT^1pHm?^+Vc;<-l9F951x(IWzRQ3^v9!5zyI7e%=Yd0*Y@m)dXJCB#{*k$8W4_A zc@xp5+&@j^-Mb?8iwL#RuVB@|%bDb93Q0c7GeCzOFMhAh(mso#a;aVsz)!r)Evm6Y zPQL@%f`(F!d8!&TG_VxCl;bKYAX^$0n4HX!3esBD9hA8NSQip#=MnHRm*eC(nb|9A0g0Axe+ze1|S^_v2LbD1^rUN zBJOLV!a=%*d@YbOzAqkYHhT5>{VlK>B>6n5Nh}&8j>Lp;hfG8~T8Y_XS zK3PxSfgHtO27HD+k*#|NQ+^1D!^AH@eKnQIMGbZlfd9w-0|N@`4G-2ApHEqut~ox( za#7Y7-CIXVaOO=}97fQr=8ZLtf_?m=vZ%2k{{kopxqclD`E|&OEhPqSlQbv9kYA8` zh6}FNFT4#1-z=V-{7@S;MY$q91G%FEOw)*QE4F8*?ql%yThPo2c#y?-$6RdLmOz1HUQ~Zps}jJ)ZpKOaw1Y6W{2dq z|Kq#1J*Y!kU}wFAzw=Pze>?l`K@D~uS{?SlVECy4(qwbKL-9YWjdVkL@`0$?Gjs>p z;RX+faJ-P3pC7UGKuF+|0R&GGv>Nn2ti|>D;E(Y`2+y?NwF#-$Un`C$a$%{IeWrqG zKVtKgYxbYPvCH}DqZ_)^q080D*zEh(b!rESl(q+zr6Uu34b$f&#(Ap*XfyCUEOn#O zI9R6EUk0NC6fmAsF{03=%B|S*-?LeZ9=JmB7>5lt{~)3M$KXnIarb5tCttNFGLqWQ z!OITu?|_2+hDtJ$ECVjj=1c!KQxjkp+Et;bwv^6Lt?c=jt7SUNTT#8~NAMkfOR0+! z4Km59yXMby_l~i;-1(tnO%z=Dm<4@;$3=aXQjLtvTCqbQD(nZA8fpi3J0DzZpvwO@ zARYUKkHPpSEcEfv>JH9Iekwu^6K~!fl29~`qcP{W3r2!}3x;QY;oE?9!R!zNmrz|D zs-w7=kGIz*r|bCapmI}1T+ww=Z*^pdc7?)04a|7e`W*Ri9tU``LodE?7>C=cmDgxg zdk4Xqr&bEqx+PnHs3`3c({*&nhT4m6C4LMuOsNNGXxB<=I0rA_xv#zmbW6d?{EW%F zbd87-!QWR_k6*_Sr6#XJ!?!P4aK^hdUM;;+u_4+k?^1Fr<^QQOE6Y}x{)U_BpK&#p zm20lN2PveXyF2KZ3vI}euBOeJtG=#lF4+#7tPHCCsQWV*`2%!Mnq9WnQ-mR#}=51XaG_Npl+~#$%Q)*vFnzwd+F)z?q_LN{=*3gc5bIE<7 K?qsbagnt0_l>w6g diff --git a/js/src/jsapi-tests/binast/parser/tester/statement-003.js b/js/src/jsapi-tests/binast/parser/tester/statement-003.js deleted file mode 100644 index 7e257675c4ec..000000000000 --- a/js/src/jsapi-tests/binast/parser/tester/statement-003.js +++ /dev/null @@ -1,80 +0,0 @@ -/* -*- 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: statement-003 - Corresponds To: 12.6.3-7-n.js - ECMA Section: 12.6.3 The for...in Statement - Description: - The production IterationStatement : for ( LeftHandSideExpression in Expression ) - Statement is evaluated as follows: - - 1. Evaluate the Expression. - 2. Call GetValue(Result(1)). - 3. Call ToObject(Result(2)). - 4. Let C be "normal completion". - 5. Get the name of the next property of Result(3) that doesn't have the - DontEnum attribute. If there is no such property, go to step 14. - 6. Evaluate the LeftHandSideExpression ( it may be evaluated repeatedly). - 7. Call PutValue(Result(6), Result(5)). PutValue( V, W ): - 1. If Type(V) is not Reference, generate a runtime error. - 2. Call GetBase(V). - 3. If Result(2) is null, go to step 6. - 4. Call the [[Put]] method of Result(2), passing GetPropertyName(V) - for the property name and W for the value. - 5. Return. - 6. Call the [[Put]] method for the global object, passing - GetPropertyName(V) for the property name and W for the value. - 7. Return. - 8. Evaluate Statement. - 9. If Result(8) is a value completion, change C to be "normal completion - after value V" where V is the value carried by Result(8). - 10. If Result(8) is a break completion, go to step 14. - 11. If Result(8) is a continue completion, go to step 5. - 12. If Result(8) is a return completion, return Result(8). - 13. Go to step 5. - 14. Return C. - - Author: christine@netscape.com - Date: 11 september 1997 -*/ -var SECTION = "statement-003"; -var VERSION = "JS1_4"; -var TITLE = "The for..in statement"; - -startTest(); -writeHeaderToLog( SECTION + " "+ TITLE); - -var result = "Failed"; -var exception = "No exception thrown"; -var expect = "Passed"; - -try { - var o = new MyObject(); - var result = 0; - - eval("for ( this in o) {\n" - + "result += this[p];\n" - + "}\n"); -} catch ( e ) { - result = expect; - exception = e.toString(); -} - -new TestCase( - SECTION, - "bad left-hand side expression" + - " (threw " + exception +")", - expect, - result ); - -test(); - -function MyObject() { - this.value = 2; - this[0] = 4; - return this; -} diff --git a/js/src/jsapi-tests/binast/parser/tester/statement-004.binjs b/js/src/jsapi-tests/binast/parser/tester/statement-004.binjs deleted file mode 100644 index f91dfd20bc69d53739f1e0288f1d85f223826a80..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8367 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 NT+z@HdTtcbzX39A`F8*S diff --git a/js/src/jsapi-tests/binast/parser/tester/statement-008.js b/js/src/jsapi-tests/binast/parser/tester/statement-008.js deleted file mode 100644 index a71fc266da37..000000000000 --- a/js/src/jsapi-tests/binast/parser/tester/statement-008.js +++ /dev/null @@ -1,42 +0,0 @@ -/* -*- 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: statement-008.js - Corresponds To: 12.8-1-n.js - ECMA Section: 12.8 The break statement - Description: - - Author: christine@netscape.com - Date: 12 november 1997 -*/ -var SECTION = "statement-008"; -var VERSION = "JS1_4"; -var TITLE = "The break in statement"; - -startTest(); -writeHeaderToLog( SECTION + " "+ TITLE); - -var result = "Failed"; -var exception = "No exception thrown"; -var expect = "Passed"; - -try { - eval("break;"); -} catch ( e ) { - result = expect; - exception = e.toString(); -} - -new TestCase( - SECTION, - "break outside of an iteration statement" + - " (threw " + exception +")", - expect, - result ); - -test(); - diff --git a/js/src/jsapi-tests/binast/parser/tester/statement-009.binjs b/js/src/jsapi-tests/binast/parser/tester/statement-009.binjs deleted file mode 100644 index 1b521624dfe9c5996172b36505896108f4073533..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6133 zcmdT|&2Q5%6wmmcxFGRyKpb)eO`|F|pj2#K(TYl$XtgWy60Z$Qlgf71^-l$HM&iHV z*>PewPFuGNMVzX}_V4+9{oZ?Suw)YAW@Chr-#j7lkf5=1!*QIm*q=Fvo!-a(o4yxM zu+ylCJ&iD+ta;;!PYw7Mur|2)GE1)ukyTK{RaM1u^}0YtZ@JYt-boMoog~Sbed-8!${z zDBvzpm>78X0I&Y)z%^mAhLm>`&Rim5Zr9~+Xv!aey+u==w!ieNGUXk( zdb{=M;A`Eq%=QiWYkP*g4Wb5}LAPz{tw)4qL_XqZBkU5)5)!$TA%@407bf^MjM~1M z5KJlLcR#}yVTbeYr3uJT$!~sALy%+(`4oAVOrO^l~`S0C58m19^t{ zoH-;IjudxFKH@-oN|0_Oi(6OCsE^?`?nVKe$8(9dH>A_=a2dnSMXYKn6Q@7OsU$3k zW8Ec|G{E6LpdiG)@@&yS+bc`Iw`WIA3HZvx6W)E8x^H00hk)3N-5k_qBN9(buygxv zt=w-pK7rn`S6zIbAWAEa&jFb!Iu~7R7<(7a2t|GfZDH2J>QQjWcN7jSZGG!y2)lgUb1D!fn;t1KtCxO8Y*%^VQnIe=w@+APV1bAH-iyfx7!tK`WbZ7n~~Sza41 z_*K$j;~3GSfIytJ;qsZ$cJd}Y!_|RWhvn-e9V$Q-f7V&R^!Y5@Grv#${E_3P1 z-?XIap4Xoy06W*N2({>pVw^5!>5B#Sd+=tU8h9b}DPZ%x+4x>GM|!iO)a<`5eZyGo z;i)<)Sfi?mgZqR}PAx>S=@X$?8;FWml68Z|dMx-0Q_KGWX<2KZf$`-mA190kK6c}C z7rEz2V$ z`UN;QhG8X4LWO}B#vv~NOz}Gbjd^$+QYPVIa;h(#au&v|je8)bzFlqX?AI#G>RDx3 zftXlzxqmO@l#xinosp<(;XMSr4Cc+s%Bl^SLoZ9CRg}bAaO#XOd%JmqF^%~XuxDt@ z!|l)YX&LhlTz$8``sJ-{nAzL$&+P0d^lt1l_O@-k&456L&?TN^ zk8BAOSa$oO!)Tg9me)Dq^c1pBh8``RJJYmEqDUW=Cz|kx>f|!DMkMtE&^YCU@di!# z01XwaiLUQ4i3)-)l?sHly222tQ+0$gPXOzj0q=YQLZ+;d>?JK*CrKyYAkVE--wb2I zdRi|}kPXl`&@oVGM31@0!d6=|sNy66w5SD{M!Et>gdwI))j~mED_F$6BPtNL8<4XF za>n_^PlurS=lHu|HAwPqu#ch{7Znp;q>LkMeBbOoJMXeD&l-{@-~4`^4US_F6WF`%iivvnET78LO8& z)oG53giplCt4dO86P#4+)oss%&t;-QxEnouxq{iye+!A6p*#bBX64^s_hWkQ@5|nP z&9`H~3|}PrdqDRy_+n}da+_RGJ~EB`2R6$FgM5@vW8|Q)ac|=6_aCaPPamZT|XHowP9B&ak diff --git a/js/src/jsapi-tests/binast/parser/tester/string-001.js b/js/src/jsapi-tests/binast/parser/tester/string-001.js deleted file mode 100644 index 68bfe181c9c7..000000000000 --- a/js/src/jsapi-tests/binast/parser/tester/string-001.js +++ /dev/null @@ -1,53 +0,0 @@ -/* -*- 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: string-001.js - Corresponds To: 15.5.4.2-2-n.js - ECMA Section: 15.5.4.2 String.prototype.toString() - - Description: Returns this string value. Note that, for a String - object, the toString() method happens to return the same - thing as the valueOf() method. - - The toString function is not generic; it generates a - runtime error if its this value is not a String object. - Therefore it connot be transferred to the other kinds of - objects for use as a method. - - Author: christine@netscape.com - Date: 1 october 1997 -*/ -var SECTION = "string-001"; -var VERSION = "JS1_4"; -var TITLE = "String.prototype.toString"; - -startTest(); -writeHeaderToLog( SECTION + " "+ TITLE); - -var result = "Failed"; -var exception = "No exception thrown"; -var expect = "Passed"; - -try { - OBJECT = new Object(); - OBJECT.toString = String.prototype.toString(); - result = OBJECT.toString(); -} catch ( e ) { - result = expect; - exception = e.toString(); -} - -new TestCase( - SECTION, - "OBJECT = new Object; "+ - " OBJECT.toString = String.prototype.toString; OBJECT.toString()" + - " (threw " + exception +")", - expect, - result ); - -test(); - diff --git a/js/src/jsapi-tests/binast/parser/tester/string-002.binjs b/js/src/jsapi-tests/binast/parser/tester/string-002.binjs deleted file mode 100644 index 732b8e6cf1fb5bee1212637e8b8b5afca253d837..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7976 zcmd^E-EI;=6kh+e-k5k}jEP*CHjSkkuPns~#YjV-5z<>TWv8%q*(I|>DX-$o_y9hE zH{R=0cxHBXXJ7^xU?Ei#60$ox-<;p?oIP8hgT9Z8g)T;J@q~mOf_lzP$8pX=cjT0+ z_2cH-W;^U-r;z8*6nrnD#c$6X=OH{*P`95V;-NDiAK|u-2%=sXa41(^N6v*8xZ_wq z0q4d%tdMXh&vm@OqbY!TeAUGP_0By^I9z~wQs{^hFX$BS!7D1sz!QbchNl8;9oPVXDDw2XXTZsj}La0|=aQkAyI=?9>2L=mAa9MKsX z3Ro3g%CU+Hj4g!=^>JYEfl>{m%i2?1(gH$7}0n)+{Su-_LFeepE7LkJsr&`fXbCjwlWh79#!>jHjr*)8 z(sf_Ll#c{a>&`xy%)<8&rMJo8AG@=?zN1=+x0x;yNJJ29P zYd}XvVJym^t@kXTSiPUyrLL~jT1^pGLFt1ekW{fPOu>pp+Pdp#OQKpCIKfW-Rmo*Y zUWb^rup^63o91P)HGvM7&`bxnh2gTt>9rE&FH?Va|ko7%cUs52sYAEeypuSx+$)W#LM^3uTyb>{uoK zXOqXm$jtLl_^fKJYWcs;W(#!r*MxH{;@`r-_rbw5oL2o(UJ<_4u458VJ+JZ&V5jZL zBuCXSoxxF00bAv$NpqO#DUm`weaToIZ)>w0Br%_`fmj(uSSL8H*o)ha1HW;i zvT(QcXl4zQqyHAta>DWs{24b9xx-w5hq(st^bd0J&14V^i!q=+BRG&&(!Ef@#jarG%d0XM*0^Vv8p>%ESTF4v1oh+ M5^HllvKXuW9~<8ukN^Mx diff --git a/js/src/jsapi-tests/binast/parser/tester/string-002.js b/js/src/jsapi-tests/binast/parser/tester/string-002.js deleted file mode 100644 index b68f2a156a95..000000000000 --- a/js/src/jsapi-tests/binast/parser/tester/string-002.js +++ /dev/null @@ -1,52 +0,0 @@ -/* -*- 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: string-002.js - Corresponds To: 15.5.4.3-3-n.js - ECMA Section: 15.5.4.3 String.prototype.valueOf() - - Description: Returns this string value. - - The valueOf function is not generic; it generates a - runtime error if its this value is not a String object. - Therefore it connot be transferred to the other kinds of - objects for use as a method. - - Author: christine@netscape.com - Date: 1 october 1997 -*/ -var SECTION = "string-002"; -var VERSION = "JS1_4"; -var TITLE = "String.prototype.valueOf"; - -startTest(); -writeHeaderToLog( SECTION + " "+ TITLE); - -var result = "Failed"; -var exception = "No exception thrown"; -var expect = "Passed"; - -try { - var OBJECT =new Object(); - OBJECT.valueOf = String.prototype.valueOf; - result = OBJECT.valueOf(); -} catch ( e ) { - result = expect; - exception = e.toString(); -} - -new TestCase( - SECTION, - "OBJECT = new Object; OBJECT.valueOf = String.prototype.valueOf;"+ - "result = OBJECT.valueOf();" + - " (threw " + exception +")", - expect, - result ); - -test(); - - diff --git a/js/src/jsapi-tests/binast/parser/tester/switch-001.binjs b/js/src/jsapi-tests/binast/parser/tester/switch-001.binjs deleted file mode 100644 index 8fb0718c119783214fd073991c0e492be268cf0e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11212 zcmeHNPmdcl6!%j86p&D*_Rd_<0=or4r7GR-CJnG?8>%K-aX?hFGv377$xQIf>~1fJ zdp`l(`4D^#ZU}MY#DR~%dyYN!WIVGo$u`>3xg<(#|LpgB&(H5YyOX4|fbMiA)b)2B z@o3E5DS3?$auoT`NOynm_3-Y{i)NH`wnU#!z~W@*`3HpDgkBwU_!E~i_b8wbs28~0 zO;{8PC}01M$q5VnJl0=;vvCnt#03=d2@6@00hrV8`!r10F{50-h3-@@I!-tX$2)Jq zG{b&xwExYZvnBuQY)KFkYbg33u!M3q5OAk%kQVUX0lfH(CEnzt?d{t|NCmwmNbATM zufeEOmlwO6D_D}uKLC4;WIpLX9$priZ^F|1y@z{GKPfV^ej@)~ACYgsRHOaTLBA-s zX%RJT@)n{^s57@qCr;diPGM&h!PigfpX(#_ZJ4Ti_~qd6VYmOdDEkt`qJ4gP`?EWr z-zmbaKxO}Y#%Uabvm7c_i5*O{|E=Dx=LUfuDn@wl7u7z>6tRYHM8d#Wcrv1Km9a=z z6J4)k6%p{%ks`Q!oTAOfR?%w+a|5u>IJobx;9R486dgq4qSl00{sr7+!DDt==<;V; zE`mNAPC+=;;3Nv@aY8s7PxL_~T{{A8>WNH}UI1hbA};&HLjfHvU}pCgtEjQM3eT4z z&yUXRr)46ormJFp7#9phTwvc!LZ%sXLYvRUPy?`g&O8-)Ky$VQ6a}VHEp$iiZ&{+r)fH>HHBSy@*abKjh#089ycwwa6tcxn)tZFg`-G@iiy+dp)?d z+~UqA*EK)Q$^A|bZppQfdqeZnoZLrxa7(U*+*_KT=Hz~>2mgP`J+mEX-6#sE8>;xA zaG-6haFV?etXiY41y=FkQspjNgj6pucqQnZ+KhCN27$8BmP;%=)=CI|w{dw`m54&+ z;Fz5gl`dySE3?tp0q`_pewMFoG|e?y>-Q!VDcp0L#%k8-&~&Yq(4- zO49Qg^(;^_G%^vpLFAq2DhaN=`l9F8_lT%{2n^&>MRxuAv2#a!mGb8W63OX}PsMT4S&YayWg1QPi zGwO1!&dPMQy{gX8$ypAsmhm#icUNT`&(bnL_73qUgLqo)>TyzPjvixl!ZdQx6WxK}nMYQ($b4JKs=j8+H58#cU&cB4!y$}7c zuX?O!O$YKDO|8I`(R?|%hN&+Q9^H0{@bkZW?kq{Um5@DH{<{VtB@e4)$1Ma5_;s5{u diff --git a/js/src/jsapi-tests/binast/parser/tester/switch-001.js b/js/src/jsapi-tests/binast/parser/tester/switch-001.js deleted file mode 100644 index 44e72985dae4..000000000000 --- a/js/src/jsapi-tests/binast/parser/tester/switch-001.js +++ /dev/null @@ -1,65 +0,0 @@ -/* -*- 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: switch-001.js - * ECMA Section: - * Description: The switch Statement - * - * A simple switch test with no abrupt completions. - * - * Author: christine@netscape.com - * Date: 11 August 1998 - * - */ -var SECTION = "switch-001"; -var VERSION = "ECMA_2"; -var TITLE = "The switch statement"; - -var BUGNUMBER="315767"; - -startTest(); -writeHeaderToLog( SECTION + " "+ TITLE); - -SwitchTest( 0, 126 ); -SwitchTest( 1, 124 ); -SwitchTest( 2, 120 ); -SwitchTest( 3, 112 ); -SwitchTest( 4, 64 ); -SwitchTest( 5, 96 ); -SwitchTest( true, 96 ); -SwitchTest( false, 96 ); -SwitchTest( null, 96 ); -SwitchTest( void 0, 96 ); -SwitchTest( "0", 96 ); - -test(); - -function SwitchTest( input, expect ) { - var result = 0; - - switch ( input ) { - case 0: - result += 2; - case 1: - result += 4; - case 2: - result += 8; - case 3: - result += 16; - default: - result += 32; - case 4: - result +=64; - } - - new TestCase( - SECTION, - "switch with no breaks, case expressions are numbers. input is "+ - input, - expect, - result ); -} diff --git a/js/src/jsapi-tests/binast/parser/tester/switch-002.binjs b/js/src/jsapi-tests/binast/parser/tester/switch-002.binjs deleted file mode 100644 index 1906560b1d9b725689ae1af03e40752e1ea40d5f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10566 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 ZJ+S7gTA38;??bQ{Irrg=cAZZ0{{b4CgoywE diff --git a/js/src/jsapi-tests/binast/parser/tester/switch-003.js b/js/src/jsapi-tests/binast/parser/tester/switch-003.js deleted file mode 100644 index 5ceaade69884..000000000000 --- a/js/src/jsapi-tests/binast/parser/tester/switch-003.js +++ /dev/null @@ -1,57 +0,0 @@ -/* -*- 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: switch-003.js - * ECMA Section: - * Description: The switch Statement - * - * Attempt to verify that case statements are evaluated in source order - * - * Author: christine@netscape.com - * Date: 11 August 1998 - * - */ -var SECTION = "switch-003"; -var VERSION = "ECMA_2"; -var TITLE = "The switch statement"; - -startTest(); -writeHeaderToLog( SECTION + " "+ TITLE); - -SwitchTest( "a", "abc" ); -SwitchTest( "b", "bc" ); -SwitchTest( "c", "c" ); -SwitchTest( "d", "*abc" ); -SwitchTest( "v", "*abc" ); -SwitchTest( "w", "w*abc" ); -SwitchTest( "x", "xw*abc" ); -SwitchTest( "y", "yxw*abc" ); -SwitchTest( "z", "zyxw*abc" ); -// SwitchTest( new java.lang.String("z"), "*abc" ); - -test(); - -function SwitchTest( input, expect ) { - var result = ""; - - switch ( input ) { - case "z": result += "z"; - case "y": result += "y"; - case "x": result += "x"; - case "w": result += "w"; - default: result += "*"; - case "a": result += "a"; - case "b": result += "b"; - case "c": result += "c"; - } - - new TestCase( - SECTION, - "switch with no breaks: input is " + input, - expect, - result ); -} diff --git a/js/src/jsapi-tests/binast/parser/tester/switch-004.binjs b/js/src/jsapi-tests/binast/parser/tester/switch-004.binjs deleted file mode 100644 index cc3af70a45719503ae28e8d9e19ba254dc8a589b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26087 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 L8>b1Il}`EpaW{ZX diff --git a/js/src/jsapi-tests/binast/parser/tester/try-003.js b/js/src/jsapi-tests/binast/parser/tester/try-003.js deleted file mode 100644 index 9244fcb5d9a5..000000000000 --- a/js/src/jsapi-tests/binast/parser/tester/try-003.js +++ /dev/null @@ -1,82 +0,0 @@ -/* -*- 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: try-003.js - * ECMA Section: - * Description: The try statement - * - * This test has a try with no catch, and a finally. - * - * Author: christine@netscape.com - * Date: 11 August 1998 - */ -var SECTION = "try-003"; -var VERSION = "ECMA_2"; -var TITLE = "The try statement"; -var BUGNUMBER="http://scopus.mcom.com/bugsplat/show_bug.cgi?id=313585"; - -startTest(); -writeHeaderToLog( SECTION + " "+ TITLE); - -// Tests start here. - -TrySomething( "x = \"hi\"", false ); -TrySomething( "throw \"boo\"", true ); -TrySomething( "throw 3", true ); - -test(); - -/** - * This function contains a try block with no catch block, - * but it does have a finally block. Try to evaluate expressions - * that do and do not throw exceptions. - */ - -function TrySomething( expression, throwing ) { - innerFinally = "FAIL: DID NOT HIT INNER FINALLY BLOCK"; - if (throwing) { - outerCatch = "FAILED: NO EXCEPTION CAUGHT"; - } else { - outerCatch = "PASS"; - } - outerFinally = "FAIL: DID NOT HIT OUTER FINALLY BLOCK"; - - try { - try { - eval( expression ); - } finally { - innerFinally = "PASS"; - } - } catch ( e ) { - if (throwing) { - outerCatch = "PASS"; - } else { - outerCatch = "FAIL: HIT OUTER CATCH BLOCK"; - } - } finally { - outerFinally = "PASS"; - } - - - new TestCase( - SECTION, - "eval( " + expression +" )", - "PASS", - innerFinally ); - new TestCase( - SECTION, - "eval( " + expression +" )", - "PASS", - outerCatch ); - new TestCase( - SECTION, - "eval( " + expression +" )", - "PASS", - outerFinally ); - - -} diff --git a/js/src/jsapi-tests/binast/parser/tester/try-004.binjs b/js/src/jsapi-tests/binast/parser/tester/try-004.binjs deleted file mode 100644 index aad744afd13e0a8bcfbad0dc7540f88c43dc60af..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7554 zcmds6OK%e~5Z>~B9Dpn0u^{#lHw;#6# z-g>pRRexD;#y#qlmc%=yFi807_lKT$7v3uA+xG|y$bLvSXfq^?@F0!^R7?F%yu%=B z4P*TVoVl~GVkV%1mKQ_;&jIw~t1TMw;2@w(z(u61gibgMqW0=dIHq1HH>z)Hr6u{S zv?M`vth#uAJK&U&P{19Luy4iVY_Pbz{KCY`aF>L|O7gg?Ai@!0=Ii?L6I$}u#aeQ& z^0q!JOWpv{E9ITF_s>krT)ZLwT$~}V!%>ZDW4mJNtw)4oKt4dU4)q}@{e%-vyO0wm z@)Q=Wob(t?63Fd(hA;Ai=FhFkStenqwu&81ctll7>DoG^@@>!*G-SL%lOhcztd6ea zm_`L8NvQ&1?LHbhv8wK%%zeN*X23R^K*N+Z;_bL?dQI@iXP`=hE!TsHuz}LcLzV&3 z1`-D14Cw*)SkUe$-jrm7Ku^>`x{=NS(!mh3CTLX9R|@8FZ;1*A=?Zc+M^4E;|7kf$ zx#@oizdK;11{*ZuGU3gRX)dADJlGOreyHR-(h|CLhw#qR-KvSMN8Luum3hQ*@%{(e zo}2!?<~<>KpP#@kF@@*oH_#3x$H~S+8X+1n1DSII12~68v%pRu7LQNW9RZ~vkY(8jxa}*L()&EaIh$FqYHq()j?+wYNj1^ zl(Eata{x8$ufp__#rfn$&b*!fpM4Qhk+)5G+AYym4Q_MQ^@=zYuAozwX_pyP3yV~; zTu>Pv*>62sCiHWS9;=;#o@YfCINRX8R+%KaMp9;>*he5IDQJ-><7`T5>*%`CeF=rZXP2cGWwrILhSS&$oi$I=t1Q+g~#gv7?wD@L|jZlTn%| zsFC@d1@EF{w2bu+;9NQnD-{YV8U;}j$r6Ab-yQKpMsFf66kNilM(9k6C>ifvfn)le z_MrQs*V@(3TDuyAV)fPghmquh#R~42#d9Z~6pMQg9z3-13fx^~v6epWOAz6h3Hx<= z`~@xf_jWD$y7Q{PE=zt5qIcTQpZxNJZJF&G^55+l@+&xM&>b9hY`tkjcn0Kmh&JIN z1Z9{>CixU{!bV=fqMg&3;8_N_-7oM}e(>_SGdbHVj?GrJV+fD9NhzwWM=E~xfjDFSMg}4pPYiErGD4uc<{)aM4M2JrV%-Fd3Wi3(GVUEw;UQg3 zu9nC-*_S^Z2N^egD&cnxtTYgdLE2_=II+#8blL%1V$3gH`JS|dZhg+=bUgiEg#BYCNP}k;-VRLSxZoVyhjY630zu~9{+3u;CImcq5+^HY$DPVF77=1 zzTOF*F?AKhX|p-7TIediK3g~Zxq=%)*gMc}*vZl<4+Tp`=``f0Lq5ZTeP=z+xoMo^ zJjRXyT_u-kv@znuD`B*wew+^9nfncSqrRiO2iTTKN(+O6>qV{Qya+Z>w0N=+ z+FY}dZ69iw6|Agb$`r{dj)K#E9RwZcmWw_Sn!ip#k; z(=pXX@|k`K^JiVn2AY&_+oWeB&_x+!*o2v$2lG>w9Yg|3K#YPSpf8m}n*z5gqE`ai zUYL7T;2*#!RsrV0C)l>A@s*uK)NCF|IHlpIGw_BDMRYRGci|yx=0W< zm_X$c!>q5EOHx%D-#&l2lGb!0=6sANuz((cI1hgU(~)t4^8f?Tq#=K7Y)f_WbPq^2 zj~(uzP#Y$f8ous<`Ot(-3y+!*t|%M}VsM2eAsUdSbYi(h+iKZl&>6R5HqW^7r7GE~ zOB%Y>!*MFAjN1!AC`#jy{_%em(ib;!VeIn%`pYVGZ+@E{a+%lveAI*Q6J}tj4!r^I zsq7%*IZnbNm#h?2hez?7MvGydM%2~gCuXN&;&l}r*sbHFw#_oCk(OC0_A78Z)+SB4 z!Fy)7f$m@fke&^Px{BdezY~%G(dML);E@=0m8!mdO;v<(OWm^GvP%oynulwwkj40I>{b A3IG5A diff --git a/js/src/jsapi-tests/binast/parser/tester/try-005.js b/js/src/jsapi-tests/binast/parser/tester/try-005.js deleted file mode 100644 index b50c5bf53665..000000000000 --- a/js/src/jsapi-tests/binast/parser/tester/try-005.js +++ /dev/null @@ -1,57 +0,0 @@ -/* -*- 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: try-005.js - * ECMA Section: - * Description: The try statement - * - * This test has a try with one catch block but no finally. Same - * as try-004, but the eval statement is called from a function, not - * directly from within the try block. - * - * Author: christine@netscape.com - * Date: 11 August 1998 - */ -var SECTION = "try-005"; -var VERSION = "ECMA_2"; -var TITLE = "The try statement"; - -startTest(); -writeHeaderToLog( SECTION + " "+ TITLE); - -TryToCatch( "Math.PI", Math.PI ); -TryToCatch( "Thrower(5)", "Caught 5" ); -TryToCatch( "Thrower(\"some random exception\")", "Caught some random exception" ); - -test(); - -function Thrower( v ) { - throw "Caught " + v; -} -function Eval( v ) { - return eval( v ); -} - -/** - * Evaluate a string. Catch any exceptions thrown. If no exception is - * expected, verify the result of the evaluation. If an exception is - * expected, verify that we got the right exception. - */ - -function TryToCatch( value, expect ) { - try { - result = Eval( value ); - } catch ( e ) { - result = e; - } - - new TestCase( - SECTION, - "eval( " + value +" )", - expect, - result ); -} diff --git a/js/src/jsapi-tests/binast/parser/tester/try-006.binjs b/js/src/jsapi-tests/binast/parser/tester/try-006.binjs deleted file mode 100644 index 237641e6393ba1f5ef525bd576e91490e294d554..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12542 zcmeHNPjB2r6nFVkKnMg9Cr*1Tf|3d(B%*DkX1hSDkW|@K;Y2m@PIgTkdpn+On*#^F z2A_iu!WoWm<}>i#c*cI-89U?Mb(+v#vWmxke}C`a%=G1A9`l|4jI+tkLy=AeI}2V5 zg5WrvoCmvm2MBmtfckbQ}g7@I9KK=X=6A?R(`F$S7OfVUxi6S*A z|IdQcD4A4g{RMPxTtq7sic~ZSq9l?90m^=F!V?*tL|iCx2|Fu=&ZLNv>CRigW;7g( z_YM#GTl!glOB12AM(X|jNOHkqMeZq!7fyOooZr54=PR3@p}VCl*4OM_2N9k!VZTn< zuV~3XFV~WfhDW1KS@I@`J{)|1@9`J5WiH>4e_x&<-vn0Uz489g)|(>26ObPwwHfaL zD0`V?lAl3L*p%0>=NvdwpphPfE0`{~s7n#v=;L8`Q} zD?#TW!&$p79X$eIO@iB7HV|9`ZRdvu!|0?#5|& zS_Z?#_5W9R#X{j2IhIs#-9&~nFgk!(2P8erjo~}|aWH&{jm6{9_-OCo+h&7%rgL<} zwkLkuW!U?vBc|)E%JvN?28TkypDqb^)r?B!c9R|E=tqxCYiy4}= zzj?4xmb7DaiDyWy`^}0S+P@%^6*tSYHq+~N21@KPioDWOX(rija9;cN_YyMXyP!mp z7HZhyR{+vBJ$?p0w%mNg{}9QU zjZ0;yUtIV);85;ObFQZ4O$mg(HVAa6DnyM)IK^WZQ`r&lEOXdb&3GKAHfX4Fpyiv$b*6u3S_>1u|G& z(lUJV^jCnZGc;jQ(pkam=TXRdL>QV>wjQ}%6&)$T%rl3r!n15+qmNIn`Uf~$xynO# z%u}jaT^mox{bX^$ROTTOYRl_qJPkAI;?|?y*HDhoRh7iPVs5(!8%NUww@OL^ZT2ee zmWHP~U6o;`0Usu`sn{O=^`PjYTw1qP>G_|#=b~WIzG>+qPpYrnq>hg~Fz>Y`K%LZG zF*~HajBpb|FGKt}E+0{6=?y54NYo!gG_^X`trmQ*_aPeK!gfw-uR^iMw zD_*Sx0d$QE!`$6Uo<1gFS3Kd0H}GOtd2asbzL%JXx@ z^kaAr-!)ffmL<+5vjo;`Dfbn#Qn!sIUR)Tk%mH+z*w{69d-xTLvDY1^4$ewDAnDmk z>un#bptpL>sbjU>0uReKH7gX29;8;B`#p_?Jx%Wu+e#*ssIY@HnM8PlfYJLq*#F`# zV8CLyBA38LqaaL^j6Yex-cC`3D4pwIbOx z++C&X93HmVU`}fVECVp}OJmMc?7FVLZaZc3jSjfG$c09c;jRG!P-W~M+0S43LH2?qr diff --git a/js/src/jsapi-tests/binast/parser/tester/try-006.js b/js/src/jsapi-tests/binast/parser/tester/try-006.js deleted file mode 100644 index 0a85200a1522..000000000000 --- a/js/src/jsapi-tests/binast/parser/tester/try-006.js +++ /dev/null @@ -1,87 +0,0 @@ -/* -*- 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: try-006.js - * ECMA Section: - * Description: The try statement - * - * Throw an exception from within a With block in a try block. Verify - * that any expected exceptions are caught. - * - * Author: christine@netscape.com - * Date: 11 August 1998 - */ -var SECTION = "try-006"; -var VERSION = "ECMA_2"; -var TITLE = "The try statement"; - -startTest(); -writeHeaderToLog( SECTION + " "+ TITLE); - -/** - * This is the "check" function for test objects that will - * throw an exception. - */ -function throwException() { - throw EXCEPTION_STRING +": " + this.valueOf(); -} -var EXCEPTION_STRING = "Exception thrown:"; - -/** - * This is the "check" function for test objects that do not - * throw an exception - */ -function noException() { - return this.valueOf(); -} - -/** - * Add test cases here - */ -TryWith( new TryObject( "hello", throwException, true )); -TryWith( new TryObject( "hola", noException, false )); - -/** - * Run the test. - */ - -test(); - -/** - * This is the object that will be the "this" in a with block. - */ -function TryObject( value, fun, exception ) { - this.value = value; - this.exception = exception; - - this.valueOf = new Function ( "return this.value" ); - this.check = fun; -} - -/** - * This function has the try block that has a with block within it. - * Test cases are added in this function. Within the with block, the - * object's "check" function is called. If the test object's exception - * property is true, we expect the result to be the exception value. - * If exception is false, then we expect the result to be the value of - * the object. - */ -function TryWith( object ) { - try { - with ( object ) { - result = check(); - } - } catch ( e ) { - result = e; - } - - new TestCase( - SECTION, - "TryWith( " + object.value +" )", - (object.exception ? EXCEPTION_STRING +": " + object.valueOf() : object.valueOf()), - result ); -} diff --git a/js/src/jsapi-tests/binast/parser/tester/try-007.binjs b/js/src/jsapi-tests/binast/parser/tester/try-007.binjs deleted file mode 100644 index 1a7d5b74195dc3106bc2097b90c53930f6888e8c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13660 zcmeHO&2Jk;6yNauArOcg7kmUkNr6M9$c>b^E*OQRicQ4@Rh#wLUb5LWv+FiK^uT|C z_^UX>l_Tm2apt|*nVo0P?0VMrrfuk@u06Z&^Y=dH&7_^prV-n3PnbX4zsHj?_bRCuOB2+=CyalGwmo$v;8Muc-}kkRGYqj-{+x!7O^`lh>jK}-01Dk%g zGw7Whw|C`l?OjQP(&~%nkHU;`KN92~`q9ivFXQtYH*elD=_$Iq!eVX7?qv|+q0i07 zDf=}o`N!2-@_zTUzb#9?2BLR6-yJ;o(zMLg8}jd~GvuqlYS0@Tbxpk~A{+tvAyS*L z7J#yqW`4#lASU)&tx>{ngt5tD1Jiadr<|oJ1bJUE5`n^s->p&F@uNt;D&7d-C#GYI zs_hWdZ-UC8D$fQi%_=mMWGQtm$0jOZwv;OPd^|&or&iS+lz9(mJ>rmdzJYwq_#in- z#->gpq5K9p(@2|#VeIp{*2}|m1KAt0F=Wt)jWUmiQdwJ^Fnivui@v|ggWpvaY0U+NhLLEi;(*@P#Lx|ac) zA~Vwll;mNQ1m`*!RyP8_z#|3<2gp%V!F3fG*1%{0VhxaVFgJ#8_lHjR9(EWH`h(Nn z@z>P`cg*YPh&@OA*2}PWl8mGaF(JZ48v}gAPSrX^Auw?^QUj zejj`V8S-sVB2Ef5Oz{^0Qa3$*20k|2e9E#JU+S7F^W*<1qMu$Q>wLCYx>&7-7BlF! zy1_Sq)_~9NCcI~<+rmtim2y&XwKJY0WbtPYS-)?9tXB|O zN#t(~ta=4w5mg|A(I+kACr^L{x*CHMmL-`M)M$@l)*-~uq*?7vx2>ilCD`>$VQP4h zZf*19lC1s$&PK9w&>a(%XjeDJ6LKHTEcv~rH&9zvzRQy^qeN?O_CA7wgsxi1>}w{s z0~j5RV;q)f0(GVpx3%G^PS47ArUD--w5iyeAx=?LpOmt;ZmrsL&E2yqSfmB1Ast-g zNcDxA#7UBaK{1Mg2@B43uq)%K&zdeO&9;i3`lNJU#8BB`+RBLyHKVHh+MLxVjr85x zwdx;$&gMJs=ct@0;Mxj3ImQLEm@TNZ^n$@1-znJ2m#>&T6! zq&z$b%_p#yoM#!1)SXBjz|;e8FoNTB+y0<-Kn9?h5s+fE zp;@E1$RX9XPC=0E)HEl>&W4_$q-tB{S5VuqOmC#kf*!$*mKP*(%6^_f(`@(2nx}tA z|8_}3{e9JeBFvaZ;iY-FBTp3(%h`O&5693`Cgi}PMY&#nb-`aGG?8;2BS$Q&86y-HB{3q|QtoT|xw*3@(PTr{)A3WPk(5~| z_9IjUV<73^SLfSB4O}B>fTUxu@fKi89VdR=s?Hq_M#PF-x>KXS}ZT^NfqKY_>avUyFs?UR3H3#JlL{9@G z9o*U2tsIOW*Q;XJ1RyFks81RL4z8%$TF7ovQ7%67x=I;cU5ER0xUT4{5q2d_eg1RD zpTe~#Yoq@;y!-*Yul`1&IyU5Pz*@uQ8YY#cOZ9Ta-c-;<!nY*h9Ic83ZDm{`1dh9DY`)NX8A2#!rJ&#Ah}iv5^J`|r75yQ9-;pMso6zK diff --git a/js/src/jsapi-tests/binast/parser/tester/try-007.js b/js/src/jsapi-tests/binast/parser/tester/try-007.js deleted file mode 100644 index 93e08a0a1765..000000000000 --- a/js/src/jsapi-tests/binast/parser/tester/try-007.js +++ /dev/null @@ -1,92 +0,0 @@ -/* -*- 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: try-007.js - * ECMA Section: - * Description: The try statement - * - * This test has a for-in statement within a try block. - * - * - * Author: christine@netscape.com - * Date: 11 August 1998 - */ -var SECTION = "try-007"; -var VERSION = "ECMA_2"; -var TITLE = "The try statement: for-in"; - -startTest(); -writeHeaderToLog( SECTION + " "+ TITLE); - -/** - * This is the "check" function for test objects that will - * throw an exception. - */ -function throwException() { - throw EXCEPTION_STRING +": " + this.valueOf(); -} -var EXCEPTION_STRING = "Exception thrown:"; - -/** - * This is the "check" function for test objects that do not - * throw an exception - */ -function noException() { - return this.valueOf(); -} - -/** - * Add test cases here - */ -TryForIn( new TryObject( "hello", throwException, true )); -TryForIn( new TryObject( "hola", noException, false )); - -/** - * Run the test. - */ - -test(); - -/** - * This is the object that will be the "this" in a with block. - * The check function is either throwException() or noException(). - * See above. - * - */ -function TryObject( value, fun, exception ) { - this.value = value; - this.exception = exception; - - this.check = fun; - this.valueOf = function () { return this.value; } -} - -/** - * This function has a for-in statement within a try block. Test cases - * are added after the try-catch-finally statement. Within the for-in - * block, call a function that can throw an exception. Verify that any - * exceptions are properly caught. - */ - -function TryForIn( object ) { - try { - for ( p in object ) { - if ( typeof object[p] == "function" ) { - result = object[p](); - } - } - } catch ( e ) { - result = e; - } - - new TestCase( - SECTION, - "TryForIn( " + object+ " )", - (object.exception ? EXCEPTION_STRING +": " + object.value : object.value), - result ); - -} diff --git a/js/src/jsapi-tests/binast/parser/tester/try-008.binjs b/js/src/jsapi-tests/binast/parser/tester/try-008.binjs deleted file mode 100644 index 0c3174f12fef9a2fc9ae0c9f8c4f00fed8bb614f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11748 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 diff --git a/js/src/jsapi-tests/binast/parser/tester/try-009.js b/js/src/jsapi-tests/binast/parser/tester/try-009.js deleted file mode 100644 index d3e0ebaa23b0..000000000000 --- a/js/src/jsapi-tests/binast/parser/tester/try-009.js +++ /dev/null @@ -1,66 +0,0 @@ -/* -*- 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: try-009.js - * ECMA Section: - * Description: The try statement - * - * This test has a try block within a while block. Verify that an exception - * breaks out of the while. I don't really know why this is an interesting - * test case but Mike Shaver had two of these so what the hey. - * - * Author: christine@netscape.com - * Date: 11 August 1998 - */ -var SECTION = "try-009"; -var VERSION = "ECMA_2"; -var TITLE = "The try statement: try in a while block"; - -startTest(); -writeHeaderToLog( SECTION + " "+ TITLE); - -var EXCEPTION_STRING = "Exception thrown: "; -var NO_EXCEPTION_STRING = "No exception thrown: "; - - -TryInWhile( new TryObject( "hello", ThrowException, true ) ); -TryInWhile( new TryObject( "aloha", NoException, false )); - -test(); - -function TryObject( value, throwFunction, result ) { - this.value = value; - this.thrower = throwFunction; - this.result = result; -} -function ThrowException() { - throw EXCEPTION_STRING + this.value; -} -function NoException() { - return NO_EXCEPTION_STRING + this.value; -} -function TryInWhile( object ) { - result = null; - while ( true ) { - try { - object.thrower(); - result = NO_EXCEPTION_STRING + object.value; - break; - } catch ( e ) { - result = e; - break; - } - } - - new TestCase( - SECTION, - "( "+ object +".thrower() )", - (object.result - ? EXCEPTION_STRING + object.value : - NO_EXCEPTION_STRING + object.value), - result ); -} diff --git a/js/src/jsapi-tests/binast/parser/tester/try-010.binjs b/js/src/jsapi-tests/binast/parser/tester/try-010.binjs deleted file mode 100644 index 182f449ab696c139a86b558f5be543e3d99f328a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15697 zcmeHO&2Q^O5I5f-B=iJ`1LEKVw+gi&ai9vJZC)M?3dvIwJ#nktWSf}h+R=LR`of97 zfg@Lh;BSHpcO*V8oSE6Iz3X`GtP?v;+w{;jS$n)Q^PAty&aP{0I`K%oHYU!n{+I?M z>ReebT9$PY3}@C!tMgUwur~-M#H#J{Yigbwvih%|S=Ix%s;1ul#G$Tp;gN@A;5pP` zZs2oKL-{$hp1S@pDeHHT^TIM&0p+6Hq2>B6iv_5UZw-mh+)I~GF3xwZCwB&D_wd9lLS+6Whz6w)sHoiVS|0Hdh%^UK+%^C6)cvQdDZ#UC=tB5cJ zywb>Xeh+0(&aqXQ2}{VsNm4i6m1`BRX0!u+4Y(N z0i6Of6WR~j!6>a0r}4} zpO@jfL}_gpOz+Np9mi8>_jy32wO1q6fac!hf@8UxmDhnxO5H(bH4byLtnZsgaV0M} zB4*s>1T6i1o6!5`_Mx}626{gLH*&n%G0<$NTDwzNh1uE|E{Ni{q6ftCw-CtI=?=)e z({QsiTmg_#>+qx(Tda)B|^InD7z2buNGbxWh)xp^S7D$;x z5)P=#SDI@h7aNugN_n4@C8~cNlp+dxaZ^vTx)4>d>XQ@f16aS+RIN zhL+*T$0nH+P^3%sxwMw5)5AcOhbjepxn)f#w!hfS(nU{y?1suT;I8OVmW zz$}nxIr2_SGD}38T5)Pr6}g$+q2l`z+fpCk&JjOUAj_BtlbL_#jm(7A?+(lhH8l!j z{1+X@&j_2+g|o4iV@bC%`PGR&R$!nM|W-HGTre8aw{bgR^Rva8Sc@zk~mD z>(atJ_b)V2%5qJy6FRFAj-j8j(5xETP*hge#>AI5fN|_#>}B*i3^iT>U??MA#WXJLcXMBXTxEGal><_A>q`` zyXvK_9x;-a^r#CbnLS-GecyrdpmLz71ueRD{<%%qd~1dbJ8E@Z*)5cZXkbm|v@1bJMA$nfQay6tndqPrtf>~>F%f^?!F0QFt7`b8 zO3)E8k&2QPhJt_ISh)&L>R26DLNI=#mG*6p4#{vgA;rpCE=bTUugd$=hsmfb!oz V!<0}?C5XzyM6TzxL9Pw%{{c6e-3R~x diff --git a/js/src/jsapi-tests/binast/parser/tester/try-010.js b/js/src/jsapi-tests/binast/parser/tester/try-010.js deleted file mode 100644 index 5ee472c3b73e..000000000000 --- a/js/src/jsapi-tests/binast/parser/tester/try-010.js +++ /dev/null @@ -1,73 +0,0 @@ -/* -*- 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: try-010.js - * ECMA Section: - * Description: The try statement - * - * This has a try block nested in the try block. Verify that the - * exception is caught by the right try block, and all finally blocks - * are executed. - * - * Author: christine@netscape.com - * Date: 11 August 1998 - */ -var SECTION = "try-010"; -var VERSION = "ECMA_2"; -var TITLE = "The try statement: try in a tryblock"; - -startTest(); -writeHeaderToLog( SECTION + " "+ TITLE); - -var EXCEPTION_STRING = "Exception thrown: "; -var NO_EXCEPTION_STRING = "No exception thrown: "; - - -NestedTry( new TryObject( "No Exceptions Thrown", NoException, NoException, 43 ) ); -NestedTry( new TryObject( "Throw Exception in Outer Try", ThrowException, NoException, 48 )); -NestedTry( new TryObject( "Throw Exception in Inner Try", NoException, ThrowException, 45 )); -NestedTry( new TryObject( "Throw Exception in Both Trys", ThrowException, ThrowException, 48 )); - -test(); - -function TryObject( description, tryOne, tryTwo, result ) { - this.description = description; - this.tryOne = tryOne; - this.tryTwo = tryTwo; - this.result = result; -} -function ThrowException() { - throw EXCEPTION_STRING + this.value; -} -function NoException() { - return NO_EXCEPTION_STRING + this.value; -} -function NestedTry( object ) { - result = 0; - try { - object.tryOne(); - result += 1; - try { - object.tryTwo(); - result += 2; - } catch ( e ) { - result +=4; - } finally { - result += 8; - } - } catch ( e ) { - result += 16; - } finally { - result += 32; - } - - new TestCase( - SECTION, - object.description, - object.result, - result ); -} diff --git a/js/src/jsapi-tests/binast/parser/tester/try-012.binjs b/js/src/jsapi-tests/binast/parser/tester/try-012.binjs deleted file mode 100644 index 7974cc3db15e2a835305ff4ec9d52af0da448127..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12422 zcmeHN-EQMV6!!A}Cj_@3BvXL^p;duOfU0ao;=0>FHmw?W1y^XAOcSfFUB=FK!y|yi z18{-3MZk0L4!|8R!a3uyXS}xKaemsS%1zV6o^xi-eCInqGmU6`;nAJOh?2q1Aq$3# zoEuLWhH(-MCPu5>{j#^+>jxLqXl(L#8lD?QJM^w$ybNzO)Zq^abIFNEcWK`vj6`nW zb5R5NJv7c-e~^{+56HPwB`aWDlshn7-;GiMs`~bT`jLC;QpUyk4L&Irc5n@&8avt+60ppEW0%5~3 zVm2&Xy2fH&16h|0hp8;MFc$E01Y0RB8_YpbD zt+e$|bJ!Yl+-SstOLOBS2-fD-fc6h_m>W4OHuu)bAshK|zBv30uD*5%-W&UUEVb0C z3nf9RbOBY^d01Y`sa&DK*_zz;D=5!#n}+z8U>r?TpXvLrAr5JhW2umZ1>va{Xn8^Z zOvaJwBKWVj3`0kLOLKpd=co z0ySgQyC8J0+3swcyX{@Gd*GP+ZO3ePyY`W}*X}kuoo~!m=fL_ZuPxD9f&i39gO33pva`;iTEPy9ydRtTeOI#6x7>YnmE z$MVQHq&y$zHPymODx4b4Z;m>F+RXV*5p%9`=Dg0c@W}AG@~pYAxGs81wk|1pws~P3 z=Vn&ZvG#S#;tDPWUP*XUHhJsO<}?u*P!v*lhemNniVnJP5--nlc;I;hg!90ooSvvW z7-vK&zYBF4t#zxlFF+qxsY;nKV&AfYK|kAB0O}TC{w}?g8^=@FMdeG_|G`sGi-am1 z#hf`R|A71q4VLNSXyi=V=W$CoE?k00&E^gsonr#}zBxV1(J)|T(kXUH1(@b6--cP5 zA8eaA(=oIU2PUs5OkP-e6O&iE`2{5WG=s)+ms5plSf#psTat{cdZagHD_okkuZdlb9zokz2=h_KxofB>dCsd+g z?1d{54X5|hOB}HxvBkonR%=QPlj>nqZ9x?i!#;d0AMOli3$FNQi(EuwmK0%A)(~Ip z{v9UxD#%Q(E0du>6vNqBD2%SUf9B5f$0Rtzu<7htCtI zo67iNbcq*AZc>V;nDb@tcZdhYr_SPG#f8SWQs#eu0r_b4WbdZ!PURjf$4)VtbDiA( E0hRT(U;qFB diff --git a/js/src/jsapi-tests/binast/parser/tester/try-012.js b/js/src/jsapi-tests/binast/parser/tester/try-012.js deleted file mode 100644 index 3ee7d10266ba..000000000000 --- a/js/src/jsapi-tests/binast/parser/tester/try-012.js +++ /dev/null @@ -1,95 +0,0 @@ -/* -*- 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: try-012.js - * ECMA Section: - * Description: The try statement - * - * This test has a try with no catch, and a finally. This is like try-003, - * but throws from a finally block, not the try block. - * - * Author: christine@netscape.com - * Date: 11 August 1998 - */ -var SECTION = "try-012"; -var VERSION = "ECMA_2"; -var TITLE = "The try statement"; -var BUGNUMBER="336872"; - -startTest(); -writeHeaderToLog( SECTION + " "+ TITLE); - -// Tests start here. - -TrySomething( "x = \"hi\"", true ); -TrySomething( "throw \"boo\"", true ); -TrySomething( "throw 3", true ); - -test(); - -/** - * This function contains a try block with no catch block, - * but it does have a finally block. Try to evaluate expressions - * that do and do not throw exceptions. - * - * The productioni TryStatement Block Finally is evaluated as follows: - * 1. Evaluate Block - * 2. Evaluate Finally - * 3. If Result(2).type is normal return result 1 (in the test case, result 1 has - * the completion type throw) - * 4. return result 2 (does not get hit in this case) - * - */ - -function TrySomething( expression, throwing ) { - innerFinally = "FAIL: DID NOT HIT INNER FINALLY BLOCK"; - if (throwing) { - outerCatch = "FAILED: NO EXCEPTION CAUGHT"; - } else { - outerCatch = "PASS"; - } - outerFinally = "FAIL: DID NOT HIT OUTER FINALLY BLOCK"; - - - // If the inner finally does not throw an exception, the result - // of the try block should be returned. (Type of inner return - // value should be throw if finally executes correctly - - try { - try { - throw 0; - } finally { - innerFinally = "PASS"; - eval( expression ); - } - } catch ( e ) { - if (throwing) { - outerCatch = "PASS"; - } else { - outerCatch = "FAIL: HIT OUTER CATCH BLOCK"; - } - } finally { - outerFinally = "PASS"; - } - - - new TestCase( - SECTION, - "eval( " + expression +" ): evaluated inner finally block", - "PASS", - innerFinally ); - new TestCase( - SECTION, - "eval( " + expression +" ): evaluated outer catch block ", - "PASS", - outerCatch ); - new TestCase( - SECTION, - "eval( " + expression +" ): evaluated outer finally block", - "PASS", - outerFinally ); -} diff --git a/js/src/jsapi-tests/binast/parser/tester/unicode-001.binjs b/js/src/jsapi-tests/binast/parser/tester/unicode-001.binjs deleted file mode 100644 index 537e8e34c2bb7819af0fbd313189daee41993b1d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17042 zcmeHO&2A$_5FY;j1mePtgONCFv=ApNPAkhRC!3Xmmh2LTNQj@%ndvyQ8IP@=@sdcq z2!bc!DLBIua6vo*RWsew?fFaD(*!#^ImEJirnDAf9%IxupklloCULjybnO$As_8sPP?z_jQJ)A>ZYA^tq4Sh8{Cwn1DH+WyUL>2_gq|n@9_7}gHj9S zUdAU?OjWQmopB%pyV4$+Vkt;)rQIo+`vZ_vAbKK2RG3djDWzBb>+QnM_ZF~&*h}5o z2wAqlgVZL$bI%TXkP`-m#%jV%MO5l7tWTL&eVS(0P+z;? z(*npwXsmK2(@9zYrOVY@1|SY|Z!3G-9_ehzb^ywm$T&@%%chnXf{4;q z6GVp%qEOAiU#LKIWC2IHjMz4Wu;SAl*g;QD)dt8ZTl$rWTTSS+3m~Vg+DR@R9KTqw zp(I+wh*P@kYk||x3LyFLbGs@BHmYuUZ?qk7UQGhd>eUO@96D{$0QMG2w%Eu)=gT(e z;Kr-Dx+eymJY%%+=6{Gcn0q(ds6t|n7v7_KGz(qaSvNP?Q4;KoPhr!2998e!o33Va z@9Cp5BojKoMTg)cemT_@i!xs(hGBo1Sf+$w9V+B;G;Tk_Cq0S`y?cC^vi=U8*~3g0*>FnaT+)R6Y#Ux5&r00pMa6+BGS=a z-O-$t*FvOakP|~G0==`zFS&b18&7eN`ZSG6Q1e>Am&qmSiv`$?%_{hp2_`5^Wt4}L zSYs_Yjx{-b#@*PN3iQzUD%;OCEtWgrfgmTHj##cY;&3g+3FIPlo@(Dokp2`NLx9d9 zouFxL7|N}zO_LKu*UhsYtkyf|WdHHud1>dvy`R zbgU(Bb^KPgmdMMpcUwjlb&3ldb11n}0ia>#Gg(NJ&rADCS0Y`1X;KpDX~j*2i3C9! z{Bi_A(11`=TX0OIMW2*uivB8bYrWP>*Z!&~r7k&Sb1o+rSNeA=YEp#ZBSTkCfO0ES z%Z00nKR_3SWw{=u2KhRyXn%sqZL5hYvuMH@6)yW9h$Nt(U3d49M>f9EM6R%}K1~iF zSae}tA!eya65r9Z+!4&Z;L8+K3FEULHWs$n^5bhu7OPmYAUQxq<}80UL2BMA2he1B zg95brta=BLmdb#Q}% diff --git a/js/src/jsapi-tests/binast/parser/tester/unicode-001.js b/js/src/jsapi-tests/binast/parser/tester/unicode-001.js deleted file mode 100644 index ab6fbd372ee9..000000000000 --- a/js/src/jsapi-tests/binast/parser/tester/unicode-001.js +++ /dev/null @@ -1,59 +0,0 @@ -/* -*- 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/unicode-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/unicode-001.js"; -var VERSION = "ECMA_2"; -var TITLE = "new RegExp( pattern, flags )"; - -startTest(); - -// These examples come from 15.7.1, UnicodeEscapeSequence - -AddRegExpCases( /\u0041/, "/\\u0041/", "A", "A", 1, 0, ["A"] ); -AddRegExpCases( /\u00412/, "/\\u00412/", "A2", "A2", 1, 0, ["A2"] ); -AddRegExpCases( /\u00412/, "/\\u00412/", "A2", "A2", 1, 0, ["A2"] ); -AddRegExpCases( /\u001g/, "/\\u001g/", "u001g", "u001g", 1, 0, ["u001g"] ); - -AddRegExpCases( /A/, "/A/", "\u0041", "\\u0041", 1, 0, ["A"] ); -AddRegExpCases( /A/, "/A/", "\u00412", "\\u00412", 1, 0, ["A"] ); -AddRegExpCases( /A2/, "/A2/", "\u00412", "\\u00412", 1, 0, ["A2"]); -AddRegExpCases( /A/, "/A/", "A2", "A2", 1, 0, ["A"] ); - -test(); - -function AddRegExpCases( - regexp, str_regexp, pattern, str_pattern, length, index, matches_array ) { - - 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] ); - } -} diff --git a/js/src/jsapi-tests/binast/parser/tester/while-001.binjs b/js/src/jsapi-tests/binast/parser/tester/while-001.binjs deleted file mode 100644 index 8ca95ad2805f27e8aa7e69554aadb6a20c8bc72c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4573 zcmeHK&2AGh5MKTYoZu01FotC}|&%$ePLE^xh zFypn?4(o0+SYG3T@u&nQV+??g5g_G~ zp`ln3v6QI-z+b+X&{VMrqe8=_n~==Iw}ZH8-o;G=;$sc<_kE_Q zAY8+p6TT?n-3Ppj8RPWH{{GW4qD5}%n8jwnTQKRIi1O$D2Cf;)AAr5XSRQxZ54RP| zJ=l7;^XBl=vvOp1AIM+33*;SGYSbI`yJgcY}C#zsv=d z5^8&B@wMV;@jh6b9m2Vrs%MPh6?G-$bFERzSbD%vs1cP_3=OQ0?)I?>1vE)Rfr#k> z11*EpYmj+}NfY2UufT?>7-juzTF#nwk*`qRr3!Del!!~mD?*O}(*_d;&Es%4oFCGI6xioDeKV-I91!1g@ zvJZHCT^%7y#FxguLf|$KP-|EJ%SAfI*2M2puw0nwe~Zf+TrG%DbKZs96on`O-HgfPBd zZrg$qudYI=GClcH#=P53aEkdjlxVlEHR=!vrv61*- zH6m1Ha7K7mM8$vJIQR?sw{Hkh$!+Y^>&#gpfApbzdANw?CnZe=aHE#yb%)H=LfCiK zE;WZekQH|4wuFPHp=m&aQZi$KZp(~>we3Nc?xkidlovB}#eKqzmRk)ou%dI%ld69| TLP+${ZDv+cuOt{E5f;^Nl_Sf1 diff --git a/js/src/jsapi-tests/binast/parser/tester/while-001.js b/js/src/jsapi-tests/binast/parser/tester/while-001.js deleted file mode 100644 index 88fd8dfe840f..000000000000 --- a/js/src/jsapi-tests/binast/parser/tester/while-001.js +++ /dev/null @@ -1,42 +0,0 @@ -/* -*- 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: while-001 - * ECMA Section: - * Description: while statement - * - * Verify that the while statement is not executed if the while expression is - * false - * - * Author: christine@netscape.com - * Date: 11 August 1998 - */ -var SECTION = "while-001"; -var VERSION = "ECMA_2"; -var TITLE = "while statement"; - -startTest(); -writeHeaderToLog( SECTION + " "+ TITLE); - -DoWhile(); -test(); - -function DoWhile() { - result = "pass"; - - while (false) { - result = "fail"; - break; - } - - new TestCase( - SECTION, - "while statement: don't evaluate statement is expression is false", - "pass", - result ); - -} diff --git a/js/src/jsapi-tests/binast/parser/tester/while-002.binjs b/js/src/jsapi-tests/binast/parser/tester/while-002.binjs deleted file mode 100644 index 19ca8c9db45f7ed60477891c24c917320f46ff12..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13384 zcmeHOTW{k;6n42^ga8Qy4kh1%@n#7Z2sA~t0({82x z13ayG~6$*oOy`;sWWd_L#Qcdp~q;?dBj_1b_E zul`jO_9JrSJmok}C-hF8?cLU`_O*6598#yYkz7;r8IS8fZ#vE^a8*se{SJv3>G*Vq zc6}0&n1w+C<*DD?Ib?yC$NC#^)+S+vQ3Az0hXpLo0QAT2dNhbxkI^WB3&@cYn#U0f z`t|4GG3{pKV0XV&+YrZU8v;bfYA4t4v6x20PvDM;KPuq82zVz0=F^WhH$N^SO5}~i zW;OA^r{Sh!5*07k1(?y6e**Ry+VW2GoA#n?`5cJeY}~$aZzT-*=z*o6mjPuX7m0qqMUuuB!vnj>W|RS+^D*RGOyvHMG$RnLKvpeLAV$8i>sDI zk)Oc53m(4B0ur4ny&Q}&5VRo(L*VpjFLolw~LJpc()sh%rCECc1+a9ARqgiKL^zqdgW-uejDa`@XG83y{Zq?7kzD zS4Lxz8=iqjABRjmVJ&Z0$aoR!R{4RXn=X;1Kipc7Ke$h{L;Sv)QTzQl9OBIqhuExk zgw|xX&cMMHR*a_2XGw{IHsF`=2>z`c4T=F^6AWU;m)E)H?mfnx#c{8W`14 zh@t=qw{F8}P&=POEn_y^2027zk8G+kMqyn|OWey`U^m#RuHgS&&0O&L98UHY5YAK_ zwaA3&o<*yNUByJ4C!D|-DCQgDU^I%Sp5J^i3c5I4*5}NK1jFGW%$<*T`S4l~KNc*o z?L+^7rx*HA3w*SoDzLMdIi-|{VrblFK;fnFTL;_5R#VL`Fg;c87W@aRQ!tMj9VnVI4{+M10HzstZ7CIX*qumAacnjPTrb#sUt)nW%E*HqF%iWu7zOKx(&_yyhvRoYb zeYr@J_W51{FXD20!W7hm33W?aI#C6hTpv;L>friDswqmyTj#y!>{8?8nejd-ieV== zHnOlXZUm;m*Wg%b2b?q0wAtwE*BuATg`8ZrzJ z0g1)lql&BU3E|pC{FU3o7YxqEx&aynIeGVOF4?ZbAnB1wag0Wf~)AN+Arj>O2x+5e6FR|uOQ%3ORbAg z#?Lh1or0!jX6e+i@GwkZWy6It>MwMO_30Use7Z&@b*3^rtZ!00c;!CbQKDW8{yV_M z;RYGTqbPsO*dwL?jQ9*HjyC{P&Wnw6GM@e&p<;VUT!GT%l9xDc>^{Uf!&|E2jJX}s zAPevFi*smnZJ$aUEv2${m)3TPqh(cxIBiJS;*6=P(oT)@Rh&Z6wW*dkTJrX|I9t|g yi_;jx^1GJeL}gAE*GzcTJ0)xK`6E0At)Vli@aGkQTDh`wS$y2Asrwh^0sjL=(-{c> diff --git a/js/src/jsapi-tests/binast/parser/tester/while-002.js b/js/src/jsapi-tests/binast/parser/tester/while-002.js deleted file mode 100644 index a3c315bf2064..000000000000 --- a/js/src/jsapi-tests/binast/parser/tester/while-002.js +++ /dev/null @@ -1,86 +0,0 @@ -/* -*- 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: while-002 - * ECMA Section: - * Description: while statement - * - * Verify that the while statement is not executed if the while expression is - * false - * - * Author: christine@netscape.com - * Date: 11 August 1998 - */ -var SECTION = "while-002"; -var VERSION = "ECMA_2"; -var TITLE = "while statement"; - -startTest(); -writeHeaderToLog( SECTION + " "+ TITLE); - -DoWhile( new DoWhileObject( - "while expression is null", - null, - "result = \"fail: should not have evaluated statements in while block;break" - ) ); - -DoWhile( new DoWhileObject( - "while expression is undefined", - void 0, - "result = \"fail: should not have evaluated statements in while block; break" - )); - -DoWhile( new DoWhileObject( - "while expression is 0", - 0, - "result = \"fail: should not have evaluated statements in while block; break;" - )); - -DoWhile( new DoWhileObject( - "while expression is eval(\"\")", - eval(""), - "result = \"fail: should not have evaluated statements in while block; break" - )); - -DoWhile( new DoWhileObject( - "while expression is NaN", - NaN, - "result = \"fail: should not have evaluated statements in while block; break" - )); - -test(); - -function DoWhileObject( d, e, s ) { - this.description = d; - this.whileExpression = e; - this.statements = s; -} - -function DoWhile( object ) { - result = "pass"; - - while ( expression = object.whileExpression ) { - eval( object.statements ); - } - - // verify that the while expression was evaluated - - new TestCase( - SECTION, - "verify that while expression was evaluated (should be "+ - object.whileExpression +")", - "pass", - (object.whileExpression == expression || - ( isNaN(object.whileExpression) && isNaN(expression) ) - ) ? "pass" : "fail" ); - - new TestCase( - SECTION, - object.description, - "pass", - result ); -} diff --git a/js/src/jsapi-tests/binast/parser/tester/while-003.binjs b/js/src/jsapi-tests/binast/parser/tester/while-003.binjs deleted file mode 100644 index accc07368888cd6033498c6374bf77404c2883cd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13218 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 diff --git a/js/src/jsapi-tests/binast/tokenizer/tester/test-empty-untagged-tuple.binjs b/js/src/jsapi-tests/binast/tokenizer/tester/test-empty-untagged-tuple.binjs deleted file mode 100644 index a4386f1d20cd..000000000000 --- a/js/src/jsapi-tests/binast/tokenizer/tester/test-empty-untagged-tuple.binjs +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/js/src/jsapi-tests/binast/tokenizer/tester/test-nested-lists.binjs b/js/src/jsapi-tests/binast/tokenizer/tester/test-nested-lists.binjs deleted file mode 100644 index d20681c3cc1dd283dee8568cfaa854af41335d5f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 90 zcmcD?$t*6h^JHLPU<6_tFwX?YVgm7sONuh{((Ram?6mxR8+|ArSv)DR2qCTy)@}o# E0Px}%*Z=?k diff --git a/js/src/jsapi-tests/binast/tokenizer/tester/test-simple-string.binjs b/js/src/jsapi-tests/binast/tokenizer/tester/test-simple-string.binjs deleted file mode 100644 index 4dd9869685ebb23c52fa3f61a299fb94df82428b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 34 fcmcC1E-A{)OSj`?U|=ZD%q_@CRe*@t=tE@y!tV>9 diff --git a/js/src/jsapi-tests/binast/tokenizer/tester/test-simple-tagged-tuple.binjs b/js/src/jsapi-tests/binast/tokenizer/tester/test-simple-tagged-tuple.binjs deleted file mode 100644 index 395fdb4476b5632e0445b8e17aa76c3f91c31a57..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 81 zcmcC1DJ{rJwX?}cO-!*1NGvHyEy`nHVqjp%OkpTX%qdM}u+az0*%X%)W#*;ZF$3k& X^7C!?EJBFugS7(yf`AkA diff --git a/js/src/jsapi-tests/binast/tokenizer/tester/test-trivial-untagged-tuple.binjs b/js/src/jsapi-tests/binast/tokenizer/tester/test-trivial-untagged-tuple.binjs deleted file mode 100644 index 7100fae76b620b7ecce0e6b7304c10ecaccd0823..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 63 qcmcC1DJ{rJwX-QMDay=Cw_|2tU`Wf)x6z04k;Rh|ixA@a5PblXG8CBr diff --git a/js/src/jsapi-tests/moz.build b/js/src/jsapi-tests/moz.build index 3033d4804397..531fe083fa0d 100644 --- a/js/src/jsapi-tests/moz.build +++ b/js/src/jsapi-tests/moz.build @@ -137,17 +137,6 @@ if CONFIG['ENABLE_STREAMS']: 'testReadableStream.cpp', ] -if CONFIG['JS_BUILD_BINAST'] and CONFIG['JS_STANDALONE']: - # Standalone builds leave the source directory untouched, - # which lets us run tests with the data files intact. - # Otherwise, in the current state of the build system, - # we can't have data files in js/src tests. - UNIFIED_SOURCES += [ - 'testBinASTReader.cpp', - 'testBinTokenReaderTester.cpp' - ] - - DEFINES['EXPORT_JS_API'] = True LOCAL_INCLUDES += [ diff --git a/js/src/jsapi-tests/testBinASTReader.cpp b/js/src/jsapi-tests/testBinASTReader.cpp deleted file mode 100644 index 0a8200988e0d..000000000000 --- a/js/src/jsapi-tests/testBinASTReader.cpp +++ /dev/null @@ -1,215 +0,0 @@ -/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- - * vim: set ts=8 sts=4 et sw=4 tw=99: - */ -/* 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/. */ - - -#if defined(XP_UNIX) - -#include -#include - -#elif defined(XP_WIN) - -#include - -#endif - -#include "jsapi.h" - - -#include "frontend/BinSource.h" -#include "frontend/FullParseHandler.h" -#include "frontend/ParseContext.h" -#include "frontend/Parser.h" -#include "gc/Zone.h" -#include "js/Vector.h" - -#include "jsapi-tests/tests.h" - -#include "vm/Interpreter.h" - -using UsedNameTracker = js::frontend::UsedNameTracker; -using namespace JS; -using namespace js; - -extern void enterJsDirectory(); -extern void exitJsDirectory(); -extern void readFull(const char* path, js::Vector& buf); - -void -readFull(JSContext* cx, const char* path, js::Vector& buf) -{ - buf.shrinkTo(0); - - js::Vector intermediate(cx); - readFull(path, intermediate); - - if (!buf.appendAll(intermediate)) - MOZ_CRASH("Couldn't read data"); -} - -BEGIN_TEST(testBinASTReaderECMAScript2) -{ - const char BIN_SUFFIX[] = ".binjs"; - const char TXT_SUFFIX[] = ".js"; - - CompileOptions options(cx); - options.setIntroductionType("unit test parse") - .setFileAndLine("", 1); - -#if defined(XP_UNIX) - - const char PATH[] = "jsapi-tests/binast/parser/tester/"; - - // Read the list of files in the directory. - enterJsDirectory(); - DIR* dir = opendir(PATH); - exitJsDirectory(); - if (!dir) - MOZ_CRASH("Couldn't open directory"); - - - while (auto entry = readdir(dir)) { - // Find files whose name ends with ".binjs". - const char* d_name = entry->d_name; - -#elif defined(XP_WIN) - - const char PATH[] = "jsapi-tests\\binast\\parser\\tester\\*.binjs"; - - WIN32_FIND_DATA FindFileData; - enterJsDirectory(); - HANDLE hFind = FindFirstFile(PATH, &FindFileData); - exitJsDirectory(); - for (bool found = (hFind != INVALID_HANDLE_VALUE); - found; - found = FindNextFile(hFind, &FindFileData)) - { - const char* d_name = FindFileData.cFileName; - -#endif // defined(XP_UNIX) || defined(XP_WIN) - - const size_t namlen = strlen(d_name); - if (namlen < sizeof(BIN_SUFFIX)) - continue; - if (strncmp(d_name + namlen - (sizeof(BIN_SUFFIX) - 1), BIN_SUFFIX, sizeof(BIN_SUFFIX)) != 0) - continue; - - // Find text file. - UniqueChars txtPath(static_cast(js_malloc(namlen + sizeof(PATH) + 1))); - strncpy(txtPath.get(), PATH, sizeof(PATH)); - strncpy(txtPath.get() + sizeof(PATH) - 1, d_name, namlen); - strncpy(txtPath.get() + sizeof(PATH) + namlen - sizeof(BIN_SUFFIX), TXT_SUFFIX, sizeof(TXT_SUFFIX)); - txtPath[sizeof(PATH) + namlen - sizeof(BIN_SUFFIX) + sizeof(TXT_SUFFIX) - 1] = 0; - fprintf(stderr, "Testing %s\n", txtPath.get()); - - // Read text file. - js::Vector txtSource(cx); - readFull(cx, txtPath.get(), txtSource); - - // Parse text file. - UsedNameTracker txtUsedNames(cx); - if (!txtUsedNames.init()) - MOZ_CRASH("Couldn't initialize used names"); - js::frontend::Parser parser(cx, cx->tempLifoAlloc(), options, txtSource.begin(), txtSource.length(), - /* foldConstants = */ false, txtUsedNames, nullptr, - nullptr); - if (!parser.checkOptions()) - MOZ_CRASH("Bad options"); - - auto txtParsed = parser.parse(); // Will be deallocated once `parser` goes out of scope. - RootedValue txtExn(cx); - if (!txtParsed) { - // Save exception for more detailed error message, if necessary. - if (!js::GetAndClearException(cx, &txtExn)) - MOZ_CRASH("Couldn't clear exception"); - } - - // Read binary file. - UniqueChars binPath(static_cast(js_malloc(namlen + sizeof(PATH) + 1))); - strncpy(binPath.get(), PATH, sizeof(PATH)); - strncpy(binPath.get() + sizeof(PATH) - 1, d_name, namlen); - binPath[namlen + sizeof(PATH) - 1] = 0; - - js::Vector binSource(cx); - readFull(binPath.get(), binSource); - - // Parse binary file. - js::frontend::UsedNameTracker binUsedNames(cx); - if (!binUsedNames.init()) - MOZ_CRASH("Couldn't initialized binUsedNames"); - - js::frontend::BinASTParser reader(cx, cx->tempLifoAlloc(), binUsedNames, options); - - auto binParsed = reader.parse(binSource); // Will be deallocated once `reader` goes out of scope. - RootedValue binExn(cx); - if (binParsed.isErr()) { - // Save exception for more detailed error message, if necessary. - if (!js::GetAndClearException(cx, &binExn)) - MOZ_CRASH("Couldn't clear binExn"); - } - - // The binary parser should accept the file iff the text parser has. - if (binParsed.isOk() && !txtParsed) { - fprintf(stderr, "Text file parsing failed: "); - - js::ErrorReport report(cx); - if (!report.init(cx, txtExn, js::ErrorReport::WithSideEffects)) - MOZ_CRASH("Couldn't report txtExn"); - - PrintError(cx, stderr, report.toStringResult(), report.report(), /* reportWarnings */ true); - MOZ_CRASH("Binary parser accepted a file that text parser rejected"); - } - - if (binParsed.isErr() && txtParsed) { - fprintf(stderr, "Binary file parsing failed: "); - - js::ErrorReport report(cx); - if (!report.init(cx, binExn, js::ErrorReport::WithSideEffects)) - MOZ_CRASH("Couldn't report binExn"); - - PrintError(cx, stderr, report.toStringResult(), report.report(), /* reportWarnings */ true); - MOZ_CRASH("Binary parser rejected a file that text parser accepted"); - } - - if (binParsed.isErr()) { - fprintf(stderr, "Binary parser and text parser agree that %s is invalid\n", txtPath.get()); - continue; - } - -#if defined(DEBUG) // Dumping an AST is only defined in DEBUG builds - // Compare ASTs. - Sprinter binPrinter(cx); - if (!binPrinter.init()) - MOZ_CRASH("Couldn't display binParsed"); - DumpParseTree(binParsed.unwrap(), binPrinter); - - Sprinter txtPrinter(cx); - if (!txtPrinter.init()) - MOZ_CRASH("Couldn't display txtParsed"); - DumpParseTree(txtParsed, txtPrinter); - - if (strcmp(binPrinter.string(), txtPrinter.string()) != 0) { - fprintf(stderr, "Got distinct ASTs when parsing %s:\n\tBINARY\n%s\n\n\tTEXT\n%s\n", txtPath.get(), binPrinter.string(), txtPrinter.string()); - MOZ_CRASH("Got distinct ASTs"); - } - fprintf(stderr, "Got the same AST when parsing %s\n", txtPath.get()); - -#endif // defined(DEBUG) - } - -#if defined(XP_WIN) - if (!FindClose(hFind)) - MOZ_CRASH("Could not close Find"); -#elif defined(XP_UNIX) - if (closedir(dir) != 0) - MOZ_CRASH("Could not close dir"); -#endif // defined(XP_WIN) - - return true; -} -END_TEST(testBinASTReaderECMAScript2) - diff --git a/js/src/jsapi-tests/testBinTokenReaderTester.cpp b/js/src/jsapi-tests/testBinTokenReaderTester.cpp deleted file mode 100644 index 0ebc09d685bd..000000000000 --- a/js/src/jsapi-tests/testBinTokenReaderTester.cpp +++ /dev/null @@ -1,321 +0,0 @@ -/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- - * vim: set ts=8 sts=4 et sw=4 tw=99: - */ -/* 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/. */ - -#include -#include - -#if defined (XP_WIN) -#include -#elif defined(XP_UNIX) -#include -#include -#endif // defined (XP_WIN) || defined (XP_UNIX) - -#include "frontend/BinTokenReaderTester.h" -#include "gc/Zone.h" - -#include "js/Vector.h" - -#include "jsapi-tests/tests.h" - -using Tokenizer = js::frontend::BinTokenReaderTester; -using Chars = Tokenizer::Chars; - -// Hack: These tests need access to resources, which are present in the source dir -// but not copied by our build system. To simplify things, we chdir to the source -// dir at the start of each test and return to the previous directory afterwards. - -#if defined(XP_UNIX) - -#include - -static int gJsDirectory(0); -void enterJsDirectory() { -// Save current directory. - MOZ_ASSERT(gJsDirectory == 0); - gJsDirectory = open(".", O_RDONLY); - MOZ_ASSERT(gJsDirectory != 0, "Could not open directory '.'"); -// Go to the directory provided by the test harness, if any. - const char* destination = getenv("CPP_UNIT_TESTS_DIR_JS_SRC"); - if (destination) { - if (chdir(destination) == -1) - MOZ_CRASH_UNSAFE_PRINTF("Could not chdir to %s", destination); - } -} - -void exitJsDirectory() { - MOZ_ASSERT(gJsDirectory); - if (fchdir(gJsDirectory) == -1) - MOZ_CRASH("Could not return to original directory"); - if (close(gJsDirectory) != 0) - MOZ_CRASH("Could not close js directory"); - gJsDirectory = 0; -} - -#else - -char gJsDirectory[MAX_PATH] = { 0 }; - -void enterJsDirectory() { - // Save current directory. - MOZ_ASSERT(strlen(gJsDirectory) == 0); - auto result = GetCurrentDirectory(MAX_PATH, gJsDirectory); - if (result <= 0) - MOZ_CRASH("Could not get current directory"); - if (result > MAX_PATH) - MOZ_CRASH_UNSAFE_PRINTF("Could not get current directory: needed %ld bytes, got %ld\n", result, MAX_PATH); - - // Find destination directory, if any. - char destination[MAX_PATH]; - if (!GetEnvironmentVariable("CPP_UNIT_TESTS_DIR_JS_SRC", destination, MAX_PATH)) { - if (GetLastError() != ERROR_ENVVAR_NOT_FOUND) - MOZ_CRASH("Could not get CPP_UNIT_TESTS_DIR_JS_SRC"); - else - return; - } - - // Go to the directory. - if (SetCurrentDirectory(destination) != 0) - MOZ_CRASH_UNSAFE_PRINTF("Could not chdir to %s", destination); -} - -void exitJsDirectory() { - MOZ_ASSERT(strlen(gJsDirectory) > 0); - if (SetCurrentDirectory(gJsDirectory) != 0) - MOZ_CRASH("Could not return to original directory"); - gJsDirectory[0] = 0; -} - -#endif // defined(XP_UNIX) || defined(XP_WIN) - -void readFull(const char* path, js::Vector& buf) { - enterJsDirectory(); - buf.shrinkTo(0); - FILE* in = fopen(path, "r"); - if (!in) - MOZ_CRASH_UNSAFE_PRINTF("Could not open %s: %s", path, strerror(errno)); - - struct stat info; - if (stat(path, &info) < 0) - MOZ_CRASH_UNSAFE_PRINTF("Could not get stat on %s", path); - - if (!buf.growBy(info.st_size)) - MOZ_CRASH("OOM"); - - int result = fread(buf.begin(), 1, info.st_size, in); - if (fclose(in) != 0) - MOZ_CRASH("Could not close input file"); - if (result != info.st_size) - MOZ_CRASH("Read error"); - exitJsDirectory(); -} - - -// Reading a simple string. -BEGIN_TEST(testBinTokenReaderTesterSimpleString) -{ - js::Vector contents(cx); - readFull("jsapi-tests/binast/tokenizer/tester/test-simple-string.binjs", contents); - Tokenizer tokenizer(cx, contents); - - Maybe found; - CHECK(tokenizer.readMaybeChars(found)); - - CHECK(Tokenizer::equals(*found, "simple string")); // FIXME: Find a way to make CHECK_EQUAL use `Tokenizer::equals`. - - return true; -} -END_TEST(testBinTokenReaderTesterSimpleString) - -// Reading a string with embedded 0. -BEGIN_TEST(testBinTokenReaderTesterStringWithEscapes) -{ - js::Vector contents(cx); - readFull("jsapi-tests/binast/tokenizer/tester/test-string-with-escapes.binjs", contents); - Tokenizer tokenizer(cx, contents); - - Maybe found; - CHECK(tokenizer.readMaybeChars(found)); - - CHECK(Tokenizer::equals(*found, "string with escapes \0\1\0")); // FIXME: Find a way to make CHECK_EQUAL use `Tokenizer::equals`. - - return true; -} -END_TEST(testBinTokenReaderTesterStringWithEscapes) - -// Reading an empty untagged tuple -BEGIN_TEST(testBinTokenReaderTesterEmptyUntaggedTuple) -{ - js::Vector contents(cx); - readFull("jsapi-tests/binast/tokenizer/tester/test-empty-untagged-tuple.binjs", contents); - Tokenizer tokenizer(cx, contents); - - { - Tokenizer::AutoTuple guard(tokenizer); - CHECK(tokenizer.enterUntaggedTuple(guard)); - CHECK(guard.done()); - } - - return true; -} -END_TEST(testBinTokenReaderTesterEmptyUntaggedTuple) - -// Reading a untagged tuple with two strings -BEGIN_TEST(testBinTokenReaderTesterTwoStringsInTuple) -{ - js::Vector contents(cx); - readFull("jsapi-tests/binast/tokenizer/tester/test-trivial-untagged-tuple.binjs", contents); - Tokenizer tokenizer(cx, contents); - - { - Tokenizer::AutoTuple guard(tokenizer); - CHECK(tokenizer.enterUntaggedTuple(guard)); - - Maybe found_0; - CHECK(tokenizer.readMaybeChars(found_0)); - CHECK(Tokenizer::equals(*found_0, "foo")); // FIXME: Find a way to make CHECK_EQUAL use `Tokenizer::equals`. - - Maybe found_1; - CHECK(tokenizer.readMaybeChars(found_1)); - CHECK(Tokenizer::equals(*found_1, "bar")); // FIXME: Find a way to make CHECK_EQUAL use `Tokenizer::equals`. - - CHECK(guard.done()); - } - - return true; -} -END_TEST(testBinTokenReaderTesterTwoStringsInTuple) - -// Reading a tagged tuple `Pattern { id: "foo", value: 3.1415}` -BEGIN_TEST(testBinTokenReaderTesterSimpleTaggedTuple) -{ - js::Vector contents(cx); - readFull("jsapi-tests/binast/tokenizer/tester/test-simple-tagged-tuple.binjs", contents); - Tokenizer tokenizer(cx, contents); - - { - js::frontend::BinKind tag; - Tokenizer::BinFields fields(cx); - Tokenizer::AutoTaggedTuple guard(tokenizer); - CHECK(tokenizer.enterTaggedTuple(tag, fields, guard)); - - CHECK(tag == js::frontend::BinKind::Pattern); - - Maybe found_id; - const double EXPECTED_value = 3.1415; - Maybe found_value; - - // Order of fields is not deterministic in the encoder (we could make - // it deterministic for the test, though, since we already know the binary). - if (fields[0] == js::frontend::BinField::Id) { - CHECK(fields[1] == js::frontend::BinField::Value); - CHECK(tokenizer.readMaybeChars(found_id)); - CHECK(tokenizer.readMaybeDouble(found_value)); - } else if (fields[0] == js::frontend::BinField::Value) { - CHECK(fields[1] == js::frontend::BinField::Id); - CHECK(tokenizer.readMaybeDouble(found_value)); - CHECK(tokenizer.readMaybeChars(found_id)); - } else { - CHECK(false); - } - - CHECK(EXPECTED_value == *found_value); // Apparently, CHECK_EQUAL doesn't work on `double`. - CHECK(Tokenizer::equals(*found_id, "foo")); - CHECK(guard.done()); - } - - return true; -} -END_TEST(testBinTokenReaderTesterSimpleTaggedTuple) - - -// Reading an empty list -BEGIN_TEST(testBinTokenReaderTesterEmptyList) -{ - js::Vector contents(cx); - readFull("jsapi-tests/binast/tokenizer/tester/test-empty-list.binjs", contents); - Tokenizer tokenizer(cx, contents); - - { - uint32_t length; - Tokenizer::AutoList guard(tokenizer); - CHECK(tokenizer.enterList(length, guard)); - - CHECK(length == 0); - CHECK(guard.done()); - } - - return true; -} -END_TEST(testBinTokenReaderTesterEmptyList) - -// Reading `["foo", "bar"]` -BEGIN_TEST(testBinTokenReaderTesterSimpleList) -{ - js::Vector contents(cx); - readFull("jsapi-tests/binast/tokenizer/tester/test-trivial-list.binjs", contents); - Tokenizer tokenizer(cx, contents); - - { - uint32_t length; - Tokenizer::AutoList guard(tokenizer); - CHECK(tokenizer.enterList(length, guard)); - - CHECK(length == 2); - - Maybe found_0; - CHECK(tokenizer.readMaybeChars(found_0)); - CHECK(Tokenizer::equals(*found_0, "foo")); - - Maybe found_1; - CHECK(tokenizer.readMaybeChars(found_1)); - CHECK(Tokenizer::equals(*found_1, "bar")); - - CHECK(guard.done()); - } - - return true; -} -END_TEST(testBinTokenReaderTesterSimpleList) - - -// Reading `[["foo", "bar"]]` -BEGIN_TEST(testBinTokenReaderTesterNestedList) -{ - js::Vector contents(cx); - readFull("jsapi-tests/binast/tokenizer/tester/test-nested-lists.binjs", contents); - Tokenizer tokenizer(cx, contents); - - { - uint32_t outerLength; - Tokenizer::AutoList outerGuard(tokenizer); - CHECK(tokenizer.enterList(outerLength, outerGuard)); - CHECK(outerLength == 1); - - { - uint32_t innerLength; - Tokenizer::AutoList innerGuard(tokenizer); - CHECK(tokenizer.enterList(innerLength, innerGuard)); - CHECK(innerLength == 2); - - Maybe found_0; - CHECK(tokenizer.readMaybeChars(found_0)); - CHECK(Tokenizer::equals(*found_0, "foo")); - - Maybe found_1; - CHECK(tokenizer.readMaybeChars(found_1)); - CHECK(Tokenizer::equals(*found_1, "bar")); - - CHECK(innerGuard.done()); - } - - CHECK(outerGuard.done()); - } - - return true; -} -END_TEST(testBinTokenReaderTesterNestedList) diff --git a/js/src/moz.build b/js/src/moz.build index 8dfe8db474f8..91aa05ea0484 100755 --- a/js/src/moz.build +++ b/js/src/moz.build @@ -642,16 +642,6 @@ if CONFIG['NIGHTLY_BUILD']: DEFINES['ENABLE_SIMD'] = True DEFINES['ENABLE_WASM_THREAD_OPS'] = True -if CONFIG['JS_BUILD_BINAST']: - # Some parts of BinAST are designed only to test evolutions of the - # specification: - UNIFIED_SOURCES += ['frontend/BinTokenReaderTester.cpp'] - # The rest of BinAST should eventually move to release. - UNIFIED_SOURCES += [ - 'frontend/BinSource.cpp', - 'frontend/BinToken.cpp' - ] - # Wasm code should use WASM_HUGE_MEMORY instead of JS_CODEGEN_X64 # so that it is easy to use the huge-mapping optimization for other # 64-bit platforms in the future. diff --git a/js/src/shell/js.cpp b/js/src/shell/js.cpp index 8794f40880a2..649352ed3b54 100644 --- a/js/src/shell/js.cpp +++ b/js/src/shell/js.cpp @@ -74,11 +74,6 @@ #include "builtin/ModuleObject.h" #include "builtin/RegExp.h" #include "builtin/TestingFunctions.h" - -#if defined(JS_BUILD_BINAST) -#include "frontend/BinSource.h" -#endif // defined(JS_BUILD_BINAST) - #include "frontend/Parser.h" #include "gc/GCInternals.h" #include "jit/arm/Simulator-arm.h" @@ -4397,64 +4392,6 @@ GetModuleLoadPath(JSContext* cx, unsigned argc, Value* vp) return true; } -#if defined(JS_BUILD_BINAST) - -static bool -BinParse(JSContext* cx, unsigned argc, Value* vp) -{ - using namespace js::frontend; - - CallArgs args = CallArgsFromVp(argc, vp); - - if (args.length() < 1) { - JS_ReportErrorNumberASCII(cx, GetErrorMessage, nullptr, JSMSG_MORE_ARGS_NEEDED, - "parse", "0", "s"); - return false; - } - if (!args[0].isObject()) { - const char* typeName = InformalValueTypeName(args[0]); - JS_ReportErrorASCII(cx, "expected object (typed array) to parse, got %s", typeName); - return false; - } - - RootedObject obj(cx, &args[0].toObject()); - if (!JS_IsTypedArrayObject(obj)) { - const char* typeName = InformalValueTypeName(args[0]); - JS_ReportErrorASCII(cx, "expected typed array to parse, got %s", typeName); - return false; - } - - uint32_t buf_length = 0; - bool buf_isSharedMemory = false; - uint8_t* buf_data = nullptr; - GetArrayBufferViewLengthAndData(obj, &buf_length, &buf_isSharedMemory, &buf_data); - MOZ_ASSERT(buf_data); - - CompileOptions options(cx); - options.setIntroductionType("js shell bin parse") - .setFileAndLine("", 1); - - UsedNameTracker usedNames(cx); - if (!usedNames.init()) - return false; - - BinASTParser reader(cx, cx->tempLifoAlloc(), usedNames, options); - - JS::Result parsed = reader.parse(buf_data, buf_length); - if (parsed.isErr()) - return false; - -#ifdef DEBUG - Fprinter out(stderr); - DumpParseTree(parsed.unwrap(), out); -#endif - - args.rval().setUndefined(); - return true; -} - -#endif // defined(JS_BUILD_BINAST) - static bool Parse(JSContext* cx, unsigned argc, Value* vp) { @@ -4487,22 +4424,22 @@ Parse(JSContext* cx, unsigned argc, Value* vp) CompileOptions options(cx); options.setIntroductionType("js shell parse") .setFileAndLine("", 1); - UsedNameTracker usedNames(cx); if (!usedNames.init()) return false; Parser parser(cx, cx->tempLifoAlloc(), options, chars, length, - /* foldConstants = */ false, usedNames, nullptr, + /* foldConstants = */ true, usedNames, nullptr, nullptr); if (!parser.checkOptions()) return false; - ParseNode* pn = parser.parse(); // Deallocated once `parser` goes out of scope. + ParseNode* pn = parser.parse(); if (!pn) return false; #ifdef DEBUG js::Fprinter out(stderr); DumpParseTree(pn, out); + out.putChar('\n'); #endif args.rval().setUndefined(); return true; @@ -6809,14 +6746,6 @@ static const JSFunctionSpecWithHelp shell_functions[] = { " Return any --module-load-path argument passed to the shell. Used by the\n" " module loader.\n"), -#if defined(JS_BUILD_BINAST) - -JS_FN_HELP("parseBin", BinParse, 1, 0, -"parseBin(arraybuffer)", -" Parses a Binary AST, potentially throwing."), - -#endif // defined(JS_BUILD_BINAST) - JS_FN_HELP("parse", Parse, 1, 0, "parse(code)", " Parses a string, potentially throwing."), diff --git a/testing/runcppunittests.py b/testing/runcppunittests.py index 573da30d24a5..d9e4f01c4a58 100755 --- a/testing/runcppunittests.py +++ b/testing/runcppunittests.py @@ -8,7 +8,6 @@ from __future__ import with_statement import sys import os from optparse import OptionParser -from os import environ as env import manifestparser import mozprocess import mozinfo @@ -18,9 +17,6 @@ import mozlog SCRIPT_DIR = os.path.abspath(os.path.realpath(os.path.dirname(__file__))) -# Export directory js/src for tests that need it. -env['CPP_UNIT_TESTS_DIR_JS_SRC'] = os.path.abspath(os.path.join(SCRIPT_DIR, "..", "..")) - class CPPUnitTests(object): # Time (seconds) to wait for test process to complete