diff --git a/Makefile b/Makefile index b5410968e9..3dd92d46ca 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,6 @@ MAKEFLAGS = -j1 -FLOW_COMMIT = f193e19cf2185006ea9139bb0e71f31ea93e7b72 -TEST262_COMMIT = 52f70e2f637731aae92a9c9a2d831310c3ab2e1e +FLOW_COMMIT = 395e045c18d537fcbbc552a96ef2cdcd70b4ab52 +TEST262_COMMIT = 40883f4c6ae17e073dfd03e34f73a6bf8c855595 # Fix color output until TravisCI fixes https://github.com/travis-ci/travis-ci/issues/7967 export FORCE_COLOR = true diff --git a/scripts/tests/flow/flow_tests_whitelist.txt b/scripts/tests/flow/flow_tests_whitelist.txt index 1475a7fa18..322247aa30 100644 --- a/scripts/tests/flow/flow_tests_whitelist.txt +++ b/scripts/tests/flow/flow_tests_whitelist.txt @@ -31,3 +31,20 @@ types/member/reserved_words.js types/parameter_defaults/migrated_0032.js types/typecasts_invalid/migrated_0001.js class_method_kinds/polymorphic_getter.js +internal_slot/interface_method.js +internal_slot/object_method.js +internal_slot/object_variance.js +numbers/underscored_bin.js +numbers/underscored_float.js +numbers/underscored_float_whole.js +numbers/underscored_hex.js +numbers/underscored_number.js +numbers/underscored_oct.js +typeapp_call/function_call.js +typeapp_call/function_call_optional.js +typeapp_call/method_call.js +typeapp_call/method_call_computed.js +typeapp_call/method_call_optional2.js +typeapp_call/new.js +typeapp_call/new_noparens.js +types/declare_class/proto.js diff --git a/scripts/tests/flow/run_babylon_flow_tests.js b/scripts/tests/flow/run_babylon_flow_tests.js index 3e0c706493..e7c4934300 100644 --- a/scripts/tests/flow/run_babylon_flow_tests.js +++ b/scripts/tests/flow/run_babylon_flow_tests.js @@ -83,18 +83,27 @@ function update_whitelist(summary) { const contains = (tests, file) => tests.some(({ test }) => test.file === file); - const result = fs + const disallowed = summary.disallowed.success.concat( + summary.disallowed.failure + ); + + const oldLines = fs .readFileSync(WHITELIST_PATH, "utf8") + .trim() .split("\n") .filter(line => { const file = line.replace(/#.*$/, "").trim(); return ( - !contains(summary.disallowed.success, file) && - !contains(summary.disallowed.failure, file) && - summary.unrecognized.indexOf(file) === -1 + !contains(disallowed, file) && summary.unrecognized.indexOf(file) === -1 ); - }) - .join("\n"); + }); + + const newLines = disallowed + .map(({ test }) => test.file) + .filter(test => oldLines.indexOf(test) === -1); + + const result = oldLines.concat(newLines).join("\n") + "\n"; + fs.writeFileSync(WHITELIST_PATH, result); } @@ -116,6 +125,7 @@ const flowOptionsMapping = { esproposal_class_static_fields: "classProperties", esproposal_export_star_as: "exportNamespaceFrom", esproposal_decorators: "decorators-legacy", + esproposal_nullish_coalescing: "nullishCoalescingOperator", esproposal_optional_chaining: "optionalChaining", types: "flowComments", }; diff --git a/scripts/tests/test262/run_babylon_test262_utils.js b/scripts/tests/test262/run_babylon_test262_utils.js index 9e6dff37b2..fb2db074b6 100644 --- a/scripts/tests/test262/run_babylon_test262_utils.js +++ b/scripts/tests/test262/run_babylon_test262_utils.js @@ -28,7 +28,10 @@ function getPlugins(features) { } exports.getTests = function(testDir) { - const stream = new TestStream(testDir, { omitRuntime: true }); + const stream = new TestStream(testDir, { + omitRuntime: true, + acceptVersion: "3.0.0", + }); const tests = []; stream.on("data", test => { diff --git a/scripts/tests/test262/test262_whitelist.txt b/scripts/tests/test262/test262_whitelist.txt index acb7cec443..93b01c9974 100644 --- a/scripts/tests/test262/test262_whitelist.txt +++ b/scripts/tests/test262/test262_whitelist.txt @@ -179,7 +179,6 @@ annexB/language/global-code/if-stmt-else-decl-global-skip-early-err-switch.js(de annexB/language/global-code/if-stmt-else-decl-global-skip-early-err-try.js(default) annexB/language/global-code/if-stmt-else-decl-global-skip-early-err.js(default) annexB/language/global-code/if-stmt-else-decl-global-update.js(default) -built-ins/Function/prototype/toString/intrinsics.js(strict mode) language/expressions/assignment/destructuring/obj-prop-__proto__dup.js(default) language/expressions/assignment/destructuring/obj-prop-__proto__dup.js(strict mode) language/expressions/assignment/dstr-obj-id-identifier-yield-ident-valid.js(default) @@ -420,8 +419,6 @@ language/literals/regexp/u-invalid-non-empty-class-ranges.js(default) language/literals/regexp/u-invalid-non-empty-class-ranges.js(strict mode) language/literals/regexp/u-invalid-oob-decimal-escape.js(default) language/literals/regexp/u-invalid-oob-decimal-escape.js(strict mode) -language/literals/regexp/u-invalid-quantifiable-assertion.js(default) -language/literals/regexp/u-invalid-quantifiable-assertion.js(strict mode) language/literals/regexp/u-unicode-esc-bounds.js(default) language/literals/regexp/u-unicode-esc-bounds.js(strict mode) language/literals/regexp/u-unicode-esc-non-hex.js(default) @@ -739,4 +736,50 @@ built-ins/AsyncGeneratorPrototype/next/name.js(strict mode) built-ins/AsyncGeneratorPrototype/return/name.js(default) built-ins/AsyncGeneratorPrototype/return/name.js(strict mode) built-ins/AsyncGeneratorPrototype/throw/name.js(default) -built-ins/AsyncGeneratorPrototype/throw/name.js(strict mode) \ No newline at end of file +built-ins/AsyncGeneratorPrototype/throw/name.js(strict mode) +language/expressions/async-arrow-function/await-as-param-ident-nested-arrow-parameter-position.js(default) +language/expressions/async-arrow-function/await-as-param-ident-nested-arrow-parameter-position.js(strict mode) +language/expressions/async-arrow-function/await-as-param-nested-arrow-parameter-position.js(default) +language/expressions/async-arrow-function/await-as-param-nested-arrow-parameter-position.js(strict mode) +language/expressions/async-arrow-function/await-as-param-rest-nested-arrow-parameter-position.js(default) +language/expressions/async-arrow-function/await-as-param-rest-nested-arrow-parameter-position.js(strict mode) +language/expressions/class/class-name-ident-static-escaped.js(default) +language/expressions/class/class-name-ident-static.js(default) +language/literals/regexp/invalid-optional-lookbehind.js(default) +language/literals/regexp/invalid-optional-lookbehind.js(strict mode) +language/literals/regexp/invalid-optional-negative-lookbehind.js(default) +language/literals/regexp/invalid-optional-negative-lookbehind.js(strict mode) +language/literals/regexp/invalid-range-lookbehind.js(default) +language/literals/regexp/invalid-range-lookbehind.js(strict mode) +language/literals/regexp/invalid-range-negative-lookbehind.js(default) +language/literals/regexp/invalid-range-negative-lookbehind.js(strict mode) +language/literals/regexp/u-invalid-optional-lookahead.js(default) +language/literals/regexp/u-invalid-optional-lookahead.js(strict mode) +language/literals/regexp/u-invalid-optional-lookbehind.js(default) +language/literals/regexp/u-invalid-optional-lookbehind.js(strict mode) +language/literals/regexp/u-invalid-optional-negative-lookahead.js(default) +language/literals/regexp/u-invalid-optional-negative-lookahead.js(strict mode) +language/literals/regexp/u-invalid-optional-negative-lookbehind.js(default) +language/literals/regexp/u-invalid-optional-negative-lookbehind.js(strict mode) +language/literals/regexp/u-invalid-range-lookahead.js(default) +language/literals/regexp/u-invalid-range-lookahead.js(strict mode) +language/literals/regexp/u-invalid-range-lookbehind.js(default) +language/literals/regexp/u-invalid-range-lookbehind.js(strict mode) +language/literals/regexp/u-invalid-range-negative-lookahead.js(default) +language/literals/regexp/u-invalid-range-negative-lookahead.js(strict mode) +language/literals/regexp/u-invalid-range-negative-lookbehind.js(default) +language/literals/regexp/u-invalid-range-negative-lookbehind.js(strict mode) +language/statements/class/class-name-ident-static-escaped.js(default) +language/statements/class/class-name-ident-static.js(default) +language/statements/try/early-catch-function.js(default) +language/statements/try/early-catch-function.js(strict mode) +language/block-scope/syntax/redeclaration/function-declaration-attempt-to-redeclare-with-var-declaration-nested-in-function.js(default) +language/block-scope/syntax/redeclaration/function-declaration-attempt-to-redeclare-with-var-declaration-nested-in-function.js(strict mode) +language/literals/string/line-separator.js(default) +language/literals/string/line-separator.js(strict mode) +language/literals/string/paragraph-separator.js(default) +language/literals/string/paragraph-separator.js(strict mode) +built-ins/Function/prototype/toString/proxy-async-generator-function.js(default) +built-ins/Function/prototype/toString/proxy-async-generator-function.js(strict mode) +built-ins/Function/prototype/toString/proxy-async-generator-method-definition.js(default) +built-ins/Function/prototype/toString/proxy-async-generator-method-definition.js(strict mode)