From 7d4b1d28ae4428829203f8261f57033e534c0efc Mon Sep 17 00:00:00 2001
From: Mike Pennisi <mike@mikepennisi.com>
Date: Sat, 30 Jan 2016 18:57:28 -0500
Subject: [PATCH] Re-format tests for SyntaxErrors

Authored via the following command:

   $ find test -type f -print0 | \
       xargs -0 sed \
         -i 's/^\(\s*\)negative:\s*SyntaxError\s*$/\1negative:\n\1  phase: early\n\1  type: SyntaxError/g'
---
 .../language/expressions/object/__proto__-duplicate.js      | 4 +++-
 .../template-literal/legacy-octal-escape-sequence-strict.js | 4 +++-
 test/annexB/language/statements/for-in/bare-initializer.js  | 4 +++-
 test/annexB/language/statements/for-in/const-initializer.js | 4 +++-
 test/annexB/language/statements/for-in/let-initializer.js   | 4 +++-
 .../annexB/language/statements/for-in/strict-initializer.js | 4 +++-
 .../for-in/var-arraybindingpattern-initializer.js           | 4 +++-
 .../for-in/var-objectbindingpattern-initializer.js          | 4 +++-
 test/language/arguments-object/10.5-1gs.js                  | 4 +++-
 test/language/asi/S7.9.2_A1_T1.js                           | 4 +++-
 test/language/asi/S7.9.2_A1_T3.js                           | 4 +++-
 test/language/asi/S7.9.2_A1_T6.js                           | 4 +++-
 test/language/asi/S7.9_A10_T2.js                            | 4 +++-
 test/language/asi/S7.9_A10_T4.js                            | 4 +++-
 test/language/asi/S7.9_A10_T6.js                            | 4 +++-
 test/language/asi/S7.9_A10_T8.js                            | 4 +++-
 test/language/asi/S7.9_A11_T4.js                            | 4 +++-
 test/language/asi/S7.9_A11_T8.js                            | 4 +++-
 test/language/asi/S7.9_A4.js                                | 4 +++-
 test/language/asi/S7.9_A5.1_T1.js                           | 4 +++-
 test/language/asi/S7.9_A5.3_T1.js                           | 4 +++-
 test/language/asi/S7.9_A6.2_T1.js                           | 4 +++-
 test/language/asi/S7.9_A6.2_T10.js                          | 4 +++-
 test/language/asi/S7.9_A6.2_T2.js                           | 4 +++-
 test/language/asi/S7.9_A6.2_T3.js                           | 4 +++-
 test/language/asi/S7.9_A6.2_T4.js                           | 4 +++-
 test/language/asi/S7.9_A6.2_T5.js                           | 4 +++-
 test/language/asi/S7.9_A6.2_T6.js                           | 4 +++-
 test/language/asi/S7.9_A6.2_T7.js                           | 4 +++-
 test/language/asi/S7.9_A6.2_T8.js                           | 4 +++-
 test/language/asi/S7.9_A6.2_T9.js                           | 4 +++-
 test/language/asi/S7.9_A6.3_T1.js                           | 4 +++-
 test/language/asi/S7.9_A6.3_T2.js                           | 4 +++-
 test/language/asi/S7.9_A6.3_T3.js                           | 4 +++-
 test/language/asi/S7.9_A6.3_T4.js                           | 4 +++-
 test/language/asi/S7.9_A6.3_T5.js                           | 4 +++-
 test/language/asi/S7.9_A6.3_T6.js                           | 4 +++-
 test/language/asi/S7.9_A6.3_T7.js                           | 4 +++-
 test/language/asi/S7.9_A6.4_T1.js                           | 4 +++-
 test/language/asi/S7.9_A6.4_T2.js                           | 4 +++-
 test/language/asi/S7.9_A9_T6.js                             | 4 +++-
 test/language/asi/S7.9_A9_T7.js                             | 4 +++-
 test/language/asi/S7.9_A9_T8.js                             | 4 +++-
 .../syntax/for-in/disallow-initialization-assignment.js     | 4 +++-
 ...ultiple-lexical-bindings-with-and-without-initializer.js | 4 +++-
 .../disallow-multiple-lexical-bindings-with-initializer.js  | 4 +++-
 ...ultiple-lexical-bindings-without-and-with-initializer.js | 4 +++-
 .../syntax/for-in/disallow-multiple-lexical-bindings.js     | 4 +++-
 .../in-statement-position-do-statement-while-expression.js  | 4 +++-
 .../in-statement-position-for-statement.js                  | 4 +++-
 ...ement-position-if-expression-statement-else-statement.js | 4 +++-
 .../in-statement-position-if-expression-statement.js        | 4 +++-
 .../in-statement-position-while-expression-statement.js     | 4 +++-
 ...eclare-function-declaration-with-function-declaration.js | 4 +++-
 .../attempt-to-redeclare-function-declaration-with-let.js   | 4 +++-
 .../attempt-to-redeclare-function-declaration-with-var.js   | 4 +++-
 .../attempt-to-redeclare-var-binding-with-let.js            | 4 +++-
 .../attempt-to-redeclare-var-with-function-declaration.js   | 4 +++-
 test/language/comments/S7.4_A2_T2.js                        | 4 +++-
 test/language/comments/S7.4_A3.js                           | 4 +++-
 test/language/comments/S7.4_A4_T1.js                        | 4 +++-
 test/language/comments/S7.4_A4_T4.js                        | 4 +++-
 test/language/comments/multi-line-html-close-extra.js       | 4 +++-
 test/language/comments/single-line-html-close-without-lt.js | 4 +++-
 test/language/directive-prologue/10.1.1-2gs.js              | 4 +++-
 test/language/directive-prologue/10.1.1-5gs.js              | 4 +++-
 test/language/directive-prologue/10.1.1-8gs.js              | 4 +++-
 test/language/directive-prologue/14.1-4gs.js                | 4 +++-
 test/language/directive-prologue/14.1-5gs.js                | 4 +++-
 test/language/eval-code/direct/parse-failure-2.js           | 6 +++---
 .../expressions/arrow-function/param-dflt-yield-expr.js     | 4 +++-
 .../arrow-function/param-dflt-yield-id-non-strict.js        | 4 +++-
 .../arrow-function/param-dflt-yield-id-strict.js            | 4 +++-
 ...eters-bindingidentifier-identifier-futurereservedword.js | 4 +++-
 ...indingidentifier-identifier-strict-futurereservedword.js | 4 +++-
 .../arrowparameters-bindingidentifier-identifier.js         | 4 +++-
 .../arrowparameters-bindingidentifier-no-arguments.js       | 4 +++-
 .../arrowparameters-bindingidentifier-no-eval.js            | 4 +++-
 .../arrowparameters-bindingidentifier-no-yield.js           | 4 +++-
 .../early-errors/arrowparameters-bindingidentifier-rest.js  | 4 +++-
 .../early-errors/arrowparameters-cover-no-arguments.js      | 4 +++-
 .../arrowparameters-cover-no-duplicates-binding-array-1.js  | 4 +++-
 .../arrowparameters-cover-no-duplicates-binding-array-2.js  | 4 +++-
 .../arrowparameters-cover-no-duplicates-binding-array-3.js  | 4 +++-
 .../arrowparameters-cover-no-duplicates-binding-object-1.js | 4 +++-
 .../arrowparameters-cover-no-duplicates-binding-object-2.js | 4 +++-
 .../arrowparameters-cover-no-duplicates-binding-object-3.js | 4 +++-
 .../arrowparameters-cover-no-duplicates-binding-object-4.js | 4 +++-
 .../arrowparameters-cover-no-duplicates-binding-object-5.js | 4 +++-
 .../arrowparameters-cover-no-duplicates-binding-object-6.js | 4 +++-
 .../arrowparameters-cover-no-duplicates-rest.js             | 4 +++-
 .../early-errors/arrowparameters-cover-no-duplicates.js     | 4 +++-
 .../syntax/early-errors/arrowparameters-cover-no-eval.js    | 4 +++-
 .../syntax/early-errors/arrowparameters-cover-no-yield.js   | 4 +++-
 ...triction-invalid-parenless-parameters-expression-body.js | 4 +++-
 .../asi-restriction-invalid-parenless-parameters.js         | 4 +++-
 .../syntax/early-errors/asi-restriction-invalid.js          | 4 +++-
 .../syntax/early-errors/use-strict-with-non-simple-param.js | 4 +++-
 .../early-errors-arrow-NSPL-with-USD.js                     | 4 +++-
 .../early-errors-arrow-arguments-in-formal-parameters.js    | 4 +++-
 .../early-errors-arrow-await-in-formals-default.js          | 4 +++-
 .../early-errors-arrow-await-in-formals.js                  | 4 +++-
 .../early-errors-arrow-body-contains-super-call.js          | 4 +++-
 .../early-errors-arrow-body-contains-super-property.js      | 4 +++-
 .../early-errors-arrow-duplicate-parameters.js              | 4 +++-
 .../early-errors-arrow-eval-in-formal-parameters.js         | 4 +++-
 .../early-errors-arrow-formals-body-duplicate.js            | 4 +++-
 .../early-errors-arrow-formals-contains-super-call.js       | 4 +++-
 .../early-errors-arrow-formals-contains-super-property.js   | 4 +++-
 .../async-function/early-errors-expression-NSPL-with-USD.js | 4 +++-
 .../early-errors-expression-binding-identifier-arguments.js | 4 +++-
 .../early-errors-expression-binding-identifier-eval.js      | 4 +++-
 .../early-errors-expression-body-contains-super-call.js     | 4 +++-
 .../early-errors-expression-body-contains-super-property.js | 4 +++-
 .../early-errors-expression-eval-in-formal-parameters.js    | 4 +++-
 .../early-errors-expression-formals-body-duplicate.js       | 4 +++-
 .../early-errors-expression-formals-contains-super-call.js  | 4 +++-
 ...rly-errors-expression-formals-contains-super-property.js | 4 +++-
 .../expressions/await/await-BindingIdentifier-nested.js     | 4 +++-
 test/language/expressions/await/no-operand.js               | 4 +++-
 test/language/expressions/call/S11.2.4_A1.3_T1.js           | 4 +++-
 test/language/expressions/call/trailing-comma.js            | 4 +++-
 .../expressions/class/gen-method-param-dflt-yield.js        | 4 +++-
 test/language/expressions/class/getter-param-dflt.js        | 4 +++-
 test/language/expressions/class/method-param-dflt-yield.js  | 4 +++-
 .../expressions/class/static-gen-method-param-dflt-yield.js | 4 +++-
 .../expressions/class/static-method-param-dflt-yield.js     | 4 +++-
 .../expressions/compound-assignment/11.13.2-6-1gs.js        | 4 +++-
 test/language/expressions/conditional/in-branch-2.js        | 4 +++-
 test/language/expressions/conditional/in-condition.js       | 4 +++-
 test/language/expressions/delete/11.4.1-5-a-5gs.js          | 4 +++-
 ...xp-operator-syntax-error-bitnot-unary-expression-base.js | 4 +++-
 ...xp-operator-syntax-error-delete-unary-expression-base.js | 4 +++-
 ...erator-syntax-error-logical-not-unary-expression-base.js | 4 +++-
 ...xp-operator-syntax-error-negate-unary-expression-base.js | 4 +++-
 .../exp-operator-syntax-error-plus-unary-expression-base.js | 4 +++-
 ...xp-operator-syntax-error-typeof-unary-expression-base.js | 4 +++-
 .../exp-operator-syntax-error-void-unary-expression-base.js | 4 +++-
 test/language/expressions/function/early-body-super-call.js | 4 +++-
 test/language/expressions/function/early-body-super-prop.js | 4 +++-
 .../expressions/function/early-params-super-call.js         | 4 +++-
 .../expressions/function/early-params-super-prop.js         | 4 +++-
 .../expressions/function/param-dflt-yield-strict.js         | 4 +++-
 .../function/use-strict-with-non-simple-param.js            | 4 +++-
 test/language/expressions/generators/param-dflt-yield.js    | 4 +++-
 .../generators/use-strict-with-non-simple-param.js          | 4 +++-
 .../expressions/generators/yield-as-binding-identifier.js   | 4 +++-
 .../yield-as-generator-expression-binding-identifier.js     | 4 +++-
 test/language/expressions/generators/yield-as-label.js      | 4 +++-
 .../generators/yield-as-logical-or-expression.js            | 4 +++-
 test/language/expressions/generators/yield-as-parameter.js  | 4 +++-
 .../expressions/generators/yield-star-after-newline.js      | 4 +++-
 test/language/expressions/generators/yield-weak-binding.js  | 4 +++-
 test/language/expressions/object/11.1.5-1gs.js              | 4 +++-
 test/language/expressions/object/cover-initialized-name.js  | 4 +++-
 test/language/expressions/object/getter-param-dflt.js       | 4 +++-
 .../early-errors-object-method-NSPL-with-USD.js             | 4 +++-
 ...y-errors-object-method-arguments-in-formal-parameters.js | 4 +++-
 .../early-errors-object-method-await-in-formals-default.js  | 4 +++-
 .../early-errors-object-method-await-in-formals.js          | 4 +++-
 .../early-errors-object-method-body-contains-super-call.js  | 4 +++-
 .../early-errors-object-method-duplicate-parameters.js      | 4 +++-
 .../early-errors-object-method-eval-in-formal-parameters.js | 4 +++-
 .../early-errors-object-method-formals-body-duplicate.js    | 4 +++-
 ...arly-errors-object-method-formals-contains-super-call.js | 4 +++-
 .../object/method-definition/generator-param-id-yield.js    | 4 +++-
 .../object/method-definition/generator-param-init-yield.js  | 4 +++-
 .../method-definition/generator-param-redecl-const.js       | 4 +++-
 .../object/method-definition/generator-param-redecl-let.js  | 4 +++-
 .../object/method-definition/generator-super-call-body.js   | 4 +++-
 .../object/method-definition/generator-super-call-param.js  | 4 +++-
 .../generator-use-strict-with-non-simple-param.js           | 4 +++-
 .../object/method-definition/name-param-redecl.js           | 4 +++-
 .../object/method-definition/name-super-call-body.js        | 4 +++-
 .../object/method-definition/name-super-call-param.js       | 4 +++-
 .../object/method-definition/params-trailing-comma-rest.js  | 4 +++-
 .../setter-use-strict-with-non-simple-param.js              | 4 +++-
 .../method-definition/use-strict-with-non-simple-param.js   | 4 +++-
 .../object/method-definition/yield-as-binding-identifier.js | 4 +++-
 .../expressions/object/method-definition/yield-as-label.js  | 4 +++-
 .../method-definition/yield-as-logical-or-expression.js     | 4 +++-
 .../object/method-definition/yield-as-parameter.js          | 4 +++-
 .../object/method-definition/yield-star-after-newline.js    | 4 +++-
 .../object/method-definition/yield-weak-binding.js          | 4 +++-
 test/language/expressions/postfix-increment/11.3.1-2-1gs.js | 4 +++-
 test/language/expressions/prefix-decrement/11.4.5-2-2gs.js  | 4 +++-
 ...lid-hexidecimal-character-escape-sequence-truncated-1.js | 4 +++-
 ...lid-hexidecimal-character-escape-sequence-truncated-2.js | 4 +++-
 ...lid-hexidecimal-character-escape-sequence-truncated-3.js | 4 +++-
 .../invalid-legacy-octal-escape-sequence.js                 | 4 +++-
 .../template-literal/invalid-unicode-escape-sequence-1.js   | 4 +++-
 .../template-literal/invalid-unicode-escape-sequence-2.js   | 4 +++-
 .../template-literal/invalid-unicode-escape-sequence-3.js   | 4 +++-
 .../template-literal/invalid-unicode-escape-sequence-4.js   | 4 +++-
 .../template-literal/invalid-unicode-escape-sequence-5.js   | 4 +++-
 .../template-literal/invalid-unicode-escape-sequence-6.js   | 4 +++-
 .../template-literal/invalid-unicode-escape-sequence-7.js   | 4 +++-
 .../template-literal/invalid-unicode-escape-sequence-8.js   | 4 +++-
 test/language/expressions/yield/invalid-left-hand-side.js   | 4 +++-
 test/language/future-reserved-words/S7.6.1.2_A1.10.js       | 4 +++-
 test/language/future-reserved-words/S7.6.1.2_A1.11.js       | 4 +++-
 test/language/future-reserved-words/S7.6.1.2_A1.15.js       | 4 +++-
 test/language/future-reserved-words/S7.6.1.2_A1.16.js       | 4 +++-
 test/language/future-reserved-words/S7.6.1.2_A1.18.js       | 4 +++-
 test/language/future-reserved-words/S7.6.1.2_A1.21.js       | 4 +++-
 test/language/future-reserved-words/S7.6.1.2_A1.22.js       | 4 +++-
 test/language/future-reserved-words/S7.6.1.2_A1.23.js       | 4 +++-
 test/language/future-reserved-words/S7.6.1.2_A1.24.js       | 4 +++-
 test/language/future-reserved-words/S7.6.1.2_A1.26.js       | 4 +++-
 test/language/future-reserved-words/S7.6.1.2_A1.27.js       | 4 +++-
 test/language/future-reserved-words/S7.6.1.2_A1.5.js        | 4 +++-
 test/language/future-reserved-words/S7.6.1.2_A1.6.js        | 4 +++-
 test/language/future-reserved-words/S7.6.1.2_A1.7.js        | 4 +++-
 test/language/future-reserved-words/S7.6.1.2_A1.9.js        | 4 +++-
 test/language/global-code/decl-lex-restricted-global.js     | 4 +++-
 test/language/global-code/export.js                         | 4 +++-
 test/language/global-code/import.js                         | 4 +++-
 test/language/global-code/new.target-arrow.js               | 4 +++-
 test/language/global-code/new.target.js                     | 4 +++-
 test/language/global-code/return.js                         | 4 +++-
 test/language/global-code/super-call-arrow.js               | 4 +++-
 test/language/global-code/super-call.js                     | 4 +++-
 test/language/global-code/super-prop-arrow.js               | 4 +++-
 test/language/global-code/super-prop.js                     | 4 +++-
 test/language/global-code/yield-strict.js                   | 4 +++-
 test/language/identifiers/val-break-via-escape-hex.js       | 4 +++-
 test/language/identifiers/val-break-via-escape-hex4.js      | 4 +++-
 test/language/identifiers/val-break.js                      | 4 +++-
 test/language/identifiers/val-case-via-escape-hex.js        | 4 +++-
 test/language/identifiers/val-case-via-escape-hex4.js       | 4 +++-
 test/language/identifiers/val-case.js                       | 4 +++-
 test/language/identifiers/val-catch-via-escape-hex.js       | 4 +++-
 test/language/identifiers/val-catch-via-escape-hex4.js      | 4 +++-
 test/language/identifiers/val-catch.js                      | 4 +++-
 test/language/identifiers/val-class-via-escape-hex.js       | 4 +++-
 test/language/identifiers/val-class-via-escape-hex4.js      | 4 +++-
 test/language/identifiers/val-class.js                      | 4 +++-
 test/language/identifiers/val-const-via-escape-hex.js       | 4 +++-
 test/language/identifiers/val-const-via-escape-hex4.js      | 4 +++-
 test/language/identifiers/val-const.js                      | 4 +++-
 test/language/identifiers/val-continue-via-escape-hex.js    | 4 +++-
 test/language/identifiers/val-continue-via-escape-hex4.js   | 4 +++-
 test/language/identifiers/val-continue.js                   | 4 +++-
 test/language/identifiers/val-debugger-via-escape-hex.js    | 4 +++-
 test/language/identifiers/val-debugger-via-escape-hex4.js   | 4 +++-
 test/language/identifiers/val-debugger.js                   | 4 +++-
 test/language/identifiers/val-default-via-escape-hex.js     | 4 +++-
 test/language/identifiers/val-default-via-escape-hex4.js    | 4 +++-
 test/language/identifiers/val-default.js                    | 4 +++-
 test/language/identifiers/val-delete-via-escape-hex.js      | 4 +++-
 test/language/identifiers/val-delete-via-escape-hex4.js     | 4 +++-
 test/language/identifiers/val-delete.js                     | 4 +++-
 test/language/identifiers/val-do-via-escape-hex.js          | 4 +++-
 test/language/identifiers/val-do-via-escape-hex4.js         | 4 +++-
 test/language/identifiers/val-do.js                         | 4 +++-
 test/language/identifiers/val-else-via-escape-hex.js        | 4 +++-
 test/language/identifiers/val-else-via-escape-hex4.js       | 4 +++-
 test/language/identifiers/val-else.js                       | 4 +++-
 test/language/identifiers/val-enum-via-escape-hex.js        | 4 +++-
 test/language/identifiers/val-enum-via-escape-hex4.js       | 4 +++-
 test/language/identifiers/val-enum.js                       | 4 +++-
 test/language/identifiers/val-export-via-escape-hex.js      | 4 +++-
 test/language/identifiers/val-export-via-escape-hex4.js     | 4 +++-
 test/language/identifiers/val-export.js                     | 4 +++-
 test/language/identifiers/val-extends-via-escape-hex.js     | 4 +++-
 test/language/identifiers/val-extends-via-escape-hex4.js    | 4 +++-
 test/language/identifiers/val-extends.js                    | 4 +++-
 test/language/identifiers/val-false-via-escape-hex.js       | 4 +++-
 test/language/identifiers/val-false-via-escape-hex4.js      | 4 +++-
 test/language/identifiers/val-false.js                      | 4 +++-
 test/language/identifiers/val-finally-via-escape-hex.js     | 4 +++-
 test/language/identifiers/val-finally-via-escape-hex4.js    | 4 +++-
 test/language/identifiers/val-finally.js                    | 4 +++-
 test/language/identifiers/val-for-via-escape-hex.js         | 4 +++-
 test/language/identifiers/val-for-via-escape-hex4.js        | 4 +++-
 test/language/identifiers/val-for.js                        | 4 +++-
 test/language/identifiers/val-function-via-escape-hex.js    | 4 +++-
 test/language/identifiers/val-function-via-escape-hex4.js   | 4 +++-
 test/language/identifiers/val-function.js                   | 4 +++-
 test/language/identifiers/val-if-via-escape-hex.js          | 4 +++-
 test/language/identifiers/val-if-via-escape-hex4.js         | 4 +++-
 test/language/identifiers/val-if.js                         | 4 +++-
 test/language/identifiers/val-import-via-escape-hex.js      | 4 +++-
 test/language/identifiers/val-import-via-escape-hex4.js     | 4 +++-
 test/language/identifiers/val-import.js                     | 4 +++-
 test/language/identifiers/val-in-via-escape-hex.js          | 4 +++-
 test/language/identifiers/val-in-via-escape-hex4.js         | 4 +++-
 test/language/identifiers/val-in.js                         | 4 +++-
 test/language/identifiers/val-instanceof-via-escape-hex.js  | 4 +++-
 test/language/identifiers/val-instanceof-via-escape-hex4.js | 4 +++-
 test/language/identifiers/val-instanceof.js                 | 4 +++-
 test/language/identifiers/val-new-via-escape-hex.js         | 4 +++-
 test/language/identifiers/val-new-via-escape-hex4.js        | 4 +++-
 test/language/identifiers/val-new.js                        | 4 +++-
 test/language/identifiers/val-null-via-escape-hex.js        | 4 +++-
 test/language/identifiers/val-null-via-escape-hex4.js       | 4 +++-
 test/language/identifiers/val-null.js                       | 4 +++-
 test/language/identifiers/val-return-via-escape-hex.js      | 4 +++-
 test/language/identifiers/val-return-via-escape-hex4.js     | 4 +++-
 test/language/identifiers/val-return.js                     | 4 +++-
 test/language/identifiers/val-super-via-escape-hex.js       | 4 +++-
 test/language/identifiers/val-super-via-escape-hex4.js      | 4 +++-
 test/language/identifiers/val-super.js                      | 4 +++-
 test/language/identifiers/val-switch-via-escape-hex.js      | 4 +++-
 test/language/identifiers/val-switch-via-escape-hex4.js     | 4 +++-
 test/language/identifiers/val-switch.js                     | 4 +++-
 test/language/identifiers/val-this-via-escape-hex.js        | 4 +++-
 test/language/identifiers/val-this-via-escape-hex4.js       | 4 +++-
 test/language/identifiers/val-this.js                       | 4 +++-
 test/language/identifiers/val-throw-via-escape-hex.js       | 4 +++-
 test/language/identifiers/val-throw-via-escape-hex4.js      | 4 +++-
 test/language/identifiers/val-throw.js                      | 4 +++-
 test/language/identifiers/val-true-via-escape-hex.js        | 4 +++-
 test/language/identifiers/val-true-via-escape-hex4.js       | 4 +++-
 test/language/identifiers/val-true.js                       | 4 +++-
 test/language/identifiers/val-try-via-escape-hex.js         | 4 +++-
 test/language/identifiers/val-try-via-escape-hex4.js        | 4 +++-
 test/language/identifiers/val-try.js                        | 4 +++-
 test/language/identifiers/val-typeof-via-escape-hex.js      | 4 +++-
 test/language/identifiers/val-typeof-via-escape-hex4.js     | 4 +++-
 test/language/identifiers/val-typeof.js                     | 4 +++-
 test/language/identifiers/val-var-via-escape-hex.js         | 4 +++-
 test/language/identifiers/val-var-via-escape-hex4.js        | 4 +++-
 test/language/identifiers/val-var.js                        | 4 +++-
 test/language/identifiers/val-void-via-escape-hex.js        | 4 +++-
 test/language/identifiers/val-void-via-escape-hex4.js       | 4 +++-
 test/language/identifiers/val-void.js                       | 4 +++-
 test/language/identifiers/val-while-via-escape-hex.js       | 4 +++-
 test/language/identifiers/val-while-via-escape-hex4.js      | 4 +++-
 test/language/identifiers/val-while.js                      | 4 +++-
 test/language/identifiers/val-with-via-escape-hex.js        | 4 +++-
 test/language/identifiers/val-with-via-escape-hex4.js       | 4 +++-
 test/language/identifiers/val-with.js                       | 4 +++-
 test/language/identifiers/val-yield-strict.js               | 4 +++-
 test/language/import/dup-bound-names.js                     | 4 +++-
 test/language/keywords/S7.6.1.1_A1.1.js                     | 4 +++-
 test/language/keywords/S7.6.1.1_A1.10.js                    | 4 +++-
 test/language/keywords/S7.6.1.1_A1.11.js                    | 4 +++-
 test/language/keywords/S7.6.1.1_A1.12.js                    | 4 +++-
 test/language/keywords/S7.6.1.1_A1.13.js                    | 4 +++-
 test/language/keywords/S7.6.1.1_A1.14.js                    | 4 +++-
 test/language/keywords/S7.6.1.1_A1.15.js                    | 4 +++-
 test/language/keywords/S7.6.1.1_A1.16.js                    | 4 +++-
 test/language/keywords/S7.6.1.1_A1.17.js                    | 4 +++-
 test/language/keywords/S7.6.1.1_A1.19.js                    | 4 +++-
 test/language/keywords/S7.6.1.1_A1.2.js                     | 4 +++-
 test/language/keywords/S7.6.1.1_A1.20.js                    | 4 +++-
 test/language/keywords/S7.6.1.1_A1.21.js                    | 4 +++-
 test/language/keywords/S7.6.1.1_A1.22.js                    | 4 +++-
 test/language/keywords/S7.6.1.1_A1.23.js                    | 4 +++-
 test/language/keywords/S7.6.1.1_A1.24.js                    | 4 +++-
 test/language/keywords/S7.6.1.1_A1.25.js                    | 4 +++-
 test/language/keywords/S7.6.1.1_A1.3.js                     | 4 +++-
 test/language/keywords/S7.6.1.1_A1.4.js                     | 4 +++-
 test/language/keywords/S7.6.1.1_A1.5.js                     | 4 +++-
 test/language/keywords/S7.6.1.1_A1.6.js                     | 4 +++-
 test/language/keywords/S7.6.1.1_A1.7.js                     | 4 +++-
 test/language/keywords/S7.6.1.1_A1.8.js                     | 4 +++-
 test/language/keywords/S7.6.1.1_A1.9.js                     | 4 +++-
 test/language/line-terminators/S7.3_A2.1_T2.js              | 4 +++-
 test/language/line-terminators/S7.3_A2.2_T2.js              | 4 +++-
 test/language/line-terminators/S7.3_A3.1_T3.js              | 4 +++-
 test/language/line-terminators/S7.3_A3.2_T1.js              | 4 +++-
 test/language/line-terminators/S7.3_A3.2_T3.js              | 4 +++-
 test/language/line-terminators/S7.3_A3.3_T1.js              | 4 +++-
 test/language/line-terminators/S7.3_A3.4_T1.js              | 4 +++-
 test/language/line-terminators/S7.3_A6_T1.js                | 4 +++-
 test/language/line-terminators/S7.3_A6_T2.js                | 4 +++-
 test/language/line-terminators/S7.3_A6_T3.js                | 4 +++-
 test/language/line-terminators/S7.3_A6_T4.js                | 4 +++-
 test/language/literals/numeric/7.8.3-1gs.js                 | 4 +++-
 test/language/literals/numeric/7.8.3-2gs.js                 | 4 +++-
 test/language/literals/numeric/S7.8.3_A6.1_T1.js            | 4 +++-
 test/language/literals/numeric/S7.8.3_A6.1_T2.js            | 4 +++-
 test/language/literals/numeric/S7.8.3_A6.2_T1.js            | 4 +++-
 test/language/literals/numeric/S7.8.3_A6.2_T2.js            | 4 +++-
 test/language/literals/numeric/binary-invalid-digit.js      | 4 +++-
 test/language/literals/numeric/binary-invalid-leading.js    | 4 +++-
 test/language/literals/numeric/binary-invalid-truncated.js  | 4 +++-
 test/language/literals/numeric/binary-invalid-unicode.js    | 4 +++-
 .../literals/numeric/legacy-octal-integer-strict.js         | 4 +++-
 .../literals/numeric/non-octal-decimal-integer-strict.js    | 4 +++-
 test/language/literals/numeric/octal-invalid-digit.js       | 4 +++-
 test/language/literals/numeric/octal-invalid-leading.js     | 4 +++-
 test/language/literals/numeric/octal-invalid-truncated.js   | 4 +++-
 test/language/literals/numeric/octal-invalid-unicode.js     | 4 +++-
 test/language/literals/regexp/7.8.5-1gs.js                  | 4 +++-
 test/language/literals/regexp/S7.8.5_A1.2_T1.js             | 4 +++-
 test/language/literals/regexp/S7.8.5_A1.2_T2.js             | 4 +++-
 test/language/literals/regexp/S7.8.5_A1.2_T3.js             | 4 +++-
 test/language/literals/regexp/S7.8.5_A1.2_T4.js             | 4 +++-
 test/language/literals/regexp/S7.8.5_A1.3_T1.js             | 4 +++-
 test/language/literals/regexp/S7.8.5_A1.3_T3.js             | 4 +++-
 test/language/literals/regexp/S7.8.5_A1.5_T1.js             | 4 +++-
 test/language/literals/regexp/S7.8.5_A1.5_T3.js             | 4 +++-
 test/language/literals/regexp/S7.8.5_A2.2_T1.js             | 4 +++-
 test/language/literals/regexp/S7.8.5_A2.2_T2.js             | 4 +++-
 test/language/literals/regexp/S7.8.5_A2.3_T1.js             | 4 +++-
 test/language/literals/regexp/S7.8.5_A2.3_T3.js             | 4 +++-
 test/language/literals/regexp/S7.8.5_A2.5_T1.js             | 4 +++-
 test/language/literals/regexp/S7.8.5_A2.5_T3.js             | 4 +++-
 test/language/literals/regexp/early-err-bad-flag.js         | 4 +++-
 test/language/literals/regexp/early-err-dup-flag.js         | 4 +++-
 .../literals/regexp/early-err-flags-unicode-escape.js       | 4 +++-
 test/language/literals/regexp/early-err-pattern.js          | 4 +++-
 .../literals/regexp/invalid-braced-quantifier-exact.js      | 4 +++-
 .../literals/regexp/invalid-braced-quantifier-lower.js      | 4 +++-
 .../literals/regexp/invalid-braced-quantifier-range.js      | 4 +++-
 test/language/literals/regexp/u-dec-esc.js                  | 4 +++-
 test/language/literals/regexp/u-invalid-class-escape.js     | 4 +++-
 .../literals/regexp/u-invalid-extended-pattern-char.js      | 4 +++-
 test/language/literals/regexp/u-invalid-identity-escape.js  | 4 +++-
 .../literals/regexp/u-invalid-legacy-octal-escape.js        | 4 +++-
 .../regexp/u-invalid-non-empty-class-ranges-no-dash-a.js    | 4 +++-
 .../regexp/u-invalid-non-empty-class-ranges-no-dash-ab.js   | 4 +++-
 .../regexp/u-invalid-non-empty-class-ranges-no-dash-b.js    | 4 +++-
 .../literals/regexp/u-invalid-non-empty-class-ranges.js     | 4 +++-
 .../literals/regexp/u-invalid-oob-decimal-escape.js         | 4 +++-
 .../literals/regexp/u-invalid-quantifiable-assertion.js     | 4 +++-
 test/language/literals/regexp/u-unicode-esc-bounds.js       | 4 +++-
 test/language/literals/regexp/u-unicode-esc-non-hex.js      | 4 +++-
 test/language/literals/string/7.8.4-1gs.js                  | 4 +++-
 test/language/literals/string/S7.8.4_A1.1_T1.js             | 4 +++-
 test/language/literals/string/S7.8.4_A1.1_T2.js             | 4 +++-
 test/language/literals/string/S7.8.4_A1.2_T1.js             | 4 +++-
 test/language/literals/string/S7.8.4_A1.2_T2.js             | 4 +++-
 test/language/literals/string/S7.8.4_A3.1_T1.js             | 4 +++-
 test/language/literals/string/S7.8.4_A3.1_T2.js             | 4 +++-
 test/language/literals/string/S7.8.4_A3.2_T1.js             | 4 +++-
 test/language/literals/string/S7.8.4_A3.2_T2.js             | 4 +++-
 test/language/literals/string/S7.8.4_A4.3_T1.js             | 4 +++-
 test/language/literals/string/S7.8.4_A4.3_T2.js             | 4 +++-
 test/language/literals/string/S7.8.4_A7.1_T4.js             | 4 +++-
 test/language/literals/string/S7.8.4_A7.2_T1.js             | 4 +++-
 test/language/literals/string/S7.8.4_A7.2_T2.js             | 4 +++-
 test/language/literals/string/S7.8.4_A7.2_T3.js             | 4 +++-
 test/language/literals/string/S7.8.4_A7.2_T4.js             | 4 +++-
 test/language/literals/string/S7.8.4_A7.2_T5.js             | 4 +++-
 test/language/literals/string/S7.8.4_A7.2_T6.js             | 4 +++-
 .../literals/string/legacy-octal-escape-sequence-strict.js  | 4 +++-
 test/language/module-code/comment-multi-line-html-close.js  | 4 +++-
 test/language/module-code/comment-single-line-html-close.js | 4 +++-
 test/language/module-code/comment-single-line-html-open.js  | 4 +++-
 test/language/module-code/early-dup-export-decl.js          | 4 +++-
 test/language/module-code/early-dup-export-dflt-id.js       | 4 +++-
 test/language/module-code/early-dup-export-dflt.js          | 4 +++-
 test/language/module-code/early-dup-export-id-as.js         | 4 +++-
 test/language/module-code/early-dup-export-id.js            | 4 +++-
 test/language/module-code/early-dup-lables.js               | 4 +++-
 test/language/module-code/early-dup-lex.js                  | 4 +++-
 test/language/module-code/early-export-global.js            | 4 +++-
 test/language/module-code/early-export-unresolvable.js      | 4 +++-
 test/language/module-code/early-import-arguments.js         | 4 +++-
 test/language/module-code/early-import-as-arguments.js      | 4 +++-
 test/language/module-code/early-import-as-eval.js           | 4 +++-
 test/language/module-code/early-import-eval.js              | 4 +++-
 test/language/module-code/early-lex-and-var.js              | 4 +++-
 test/language/module-code/early-new-target.js               | 4 +++-
 test/language/module-code/early-strict-mode.js              | 4 +++-
 test/language/module-code/early-super.js                    | 4 +++-
 test/language/module-code/early-undef-break.js              | 4 +++-
 test/language/module-code/early-undef-continue.js           | 4 +++-
 test/language/module-code/instn-iee-err-ambiguous-as.js     | 4 +++-
 test/language/module-code/instn-iee-err-ambiguous.js        | 4 +++-
 test/language/module-code/instn-iee-err-circular-as.js      | 4 +++-
 test/language/module-code/instn-iee-err-circular.js         | 4 +++-
 .../language/module-code/instn-iee-err-dflt-thru-star-as.js | 4 +++-
 test/language/module-code/instn-iee-err-dflt-thru-star.js   | 4 +++-
 test/language/module-code/instn-iee-err-not-found-as.js     | 4 +++-
 test/language/module-code/instn-iee-err-not-found.js        | 4 +++-
 test/language/module-code/instn-iee-star-cycle.js           | 4 +++-
 test/language/module-code/instn-named-err-ambiguous-as.js   | 4 +++-
 test/language/module-code/instn-named-err-ambiguous.js      | 4 +++-
 .../module-code/instn-named-err-dflt-thru-star-as.js        | 4 +++-
 .../module-code/instn-named-err-dflt-thru-star-dflt.js      | 4 +++-
 test/language/module-code/instn-named-err-not-found-as.js   | 4 +++-
 test/language/module-code/instn-named-err-not-found-dflt.js | 4 +++-
 test/language/module-code/instn-named-err-not-found.js      | 4 +++-
 test/language/module-code/instn-named-star-cycle.js         | 4 +++-
 test/language/module-code/instn-resolve-err-syntax.js       | 4 +++-
 test/language/module-code/instn-star-err-not-found.js       | 4 +++-
 test/language/module-code/instn-star-star-cycle.js          | 4 +++-
 .../module-code/parse-err-decl-pos-export-arrow-function.js | 4 +++-
 .../parse-err-decl-pos-export-block-stmt-list.js            | 4 +++-
 .../module-code/parse-err-decl-pos-export-block-stmt.js     | 4 +++-
 .../parse-err-decl-pos-export-class-decl-meth-static.js     | 4 +++-
 .../parse-err-decl-pos-export-class-decl-meth.js            | 4 +++-
 ...arse-err-decl-pos-export-class-decl-method-gen-static.js | 4 +++-
 .../parse-err-decl-pos-export-class-decl-method-gen.js      | 4 +++-
 .../parse-err-decl-pos-export-class-expr-meth-gen-static.js | 4 +++-
 .../parse-err-decl-pos-export-class-expr-meth-gen.js        | 4 +++-
 .../parse-err-decl-pos-export-class-expr-meth-static.js     | 4 +++-
 .../parse-err-decl-pos-export-class-expr-meth.js            | 4 +++-
 .../module-code/parse-err-decl-pos-export-do-while.js       | 4 +++-
 .../module-code/parse-err-decl-pos-export-for-const.js      | 4 +++-
 .../module-code/parse-err-decl-pos-export-for-in-const.js   | 4 +++-
 .../module-code/parse-err-decl-pos-export-for-in-let.js     | 4 +++-
 .../module-code/parse-err-decl-pos-export-for-in-lhs.js     | 4 +++-
 .../module-code/parse-err-decl-pos-export-for-in-var.js     | 4 +++-
 .../module-code/parse-err-decl-pos-export-for-let.js        | 4 +++-
 .../module-code/parse-err-decl-pos-export-for-lhs.js        | 4 +++-
 .../module-code/parse-err-decl-pos-export-for-of-const.js   | 4 +++-
 .../module-code/parse-err-decl-pos-export-for-of-let.js     | 4 +++-
 .../module-code/parse-err-decl-pos-export-for-of-lhs.js     | 4 +++-
 .../module-code/parse-err-decl-pos-export-for-of-var.js     | 4 +++-
 .../module-code/parse-err-decl-pos-export-for-var.js        | 4 +++-
 .../module-code/parse-err-decl-pos-export-function-decl.js  | 4 +++-
 .../module-code/parse-err-decl-pos-export-function-expr.js  | 4 +++-
 .../module-code/parse-err-decl-pos-export-generator-decl.js | 4 +++-
 .../module-code/parse-err-decl-pos-export-generator-expr.js | 4 +++-
 .../module-code/parse-err-decl-pos-export-if-else.js        | 4 +++-
 .../language/module-code/parse-err-decl-pos-export-if-if.js | 4 +++-
 .../module-code/parse-err-decl-pos-export-labeled.js        | 4 +++-
 .../parse-err-decl-pos-export-object-gen-method.js          | 4 +++-
 .../module-code/parse-err-decl-pos-export-object-getter.js  | 4 +++-
 .../module-code/parse-err-decl-pos-export-object-method.js  | 4 +++-
 .../module-code/parse-err-decl-pos-export-object-setter.js  | 4 +++-
 .../parse-err-decl-pos-export-switch-case-dflt.js           | 4 +++-
 .../module-code/parse-err-decl-pos-export-switch-case.js    | 4 +++-
 .../module-code/parse-err-decl-pos-export-switch-dftl.js    | 4 +++-
 .../parse-err-decl-pos-export-try-catch-finally.js          | 4 +++-
 .../module-code/parse-err-decl-pos-export-try-catch.js      | 4 +++-
 .../module-code/parse-err-decl-pos-export-try-finally.js    | 4 +++-
 .../module-code/parse-err-decl-pos-export-try-try.js        | 4 +++-
 .../language/module-code/parse-err-decl-pos-export-while.js | 4 +++-
 .../module-code/parse-err-decl-pos-import-arrow-function.js | 4 +++-
 .../parse-err-decl-pos-import-block-stmt-list.js            | 4 +++-
 .../module-code/parse-err-decl-pos-import-block-stmt.js     | 4 +++-
 .../parse-err-decl-pos-import-class-decl-meth-static.js     | 4 +++-
 .../parse-err-decl-pos-import-class-decl-meth.js            | 4 +++-
 ...arse-err-decl-pos-import-class-decl-method-gen-static.js | 4 +++-
 .../parse-err-decl-pos-import-class-decl-method-gen.js      | 4 +++-
 .../parse-err-decl-pos-import-class-expr-meth-gen-static.js | 4 +++-
 .../parse-err-decl-pos-import-class-expr-meth-gen.js        | 4 +++-
 .../parse-err-decl-pos-import-class-expr-meth-static.js     | 4 +++-
 .../parse-err-decl-pos-import-class-expr-meth.js            | 4 +++-
 .../module-code/parse-err-decl-pos-import-do-while.js       | 4 +++-
 .../module-code/parse-err-decl-pos-import-for-const.js      | 4 +++-
 .../module-code/parse-err-decl-pos-import-for-in-const.js   | 4 +++-
 .../module-code/parse-err-decl-pos-import-for-in-let.js     | 4 +++-
 .../module-code/parse-err-decl-pos-import-for-in-lhs.js     | 4 +++-
 .../module-code/parse-err-decl-pos-import-for-in-var.js     | 4 +++-
 .../module-code/parse-err-decl-pos-import-for-let.js        | 4 +++-
 .../module-code/parse-err-decl-pos-import-for-lhs.js        | 4 +++-
 .../module-code/parse-err-decl-pos-import-for-of-const.js   | 4 +++-
 .../module-code/parse-err-decl-pos-import-for-of-let.js     | 4 +++-
 .../module-code/parse-err-decl-pos-import-for-of-lhs.js     | 4 +++-
 .../module-code/parse-err-decl-pos-import-for-of-var.js     | 4 +++-
 .../module-code/parse-err-decl-pos-import-for-var.js        | 4 +++-
 .../module-code/parse-err-decl-pos-import-function-decl.js  | 4 +++-
 .../module-code/parse-err-decl-pos-import-function-expr.js  | 4 +++-
 .../module-code/parse-err-decl-pos-import-generator-decl.js | 4 +++-
 .../module-code/parse-err-decl-pos-import-generator-expr.js | 4 +++-
 .../module-code/parse-err-decl-pos-import-if-else.js        | 4 +++-
 .../language/module-code/parse-err-decl-pos-import-if-if.js | 4 +++-
 .../module-code/parse-err-decl-pos-import-labeled.js        | 4 +++-
 .../parse-err-decl-pos-import-object-gen-method.js          | 4 +++-
 .../module-code/parse-err-decl-pos-import-object-getter.js  | 4 +++-
 .../module-code/parse-err-decl-pos-import-object-method.js  | 4 +++-
 .../module-code/parse-err-decl-pos-import-object-setter.js  | 4 +++-
 .../parse-err-decl-pos-import-switch-case-dflt.js           | 4 +++-
 .../module-code/parse-err-decl-pos-import-switch-case.js    | 4 +++-
 .../module-code/parse-err-decl-pos-import-switch-dftl.js    | 4 +++-
 .../parse-err-decl-pos-import-try-catch-finally.js          | 4 +++-
 .../module-code/parse-err-decl-pos-import-try-catch.js      | 4 +++-
 .../module-code/parse-err-decl-pos-import-try-finally.js    | 4 +++-
 .../module-code/parse-err-decl-pos-import-try-try.js        | 4 +++-
 .../language/module-code/parse-err-decl-pos-import-while.js | 4 +++-
 test/language/module-code/parse-err-export-dflt-const.js    | 4 +++-
 test/language/module-code/parse-err-export-dflt-expr.js     | 4 +++-
 test/language/module-code/parse-err-export-dflt-let.js      | 4 +++-
 test/language/module-code/parse-err-export-dflt-var.js      | 4 +++-
 test/language/module-code/parse-err-hoist-lex-fun.js        | 4 +++-
 test/language/module-code/parse-err-hoist-lex-gen.js        | 4 +++-
 test/language/module-code/parse-err-invoke-anon-fun-decl.js | 4 +++-
 test/language/module-code/parse-err-invoke-anon-gen-decl.js | 4 +++-
 test/language/module-code/parse-err-return.js               | 4 +++-
 test/language/module-code/parse-err-semi-dflt-expr.js       | 4 +++-
 .../module-code/parse-err-semi-export-clause-from.js        | 4 +++-
 test/language/module-code/parse-err-semi-export-clause.js   | 4 +++-
 test/language/module-code/parse-err-semi-export-star.js     | 4 +++-
 test/language/module-code/parse-err-syntax.js               | 4 +++-
 test/language/module-code/parse-err-yield.js                | 4 +++-
 test/language/punctuators/S7.7_A2_T1.js                     | 4 +++-
 test/language/punctuators/S7.7_A2_T10.js                    | 4 +++-
 test/language/punctuators/S7.7_A2_T2.js                     | 4 +++-
 test/language/punctuators/S7.7_A2_T3.js                     | 4 +++-
 test/language/punctuators/S7.7_A2_T4.js                     | 4 +++-
 test/language/punctuators/S7.7_A2_T5.js                     | 4 +++-
 test/language/punctuators/S7.7_A2_T6.js                     | 4 +++-
 test/language/punctuators/S7.7_A2_T7.js                     | 4 +++-
 test/language/punctuators/S7.7_A2_T8.js                     | 4 +++-
 test/language/punctuators/S7.7_A2_T9.js                     | 4 +++-
 test/language/reserved-words/7.6.1.2-1gs.js                 | 4 +++-
 test/language/reserved-words/await-module.js                | 4 +++-
 test/language/rest-parameters/params-trailing-comma-rest.js | 4 +++-
 test/language/rest-parameters/position-invalid.js           | 4 +++-
 .../early-errors-declaration-NSPL-with-USD.js               | 4 +++-
 ...rly-errors-declaration-arguments-in-formal-parameters.js | 4 +++-
 .../early-errors-declaration-await-in-formals-default.js    | 4 +++-
 .../early-errors-declaration-await-in-formals.js            | 4 +++-
 ...early-errors-declaration-binding-identifier-arguments.js | 4 +++-
 .../early-errors-declaration-binding-identifier-eval.js     | 4 +++-
 .../early-errors-declaration-body-contains-super-call.js    | 4 +++-
 ...early-errors-declaration-body-contains-super-property.js | 4 +++-
 .../early-errors-declaration-duplicate-parameters.js        | 4 +++-
 .../early-errors-declaration-eval-in-formal-parameters.js   | 4 +++-
 .../early-errors-declaration-formals-body-duplicate.js      | 4 +++-
 .../early-errors-declaration-formals-contains-super-call.js | 4 +++-
 ...ly-errors-declaration-formals-contains-super-property.js | 4 +++-
 .../async-function/early-errors-no-async-generator.js       | 4 +++-
 test/language/statements/block/S12.1_A4_T1.js               | 4 +++-
 test/language/statements/block/S12.1_A4_T2.js               | 4 +++-
 test/language/statements/break/S12.8_A1_T1.js               | 4 +++-
 test/language/statements/break/S12.8_A1_T2.js               | 4 +++-
 test/language/statements/break/S12.8_A1_T3.js               | 4 +++-
 test/language/statements/break/S12.8_A1_T4.js               | 4 +++-
 test/language/statements/break/S12.8_A5_T1.js               | 4 +++-
 test/language/statements/break/S12.8_A5_T2.js               | 4 +++-
 test/language/statements/break/S12.8_A5_T3.js               | 4 +++-
 test/language/statements/break/S12.8_A6.js                  | 4 +++-
 test/language/statements/break/S12.8_A8_T1.js               | 4 +++-
 test/language/statements/break/S12.8_A8_T2.js               | 4 +++-
 .../definition/early-errors-class-method-NSPL-with-USD.js   | 4 +++-
 ...ly-errors-class-method-arguments-in-formal-parameters.js | 4 +++-
 .../early-errors-class-method-await-in-formals-default.js   | 4 +++-
 .../early-errors-class-method-await-in-formals.js           | 4 +++-
 .../early-errors-class-method-body-contains-super-call.js   | 4 +++-
 .../early-errors-class-method-duplicate-parameters.js       | 4 +++-
 .../early-errors-class-method-eval-in-formal-parameters.js  | 4 +++-
 .../early-errors-class-method-formals-body-duplicate.js     | 4 +++-
 ...early-errors-class-method-formals-contains-super-call.js | 4 +++-
 .../definition/methods-gen-yield-as-binding-identifier.js   | 4 +++-
 ...s-gen-yield-as-function-expression-binding-identifier.js | 4 +++-
 .../methods-gen-yield-as-identifier-in-nested-function.js   | 4 +++-
 .../class/definition/methods-gen-yield-as-label.js          | 4 +++-
 .../methods-gen-yield-as-logical-or-expression.js           | 4 +++-
 .../class/definition/methods-gen-yield-as-parameter.js      | 4 +++-
 .../definition/methods-gen-yield-star-after-newline.js      | 4 +++-
 .../class/definition/methods-gen-yield-weak-binding.js      | 4 +++-
 .../class/definition/params-trailing-comma-rest.js          | 4 +++-
 .../statements/class/gen-method-param-dflt-yield.js         | 4 +++-
 test/language/statements/class/getter-param-dflt.js         | 4 +++-
 test/language/statements/class/method-param-yield.js        | 4 +++-
 .../statements/class/static-gen-method-param-dflt-yield.js  | 4 +++-
 test/language/statements/class/static-method-param-yield.js | 4 +++-
 test/language/statements/class/strict-mode/with.js          | 4 +++-
 .../class-body-contains-multiple-constructor.js             | 4 +++-
 .../class-body-has-direct-super-missing-class-heritage.js   | 4 +++-
 .../early-errors/class-body-method-contains-direct-super.js | 4 +++-
 ...s-body-special-method-generator-contains-direct-super.js | 4 +++-
 ...ss-body-special-method-generator-propname-constructor.js | 4 +++-
 .../class-body-special-method-get-contains-direct-super.js  | 4 +++-
 .../class-body-special-method-get-propname-constructor.js   | 4 +++-
 .../class-body-special-method-set-contains-direct-super.js  | 4 +++-
 .../class-body-special-method-set-propname-constructor.js   | 4 +++-
 .../class-body-static-method-contains-direct-super.js       | 4 +++-
 .../class-body-static-method-get-contains-direct-super.js   | 4 +++-
 .../class-body-static-method-get-propname-prototype.js      | 4 +++-
 .../class-body-static-method-propname-prototype.js          | 4 +++-
 .../class-body-static-method-set-contains-direct-super.js   | 4 +++-
 .../class-body-static-method-set-propname-prototype.js      | 4 +++-
 .../class-definition-evaluation-block-duplicate-binding.js  | 4 +++-
 ...ss-definition-evaluation-scriptbody-duplicate-binding.js | 4 +++-
 ...laration-error-from-within-strict-mode-function-const.js | 4 +++-
 ...tax-const-declarations-mixed-with-without-initialiser.js | 4 +++-
 ...tax-const-declarations-mixed-without-with-initialiser.js | 4 +++-
 ...k-scope-syntax-const-declarations-without-initialiser.js | 4 +++-
 .../syntax/const-declaring-let-split-across-two-lines.js    | 4 +++-
 .../with-initializer-do-statement-while-expression.js       | 4 +++-
 .../const/syntax/with-initializer-for-statement.js          | 4 +++-
 ...th-initializer-if-expression-statement-else-statement.js | 4 +++-
 .../syntax/with-initializer-if-expression-statement.js      | 4 +++-
 .../const/syntax/with-initializer-label-statement.js        | 4 +++-
 .../syntax/with-initializer-while-expression-statement.js   | 4 +++-
 .../without-initializer-case-expression-statement-list.js   | 4 +++-
 .../syntax/without-initializer-default-statement-list.js    | 4 +++-
 .../without-initializer-do-statement-while-expression.js    | 4 +++-
 .../const/syntax/without-initializer-for-statement.js       | 4 +++-
 ...ut-initializer-if-expression-statement-else-statement.js | 4 +++-
 .../syntax/without-initializer-if-expression-statement.js   | 4 +++-
 .../const/syntax/without-initializer-label-statement.js     | 4 +++-
 .../without-initializer-while-expression-statement.js       | 4 +++-
 test/language/statements/continue/S12.7_A1_T1.js            | 4 +++-
 test/language/statements/continue/S12.7_A1_T2.js            | 4 +++-
 test/language/statements/continue/S12.7_A1_T3.js            | 4 +++-
 test/language/statements/continue/S12.7_A1_T4.js            | 4 +++-
 test/language/statements/continue/S12.7_A5_T1.js            | 4 +++-
 test/language/statements/continue/S12.7_A5_T2.js            | 4 +++-
 test/language/statements/continue/S12.7_A5_T3.js            | 4 +++-
 test/language/statements/continue/S12.7_A6.js               | 4 +++-
 test/language/statements/continue/S12.7_A8_T1.js            | 4 +++-
 test/language/statements/continue/S12.7_A8_T2.js            | 4 +++-
 test/language/statements/debugger/expression.js             | 4 +++-
 test/language/statements/do-while/S12.6.1_A12.js            | 4 +++-
 test/language/statements/do-while/S12.6.1_A15.js            | 4 +++-
 test/language/statements/do-while/S12.6.1_A6_T1.js          | 4 +++-
 test/language/statements/do-while/S12.6.1_A6_T2.js          | 4 +++-
 test/language/statements/do-while/S12.6.1_A6_T3.js          | 4 +++-
 test/language/statements/do-while/S12.6.1_A6_T4.js          | 4 +++-
 test/language/statements/do-while/S12.6.1_A6_T5.js          | 4 +++-
 test/language/statements/do-while/S12.6.1_A6_T6.js          | 4 +++-
 test/language/statements/do-while/decl-cls.js               | 4 +++-
 test/language/statements/do-while/decl-const.js             | 4 +++-
 test/language/statements/do-while/decl-fun.js               | 4 +++-
 test/language/statements/do-while/decl-gen.js               | 4 +++-
 test/language/statements/do-while/decl-let.js               | 4 +++-
 test/language/statements/do-while/labelled-fn-stmt.js       | 4 +++-
 test/language/statements/expression/S12.4_A1.js             | 4 +++-
 test/language/statements/for-in/S12.6.4_A15.js              | 4 +++-
 test/language/statements/for-in/decl-cls.js                 | 4 +++-
 test/language/statements/for-in/decl-const.js               | 4 +++-
 test/language/statements/for-in/decl-fun.js                 | 4 +++-
 test/language/statements/for-in/decl-gen.js                 | 4 +++-
 test/language/statements/for-in/decl-let.js                 | 4 +++-
 .../statements/for-in/head-const-bound-names-dup.js         | 4 +++-
 .../statements/for-in/head-const-bound-names-in-stmt.js     | 4 +++-
 .../statements/for-in/head-const-bound-names-let.js         | 4 +++-
 test/language/statements/for-in/head-let-bound-names-dup.js | 4 +++-
 .../statements/for-in/head-let-bound-names-in-stmt.js       | 4 +++-
 test/language/statements/for-in/head-let-bound-names-let.js | 4 +++-
 .../statements/for-in/head-lhs-cover-non-asnmt-trgt.js      | 4 +++-
 .../statements/for-in/head-lhs-invalid-asnmt-ptrn-ary.js    | 4 +++-
 .../statements/for-in/head-lhs-invalid-asnmt-ptrn-obj.js    | 4 +++-
 test/language/statements/for-in/head-lhs-non-asnmt-trgt.js  | 4 +++-
 test/language/statements/for-in/labelled-fn-stmt-const.js   | 4 +++-
 test/language/statements/for-in/labelled-fn-stmt-let.js     | 4 +++-
 test/language/statements/for-in/labelled-fn-stmt-lhs.js     | 4 +++-
 test/language/statements/for-in/labelled-fn-stmt-var.js     | 4 +++-
 test/language/statements/for-of/decl-cls.js                 | 4 +++-
 test/language/statements/for-of/decl-const.js               | 4 +++-
 test/language/statements/for-of/decl-fun.js                 | 4 +++-
 test/language/statements/for-of/decl-gen.js                 | 4 +++-
 test/language/statements/for-of/decl-let.js                 | 4 +++-
 .../statements/for-of/head-const-bound-names-dup.js         | 4 +++-
 .../statements/for-of/head-const-bound-names-in-stmt.js     | 4 +++-
 .../statements/for-of/head-const-bound-names-let.js         | 4 +++-
 test/language/statements/for-of/head-decl-no-expr.js        | 4 +++-
 test/language/statements/for-of/head-expr-no-expr.js        | 4 +++-
 test/language/statements/for-of/head-let-bound-names-dup.js | 4 +++-
 .../statements/for-of/head-let-bound-names-in-stmt.js       | 4 +++-
 test/language/statements/for-of/head-let-bound-names-let.js | 4 +++-
 .../statements/for-of/head-lhs-cover-non-asnmt-trgt.js      | 4 +++-
 .../statements/for-of/head-lhs-invalid-asnmt-ptrn-ary.js    | 4 +++-
 .../statements/for-of/head-lhs-invalid-asnmt-ptrn-obj.js    | 4 +++-
 test/language/statements/for-of/head-lhs-let.js             | 4 +++-
 test/language/statements/for-of/head-lhs-non-asnmt-trgt.js  | 4 +++-
 test/language/statements/for-of/head-var-no-expr.js         | 4 +++-
 test/language/statements/for-of/labelled-fn-stmt-const.js   | 4 +++-
 test/language/statements/for-of/labelled-fn-stmt-let.js     | 4 +++-
 test/language/statements/for-of/labelled-fn-stmt-lhs.js     | 4 +++-
 test/language/statements/for-of/labelled-fn-stmt-var.js     | 4 +++-
 test/language/statements/for/S12.6.3_A11.1_T3.js            | 4 +++-
 test/language/statements/for/S12.6.3_A11_T3.js              | 4 +++-
 test/language/statements/for/S12.6.3_A12.1_T3.js            | 4 +++-
 test/language/statements/for/S12.6.3_A12_T3.js              | 4 +++-
 test/language/statements/for/S12.6.3_A4.1.js                | 4 +++-
 test/language/statements/for/S12.6.3_A4_T1.js               | 4 +++-
 test/language/statements/for/S12.6.3_A4_T2.js               | 4 +++-
 test/language/statements/for/S12.6.3_A7.1_T1.js             | 4 +++-
 test/language/statements/for/S12.6.3_A7.1_T2.js             | 4 +++-
 test/language/statements/for/S12.6.3_A7_T1.js               | 4 +++-
 test/language/statements/for/S12.6.3_A7_T2.js               | 4 +++-
 test/language/statements/for/S12.6.3_A8.1_T1.js             | 4 +++-
 test/language/statements/for/S12.6.3_A8.1_T2.js             | 4 +++-
 test/language/statements/for/S12.6.3_A8.1_T3.js             | 4 +++-
 test/language/statements/for/S12.6.3_A8_T1.js               | 4 +++-
 test/language/statements/for/S12.6.3_A8_T2.js               | 4 +++-
 test/language/statements/for/S12.6.3_A8_T3.js               | 4 +++-
 test/language/statements/for/decl-cls.js                    | 4 +++-
 test/language/statements/for/decl-const.js                  | 4 +++-
 test/language/statements/for/decl-fun.js                    | 4 +++-
 test/language/statements/for/decl-gen.js                    | 4 +++-
 test/language/statements/for/decl-let.js                    | 4 +++-
 .../statements/for/head-const-bound-names-in-stmt.js        | 4 +++-
 .../language/statements/for/head-let-bound-names-in-stmt.js | 4 +++-
 test/language/statements/for/labelled-fn-stmt-const.js      | 4 +++-
 test/language/statements/for/labelled-fn-stmt-expr.js       | 4 +++-
 test/language/statements/for/labelled-fn-stmt-let.js        | 4 +++-
 test/language/statements/for/labelled-fn-stmt-var.js        | 4 +++-
 test/language/statements/function/13.0_4-5gs.js             | 4 +++-
 test/language/statements/function/13.1-13gs.js              | 4 +++-
 test/language/statements/function/13.1-1gs.js               | 4 +++-
 test/language/statements/function/13.1-4gs.js               | 4 +++-
 test/language/statements/function/13.1-5gs.js               | 4 +++-
 test/language/statements/function/13.1-8gs.js               | 4 +++-
 test/language/statements/function/S13_A7_T3.js              | 4 +++-
 test/language/statements/function/early-body-super-call.js  | 4 +++-
 test/language/statements/function/early-body-super-prop.js  | 4 +++-
 .../language/statements/function/early-params-super-call.js | 4 +++-
 .../language/statements/function/early-params-super-prop.js | 4 +++-
 .../language/statements/function/param-dflt-yield-strict.js | 4 +++-
 .../statements/function/use-strict-with-non-simple-param.js | 4 +++-
 test/language/statements/generators/param-dflt-yield.js     | 4 +++-
 .../generators/use-strict-with-non-simple-param.js          | 4 +++-
 .../statements/generators/yield-as-binding-identifier.js    | 4 +++-
 test/language/statements/generators/yield-as-label.js       | 4 +++-
 .../statements/generators/yield-as-logical-or-expression.js | 4 +++-
 test/language/statements/generators/yield-as-parameter.js   | 4 +++-
 .../statements/generators/yield-star-after-newline.js       | 4 +++-
 test/language/statements/generators/yield-weak-binding.js   | 4 +++-
 test/language/statements/if/S12.5_A11.js                    | 4 +++-
 test/language/statements/if/S12.5_A6_T1.js                  | 4 +++-
 test/language/statements/if/S12.5_A6_T2.js                  | 4 +++-
 test/language/statements/if/S12.5_A8.js                     | 4 +++-
 test/language/statements/if/if-cls-else-cls.js              | 4 +++-
 test/language/statements/if/if-cls-else-stmt.js             | 4 +++-
 test/language/statements/if/if-cls-no-else.js               | 4 +++-
 test/language/statements/if/if-const-else-const.js          | 4 +++-
 test/language/statements/if/if-const-else-stmt.js           | 4 +++-
 test/language/statements/if/if-const-no-else.js             | 4 +++-
 test/language/statements/if/if-decl-else-decl-strict.js     | 4 +++-
 test/language/statements/if/if-decl-else-stmt-strict.js     | 4 +++-
 test/language/statements/if/if-decl-no-else-strict.js       | 4 +++-
 test/language/statements/if/if-fun-else-fun-strict.js       | 4 +++-
 test/language/statements/if/if-fun-else-stmt-strict.js      | 4 +++-
 test/language/statements/if/if-fun-no-else-strict.js        | 4 +++-
 test/language/statements/if/if-gen-else-gen.js              | 4 +++-
 test/language/statements/if/if-gen-else-stmt.js             | 4 +++-
 test/language/statements/if/if-gen-no-else.js               | 4 +++-
 test/language/statements/if/if-let-else-let.js              | 4 +++-
 test/language/statements/if/if-let-else-stmt.js             | 4 +++-
 test/language/statements/if/if-let-no-else.js               | 4 +++-
 test/language/statements/if/if-stmt-else-cls.js             | 4 +++-
 test/language/statements/if/if-stmt-else-const.js           | 4 +++-
 test/language/statements/if/if-stmt-else-decl-strict.js     | 4 +++-
 test/language/statements/if/if-stmt-else-fun-strict.js      | 4 +++-
 test/language/statements/if/if-stmt-else-gen.js             | 4 +++-
 test/language/statements/if/if-stmt-else-let.js             | 4 +++-
 test/language/statements/if/labelled-fn-stmt-first.js       | 4 +++-
 test/language/statements/if/labelled-fn-stmt-lone.js        | 4 +++-
 test/language/statements/if/labelled-fn-stmt-second.js      | 4 +++-
 test/language/statements/labeled/continue.js                | 4 +++-
 test/language/statements/labeled/decl-cls.js                | 4 +++-
 test/language/statements/labeled/decl-const.js              | 4 +++-
 test/language/statements/labeled/decl-fun-strict.js         | 4 +++-
 test/language/statements/labeled/decl-gen.js                | 4 +++-
 test/language/statements/labeled/decl-let.js                | 4 +++-
 test/language/statements/labeled/value-yield-strict.js      | 4 +++-
 .../redeclaration-error-from-within-strict-mode-function.js | 4 +++-
 ...pt-to-redeclare-let-binding-with-function-declaration.js | 4 +++-
 .../let/syntax/attempt-to-redeclare-let-binding-with-var.js | 4 +++-
 ...ntifier-let-allowed-as-lefthandside-expression-strict.js | 4 +++-
 .../let/syntax/identifier-let-disallowed-as-boundname.js    | 4 +++-
 .../syntax/let-let-declaration-split-across-two-lines.js    | 4 +++-
 ...t-declaration-with-initializer-split-across-two-lines.js | 4 +++-
 ...-in-statement-positions-do-statement-while-expression.js | 4 +++-
 ...ith-initialisers-in-statement-positions-for-statement.js | 4 +++-
 ...ment-positions-if-expression-statement-else-statement.js | 4 +++-
 ...lisers-in-statement-positions-if-expression-statement.js | 4 +++-
 ...h-initialisers-in-statement-positions-label-statement.js | 4 +++-
 ...ers-in-statement-positions-while-expression-statement.js | 4 +++-
 ...-in-statement-positions-do-statement-while-expression.js | 4 +++-
 ...out-initialisers-in-statement-positions-for-statement.js | 4 +++-
 ...ment-positions-if-expression-statement-else-statement.js | 4 +++-
 ...lisers-in-statement-positions-if-expression-statement.js | 4 +++-
 ...t-initialisers-in-statement-positions-label-statement.js | 4 +++-
 ...ers-in-statement-positions-while-expression-statement.js | 4 +++-
 test/language/statements/return/S12.9_A1_T1.js              | 4 +++-
 test/language/statements/return/S12.9_A1_T10.js             | 4 +++-
 test/language/statements/return/S12.9_A1_T2.js              | 4 +++-
 test/language/statements/return/S12.9_A1_T3.js              | 4 +++-
 test/language/statements/return/S12.9_A1_T4.js              | 4 +++-
 test/language/statements/return/S12.9_A1_T5.js              | 4 +++-
 test/language/statements/return/S12.9_A1_T6.js              | 4 +++-
 test/language/statements/return/S12.9_A1_T7.js              | 4 +++-
 test/language/statements/return/S12.9_A1_T8.js              | 4 +++-
 test/language/statements/return/S12.9_A1_T9.js              | 4 +++-
 test/language/statements/switch/S12.11_A2_T1.js             | 4 +++-
 test/language/statements/switch/S12.11_A3_T1.js             | 4 +++-
 test/language/statements/switch/S12.11_A3_T2.js             | 4 +++-
 test/language/statements/switch/S12.11_A3_T3.js             | 4 +++-
 test/language/statements/switch/S12.11_A3_T4.js             | 4 +++-
 test/language/statements/switch/S12.11_A3_T5.js             | 4 +++-
 test/language/statements/switch/early-lex-dup.js            | 4 +++-
 test/language/statements/switch/early-lex-var-collision.js  | 4 +++-
 test/language/statements/try/12.14.1-1gs.js                 | 4 +++-
 test/language/statements/try/S12.14_A16_T1.js               | 4 +++-
 test/language/statements/try/S12.14_A16_T10.js              | 4 +++-
 test/language/statements/try/S12.14_A16_T11.js              | 4 +++-
 test/language/statements/try/S12.14_A16_T12.js              | 4 +++-
 test/language/statements/try/S12.14_A16_T13.js              | 4 +++-
 test/language/statements/try/S12.14_A16_T14.js              | 4 +++-
 test/language/statements/try/S12.14_A16_T15.js              | 4 +++-
 test/language/statements/try/S12.14_A16_T2.js               | 4 +++-
 test/language/statements/try/S12.14_A16_T3.js               | 4 +++-
 test/language/statements/try/S12.14_A16_T4.js               | 4 +++-
 test/language/statements/try/S12.14_A16_T5.js               | 4 +++-
 test/language/statements/try/S12.14_A16_T6.js               | 4 +++-
 test/language/statements/try/S12.14_A16_T7.js               | 4 +++-
 test/language/statements/try/S12.14_A16_T8.js               | 4 +++-
 test/language/statements/try/S12.14_A16_T9.js               | 4 +++-
 test/language/statements/try/early-catch-duplicates.js      | 4 +++-
 test/language/statements/try/early-catch-lex.js             | 4 +++-
 test/language/statements/try/early-catch-var.js             | 4 +++-
 test/language/statements/variable/12.2.1-1gs.js             | 4 +++-
 test/language/statements/variable/12.2.1-4gs.js             | 4 +++-
 test/language/statements/variable/S12.2_A8_T1.js            | 4 +++-
 test/language/statements/variable/S12.2_A8_T2.js            | 4 +++-
 test/language/statements/variable/S12.2_A8_T3.js            | 4 +++-
 test/language/statements/variable/S12.2_A8_T4.js            | 4 +++-
 test/language/statements/variable/S12.2_A8_T5.js            | 4 +++-
 test/language/statements/variable/S12.2_A8_T6.js            | 4 +++-
 test/language/statements/variable/S12.2_A8_T7.js            | 4 +++-
 test/language/statements/variable/S12.2_A8_T8.js            | 4 +++-
 test/language/statements/while/S12.6.2_A15.js               | 4 +++-
 test/language/statements/while/S12.6.2_A6_T1.js             | 4 +++-
 test/language/statements/while/S12.6.2_A6_T2.js             | 4 +++-
 test/language/statements/while/S12.6.2_A6_T3.js             | 4 +++-
 test/language/statements/while/S12.6.2_A6_T4.js             | 4 +++-
 test/language/statements/while/S12.6.2_A6_T5.js             | 4 +++-
 test/language/statements/while/S12.6.2_A6_T6.js             | 4 +++-
 test/language/statements/while/decl-cls.js                  | 4 +++-
 test/language/statements/while/decl-const.js                | 4 +++-
 test/language/statements/while/decl-fun.js                  | 4 +++-
 test/language/statements/while/decl-gen.js                  | 4 +++-
 test/language/statements/while/decl-let.js                  | 4 +++-
 test/language/statements/while/labelled-fn-stmt.js          | 4 +++-
 test/language/statements/with/12.10.1-11gs.js               | 4 +++-
 test/language/statements/with/decl-cls.js                   | 4 +++-
 test/language/statements/with/decl-const.js                 | 4 +++-
 test/language/statements/with/decl-fun.js                   | 4 +++-
 test/language/statements/with/decl-gen.js                   | 4 +++-
 test/language/statements/with/decl-let.js                   | 4 +++-
 test/language/statements/with/labelled-fn-stmt.js           | 4 +++-
 test/language/types/null/S8.2_A2.js                         | 4 +++-
 test/language/types/string/S8.4_A13_T1.js                   | 4 +++-
 test/language/types/string/S8.4_A13_T2.js                   | 4 +++-
 test/language/types/string/S8.4_A13_T3.js                   | 4 +++-
 test/language/types/string/S8.4_A14_T1.js                   | 4 +++-
 test/language/types/string/S8.4_A14_T2.js                   | 4 +++-
 test/language/types/string/S8.4_A14_T3.js                   | 4 +++-
 test/language/white-space/S7.2_A5_T1.js                     | 4 +++-
 test/language/white-space/S7.2_A5_T2.js                     | 4 +++-
 test/language/white-space/S7.2_A5_T3.js                     | 4 +++-
 test/language/white-space/S7.2_A5_T4.js                     | 4 +++-
 test/language/white-space/S7.2_A5_T5.js                     | 4 +++-
 test/language/white-space/mongolian-vowel-separator.js      | 4 +++-
 938 files changed, 2814 insertions(+), 940 deletions(-)

diff --git a/test/annexB/language/expressions/object/__proto__-duplicate.js b/test/annexB/language/expressions/object/__proto__-duplicate.js
index 1d93e263a3..da984718c1 100644
--- a/test/annexB/language/expressions/object/__proto__-duplicate.js
+++ b/test/annexB/language/expressions/object/__proto__-duplicate.js
@@ -9,7 +9,9 @@ info: |
     any duplicate entries for "__proto__" and at least two of those entries
     were obtained from productions of the form
     PropertyDefinition : PropertyName : AssignmentExpression .
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 ({
diff --git a/test/annexB/language/expressions/template-literal/legacy-octal-escape-sequence-strict.js b/test/annexB/language/expressions/template-literal/legacy-octal-escape-sequence-strict.js
index 84c08c04c6..8367f5b63f 100644
--- a/test/annexB/language/expressions/template-literal/legacy-octal-escape-sequence-strict.js
+++ b/test/annexB/language/expressions/template-literal/legacy-octal-escape-sequence-strict.js
@@ -7,7 +7,9 @@ description: >
     semantics of the surrounding context.
     The SV of EscapeSequence :: HexEscapeSequence is the SV of the
     HexEscapeSequence.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [onlyStrict]
 ---*/
 
diff --git a/test/annexB/language/statements/for-in/bare-initializer.js b/test/annexB/language/statements/for-in/bare-initializer.js
index 2ef778ecb0..08f106feac 100644
--- a/test/annexB/language/statements/for-in/bare-initializer.js
+++ b/test/annexB/language/statements/for-in/bare-initializer.js
@@ -4,7 +4,9 @@
 esid: sec-initializers-in-forin-statement-heads
 description: >
     for-in heads prohibit AssignmentExpressions
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 var a;
 throw NotEarlyError;
diff --git a/test/annexB/language/statements/for-in/const-initializer.js b/test/annexB/language/statements/for-in/const-initializer.js
index 1f79959dc1..e58d03f3d5 100644
--- a/test/annexB/language/statements/for-in/const-initializer.js
+++ b/test/annexB/language/statements/for-in/const-initializer.js
@@ -4,7 +4,9 @@
 esid: sec-initializers-in-forin-statement-heads
 description: >
     for-in initializers with const are prohibited
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 throw NotEarlyError;
 for (const a = 0 in {});
diff --git a/test/annexB/language/statements/for-in/let-initializer.js b/test/annexB/language/statements/for-in/let-initializer.js
index f7cc4750a8..05d145fa84 100644
--- a/test/annexB/language/statements/for-in/let-initializer.js
+++ b/test/annexB/language/statements/for-in/let-initializer.js
@@ -4,7 +4,9 @@
 esid: sec-initializers-in-forin-statement-heads
 description: >
     for-in initializers with let are prohibited
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 throw NotEarlyError;
 for (let a = 0 in {});
diff --git a/test/annexB/language/statements/for-in/strict-initializer.js b/test/annexB/language/statements/for-in/strict-initializer.js
index 60f00d2835..5ebeaffccb 100644
--- a/test/annexB/language/statements/for-in/strict-initializer.js
+++ b/test/annexB/language/statements/for-in/strict-initializer.js
@@ -4,7 +4,9 @@
 esid: sec-initializers-in-forin-statement-heads
 description: >
     for-in initializers in strict mode are prohibited
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [onlyStrict]
 ---*/
 throw NotEarlyError;
diff --git a/test/annexB/language/statements/for-in/var-arraybindingpattern-initializer.js b/test/annexB/language/statements/for-in/var-arraybindingpattern-initializer.js
index 2507c74502..4002d79019 100644
--- a/test/annexB/language/statements/for-in/var-arraybindingpattern-initializer.js
+++ b/test/annexB/language/statements/for-in/var-arraybindingpattern-initializer.js
@@ -4,7 +4,9 @@
 esid: sec-initializers-in-forin-statement-heads
 description: >
     for-in initializers with ArrayBindingPatterns are always prohibited
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 throw NotEarlyError;
 for (var [a] = 0 in {});
diff --git a/test/annexB/language/statements/for-in/var-objectbindingpattern-initializer.js b/test/annexB/language/statements/for-in/var-objectbindingpattern-initializer.js
index 84c14d60b8..0269e034d7 100644
--- a/test/annexB/language/statements/for-in/var-objectbindingpattern-initializer.js
+++ b/test/annexB/language/statements/for-in/var-objectbindingpattern-initializer.js
@@ -4,7 +4,9 @@
 esid: sec-initializers-in-forin-statement-heads
 description: >
     for-in initializers with ObjectBindingPattern are always prohibited
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 throw NotEarlyError;
 for (var {a} = 0 in {});
diff --git a/test/language/arguments-object/10.5-1gs.js b/test/language/arguments-object/10.5-1gs.js
index 222a4ac1d2..5896b189f3 100644
--- a/test/language/arguments-object/10.5-1gs.js
+++ b/test/language/arguments-object/10.5-1gs.js
@@ -4,7 +4,9 @@
 /*---
 es5id: 10.5-1gs
 description: Strict Mode - arguments cannot be assigned to in a strict function
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [onlyStrict]
 ---*/
 
diff --git a/test/language/asi/S7.9.2_A1_T1.js b/test/language/asi/S7.9.2_A1_T1.js
index 5a7921e8de..ab0a52e985 100644
--- a/test/language/asi/S7.9.2_A1_T1.js
+++ b/test/language/asi/S7.9.2_A1_T1.js
@@ -5,7 +5,9 @@
 info: Check examples for automatic semicolon insertion from the Standart
 es5id: 7.9.2_A1_T1
 description: "{ 1 2 } 3 is not a valid sentence in the ECMAScript grammar"
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/language/asi/S7.9.2_A1_T3.js b/test/language/asi/S7.9.2_A1_T3.js
index 5cb51f5d0f..fcbdfadddc 100644
--- a/test/language/asi/S7.9.2_A1_T3.js
+++ b/test/language/asi/S7.9.2_A1_T3.js
@@ -5,7 +5,9 @@
 info: Check examples for automatic semicolon insertion from the Standart
 es5id: 7.9.2_A1_T3
 description: for( a ; b \n ) is not a valid sentence in the ECMAScript grammar
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/language/asi/S7.9.2_A1_T6.js b/test/language/asi/S7.9.2_A1_T6.js
index c7eeea2c76..84dfd59a7a 100644
--- a/test/language/asi/S7.9.2_A1_T6.js
+++ b/test/language/asi/S7.9.2_A1_T6.js
@@ -7,7 +7,9 @@ es5id: 7.9.2_A1_T6
 description: >
     if(a>b) \n else c=d is not a valid sentence in the ECMAScript
     grammar
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/language/asi/S7.9_A10_T2.js b/test/language/asi/S7.9_A10_T2.js
index b99ed68c42..29d262a7fe 100644
--- a/test/language/asi/S7.9_A10_T2.js
+++ b/test/language/asi/S7.9_A10_T2.js
@@ -5,7 +5,9 @@
 info: Check {} for automatic semicolon insertion
 es5id: 7.9_A10_T2
 description: Checking if execution of "{}*1" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/language/asi/S7.9_A10_T4.js b/test/language/asi/S7.9_A10_T4.js
index bf2a59e98f..b617f178eb 100644
--- a/test/language/asi/S7.9_A10_T4.js
+++ b/test/language/asi/S7.9_A10_T4.js
@@ -5,7 +5,9 @@
 info: Check {} for automatic semicolon insertion
 es5id: 7.9_A10_T4
 description: Checking if execution of "({};)*1" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/language/asi/S7.9_A10_T6.js b/test/language/asi/S7.9_A10_T6.js
index 36f462f9ac..a4c5c73b0d 100644
--- a/test/language/asi/S7.9_A10_T6.js
+++ b/test/language/asi/S7.9_A10_T6.js
@@ -5,7 +5,9 @@
 info: Check {} for automatic semicolon insertion
 es5id: 7.9_A10_T6
 description: Checking if execution of "{} \n * 1" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/language/asi/S7.9_A10_T8.js b/test/language/asi/S7.9_A10_T8.js
index c439b1599d..9486998a30 100644
--- a/test/language/asi/S7.9_A10_T8.js
+++ b/test/language/asi/S7.9_A10_T8.js
@@ -5,7 +5,9 @@
 info: Check {} for automatic semicolon insertion
 es5id: 7.9_A10_T8
 description: Checking if execution of "{1 2} 3" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/language/asi/S7.9_A11_T4.js b/test/language/asi/S7.9_A11_T4.js
index 45663bcee8..a86ca4c14e 100644
--- a/test/language/asi/S7.9_A11_T4.js
+++ b/test/language/asi/S7.9_A11_T4.js
@@ -5,7 +5,9 @@
 info: Check If Statement for automatic semicolon insertion
 es5id: 7.9_A11_T4
 description: Checking if execution of "if (false) x = 1 else x = -1" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/language/asi/S7.9_A11_T8.js b/test/language/asi/S7.9_A11_T8.js
index 314d52781e..79924c754c 100644
--- a/test/language/asi/S7.9_A11_T8.js
+++ b/test/language/asi/S7.9_A11_T8.js
@@ -5,7 +5,9 @@
 info: Check If Statement for automatic semicolon insertion
 es5id: 7.9_A11_T8
 description: Use if (false) {x = 1}; \n else x=-1 and check x
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/language/asi/S7.9_A4.js b/test/language/asi/S7.9_A4.js
index 35a0143525..6f27db7274 100644
--- a/test/language/asi/S7.9_A4.js
+++ b/test/language/asi/S7.9_A4.js
@@ -5,7 +5,9 @@
 info: Check Throw Statement for automatic semicolon insertion
 es5id: 7.9_A4
 description: Try use Throw \n Expression construction
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/language/asi/S7.9_A5.1_T1.js b/test/language/asi/S7.9_A5.1_T1.js
index e8d2d9e782..94049e80e3 100644
--- a/test/language/asi/S7.9_A5.1_T1.js
+++ b/test/language/asi/S7.9_A5.1_T1.js
@@ -5,7 +5,9 @@
 info: Check Postfix Increment Operator for automatic semicolon insertion
 es5id: 7.9_A5.1_T1
 description: Try use Variable \n ++ construction
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/language/asi/S7.9_A5.3_T1.js b/test/language/asi/S7.9_A5.3_T1.js
index 402f82b610..0fd181f3a5 100644
--- a/test/language/asi/S7.9_A5.3_T1.js
+++ b/test/language/asi/S7.9_A5.3_T1.js
@@ -5,7 +5,9 @@
 info: Check Postfix Decrement Operator for automatic semicolon insertion
 es5id: 7.9_A5.3_T1
 description: Try use Variable \n -- construction
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/language/asi/S7.9_A6.2_T1.js b/test/language/asi/S7.9_A6.2_T1.js
index 7134816e22..85dfe9e1e7 100644
--- a/test/language/asi/S7.9_A6.2_T1.js
+++ b/test/language/asi/S7.9_A6.2_T1.js
@@ -8,7 +8,9 @@ info: >
     Use one semicolon
 es5id: 7.9_A6.2_T1
 description: For header is (semicolon \n)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/language/asi/S7.9_A6.2_T10.js b/test/language/asi/S7.9_A6.2_T10.js
index 201d739552..e5da87931d 100644
--- a/test/language/asi/S7.9_A6.2_T10.js
+++ b/test/language/asi/S7.9_A6.2_T10.js
@@ -8,7 +8,9 @@ info: >
     Use one semicolon
 es5id: 7.9_A6.2_T10
 description: For header is (\n false \n semicolon)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/language/asi/S7.9_A6.2_T2.js b/test/language/asi/S7.9_A6.2_T2.js
index 8ada9e295b..f7b3bad3be 100644
--- a/test/language/asi/S7.9_A6.2_T2.js
+++ b/test/language/asi/S7.9_A6.2_T2.js
@@ -8,7 +8,9 @@ info: >
     Use one semicolon
 es5id: 7.9_A6.2_T2
 description: For header is (\n semicolon \n)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/language/asi/S7.9_A6.2_T3.js b/test/language/asi/S7.9_A6.2_T3.js
index c6e8e6e478..c4c09c6124 100644
--- a/test/language/asi/S7.9_A6.2_T3.js
+++ b/test/language/asi/S7.9_A6.2_T3.js
@@ -8,7 +8,9 @@ info: >
     Use one semicolon
 es5id: 7.9_A6.2_T3
 description: For header is (\n semicolon)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/language/asi/S7.9_A6.2_T4.js b/test/language/asi/S7.9_A6.2_T4.js
index 5daf51dc7a..8b56116a7b 100644
--- a/test/language/asi/S7.9_A6.2_T4.js
+++ b/test/language/asi/S7.9_A6.2_T4.js
@@ -8,7 +8,9 @@ info: >
     Use one semicolon
 es5id: 7.9_A6.2_T4
 description: For header is (\n \n semicolon)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/language/asi/S7.9_A6.2_T5.js b/test/language/asi/S7.9_A6.2_T5.js
index 27ffc7c287..c14db6d882 100644
--- a/test/language/asi/S7.9_A6.2_T5.js
+++ b/test/language/asi/S7.9_A6.2_T5.js
@@ -8,7 +8,9 @@ info: >
     Use one semicolon
 es5id: 7.9_A6.2_T5
 description: For header is (false semicolon false\n)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/language/asi/S7.9_A6.2_T6.js b/test/language/asi/S7.9_A6.2_T6.js
index 2cb7e7b3cc..49a7ec981d 100644
--- a/test/language/asi/S7.9_A6.2_T6.js
+++ b/test/language/asi/S7.9_A6.2_T6.js
@@ -8,7 +8,9 @@ info: >
     Use one semicolon
 es5id: 7.9_A6.2_T6
 description: For header is (false semicolon \n false)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/language/asi/S7.9_A6.2_T7.js b/test/language/asi/S7.9_A6.2_T7.js
index 98e1c25342..ecd15214e9 100644
--- a/test/language/asi/S7.9_A6.2_T7.js
+++ b/test/language/asi/S7.9_A6.2_T7.js
@@ -8,7 +8,9 @@ info: >
     Use one semicolon
 es5id: 7.9_A6.2_T7
 description: For header is (false \n semicolon \n)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/language/asi/S7.9_A6.2_T8.js b/test/language/asi/S7.9_A6.2_T8.js
index 622bcae489..816d79bb9f 100644
--- a/test/language/asi/S7.9_A6.2_T8.js
+++ b/test/language/asi/S7.9_A6.2_T8.js
@@ -8,7 +8,9 @@ info: >
     Use one semicolon
 es5id: 7.9_A6.2_T8
 description: For header is (false \n semicolon false \n)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/language/asi/S7.9_A6.2_T9.js b/test/language/asi/S7.9_A6.2_T9.js
index 67588f2c04..91aead6ec4 100644
--- a/test/language/asi/S7.9_A6.2_T9.js
+++ b/test/language/asi/S7.9_A6.2_T9.js
@@ -8,7 +8,9 @@ info: >
     Use one semicolon
 es5id: 7.9_A6.2_T9
 description: For header is (\n semicolon false)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/language/asi/S7.9_A6.3_T1.js b/test/language/asi/S7.9_A6.3_T1.js
index 84a1e927ff..6986f5fa4b 100644
--- a/test/language/asi/S7.9_A6.3_T1.js
+++ b/test/language/asi/S7.9_A6.3_T1.js
@@ -8,7 +8,9 @@ info: >
     Don`t use semicolons
 es5id: 7.9_A6.3_T1
 description: For header is (\n)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/language/asi/S7.9_A6.3_T2.js b/test/language/asi/S7.9_A6.3_T2.js
index 73c9ae4dc2..432d3ba53d 100644
--- a/test/language/asi/S7.9_A6.3_T2.js
+++ b/test/language/asi/S7.9_A6.3_T2.js
@@ -8,7 +8,9 @@ info: >
     Don`t use semicolons
 es5id: 7.9_A6.3_T2
 description: For header is (\n \n)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/language/asi/S7.9_A6.3_T3.js b/test/language/asi/S7.9_A6.3_T3.js
index ed7bc7c148..a6e70cf0a6 100644
--- a/test/language/asi/S7.9_A6.3_T3.js
+++ b/test/language/asi/S7.9_A6.3_T3.js
@@ -8,7 +8,9 @@ info: >
     Don`t use semicolons
 es5id: 7.9_A6.3_T3
 description: For header is (\n \n \n)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/language/asi/S7.9_A6.3_T4.js b/test/language/asi/S7.9_A6.3_T4.js
index 334cffb1c7..d9c61bcf25 100644
--- a/test/language/asi/S7.9_A6.3_T4.js
+++ b/test/language/asi/S7.9_A6.3_T4.js
@@ -8,7 +8,9 @@ info: >
     Don`t use semicolons
 es5id: 7.9_A6.3_T4
 description: For header is (\n false \n)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/language/asi/S7.9_A6.3_T5.js b/test/language/asi/S7.9_A6.3_T5.js
index da20591fff..ff6f333324 100644
--- a/test/language/asi/S7.9_A6.3_T5.js
+++ b/test/language/asi/S7.9_A6.3_T5.js
@@ -8,7 +8,9 @@ info: >
     Don`t use semicolons
 es5id: 7.9_A6.3_T5
 description: For header is (false \n false \n)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/language/asi/S7.9_A6.3_T6.js b/test/language/asi/S7.9_A6.3_T6.js
index a456b4907a..661e5adb5f 100644
--- a/test/language/asi/S7.9_A6.3_T6.js
+++ b/test/language/asi/S7.9_A6.3_T6.js
@@ -8,7 +8,9 @@ info: >
     Don`t use semicolons
 es5id: 7.9_A6.3_T6
 description: For header is (\n false \n false \n)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/language/asi/S7.9_A6.3_T7.js b/test/language/asi/S7.9_A6.3_T7.js
index 4289645a1c..bd3f910dc1 100644
--- a/test/language/asi/S7.9_A6.3_T7.js
+++ b/test/language/asi/S7.9_A6.3_T7.js
@@ -8,7 +8,9 @@ info: >
     Don`t use semicolons
 es5id: 7.9_A6.3_T7
 description: For header is (\n false \n false \n false \n)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/language/asi/S7.9_A6.4_T1.js b/test/language/asi/S7.9_A6.4_T1.js
index 1d58d7249f..77edb266a7 100644
--- a/test/language/asi/S7.9_A6.4_T1.js
+++ b/test/language/asi/S7.9_A6.4_T1.js
@@ -7,7 +7,9 @@ es5id: 7.9_A6.4_T1
 description: >
     Three semicolons. For header is (false semicolon false semicolon
     false semicolon)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/language/asi/S7.9_A6.4_T2.js b/test/language/asi/S7.9_A6.4_T2.js
index 7eb567287c..18bf2db74e 100644
--- a/test/language/asi/S7.9_A6.4_T2.js
+++ b/test/language/asi/S7.9_A6.4_T2.js
@@ -7,7 +7,9 @@ es5id: 7.9_A6.4_T2
 description: >
     Three semicolons. For header is (false semicolon false two
     semicolons false)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/language/asi/S7.9_A9_T6.js b/test/language/asi/S7.9_A9_T6.js
index 0457fe3911..cfe642e4ed 100644
--- a/test/language/asi/S7.9_A9_T6.js
+++ b/test/language/asi/S7.9_A9_T6.js
@@ -5,7 +5,9 @@
 info: Check Do-While Statement for automatic semicolon insertion
 es5id: 7.9_A9_T6
 description: Execute do \n while(false)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/language/asi/S7.9_A9_T7.js b/test/language/asi/S7.9_A9_T7.js
index 3d2fe4aefa..d8c6e6591e 100644
--- a/test/language/asi/S7.9_A9_T7.js
+++ b/test/language/asi/S7.9_A9_T7.js
@@ -5,7 +5,9 @@
 info: Check Do-While Statement for automatic semicolon insertion
 es5id: 7.9_A9_T7
 description: Execute do \n\n while(false)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/language/asi/S7.9_A9_T8.js b/test/language/asi/S7.9_A9_T8.js
index 70f5d851f5..9abe51e53f 100644
--- a/test/language/asi/S7.9_A9_T8.js
+++ b/test/language/asi/S7.9_A9_T8.js
@@ -5,7 +5,9 @@
 info: Check Do-While Statement for automatic semicolon insertion
 es5id: 7.9_A9_T8
 description: Execute do {}; \n while(false)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/language/block-scope/syntax/for-in/disallow-initialization-assignment.js b/test/language/block-scope/syntax/for-in/disallow-initialization-assignment.js
index fd16e9dab2..15ba525158 100644
--- a/test/language/block-scope/syntax/for-in/disallow-initialization-assignment.js
+++ b/test/language/block-scope/syntax/for-in/disallow-initialization-assignment.js
@@ -5,7 +5,9 @@ es6id: 13.1
 description: >
     for declaration:
     disallow initialization assignment
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 for (let x = 3 in {}) { }
 
diff --git a/test/language/block-scope/syntax/for-in/disallow-multiple-lexical-bindings-with-and-without-initializer.js b/test/language/block-scope/syntax/for-in/disallow-multiple-lexical-bindings-with-and-without-initializer.js
index 9af2e3d43b..3d9870e38d 100644
--- a/test/language/block-scope/syntax/for-in/disallow-multiple-lexical-bindings-with-and-without-initializer.js
+++ b/test/language/block-scope/syntax/for-in/disallow-multiple-lexical-bindings-with-and-without-initializer.js
@@ -5,7 +5,9 @@ es6id: 13.1
 description: >
     for declaration:
     disallow multiple lexical bindings, with and without initializer
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 for (let x = 3, y in {}) { }
 
diff --git a/test/language/block-scope/syntax/for-in/disallow-multiple-lexical-bindings-with-initializer.js b/test/language/block-scope/syntax/for-in/disallow-multiple-lexical-bindings-with-initializer.js
index 40b0677e63..8531acc45b 100644
--- a/test/language/block-scope/syntax/for-in/disallow-multiple-lexical-bindings-with-initializer.js
+++ b/test/language/block-scope/syntax/for-in/disallow-multiple-lexical-bindings-with-initializer.js
@@ -5,7 +5,9 @@ es6id: 13.1
 description: >
     for declaration:
     disallow multiple lexical bindings, with initializer
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 for (let x = 3, y = 4 in {}) { }
 
diff --git a/test/language/block-scope/syntax/for-in/disallow-multiple-lexical-bindings-without-and-with-initializer.js b/test/language/block-scope/syntax/for-in/disallow-multiple-lexical-bindings-without-and-with-initializer.js
index f52bd0b765..08a8fc854f 100644
--- a/test/language/block-scope/syntax/for-in/disallow-multiple-lexical-bindings-without-and-with-initializer.js
+++ b/test/language/block-scope/syntax/for-in/disallow-multiple-lexical-bindings-without-and-with-initializer.js
@@ -5,7 +5,9 @@ es6id: 13.1
 description: >
     for declaration:
     disallow multiple lexical bindings, without and with initializer
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 for (let x, y = 4 in {}) { }
 
diff --git a/test/language/block-scope/syntax/for-in/disallow-multiple-lexical-bindings.js b/test/language/block-scope/syntax/for-in/disallow-multiple-lexical-bindings.js
index 505314ac14..16093ffbd5 100644
--- a/test/language/block-scope/syntax/for-in/disallow-multiple-lexical-bindings.js
+++ b/test/language/block-scope/syntax/for-in/disallow-multiple-lexical-bindings.js
@@ -5,7 +5,9 @@ es6id: 13.1
 description: >
     for declaration:
     disallow multiple lexical bindings
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 for (let x, y in {}) { }
 
diff --git a/test/language/block-scope/syntax/function-declarations/in-statement-position-do-statement-while-expression.js b/test/language/block-scope/syntax/function-declarations/in-statement-position-do-statement-while-expression.js
index 30e0c2790c..8b1a71b40a 100644
--- a/test/language/block-scope/syntax/function-declarations/in-statement-position-do-statement-while-expression.js
+++ b/test/language/block-scope/syntax/function-declarations/in-statement-position-do-statement-while-expression.js
@@ -5,7 +5,9 @@ es6id: 13.1
 description: >
     function declarations in statement position in strict mode:
     do Statement while ( Expression )
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [onlyStrict]
 ---*/
 do function g() {} while (false)
diff --git a/test/language/block-scope/syntax/function-declarations/in-statement-position-for-statement.js b/test/language/block-scope/syntax/function-declarations/in-statement-position-for-statement.js
index 90d994cd77..b7fbcca67d 100644
--- a/test/language/block-scope/syntax/function-declarations/in-statement-position-for-statement.js
+++ b/test/language/block-scope/syntax/function-declarations/in-statement-position-for-statement.js
@@ -5,7 +5,9 @@ es6id: 13.1
 description: >
     function declarations in statement position in strict mode:
     for ( ;;) Statement
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [onlyStrict]
 ---*/
 for (;false;) function g() {}
diff --git a/test/language/block-scope/syntax/function-declarations/in-statement-position-if-expression-statement-else-statement.js b/test/language/block-scope/syntax/function-declarations/in-statement-position-if-expression-statement-else-statement.js
index e3e3e783bf..a55f7e2d4d 100644
--- a/test/language/block-scope/syntax/function-declarations/in-statement-position-if-expression-statement-else-statement.js
+++ b/test/language/block-scope/syntax/function-declarations/in-statement-position-if-expression-statement-else-statement.js
@@ -5,7 +5,9 @@ es6id: 13.1
 description: >
     function declarations in statement position in strict mode:
     if ( Expression ) Statement else Statement
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [onlyStrict]
 ---*/
 if (true) {} else function g() {}
diff --git a/test/language/block-scope/syntax/function-declarations/in-statement-position-if-expression-statement.js b/test/language/block-scope/syntax/function-declarations/in-statement-position-if-expression-statement.js
index 2931bdf1a4..3786ff7643 100644
--- a/test/language/block-scope/syntax/function-declarations/in-statement-position-if-expression-statement.js
+++ b/test/language/block-scope/syntax/function-declarations/in-statement-position-if-expression-statement.js
@@ -5,7 +5,9 @@ es6id: 13.1
 description: >
     function declarations in statement position in strict mode:
     if ( Expression ) Statement
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [onlyStrict]
 ---*/
 if (true) function g() {}
diff --git a/test/language/block-scope/syntax/function-declarations/in-statement-position-while-expression-statement.js b/test/language/block-scope/syntax/function-declarations/in-statement-position-while-expression-statement.js
index 07761246a3..77d07425b5 100644
--- a/test/language/block-scope/syntax/function-declarations/in-statement-position-while-expression-statement.js
+++ b/test/language/block-scope/syntax/function-declarations/in-statement-position-while-expression-statement.js
@@ -5,7 +5,9 @@ es6id: 13.1
 description: >
     function declarations in statement position in strict mode:
     while ( Expression ) Statement
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [onlyStrict]
 ---*/
 while (false) function g() {}
diff --git a/test/language/block-scope/syntax/redeclaration-in-block/attempt-to-redeclare-function-declaration-with-function-declaration.js b/test/language/block-scope/syntax/redeclaration-in-block/attempt-to-redeclare-function-declaration-with-function-declaration.js
index 7dc9799f86..df3332bc70 100644
--- a/test/language/block-scope/syntax/redeclaration-in-block/attempt-to-redeclare-function-declaration-with-function-declaration.js
+++ b/test/language/block-scope/syntax/redeclaration-in-block/attempt-to-redeclare-function-declaration-with-function-declaration.js
@@ -5,7 +5,9 @@ es6id: B.3.3
 description: >
     redeclaration within block:
     attempt to redeclare function declaration with function declaration
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 { function f() {} function f() {} }
 
diff --git a/test/language/block-scope/syntax/redeclaration-in-block/attempt-to-redeclare-function-declaration-with-let.js b/test/language/block-scope/syntax/redeclaration-in-block/attempt-to-redeclare-function-declaration-with-let.js
index c21ac71261..e8b8a57bde 100644
--- a/test/language/block-scope/syntax/redeclaration-in-block/attempt-to-redeclare-function-declaration-with-let.js
+++ b/test/language/block-scope/syntax/redeclaration-in-block/attempt-to-redeclare-function-declaration-with-let.js
@@ -5,6 +5,8 @@ es6id: B.3.3
 description: >
     redeclaration within block:
     attempt to redeclare function declaration with let
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 { function f() {} let f; }
diff --git a/test/language/block-scope/syntax/redeclaration-in-block/attempt-to-redeclare-function-declaration-with-var.js b/test/language/block-scope/syntax/redeclaration-in-block/attempt-to-redeclare-function-declaration-with-var.js
index c9d6280ef9..c64bc6fc3f 100644
--- a/test/language/block-scope/syntax/redeclaration-in-block/attempt-to-redeclare-function-declaration-with-var.js
+++ b/test/language/block-scope/syntax/redeclaration-in-block/attempt-to-redeclare-function-declaration-with-var.js
@@ -5,6 +5,8 @@ es6id: B.3.3
 description: >
     redeclaration within block:
     attempt to redeclare function declaration with var
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 { function f() {} var f; }
diff --git a/test/language/block-scope/syntax/redeclaration-in-block/attempt-to-redeclare-var-binding-with-let.js b/test/language/block-scope/syntax/redeclaration-in-block/attempt-to-redeclare-var-binding-with-let.js
index 3f83a61943..017f9340ea 100644
--- a/test/language/block-scope/syntax/redeclaration-in-block/attempt-to-redeclare-var-binding-with-let.js
+++ b/test/language/block-scope/syntax/redeclaration-in-block/attempt-to-redeclare-var-binding-with-let.js
@@ -5,7 +5,9 @@ es6id: B.3.3
 description: >
     redeclaration within block:
     attempt to redeclare var binding with let
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 { var f; let f; }
 
diff --git a/test/language/block-scope/syntax/redeclaration-in-block/attempt-to-redeclare-var-with-function-declaration.js b/test/language/block-scope/syntax/redeclaration-in-block/attempt-to-redeclare-var-with-function-declaration.js
index 7b0dd1a988..51a846665e 100644
--- a/test/language/block-scope/syntax/redeclaration-in-block/attempt-to-redeclare-var-with-function-declaration.js
+++ b/test/language/block-scope/syntax/redeclaration-in-block/attempt-to-redeclare-var-with-function-declaration.js
@@ -5,7 +5,9 @@ es6id: B.3.3
 description: >
     redeclaration within block:
     attempt to redeclare var with function declaration
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 { var f; function f() {} }
 
diff --git a/test/language/comments/S7.4_A2_T2.js b/test/language/comments/S7.4_A2_T2.js
index e46e9ef731..8ea433480c 100644
--- a/test/language/comments/S7.4_A2_T2.js
+++ b/test/language/comments/S7.4_A2_T2.js
@@ -5,7 +5,9 @@
 info: Correct interpretation of multi line comments
 es5id: 7.4_A2_T2
 description: Try use /*CHECK#1/. This is not closed multi line comment
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 /*CHECK#1/
diff --git a/test/language/comments/S7.4_A3.js b/test/language/comments/S7.4_A3.js
index 422bc3d9c0..63a275d421 100644
--- a/test/language/comments/S7.4_A3.js
+++ b/test/language/comments/S7.4_A3.js
@@ -5,7 +5,9 @@
 info: Multi line comments cannot nest
 es5id: 7.4_A3
 description: Try use nested comments
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 /*CHECK#1*/
diff --git a/test/language/comments/S7.4_A4_T1.js b/test/language/comments/S7.4_A4_T1.js
index ea6281a671..0a003a039f 100644
--- a/test/language/comments/S7.4_A4_T1.js
+++ b/test/language/comments/S7.4_A4_T1.js
@@ -5,7 +5,9 @@
 info: Single and Multi line comments are used together
 es5id: 7.4_A4_T1
 description: Try use 2 close comment tags
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 /*CHECK#1*/
diff --git a/test/language/comments/S7.4_A4_T4.js b/test/language/comments/S7.4_A4_T4.js
index a6913e7d02..7c1baab729 100644
--- a/test/language/comments/S7.4_A4_T4.js
+++ b/test/language/comments/S7.4_A4_T4.js
@@ -5,7 +5,9 @@
 info: Single and Multi line comments are used together
 es5id: 7.4_A4_T4
 description: Try to open Multi line comment at the end of Single comment
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 /*CHECK#1*/
diff --git a/test/language/comments/multi-line-html-close-extra.js b/test/language/comments/multi-line-html-close-extra.js
index 211127d29f..23b6dc6807 100644
--- a/test/language/comments/multi-line-html-close-extra.js
+++ b/test/language/comments/multi-line-html-close-extra.js
@@ -15,7 +15,9 @@ info: |
 
     MultiLineComment ::
       /* FirstCommentLine[opt] LineTerminator MultiLineCommentChars[opt] * / HTMLCloseComment[opt]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 /*
diff --git a/test/language/comments/single-line-html-close-without-lt.js b/test/language/comments/single-line-html-close-without-lt.js
index 770e24eec3..400689ce9d 100644
--- a/test/language/comments/single-line-html-close-without-lt.js
+++ b/test/language/comments/single-line-html-close-without-lt.js
@@ -14,7 +14,9 @@ info: |
 
     HTMLCloseComment ::
       WhiteSpaceSequence[opt] SingleLineDelimitedCommentSequence[opt] --> SingleLineCommentChars[opt]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 ;-->
diff --git a/test/language/directive-prologue/10.1.1-2gs.js b/test/language/directive-prologue/10.1.1-2gs.js
index 057858a6b0..c503c48619 100644
--- a/test/language/directive-prologue/10.1.1-2gs.js
+++ b/test/language/directive-prologue/10.1.1-2gs.js
@@ -6,7 +6,9 @@ es5id: 10.1.1-2gs
 description: >
     Strict Mode - Use Strict Directive Prologue is ''use strict''
     which lost the last character ';'
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [raw]
 ---*/
 
diff --git a/test/language/directive-prologue/10.1.1-5gs.js b/test/language/directive-prologue/10.1.1-5gs.js
index 12904b99a5..d77ac7706c 100644
--- a/test/language/directive-prologue/10.1.1-5gs.js
+++ b/test/language/directive-prologue/10.1.1-5gs.js
@@ -6,7 +6,9 @@ es5id: 10.1.1-5gs
 description: >
     Strict Mode - Use Strict Directive Prologue is ''use strict';'
     which appears at the start of the code
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [raw]
 ---*/
 
diff --git a/test/language/directive-prologue/10.1.1-8gs.js b/test/language/directive-prologue/10.1.1-8gs.js
index b64b5126d4..c83cd56fa3 100644
--- a/test/language/directive-prologue/10.1.1-8gs.js
+++ b/test/language/directive-prologue/10.1.1-8gs.js
@@ -6,7 +6,9 @@ es5id: 10.1.1-8gs
 description: >
     Strict Mode - Use Strict Directive Prologue is ''use strict';'
     which appears twice in the code
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [raw]
 ---*/
 
diff --git a/test/language/directive-prologue/14.1-4gs.js b/test/language/directive-prologue/14.1-4gs.js
index 13c9674c75..d0069a3df2 100644
--- a/test/language/directive-prologue/14.1-4gs.js
+++ b/test/language/directive-prologue/14.1-4gs.js
@@ -6,7 +6,9 @@ es5id: 14.1-4gs
 description: >
     StrictMode - a Use Strict Directive followed by a strict mode
     violation
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [raw]
 ---*/
 
diff --git a/test/language/directive-prologue/14.1-5gs.js b/test/language/directive-prologue/14.1-5gs.js
index 83f8df0d10..9a8308e975 100644
--- a/test/language/directive-prologue/14.1-5gs.js
+++ b/test/language/directive-prologue/14.1-5gs.js
@@ -6,7 +6,9 @@ es5id: 14.1-5gs
 description: >
     StrictMode - a Use Strict Directive embedded in a directive
     prologue followed by a strict mode violation
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [raw]
 ---*/
 
diff --git a/test/language/eval-code/direct/parse-failure-2.js b/test/language/eval-code/direct/parse-failure-2.js
index 54716deafa..51c3618730 100644
--- a/test/language/eval-code/direct/parse-failure-2.js
+++ b/test/language/eval-code/direct/parse-failure-2.js
@@ -5,9 +5,9 @@
 info: If the parse fails, throw a SyntaxError exception (but see also clause 16)
 es5id: 15.1.2.1_A2_T2
 description: Checking if execution of "eval("x = 1; x\u000A++")" fails
-negative: SyntaxError
 ---*/
 
-//CHECK#1
 var x;
-eval("x = 1; x\u000A++");
+assert.throws(SyntaxError, function() {
+  eval("x = 1; x\u000A++");
+});
diff --git a/test/language/expressions/arrow-function/param-dflt-yield-expr.js b/test/language/expressions/arrow-function/param-dflt-yield-expr.js
index 20e6786187..b7a1af1675 100644
--- a/test/language/expressions/arrow-function/param-dflt-yield-expr.js
+++ b/test/language/expressions/arrow-function/param-dflt-yield-expr.js
@@ -16,7 +16,9 @@ info: |
 
   - It is a Syntax Error if ArrowParameters Contains YieldExpression is true. 
 features: [generators, default-parameters]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 function *g() {
diff --git a/test/language/expressions/arrow-function/param-dflt-yield-id-non-strict.js b/test/language/expressions/arrow-function/param-dflt-yield-id-non-strict.js
index 90ce97b2a7..ee32a55492 100644
--- a/test/language/expressions/arrow-function/param-dflt-yield-id-non-strict.js
+++ b/test/language/expressions/arrow-function/param-dflt-yield-id-non-strict.js
@@ -12,7 +12,9 @@ info: |
     ArrowParameters[?Yield] [no LineTerminator here] => ConciseBody[?In]
 features: [default-parameters]
 flags: [onlyStrict]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var yield = 23;
diff --git a/test/language/expressions/arrow-function/param-dflt-yield-id-strict.js b/test/language/expressions/arrow-function/param-dflt-yield-id-strict.js
index 0e84b4b3fd..99a4a4c5ed 100644
--- a/test/language/expressions/arrow-function/param-dflt-yield-id-strict.js
+++ b/test/language/expressions/arrow-function/param-dflt-yield-id-strict.js
@@ -11,7 +11,9 @@ info: |
     ArrowParameters[?Yield] [no LineTerminator here] => ConciseBody[?In]
 features: [default-parameters]
 flags: [onlyStrict]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 (x = yield) => {};
diff --git a/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-bindingidentifier-identifier-futurereservedword.js b/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-bindingidentifier-identifier-futurereservedword.js
index cbbac94aae..341fc6682d 100644
--- a/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-bindingidentifier-identifier-futurereservedword.js
+++ b/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-bindingidentifier-identifier-futurereservedword.js
@@ -15,6 +15,8 @@ description: >
 
     ReservedWord : FutureReservedWord
 
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 var af = enum => 1;
diff --git a/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-bindingidentifier-identifier-strict-futurereservedword.js b/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-bindingidentifier-identifier-strict-futurereservedword.js
index e0a3e05327..626ecc65dc 100644
--- a/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-bindingidentifier-identifier-strict-futurereservedword.js
+++ b/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-bindingidentifier-identifier-strict-futurereservedword.js
@@ -17,7 +17,9 @@ description: >
 
     Strict Mode
 
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [onlyStrict]
 ---*/
 var af = package => 1;
diff --git a/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-bindingidentifier-identifier.js b/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-bindingidentifier-identifier.js
index 4833155bf0..6361fc7cf4 100644
--- a/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-bindingidentifier-identifier.js
+++ b/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-bindingidentifier-identifier.js
@@ -15,6 +15,8 @@ description: >
 
     ReservedWord : Keyword
 
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 var af = switch => 1;
diff --git a/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-bindingidentifier-no-arguments.js b/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-bindingidentifier-no-arguments.js
index 41185ef6eb..64df5df6ec 100644
--- a/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-bindingidentifier-no-arguments.js
+++ b/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-bindingidentifier-no-arguments.js
@@ -9,7 +9,9 @@ description: >
 
     No parameter named "arguments"
 
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [onlyStrict]
 ---*/
 var af = arguments => 1;
diff --git a/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-bindingidentifier-no-eval.js b/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-bindingidentifier-no-eval.js
index bd4662e33b..157a409b1d 100644
--- a/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-bindingidentifier-no-eval.js
+++ b/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-bindingidentifier-no-eval.js
@@ -10,7 +10,9 @@ description: >
 
     No parameter named "eval"
 
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [onlyStrict]
 ---*/
 var af = eval => 1;
diff --git a/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-bindingidentifier-no-yield.js b/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-bindingidentifier-no-yield.js
index 98154b7b0f..fbaa2dfe1f 100644
--- a/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-bindingidentifier-no-yield.js
+++ b/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-bindingidentifier-no-yield.js
@@ -10,7 +10,9 @@ description: >
 
     No parameter named "yield"
 
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [onlyStrict]
 ---*/
 var af = yield => 1;
diff --git a/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-bindingidentifier-rest.js b/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-bindingidentifier-rest.js
index 2deba68f53..403ec4cccf 100644
--- a/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-bindingidentifier-rest.js
+++ b/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-bindingidentifier-rest.js
@@ -7,6 +7,8 @@ description: >
 
     Includes ...rest
 
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 var af = ...x => x;
diff --git a/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-arguments.js b/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-arguments.js
index a956a4c133..ace6c9a7de 100644
--- a/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-arguments.js
+++ b/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-arguments.js
@@ -14,7 +14,9 @@ description: >
 
     No parameters named "arguments"
 
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [onlyStrict]
 ---*/
 var af = (arguments) => 1;
diff --git a/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates-binding-array-1.js b/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates-binding-array-1.js
index 25507d52bb..2cdb597dd3 100644
--- a/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates-binding-array-1.js
+++ b/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates-binding-array-1.js
@@ -16,6 +16,8 @@ description: >
 
     No duplicates
 
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 var af = (x, [x]) => 1;
diff --git a/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates-binding-array-2.js b/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates-binding-array-2.js
index f14fd4adae..8c3258539b 100644
--- a/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates-binding-array-2.js
+++ b/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates-binding-array-2.js
@@ -16,6 +16,8 @@ description: >
 
     No duplicates
 
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 var af = ([x, x]) => 1;
diff --git a/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates-binding-array-3.js b/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates-binding-array-3.js
index 62cd34fbc4..a3b0b7160c 100644
--- a/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates-binding-array-3.js
+++ b/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates-binding-array-3.js
@@ -18,6 +18,8 @@ description: >
 
     No duplicates
 
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 var af = ([x], ...x) => 1;
diff --git a/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates-binding-object-1.js b/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates-binding-object-1.js
index 726529fb3e..540fd0488e 100644
--- a/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates-binding-object-1.js
+++ b/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates-binding-object-1.js
@@ -16,6 +16,8 @@ description: >
 
     No duplicates
 
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 var af = (x, {x}) => 1;
diff --git a/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates-binding-object-2.js b/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates-binding-object-2.js
index 87ea214709..3c0e298343 100644
--- a/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates-binding-object-2.js
+++ b/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates-binding-object-2.js
@@ -18,6 +18,8 @@ description: >
 
     No duplicates
 
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 var af = (x, {y: x}) => 1;
diff --git a/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates-binding-object-3.js b/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates-binding-object-3.js
index 9da505ef40..eb058efe22 100644
--- a/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates-binding-object-3.js
+++ b/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates-binding-object-3.js
@@ -18,6 +18,8 @@ description: >
 
     No duplicates
 
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 var af = ({x}, {y: x}) => 1;
diff --git a/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates-binding-object-4.js b/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates-binding-object-4.js
index fd05542d15..3b3151c607 100644
--- a/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates-binding-object-4.js
+++ b/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates-binding-object-4.js
@@ -20,6 +20,8 @@ description: >
 
     No duplicates
 
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 var af = ({x}, ...x) => 1;
diff --git a/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates-binding-object-5.js b/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates-binding-object-5.js
index b547b6cb3f..eb45aee893 100644
--- a/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates-binding-object-5.js
+++ b/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates-binding-object-5.js
@@ -20,6 +20,8 @@ description: >
 
     No duplicates
 
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 var af = ({y: x}, ...x) => 1;
diff --git a/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates-binding-object-6.js b/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates-binding-object-6.js
index d16d4d033f..e39c273a09 100644
--- a/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates-binding-object-6.js
+++ b/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates-binding-object-6.js
@@ -18,6 +18,8 @@ description: >
 
     No duplicates
 
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 var af = ({y: x, x}) => 1;
diff --git a/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates-rest.js b/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates-rest.js
index 368c8e9e01..5d36abb1f8 100644
--- a/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates-rest.js
+++ b/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates-rest.js
@@ -14,6 +14,8 @@ description: >
 
     No duplicates, rest
 
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 var af = (x, ...x) => 1;
diff --git a/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates.js b/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates.js
index 56e1cb3a4a..e4e7a82c89 100644
--- a/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates.js
+++ b/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates.js
@@ -14,6 +14,8 @@ description: >
 
     No duplicates
 
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 var af = (x, x) => 1;
diff --git a/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-eval.js b/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-eval.js
index d38f6acc8d..70bb0782e2 100644
--- a/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-eval.js
+++ b/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-eval.js
@@ -14,7 +14,9 @@ description: >
 
     No parameters named "eval"
 
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [onlyStrict]
 ---*/
 var af = (eval) => 1;
diff --git a/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-yield.js b/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-yield.js
index 4152b37072..1511a903b2 100644
--- a/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-yield.js
+++ b/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-yield.js
@@ -9,7 +9,9 @@ description: >
 
     No parameter named "yield"
 
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [onlyStrict]
 ---*/
 var af = (yield) => 1;
diff --git a/test/language/expressions/arrow-function/syntax/early-errors/asi-restriction-invalid-parenless-parameters-expression-body.js b/test/language/expressions/arrow-function/syntax/early-errors/asi-restriction-invalid-parenless-parameters-expression-body.js
index c3321ec5f1..6a836f6027 100644
--- a/test/language/expressions/arrow-function/syntax/early-errors/asi-restriction-invalid-parenless-parameters-expression-body.js
+++ b/test/language/expressions/arrow-function/syntax/early-errors/asi-restriction-invalid-parenless-parameters-expression-body.js
@@ -6,7 +6,9 @@ description: >
     ArrowFunction[In, Yield] :
       ArrowParameters[?Yield] [no LineTerminator here] => ConciseBody[?In]
 
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 var af = x
 => x;
diff --git a/test/language/expressions/arrow-function/syntax/early-errors/asi-restriction-invalid-parenless-parameters.js b/test/language/expressions/arrow-function/syntax/early-errors/asi-restriction-invalid-parenless-parameters.js
index 27c3d9c70f..299198226d 100644
--- a/test/language/expressions/arrow-function/syntax/early-errors/asi-restriction-invalid-parenless-parameters.js
+++ b/test/language/expressions/arrow-function/syntax/early-errors/asi-restriction-invalid-parenless-parameters.js
@@ -8,7 +8,9 @@ description: >
 
     No parens around ArrowParameters
 
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 var af = x
 => {};
diff --git a/test/language/expressions/arrow-function/syntax/early-errors/asi-restriction-invalid.js b/test/language/expressions/arrow-function/syntax/early-errors/asi-restriction-invalid.js
index e7bc0458a4..d448e0ff6e 100644
--- a/test/language/expressions/arrow-function/syntax/early-errors/asi-restriction-invalid.js
+++ b/test/language/expressions/arrow-function/syntax/early-errors/asi-restriction-invalid.js
@@ -5,7 +5,9 @@ es6id: 14.2
 description: >
     ArrowFunction[In, Yield] :
       ArrowParameters[?Yield] [no LineTerminator here] => ConciseBody[?In]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 var af = ()
 => {};
diff --git a/test/language/expressions/arrow-function/syntax/early-errors/use-strict-with-non-simple-param.js b/test/language/expressions/arrow-function/syntax/early-errors/use-strict-with-non-simple-param.js
index b7b5d06bf6..496bdbef0d 100755
--- a/test/language/expressions/arrow-function/syntax/early-errors/use-strict-with-non-simple-param.js
+++ b/test/language/expressions/arrow-function/syntax/early-errors/use-strict-with-non-simple-param.js
@@ -9,7 +9,9 @@ info: >
   Static Semantics: Early Errors
 
   It is a Syntax Error if ContainsUseStrict of ConciseBody is true and IsSimpleParameterList of ArrowParameters is false.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var f = (a = 0) => {
diff --git a/test/language/expressions/async-arrow-function/early-errors-arrow-NSPL-with-USD.js b/test/language/expressions/async-arrow-function/early-errors-arrow-NSPL-with-USD.js
index c96c4c77a3..4b57ba77d4 100644
--- a/test/language/expressions/async-arrow-function/early-errors-arrow-NSPL-with-USD.js
+++ b/test/language/expressions/async-arrow-function/early-errors-arrow-NSPL-with-USD.js
@@ -6,7 +6,9 @@ author: Brian Terlson <brian.terlson@microsoft.com>
 esid: pending
 description: >
   It is a Syntax Error if ContainsUseStrict of AsyncConciseBody is *true* and IsSimpleParameterList of ArrowParameters is *false*.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 async (x = 1) => {"use strict"}
diff --git a/test/language/expressions/async-arrow-function/early-errors-arrow-arguments-in-formal-parameters.js b/test/language/expressions/async-arrow-function/early-errors-arrow-arguments-in-formal-parameters.js
index c3b0163991..321c8b87ad 100644
--- a/test/language/expressions/async-arrow-function/early-errors-arrow-arguments-in-formal-parameters.js
+++ b/test/language/expressions/async-arrow-function/early-errors-arrow-arguments-in-formal-parameters.js
@@ -5,7 +5,9 @@
 author: Brian Terlson <brian.terlson@microsoft.com>
 esid: pending
 description: It is a SyntaxError if FormalParameters contains arguments
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [onlyStrict]
 ---*/
 
diff --git a/test/language/expressions/async-arrow-function/early-errors-arrow-await-in-formals-default.js b/test/language/expressions/async-arrow-function/early-errors-arrow-await-in-formals-default.js
index b33839ad41..6b6212b393 100644
--- a/test/language/expressions/async-arrow-function/early-errors-arrow-await-in-formals-default.js
+++ b/test/language/expressions/async-arrow-function/early-errors-arrow-await-in-formals-default.js
@@ -5,6 +5,8 @@
 author: Brian Terlson <brian.terlson@microsoft.com>
 esid: pending
 description: It is a SyntaxError if FormalParameters' default expressions contains await
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 async(x = await) => {  }
diff --git a/test/language/expressions/async-arrow-function/early-errors-arrow-await-in-formals.js b/test/language/expressions/async-arrow-function/early-errors-arrow-await-in-formals.js
index 36ad10600f..00b2f8dc22 100644
--- a/test/language/expressions/async-arrow-function/early-errors-arrow-await-in-formals.js
+++ b/test/language/expressions/async-arrow-function/early-errors-arrow-await-in-formals.js
@@ -5,6 +5,8 @@
 author: Brian Terlson <brian.terlson@microsoft.com>
 esid: pending
 description: It is a SyntaxError if FormalParameters contains await
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 async(await) => {  }
diff --git a/test/language/expressions/async-arrow-function/early-errors-arrow-body-contains-super-call.js b/test/language/expressions/async-arrow-function/early-errors-arrow-body-contains-super-call.js
index 5c1fb0a8f5..2d1ad483fa 100644
--- a/test/language/expressions/async-arrow-function/early-errors-arrow-body-contains-super-call.js
+++ b/test/language/expressions/async-arrow-function/early-errors-arrow-body-contains-super-call.js
@@ -5,7 +5,9 @@
 author: Brian Terlson <brian.terlson@microsoft.com>
 esid: pending
 description: It is a syntax error if AsyncFunctionBody contains SuperCall is true
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 async(foo) => { super() };
diff --git a/test/language/expressions/async-arrow-function/early-errors-arrow-body-contains-super-property.js b/test/language/expressions/async-arrow-function/early-errors-arrow-body-contains-super-property.js
index 35e8eaad12..b6240d01c6 100644
--- a/test/language/expressions/async-arrow-function/early-errors-arrow-body-contains-super-property.js
+++ b/test/language/expressions/async-arrow-function/early-errors-arrow-body-contains-super-property.js
@@ -5,7 +5,9 @@
 author: Brian Terlson <brian.terlson@microsoft.com>
 esid: pending
 description: It is a syntax error if AsyncFunctionBody contains SuperProperty is true
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 async(foo) => { super.prop };
diff --git a/test/language/expressions/async-arrow-function/early-errors-arrow-duplicate-parameters.js b/test/language/expressions/async-arrow-function/early-errors-arrow-duplicate-parameters.js
index 280162b188..075f705907 100644
--- a/test/language/expressions/async-arrow-function/early-errors-arrow-duplicate-parameters.js
+++ b/test/language/expressions/async-arrow-function/early-errors-arrow-duplicate-parameters.js
@@ -6,7 +6,9 @@ author: Brian Terlson <brian.terlson@microsoft.com>
 esid: pending
 description: >
   If strict mode, early error rules for StrictFormalParameters are applied
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [onlyStrict]
 ---*/
 
diff --git a/test/language/expressions/async-arrow-function/early-errors-arrow-eval-in-formal-parameters.js b/test/language/expressions/async-arrow-function/early-errors-arrow-eval-in-formal-parameters.js
index 595d3ee021..1176445645 100644
--- a/test/language/expressions/async-arrow-function/early-errors-arrow-eval-in-formal-parameters.js
+++ b/test/language/expressions/async-arrow-function/early-errors-arrow-eval-in-formal-parameters.js
@@ -5,7 +5,9 @@
 author: Brian Terlson <brian.terlson@microsoft.com>
 esid: pending
 description: It is a SyntaxError if FormalParameters contains eval
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [onlyStrict]
 ---*/
 
diff --git a/test/language/expressions/async-arrow-function/early-errors-arrow-formals-body-duplicate.js b/test/language/expressions/async-arrow-function/early-errors-arrow-formals-body-duplicate.js
index 97c6201d4f..bfebf8e197 100644
--- a/test/language/expressions/async-arrow-function/early-errors-arrow-formals-body-duplicate.js
+++ b/test/language/expressions/async-arrow-function/early-errors-arrow-formals-body-duplicate.js
@@ -5,7 +5,9 @@
 author: Brian Terlson <brian.terlson@microsoft.com>
 esid: pending
 description: It is a SyntaxError if BoundNames of FormalParameters also occurs in the LexicallyDeclaredNames of AsyncFunctionBody
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 async(bar) => { let bar; }
diff --git a/test/language/expressions/async-arrow-function/early-errors-arrow-formals-contains-super-call.js b/test/language/expressions/async-arrow-function/early-errors-arrow-formals-contains-super-call.js
index 73f67feb49..6c22da809d 100644
--- a/test/language/expressions/async-arrow-function/early-errors-arrow-formals-contains-super-call.js
+++ b/test/language/expressions/async-arrow-function/early-errors-arrow-formals-contains-super-call.js
@@ -5,7 +5,9 @@
 author: Brian Terlson <brian.terlson@microsoft.com>
 esid: pending
 description: It is a syntax error if FormalParameters contains SuperCall is true
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 async(foo = super()) => {}
diff --git a/test/language/expressions/async-arrow-function/early-errors-arrow-formals-contains-super-property.js b/test/language/expressions/async-arrow-function/early-errors-arrow-formals-contains-super-property.js
index 8e14b1e61b..f58498259f 100644
--- a/test/language/expressions/async-arrow-function/early-errors-arrow-formals-contains-super-property.js
+++ b/test/language/expressions/async-arrow-function/early-errors-arrow-formals-contains-super-property.js
@@ -5,7 +5,9 @@
 author: Brian Terlson <brian.terlson@microsoft.com>
 esid: pending
 description: It is a syntax error if FormalParameters contains SuperCall is true
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 async (foo = super.foo) => { }
diff --git a/test/language/expressions/async-function/early-errors-expression-NSPL-with-USD.js b/test/language/expressions/async-function/early-errors-expression-NSPL-with-USD.js
index e52af62cf7..b852875b24 100644
--- a/test/language/expressions/async-function/early-errors-expression-NSPL-with-USD.js
+++ b/test/language/expressions/async-function/early-errors-expression-NSPL-with-USD.js
@@ -6,7 +6,9 @@ author: Brian Terlson <brian.terlson@microsoft.com>
 esid: pending
 description: >
   It is a Syntax Error if ContainsUseStrict of AsyncConciseBody is *true* and IsSimpleParameterList of ArrowParameters is *false*.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 (async function (x = 1) {"use strict"})
diff --git a/test/language/expressions/async-function/early-errors-expression-binding-identifier-arguments.js b/test/language/expressions/async-function/early-errors-expression-binding-identifier-arguments.js
index 87b3ba9f1d..96b813f3ad 100644
--- a/test/language/expressions/async-function/early-errors-expression-binding-identifier-arguments.js
+++ b/test/language/expressions/async-function/early-errors-expression-binding-identifier-arguments.js
@@ -6,7 +6,9 @@ author: Brian Terlson <brian.terlson@microsoft.com>
 esid: pending
 description: >
   If the source code matching this production is strict code, it is a Syntax Error if BindingIdentifier is the IdentifierName arguments. 
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [onlyStrict]
 ---*/
 (async function arguments () {  })
diff --git a/test/language/expressions/async-function/early-errors-expression-binding-identifier-eval.js b/test/language/expressions/async-function/early-errors-expression-binding-identifier-eval.js
index 16050d5b85..cf6a0a18b6 100644
--- a/test/language/expressions/async-function/early-errors-expression-binding-identifier-eval.js
+++ b/test/language/expressions/async-function/early-errors-expression-binding-identifier-eval.js
@@ -6,7 +6,9 @@ author: Brian Terlson <brian.terlson@microsoft.com>
 esid: pending
 description: >
   If the source code matching this production is strict code, it is a Syntax Error if BindingIdentifier is the IdentifierName eval. 
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [onlyStrict]
 ---*/
 (async function eval () { })
diff --git a/test/language/expressions/async-function/early-errors-expression-body-contains-super-call.js b/test/language/expressions/async-function/early-errors-expression-body-contains-super-call.js
index e27fb987b4..37d6f6ad86 100644
--- a/test/language/expressions/async-function/early-errors-expression-body-contains-super-call.js
+++ b/test/language/expressions/async-function/early-errors-expression-body-contains-super-call.js
@@ -5,7 +5,9 @@
 author: Brian Terlson <brian.terlson@microsoft.com>
 esid: pending
 description: It is a syntax error if AsyncFunctionBody contains SuperCall is true
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 (async function foo (foo) { super() })
diff --git a/test/language/expressions/async-function/early-errors-expression-body-contains-super-property.js b/test/language/expressions/async-function/early-errors-expression-body-contains-super-property.js
index 3539109e20..703fe37e75 100644
--- a/test/language/expressions/async-function/early-errors-expression-body-contains-super-property.js
+++ b/test/language/expressions/async-function/early-errors-expression-body-contains-super-property.js
@@ -5,7 +5,9 @@
 author: Brian Terlson <brian.terlson@microsoft.com>
 esid: pending
 description: It is a syntax error if AsyncFunctionBody contains SuperProperty is true
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 (async function foo (foo) { super.prop });
diff --git a/test/language/expressions/async-function/early-errors-expression-eval-in-formal-parameters.js b/test/language/expressions/async-function/early-errors-expression-eval-in-formal-parameters.js
index 972b30863f..08c537aa2e 100644
--- a/test/language/expressions/async-function/early-errors-expression-eval-in-formal-parameters.js
+++ b/test/language/expressions/async-function/early-errors-expression-eval-in-formal-parameters.js
@@ -5,7 +5,9 @@
 author: Brian Terlson <brian.terlson@microsoft.com>
 esid: pending
 description: It is a SyntaxError if FormalParameters contains eval in strict mode
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [onlyStrict]
 ---*/
 
diff --git a/test/language/expressions/async-function/early-errors-expression-formals-body-duplicate.js b/test/language/expressions/async-function/early-errors-expression-formals-body-duplicate.js
index 8414ce634f..7b05290946 100644
--- a/test/language/expressions/async-function/early-errors-expression-formals-body-duplicate.js
+++ b/test/language/expressions/async-function/early-errors-expression-formals-body-duplicate.js
@@ -5,7 +5,9 @@
 author: Brian Terlson <brian.terlson@microsoft.com>
 esid: pending
 description: It is a SyntaxError if BoundNames of FormalParameters also occurs in the LexicallyDeclaredNames of AsyncFunctionBody
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 (async function foo (bar) { let bar; });
diff --git a/test/language/expressions/async-function/early-errors-expression-formals-contains-super-call.js b/test/language/expressions/async-function/early-errors-expression-formals-contains-super-call.js
index 6997deb7d8..411154538d 100644
--- a/test/language/expressions/async-function/early-errors-expression-formals-contains-super-call.js
+++ b/test/language/expressions/async-function/early-errors-expression-formals-contains-super-call.js
@@ -5,7 +5,9 @@
 author: Brian Terlson <brian.terlson@microsoft.com>
 esid: pending
 description: It is a syntax error if FormalParameters contains SuperCall is true
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 (async function foo (foo = super()) { var bar; });
diff --git a/test/language/expressions/async-function/early-errors-expression-formals-contains-super-property.js b/test/language/expressions/async-function/early-errors-expression-formals-contains-super-property.js
index 04110a5aa4..8db0175b60 100644
--- a/test/language/expressions/async-function/early-errors-expression-formals-contains-super-property.js
+++ b/test/language/expressions/async-function/early-errors-expression-formals-contains-super-property.js
@@ -5,7 +5,9 @@
 author: Brian Terlson <brian.terlson@microsoft.com>
 esid: pending
 description: It is a syntax error if FormalParameters contains SuperCall is true
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 (async function foo (foo = super.foo) { var bar; });
diff --git a/test/language/expressions/await/await-BindingIdentifier-nested.js b/test/language/expressions/await/await-BindingIdentifier-nested.js
index a4813b607b..39f239d2ba 100644
--- a/test/language/expressions/await/await-BindingIdentifier-nested.js
+++ b/test/language/expressions/await/await-BindingIdentifier-nested.js
@@ -6,7 +6,9 @@ author: Brian Terlson <brian.terlson@microsoft.com>
 esid: pending
 description: >
   Await is not allowed as an identifier in functions nested in async functions
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 async function foo() {
diff --git a/test/language/expressions/await/no-operand.js b/test/language/expressions/await/no-operand.js
index 88705df792..8b44ebcf33 100644
--- a/test/language/expressions/await/no-operand.js
+++ b/test/language/expressions/await/no-operand.js
@@ -6,7 +6,9 @@ author: Brian Terlson <brian.terlson@microsoft.com>
 esid: pending
 description: >
   await requries an operand.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 async function foo() {
diff --git a/test/language/expressions/call/S11.2.4_A1.3_T1.js b/test/language/expressions/call/S11.2.4_A1.3_T1.js
index e97e6edd0e..ef953e3625 100644
--- a/test/language/expressions/call/S11.2.4_A1.3_T1.js
+++ b/test/language/expressions/call/S11.2.4_A1.3_T1.js
@@ -7,7 +7,9 @@ info: >
     syntax
 es5id: 11.2.4_A1.3_T1
 description: incorrect syntax
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 function f_arg() {
diff --git a/test/language/expressions/call/trailing-comma.js b/test/language/expressions/call/trailing-comma.js
index 0911bfe996..4143e77aea 100644
--- a/test/language/expressions/call/trailing-comma.js
+++ b/test/language/expressions/call/trailing-comma.js
@@ -6,7 +6,9 @@ description: >
   in a call expression.
 info: http://jeffmo.github.io/es-trailing-function-commas/
 author: Jeff Morrison <lbljeffmo@gmail.com>
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 function foo() {}
diff --git a/test/language/expressions/class/gen-method-param-dflt-yield.js b/test/language/expressions/class/gen-method-param-dflt-yield.js
index da350ddbba..405665e7fd 100644
--- a/test/language/expressions/class/gen-method-param-dflt-yield.js
+++ b/test/language/expressions/class/gen-method-param-dflt-yield.js
@@ -15,7 +15,9 @@ info: |
   function because any expressions that are part of FormalParameters are
   evaluated before the resulting generator object is in a resumable state.
 features: [generators, default-parameters]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 0, class {
diff --git a/test/language/expressions/class/getter-param-dflt.js b/test/language/expressions/class/getter-param-dflt.js
index a6cbb974ec..32066aa010 100644
--- a/test/language/expressions/class/getter-param-dflt.js
+++ b/test/language/expressions/class/getter-param-dflt.js
@@ -13,7 +13,9 @@ info: |
 
     get PropertyName[?Yield] ( ) { FunctionBody }
 features: [default-parameters]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 0, class { get a(param = null) {} };
diff --git a/test/language/expressions/class/method-param-dflt-yield.js b/test/language/expressions/class/method-param-dflt-yield.js
index 378e0e02f0..5f30e4f3c7 100644
--- a/test/language/expressions/class/method-param-dflt-yield.js
+++ b/test/language/expressions/class/method-param-dflt-yield.js
@@ -10,7 +10,9 @@ info: |
 
     PropertyName[?Yield] ( StrictFormalParameters ) { FunctionBody }
 features: [generators, default-parameters]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 0, class {
diff --git a/test/language/expressions/class/static-gen-method-param-dflt-yield.js b/test/language/expressions/class/static-gen-method-param-dflt-yield.js
index c24810c3bb..8158dcdeee 100644
--- a/test/language/expressions/class/static-gen-method-param-dflt-yield.js
+++ b/test/language/expressions/class/static-gen-method-param-dflt-yield.js
@@ -15,7 +15,9 @@ info: |
   function because any expressions that are part of FormalParameters are
   evaluated before the resulting generator object is in a resumable state.
 features: [generators, default-parameters]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 0, class {
diff --git a/test/language/expressions/class/static-method-param-dflt-yield.js b/test/language/expressions/class/static-method-param-dflt-yield.js
index a6b6d16acd..f8153fd21e 100644
--- a/test/language/expressions/class/static-method-param-dflt-yield.js
+++ b/test/language/expressions/class/static-method-param-dflt-yield.js
@@ -10,7 +10,9 @@ info: |
 
     PropertyName[?Yield] ( StrictFormalParameters ) { FunctionBody }
 features: [generators, default-parameters]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 0, class {
diff --git a/test/language/expressions/compound-assignment/11.13.2-6-1gs.js b/test/language/expressions/compound-assignment/11.13.2-6-1gs.js
index 0ffe2294d4..bc039a556e 100644
--- a/test/language/expressions/compound-assignment/11.13.2-6-1gs.js
+++ b/test/language/expressions/compound-assignment/11.13.2-6-1gs.js
@@ -6,7 +6,9 @@ es5id: 11.13.2-6-1gs
 description: >
     Strict Mode - SyntaxError is throw if the identifier eval appears
     as the LeftHandSideExpression of a Compound Assignment operator(*=)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [onlyStrict]
 ---*/
 
diff --git a/test/language/expressions/conditional/in-branch-2.js b/test/language/expressions/conditional/in-branch-2.js
index a66b18feef..f5524ffd89 100644
--- a/test/language/expressions/conditional/in-branch-2.js
+++ b/test/language/expressions/conditional/in-branch-2.js
@@ -12,7 +12,9 @@ info: |
   ConditionalExpression[In, Yield] :
     LogicalORExpression[?In, ?Yield]
     LogicalORExpression[?In, ?Yield] ? AssignmentExpression[+In, ?Yield] : AssignmentExpression[?In, ?Yield]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 for (true ? 0 : 0 in {}; false; ) ;
diff --git a/test/language/expressions/conditional/in-condition.js b/test/language/expressions/conditional/in-condition.js
index c393fc1fde..43fb78e3c2 100644
--- a/test/language/expressions/conditional/in-condition.js
+++ b/test/language/expressions/conditional/in-condition.js
@@ -12,7 +12,9 @@ info: |
   ConditionalExpression[In, Yield] :
     LogicalORExpression[?In, ?Yield]
     LogicalORExpression[?In, ?Yield] ? AssignmentExpression[+In, ?Yield] : AssignmentExpression[?In, ?Yield]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 for ('' in {} ? 0 : 0; false; ) ;
diff --git a/test/language/expressions/delete/11.4.1-5-a-5gs.js b/test/language/expressions/delete/11.4.1-5-a-5gs.js
index 6596c92d59..aeb1deefd5 100644
--- a/test/language/expressions/delete/11.4.1-5-a-5gs.js
+++ b/test/language/expressions/delete/11.4.1-5-a-5gs.js
@@ -6,7 +6,9 @@ es5id: 11.4.1-5-a-5gs
 description: >
     Strict Mode - SyntaxError is thrown when deleting a variable which
     is primitive type(boolean)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [onlyStrict]
 ---*/
 
diff --git a/test/language/expressions/exponentiation/exp-operator-syntax-error-bitnot-unary-expression-base.js b/test/language/expressions/exponentiation/exp-operator-syntax-error-bitnot-unary-expression-base.js
index 8c45aa1135..868beda477 100644
--- a/test/language/expressions/exponentiation/exp-operator-syntax-error-bitnot-unary-expression-base.js
+++ b/test/language/expressions/exponentiation/exp-operator-syntax-error-bitnot-unary-expression-base.js
@@ -15,6 +15,8 @@ info: >
     `~` UnaryExpression
     ...
 
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 ~3 ** 2;
diff --git a/test/language/expressions/exponentiation/exp-operator-syntax-error-delete-unary-expression-base.js b/test/language/expressions/exponentiation/exp-operator-syntax-error-delete-unary-expression-base.js
index 34ef6a0b62..2bced284fb 100644
--- a/test/language/expressions/exponentiation/exp-operator-syntax-error-delete-unary-expression-base.js
+++ b/test/language/expressions/exponentiation/exp-operator-syntax-error-delete-unary-expression-base.js
@@ -15,6 +15,8 @@ info: >
     `delete` UnaryExpression
     ...
 
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 delete o.p ** 2;
diff --git a/test/language/expressions/exponentiation/exp-operator-syntax-error-logical-not-unary-expression-base.js b/test/language/expressions/exponentiation/exp-operator-syntax-error-logical-not-unary-expression-base.js
index 0b5b1ed3f7..8a1ee43c3b 100644
--- a/test/language/expressions/exponentiation/exp-operator-syntax-error-logical-not-unary-expression-base.js
+++ b/test/language/expressions/exponentiation/exp-operator-syntax-error-logical-not-unary-expression-base.js
@@ -15,6 +15,8 @@ info: >
     `!` UnaryExpression
     ...
 
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 !1 ** 2;
diff --git a/test/language/expressions/exponentiation/exp-operator-syntax-error-negate-unary-expression-base.js b/test/language/expressions/exponentiation/exp-operator-syntax-error-negate-unary-expression-base.js
index 3cfef2fba7..c735ec9013 100644
--- a/test/language/expressions/exponentiation/exp-operator-syntax-error-negate-unary-expression-base.js
+++ b/test/language/expressions/exponentiation/exp-operator-syntax-error-negate-unary-expression-base.js
@@ -15,6 +15,8 @@ info: >
     `-` UnaryExpression
     ...
 
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 -3 ** 2;
diff --git a/test/language/expressions/exponentiation/exp-operator-syntax-error-plus-unary-expression-base.js b/test/language/expressions/exponentiation/exp-operator-syntax-error-plus-unary-expression-base.js
index 71762aecc9..beeace9558 100644
--- a/test/language/expressions/exponentiation/exp-operator-syntax-error-plus-unary-expression-base.js
+++ b/test/language/expressions/exponentiation/exp-operator-syntax-error-plus-unary-expression-base.js
@@ -15,6 +15,8 @@ info: >
     `+` UnaryExpression
     ...
 
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 +1 ** 2;
diff --git a/test/language/expressions/exponentiation/exp-operator-syntax-error-typeof-unary-expression-base.js b/test/language/expressions/exponentiation/exp-operator-syntax-error-typeof-unary-expression-base.js
index a83b657e2f..bad4c9bb23 100644
--- a/test/language/expressions/exponentiation/exp-operator-syntax-error-typeof-unary-expression-base.js
+++ b/test/language/expressions/exponentiation/exp-operator-syntax-error-typeof-unary-expression-base.js
@@ -15,6 +15,8 @@ info: >
     `typeof` UnaryExpression
     ...
 
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 typeof 1 ** 2;
diff --git a/test/language/expressions/exponentiation/exp-operator-syntax-error-void-unary-expression-base.js b/test/language/expressions/exponentiation/exp-operator-syntax-error-void-unary-expression-base.js
index 8b8b85ca02..e0ec9cea19 100644
--- a/test/language/expressions/exponentiation/exp-operator-syntax-error-void-unary-expression-base.js
+++ b/test/language/expressions/exponentiation/exp-operator-syntax-error-void-unary-expression-base.js
@@ -15,6 +15,8 @@ info: >
     `void` UnaryExpression
     ...
 
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 void 1 ** 2;
diff --git a/test/language/expressions/function/early-body-super-call.js b/test/language/expressions/function/early-body-super-call.js
index 8b31bb32f4..21495d0f03 100644
--- a/test/language/expressions/function/early-body-super-call.js
+++ b/test/language/expressions/function/early-body-super-call.js
@@ -6,7 +6,9 @@ es6id: 14.1.2
 description: Body may not contain a "super" call
 info: >
   It is a Syntax Error if FunctionBody Contains SuperCall is true.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 0, function() {
diff --git a/test/language/expressions/function/early-body-super-prop.js b/test/language/expressions/function/early-body-super-prop.js
index 05e2f4b828..3e6f58af54 100644
--- a/test/language/expressions/function/early-body-super-prop.js
+++ b/test/language/expressions/function/early-body-super-prop.js
@@ -6,7 +6,9 @@ es6id: 14.1.2
 description: Body may not contain a "super" property reference
 info: >
   It is a Syntax Error if FunctionBody Contains SuperProperty is true.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 0, function() {
diff --git a/test/language/expressions/function/early-params-super-call.js b/test/language/expressions/function/early-params-super-call.js
index 6cac1bc103..0b58ae50a4 100644
--- a/test/language/expressions/function/early-params-super-call.js
+++ b/test/language/expressions/function/early-params-super-call.js
@@ -6,7 +6,9 @@ es6id: 14.1.2
 description: Parameters may not contain a "super" call
 info: >
   It is a Syntax Error if FormalParameters Contains SuperProperty is true.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 0, function(x = super()) {};
diff --git a/test/language/expressions/function/early-params-super-prop.js b/test/language/expressions/function/early-params-super-prop.js
index 8ae2945d7d..cd91cc412e 100644
--- a/test/language/expressions/function/early-params-super-prop.js
+++ b/test/language/expressions/function/early-params-super-prop.js
@@ -6,7 +6,9 @@ es6id: 14.1.2
 description: Parameters may not contain a "super" property reference
 info: >
   It is a Syntax Error if FunctionBody Contains SuperProperty is true.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 0, function(x = super.x) {};
diff --git a/test/language/expressions/function/param-dflt-yield-strict.js b/test/language/expressions/function/param-dflt-yield-strict.js
index 875973f963..7403292368 100644
--- a/test/language/expressions/function/param-dflt-yield-strict.js
+++ b/test/language/expressions/function/param-dflt-yield-strict.js
@@ -11,7 +11,9 @@ info: |
     function BindingIdentifieropt ( FormalParameters ) { FunctionBody }
 features: [generators, default-parameters]
 flags: [onlyStrict]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 function *g() {
diff --git a/test/language/expressions/function/use-strict-with-non-simple-param.js b/test/language/expressions/function/use-strict-with-non-simple-param.js
index facf58bd5d..2a9614b398 100755
--- a/test/language/expressions/function/use-strict-with-non-simple-param.js
+++ b/test/language/expressions/function/use-strict-with-non-simple-param.js
@@ -9,7 +9,9 @@ info: >
   Static Semantics: Early Errors
 
   It is a Syntax Error if ContainsUseStrict of FunctionBody is true and IsSimpleParameterList of FormalParameters is false.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var f = function(a = 0) {
diff --git a/test/language/expressions/generators/param-dflt-yield.js b/test/language/expressions/generators/param-dflt-yield.js
index 98952a2974..7b197f737d 100644
--- a/test/language/expressions/generators/param-dflt-yield.js
+++ b/test/language/expressions/generators/param-dflt-yield.js
@@ -15,7 +15,9 @@ info: |
   function because any expressions that are part of FormalParameters are
   evaluated before the resulting generator object is in a resumable state.
 features: [default-parameters]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 0, function*(x = yield) {};
diff --git a/test/language/expressions/generators/use-strict-with-non-simple-param.js b/test/language/expressions/generators/use-strict-with-non-simple-param.js
index f6fdefd3be..7d5d29a8ca 100755
--- a/test/language/expressions/generators/use-strict-with-non-simple-param.js
+++ b/test/language/expressions/generators/use-strict-with-non-simple-param.js
@@ -9,7 +9,9 @@ info: >
   Static Semantics: Early Errors
 
   It is a Syntax Error if ContainsUseStrict of GeneratorBody is true and IsSimpleParameterList of FormalParameters is false.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var f = function*(a = 0) {
diff --git a/test/language/expressions/generators/yield-as-binding-identifier.js b/test/language/expressions/generators/yield-as-binding-identifier.js
index ed9abdc800..d90c5945ef 100644
--- a/test/language/expressions/generators/yield-as-binding-identifier.js
+++ b/test/language/expressions/generators/yield-as-binding-identifier.js
@@ -6,7 +6,9 @@
       `yield` is a reserved keyword within generator function bodies and may
       not be used as a binding identifier.
   es6id: 12.1.1
-  negative: SyntaxError
+  negative:
+    phase: early
+    type: SyntaxError
  ---*/
 
 var g = function*() {
diff --git a/test/language/expressions/generators/yield-as-generator-expression-binding-identifier.js b/test/language/expressions/generators/yield-as-generator-expression-binding-identifier.js
index dc0b188e21..dd7a81201d 100644
--- a/test/language/expressions/generators/yield-as-generator-expression-binding-identifier.js
+++ b/test/language/expressions/generators/yield-as-generator-expression-binding-identifier.js
@@ -6,7 +6,9 @@
       `yield` is not a valid BindingIdentifier for GeneratorExpressions.
   es6id: 12.1.1
   flags: [noStrict]
-  negative: SyntaxError
+  negative:
+    phase: early
+    type: SyntaxError
  ---*/
 
 var g = function* yield() {};
diff --git a/test/language/expressions/generators/yield-as-label.js b/test/language/expressions/generators/yield-as-label.js
index ffc9d4c75a..2d95446bf4 100644
--- a/test/language/expressions/generators/yield-as-label.js
+++ b/test/language/expressions/generators/yield-as-label.js
@@ -6,7 +6,9 @@
       `yield` is a reserved keyword within generator function bodies and may
       not be used as a label.
   es6id: 12.1.1
-  negative: SyntaxError
+  negative:
+    phase: early
+    type: SyntaxError
  ---*/
 
 var g = function*() {
diff --git a/test/language/expressions/generators/yield-as-logical-or-expression.js b/test/language/expressions/generators/yield-as-logical-or-expression.js
index 1c4264d26e..88b70f7ba3 100644
--- a/test/language/expressions/generators/yield-as-logical-or-expression.js
+++ b/test/language/expressions/generators/yield-as-logical-or-expression.js
@@ -5,7 +5,9 @@
   description: >
       `yield` expressions are not LogicalOrExpressions.
   es6id: 12.1.1
-  negative: SyntaxError
+  negative:
+    phase: early
+    type: SyntaxError
  ---*/
 
 
diff --git a/test/language/expressions/generators/yield-as-parameter.js b/test/language/expressions/generators/yield-as-parameter.js
index 8c05503db7..d3cc877a86 100644
--- a/test/language/expressions/generators/yield-as-parameter.js
+++ b/test/language/expressions/generators/yield-as-parameter.js
@@ -6,7 +6,9 @@
       `yield` is a reserved keyword within generator function bodies and may
       not be used as the binding identifier of a parameter.
   es6id: 12.1.1
-  negative: SyntaxError
+  negative:
+    phase: early
+    type: SyntaxError
  ---*/
 
 var g = function*(yield) {};
diff --git a/test/language/expressions/generators/yield-star-after-newline.js b/test/language/expressions/generators/yield-star-after-newline.js
index 8d407be326..a54561a228 100644
--- a/test/language/expressions/generators/yield-star-after-newline.js
+++ b/test/language/expressions/generators/yield-star-after-newline.js
@@ -5,7 +5,9 @@
   description: >
       A newline may not precede the `*` token in a `yield` expression.
   es6id: 14.4
-  negative: SyntaxError
+  negative:
+    phase: early
+    type: SyntaxError
  ---*/
 
 var g = function*() {
diff --git a/test/language/expressions/generators/yield-weak-binding.js b/test/language/expressions/generators/yield-weak-binding.js
index b61a23b3a1..edc3e8a6bb 100644
--- a/test/language/expressions/generators/yield-weak-binding.js
+++ b/test/language/expressions/generators/yield-weak-binding.js
@@ -5,7 +5,9 @@
   description: >
       `yield` expressions bind weakly
   es6id: 14.4
-  negative: SyntaxError
+  negative:
+    phase: early
+    type: SyntaxError
  ---*/
 
 var g = function*() { yield 3 + yield 4; };
diff --git a/test/language/expressions/object/11.1.5-1gs.js b/test/language/expressions/object/11.1.5-1gs.js
index 2736cf7e55..2db6251257 100644
--- a/test/language/expressions/object/11.1.5-1gs.js
+++ b/test/language/expressions/object/11.1.5-1gs.js
@@ -7,7 +7,9 @@ description: >
     Strict Mode - SyntaxError is thrown when 'eval' occurs as the
     Identifier in a PropertySetParameterList of a PropertyAssignment
     that is contained in strict code
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [onlyStrict]
 ---*/
 
diff --git a/test/language/expressions/object/cover-initialized-name.js b/test/language/expressions/object/cover-initialized-name.js
index 0f4291268e..9510a9918f 100644
--- a/test/language/expressions/object/cover-initialized-name.js
+++ b/test/language/expressions/object/cover-initialized-name.js
@@ -22,7 +22,9 @@ info: |
   CoverInitializedName[Yield]:
 
     IdentifierReference[?Yield] Initializer[+In, ?Yield]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 ({ a = 1 });
diff --git a/test/language/expressions/object/getter-param-dflt.js b/test/language/expressions/object/getter-param-dflt.js
index 12d1a159a4..0b2ad2bf1c 100644
--- a/test/language/expressions/object/getter-param-dflt.js
+++ b/test/language/expressions/object/getter-param-dflt.js
@@ -13,7 +13,9 @@ info: |
 
     get PropertyName[?Yield] ( ) { FunctionBody }
 features: [default-parameters]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 0, { get a(param = null) {} };
diff --git a/test/language/expressions/object/method-definition/early-errors-object-method-NSPL-with-USD.js b/test/language/expressions/object/method-definition/early-errors-object-method-NSPL-with-USD.js
index 1f88b5662c..998971ed00 100644
--- a/test/language/expressions/object/method-definition/early-errors-object-method-NSPL-with-USD.js
+++ b/test/language/expressions/object/method-definition/early-errors-object-method-NSPL-with-USD.js
@@ -6,7 +6,9 @@ author: Brian Terlson <brian.terlson@microsoft.com>
 esid: pending
 description: >
   It is a Syntax Error if ContainsUseStrict of AsyncConciseBody is *true* and IsSimpleParameterList of ArrowParameters is *false*.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 ({
   foo(x = 1) {"use strict"}
diff --git a/test/language/expressions/object/method-definition/early-errors-object-method-arguments-in-formal-parameters.js b/test/language/expressions/object/method-definition/early-errors-object-method-arguments-in-formal-parameters.js
index 049113d84d..4d67144a28 100644
--- a/test/language/expressions/object/method-definition/early-errors-object-method-arguments-in-formal-parameters.js
+++ b/test/language/expressions/object/method-definition/early-errors-object-method-arguments-in-formal-parameters.js
@@ -5,7 +5,9 @@
 author: Brian Terlson <brian.terlson@microsoft.com>
 esid: pending
 description: It is a SyntaxError if FormalParameters contains arguments
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [onlyStrict]
 ---*/
 !{
diff --git a/test/language/expressions/object/method-definition/early-errors-object-method-await-in-formals-default.js b/test/language/expressions/object/method-definition/early-errors-object-method-await-in-formals-default.js
index 68c37c0b02..8b6dc5ebff 100644
--- a/test/language/expressions/object/method-definition/early-errors-object-method-await-in-formals-default.js
+++ b/test/language/expressions/object/method-definition/early-errors-object-method-await-in-formals-default.js
@@ -5,7 +5,9 @@
 author: Brian Terlson <brian.terlson@microsoft.com>
 esid: pending
 description: It is a SyntaxError if FormalParameters' default expressions contains await
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 !{
   async foo (x = await) {  }
diff --git a/test/language/expressions/object/method-definition/early-errors-object-method-await-in-formals.js b/test/language/expressions/object/method-definition/early-errors-object-method-await-in-formals.js
index b390fd2a93..c606a9a449 100644
--- a/test/language/expressions/object/method-definition/early-errors-object-method-await-in-formals.js
+++ b/test/language/expressions/object/method-definition/early-errors-object-method-await-in-formals.js
@@ -5,7 +5,9 @@
 author: Brian Terlson <brian.terlson@microsoft.com>
 esid: pending
 description: It is a SyntaxError if FormalParameters contains await
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 !{
   async foo (await) {  }
diff --git a/test/language/expressions/object/method-definition/early-errors-object-method-body-contains-super-call.js b/test/language/expressions/object/method-definition/early-errors-object-method-body-contains-super-call.js
index 3eda771523..8f8852146c 100644
--- a/test/language/expressions/object/method-definition/early-errors-object-method-body-contains-super-call.js
+++ b/test/language/expressions/object/method-definition/early-errors-object-method-body-contains-super-call.js
@@ -5,7 +5,9 @@
 author: Brian Terlson <brian.terlson@microsoft.com>
 esid: pending
 description: It is a SyntaxError if AsyncFunctionBody contains SuperCall is true
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 !{
   async foo () { super() }
diff --git a/test/language/expressions/object/method-definition/early-errors-object-method-duplicate-parameters.js b/test/language/expressions/object/method-definition/early-errors-object-method-duplicate-parameters.js
index 9282c45e6a..aee8ea55e8 100644
--- a/test/language/expressions/object/method-definition/early-errors-object-method-duplicate-parameters.js
+++ b/test/language/expressions/object/method-definition/early-errors-object-method-duplicate-parameters.js
@@ -6,7 +6,9 @@ author: Brian Terlson <brian.terlson@microsoft.com>
 esid: pending
 description: >
   Early error rules for StrictFormalParameters are applied
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 !{
   async foo(a, a) { }
diff --git a/test/language/expressions/object/method-definition/early-errors-object-method-eval-in-formal-parameters.js b/test/language/expressions/object/method-definition/early-errors-object-method-eval-in-formal-parameters.js
index 9eb6231406..b80ee27ac1 100644
--- a/test/language/expressions/object/method-definition/early-errors-object-method-eval-in-formal-parameters.js
+++ b/test/language/expressions/object/method-definition/early-errors-object-method-eval-in-formal-parameters.js
@@ -5,7 +5,9 @@
 author: Brian Terlson <brian.terlson@microsoft.com>
 esid: pending
 description: It is a SyntaxError if FormalParameters contains eval in strict mode
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [onlyStrict]
 ---*/
 !{
diff --git a/test/language/expressions/object/method-definition/early-errors-object-method-formals-body-duplicate.js b/test/language/expressions/object/method-definition/early-errors-object-method-formals-body-duplicate.js
index d8697085fd..62bc0144e4 100644
--- a/test/language/expressions/object/method-definition/early-errors-object-method-formals-body-duplicate.js
+++ b/test/language/expressions/object/method-definition/early-errors-object-method-formals-body-duplicate.js
@@ -5,7 +5,9 @@
 author: Brian Terlson <brian.terlson@microsoft.com>
 esid: pending
 description: It is a SyntaxError if BoundNames of FormalParameters also occurs in the LexicallyDeclaredNames of AsyncFunctionBody
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 !{
diff --git a/test/language/expressions/object/method-definition/early-errors-object-method-formals-contains-super-call.js b/test/language/expressions/object/method-definition/early-errors-object-method-formals-contains-super-call.js
index b46d1ea4b5..b3b50267ad 100644
--- a/test/language/expressions/object/method-definition/early-errors-object-method-formals-contains-super-call.js
+++ b/test/language/expressions/object/method-definition/early-errors-object-method-formals-contains-super-call.js
@@ -5,7 +5,9 @@
 author: Brian Terlson <brian.terlson@microsoft.com>
 esid: pending
 description: It is a syntax error if FormalParameters contains SuperCall is true
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 !{
   async foo(foo = super()) { }
diff --git a/test/language/expressions/object/method-definition/generator-param-id-yield.js b/test/language/expressions/object/method-definition/generator-param-id-yield.js
index ac5e678698..0940b3b2d6 100644
--- a/test/language/expressions/object/method-definition/generator-param-id-yield.js
+++ b/test/language/expressions/object/method-definition/generator-param-id-yield.js
@@ -8,7 +8,9 @@ description: >
 es6id: 14.4
 features: [generators]
 flags: [noStrict]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 ({
diff --git a/test/language/expressions/object/method-definition/generator-param-init-yield.js b/test/language/expressions/object/method-definition/generator-param-init-yield.js
index d09bc6d88d..6be6158496 100644
--- a/test/language/expressions/object/method-definition/generator-param-init-yield.js
+++ b/test/language/expressions/object/method-definition/generator-param-init-yield.js
@@ -8,7 +8,9 @@ description: >
 es6id: 14.4
 features: [generators]
 flags: [noStrict]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 (function*() {
diff --git a/test/language/expressions/object/method-definition/generator-param-redecl-const.js b/test/language/expressions/object/method-definition/generator-param-redecl-const.js
index 8f1969cab3..3e35fe08ee 100644
--- a/test/language/expressions/object/method-definition/generator-param-redecl-const.js
+++ b/test/language/expressions/object/method-definition/generator-param-redecl-const.js
@@ -9,7 +9,9 @@ features: [generators]
 es6id: 14.4.1
 author: Sam Mikes
 description: GeneratorMethod error with lexical shadowing
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var obj = {
diff --git a/test/language/expressions/object/method-definition/generator-param-redecl-let.js b/test/language/expressions/object/method-definition/generator-param-redecl-let.js
index 0646eccd4a..ccce54ca69 100644
--- a/test/language/expressions/object/method-definition/generator-param-redecl-let.js
+++ b/test/language/expressions/object/method-definition/generator-param-redecl-let.js
@@ -9,7 +9,9 @@ features: [generators]
 es6id: 14.4.1
 author: Sam Mikes
 description: GeneratorMethod error with lexical shadowing
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var obj = {
diff --git a/test/language/expressions/object/method-definition/generator-super-call-body.js b/test/language/expressions/object/method-definition/generator-super-call-body.js
index 6dfa31f7fd..d53ce77077 100644
--- a/test/language/expressions/object/method-definition/generator-super-call-body.js
+++ b/test/language/expressions/object/method-definition/generator-super-call-body.js
@@ -9,7 +9,9 @@ features: [generators]
 es6id: 14.4.1
 author: Sam Mikes
 description: GeneratorMethod error if HasDirectSuper in body
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var obj = {
diff --git a/test/language/expressions/object/method-definition/generator-super-call-param.js b/test/language/expressions/object/method-definition/generator-super-call-param.js
index bfbd2fb8ad..3d3faa0dee 100644
--- a/test/language/expressions/object/method-definition/generator-super-call-param.js
+++ b/test/language/expressions/object/method-definition/generator-super-call-param.js
@@ -9,7 +9,9 @@ features: [generators]
 es6id: 14.4.1
 author: Sam Mikes
 description: GeneratorMethod error if HasDirectSuper in args
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var obj = {
diff --git a/test/language/expressions/object/method-definition/generator-use-strict-with-non-simple-param.js b/test/language/expressions/object/method-definition/generator-use-strict-with-non-simple-param.js
index 2bb13df664..84ee674544 100755
--- a/test/language/expressions/object/method-definition/generator-use-strict-with-non-simple-param.js
+++ b/test/language/expressions/object/method-definition/generator-use-strict-with-non-simple-param.js
@@ -9,7 +9,9 @@ info: >
   Static Semantics: Early Errors
 
   It is a Syntax Error if ContainsUseStrict of GeneratorBody is true and IsSimpleParameterList of StrictFormalParameters is false.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var o = {
diff --git a/test/language/expressions/object/method-definition/name-param-redecl.js b/test/language/expressions/object/method-definition/name-param-redecl.js
index d435a450b5..ec21679128 100644
--- a/test/language/expressions/object/method-definition/name-param-redecl.js
+++ b/test/language/expressions/object/method-definition/name-param-redecl.js
@@ -7,7 +7,9 @@ description: >
     StrictFormalParameters also occurs in the LexicallyDeclaredNames of
     FunctionBody.
 es6id: 14.3.1
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var obj = {
diff --git a/test/language/expressions/object/method-definition/name-super-call-body.js b/test/language/expressions/object/method-definition/name-super-call-body.js
index 5334201b91..395a8c12ac 100644
--- a/test/language/expressions/object/method-definition/name-super-call-body.js
+++ b/test/language/expressions/object/method-definition/name-super-call-body.js
@@ -5,7 +5,9 @@
 description: >
     It is a Syntax Error if HasDirectSuper of MethodDefinition is true.
 es6id: 12.2.5.1
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 ({
diff --git a/test/language/expressions/object/method-definition/name-super-call-param.js b/test/language/expressions/object/method-definition/name-super-call-param.js
index cf96e2f4b0..5648a35bf7 100644
--- a/test/language/expressions/object/method-definition/name-super-call-param.js
+++ b/test/language/expressions/object/method-definition/name-super-call-param.js
@@ -5,7 +5,9 @@
 description: >
     It is a Syntax Error if HasDirectSuper of MethodDefinition is true.
 es6id: 12.2.5.1
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 ({
diff --git a/test/language/expressions/object/method-definition/params-trailing-comma-rest.js b/test/language/expressions/object/method-definition/params-trailing-comma-rest.js
index db4d00e2b8..8c62102420 100644
--- a/test/language/expressions/object/method-definition/params-trailing-comma-rest.js
+++ b/test/language/expressions/object/method-definition/params-trailing-comma-rest.js
@@ -6,7 +6,9 @@ description: >
   object method parameter lists.
 info: http://jeffmo.github.io/es-trailing-function-commas/
 author: Jeff Morrison <lbljeffmo@gmail.com>
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 ({
   m(...[],) {}
diff --git a/test/language/expressions/object/method-definition/setter-use-strict-with-non-simple-param.js b/test/language/expressions/object/method-definition/setter-use-strict-with-non-simple-param.js
index cb95f17a29..dda7de9147 100755
--- a/test/language/expressions/object/method-definition/setter-use-strict-with-non-simple-param.js
+++ b/test/language/expressions/object/method-definition/setter-use-strict-with-non-simple-param.js
@@ -9,7 +9,9 @@ info: >
   Static Semantics: Early Errors
 
   It is a Syntax Error if ContainsUseStrict of FunctionBody is true and IsSimpleParameterList of PropertySetParameterList is false.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var o = {
diff --git a/test/language/expressions/object/method-definition/use-strict-with-non-simple-param.js b/test/language/expressions/object/method-definition/use-strict-with-non-simple-param.js
index 17b9ed9cb5..953ed8c42a 100755
--- a/test/language/expressions/object/method-definition/use-strict-with-non-simple-param.js
+++ b/test/language/expressions/object/method-definition/use-strict-with-non-simple-param.js
@@ -9,7 +9,9 @@ info: >
   Static Semantics: Early Errors
 
    It is a Syntax Error if ContainsUseStrict of FunctionBody is true and IsSimpleParameterList of StrictFormalParameters is false.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var o = {
diff --git a/test/language/expressions/object/method-definition/yield-as-binding-identifier.js b/test/language/expressions/object/method-definition/yield-as-binding-identifier.js
index c3199ecc60..20310e2e59 100644
--- a/test/language/expressions/object/method-definition/yield-as-binding-identifier.js
+++ b/test/language/expressions/object/method-definition/yield-as-binding-identifier.js
@@ -7,7 +7,9 @@
       not be used as a binding identifier.
   features: [generators]
   es6id: 12.1.1
-  negative: SyntaxError
+  negative:
+    phase: early
+    type: SyntaxError
  ---*/
 
 var obj = {
diff --git a/test/language/expressions/object/method-definition/yield-as-label.js b/test/language/expressions/object/method-definition/yield-as-label.js
index 7bfc52d601..6a9f15f16f 100644
--- a/test/language/expressions/object/method-definition/yield-as-label.js
+++ b/test/language/expressions/object/method-definition/yield-as-label.js
@@ -7,7 +7,9 @@
       not be used as a label.
   features: [generators]
   es6id: 12.1.1
-  negative: SyntaxError
+  negative:
+    phase: early
+    type: SyntaxError
  ---*/
 
 var obj = {
diff --git a/test/language/expressions/object/method-definition/yield-as-logical-or-expression.js b/test/language/expressions/object/method-definition/yield-as-logical-or-expression.js
index 922ca27a0e..017cc5e922 100644
--- a/test/language/expressions/object/method-definition/yield-as-logical-or-expression.js
+++ b/test/language/expressions/object/method-definition/yield-as-logical-or-expression.js
@@ -6,7 +6,9 @@
       `yield` expressions are not LogicalOrExpressions.
   features: [generators]
   es6id: 12.1.1
-  negative: SyntaxError
+  negative:
+    phase: early
+    type: SyntaxError
  ---*/
 
 var obj = {
diff --git a/test/language/expressions/object/method-definition/yield-as-parameter.js b/test/language/expressions/object/method-definition/yield-as-parameter.js
index a5edb6c440..1e297a5bef 100644
--- a/test/language/expressions/object/method-definition/yield-as-parameter.js
+++ b/test/language/expressions/object/method-definition/yield-as-parameter.js
@@ -7,7 +7,9 @@
       not be used as the binding identifier of a parameter.
   features: [generators]
   es6id: 12.1.1
-  negative: SyntaxError
+  negative:
+    phase: early
+    type: SyntaxError
  ---*/
 
 var obj = {
diff --git a/test/language/expressions/object/method-definition/yield-star-after-newline.js b/test/language/expressions/object/method-definition/yield-star-after-newline.js
index 820a60d2f8..92a79b2093 100644
--- a/test/language/expressions/object/method-definition/yield-star-after-newline.js
+++ b/test/language/expressions/object/method-definition/yield-star-after-newline.js
@@ -6,7 +6,9 @@
       A newline may not precede the `*` token in a `yield` expression.
   features: [generators]
   es6id: 14.4
-  negative: SyntaxError
+  negative:
+    phase: early
+    type: SyntaxError
  ---*/
 
 var obj = {
diff --git a/test/language/expressions/object/method-definition/yield-weak-binding.js b/test/language/expressions/object/method-definition/yield-weak-binding.js
index 6e40c6684d..24f5aaa35d 100644
--- a/test/language/expressions/object/method-definition/yield-weak-binding.js
+++ b/test/language/expressions/object/method-definition/yield-weak-binding.js
@@ -6,7 +6,9 @@
       `yield` expressions bind weakly
   features: [generators]
   es6id: 14.4
-  negative: SyntaxError
+  negative:
+    phase: early
+    type: SyntaxError
  ---*/
 
 var obj = {
diff --git a/test/language/expressions/postfix-increment/11.3.1-2-1gs.js b/test/language/expressions/postfix-increment/11.3.1-2-1gs.js
index f79ce4d421..35d1ea627d 100644
--- a/test/language/expressions/postfix-increment/11.3.1-2-1gs.js
+++ b/test/language/expressions/postfix-increment/11.3.1-2-1gs.js
@@ -6,7 +6,9 @@ es5id: 11.3.1-2-1gs
 description: >
     Strict Mode - SyntaxError is throw if the identifier arguments
     appear as a PostfixExpression(arguments++)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [onlyStrict]
 ---*/
 
diff --git a/test/language/expressions/prefix-decrement/11.4.5-2-2gs.js b/test/language/expressions/prefix-decrement/11.4.5-2-2gs.js
index 0f4e15936a..6c22e85fc2 100644
--- a/test/language/expressions/prefix-decrement/11.4.5-2-2gs.js
+++ b/test/language/expressions/prefix-decrement/11.4.5-2-2gs.js
@@ -6,7 +6,9 @@ es5id: 11.4.5-2-2gs
 description: >
     Strict Mode - SyntaxError is throw if the UnaryExpression operated
     upon by a Prefix Decrement operator(--arguments)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [onlyStrict]
 ---*/
 
diff --git a/test/language/expressions/template-literal/invalid-hexidecimal-character-escape-sequence-truncated-1.js b/test/language/expressions/template-literal/invalid-hexidecimal-character-escape-sequence-truncated-1.js
index c645e96541..6733e62341 100644
--- a/test/language/expressions/template-literal/invalid-hexidecimal-character-escape-sequence-truncated-1.js
+++ b/test/language/expressions/template-literal/invalid-hexidecimal-character-escape-sequence-truncated-1.js
@@ -3,7 +3,9 @@
 /*---
 esid: sec-template-literal-lexical-components
 description: Invalid hexidecimal character escape sequence
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 `\x0`;
diff --git a/test/language/expressions/template-literal/invalid-hexidecimal-character-escape-sequence-truncated-2.js b/test/language/expressions/template-literal/invalid-hexidecimal-character-escape-sequence-truncated-2.js
index f32dea9c11..a3636f2880 100644
--- a/test/language/expressions/template-literal/invalid-hexidecimal-character-escape-sequence-truncated-2.js
+++ b/test/language/expressions/template-literal/invalid-hexidecimal-character-escape-sequence-truncated-2.js
@@ -3,7 +3,9 @@
 /*---
 esid: sec-template-literal-lexical-components
 description: Invalid hexidecimal character escape sequence
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 `\x0G`;
diff --git a/test/language/expressions/template-literal/invalid-hexidecimal-character-escape-sequence-truncated-3.js b/test/language/expressions/template-literal/invalid-hexidecimal-character-escape-sequence-truncated-3.js
index 04e03b1603..f93f16b7d7 100644
--- a/test/language/expressions/template-literal/invalid-hexidecimal-character-escape-sequence-truncated-3.js
+++ b/test/language/expressions/template-literal/invalid-hexidecimal-character-escape-sequence-truncated-3.js
@@ -3,7 +3,9 @@
 /*---
 esid: sec-template-literal-lexical-components
 description: Invalid hexidecimal character escape sequence
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 `\xG`;
diff --git a/test/language/expressions/template-literal/invalid-legacy-octal-escape-sequence.js b/test/language/expressions/template-literal/invalid-legacy-octal-escape-sequence.js
index 806bf337d5..fff2144f30 100644
--- a/test/language/expressions/template-literal/invalid-legacy-octal-escape-sequence.js
+++ b/test/language/expressions/template-literal/invalid-legacy-octal-escape-sequence.js
@@ -6,7 +6,9 @@ description: Invalid octal escape sequence
 info: >
     TemplateCharacter (11.8.6) must not be extended to include
     LegacyOctalEscapeSequence as defined in B.1.2.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 `\00`;
diff --git a/test/language/expressions/template-literal/invalid-unicode-escape-sequence-1.js b/test/language/expressions/template-literal/invalid-unicode-escape-sequence-1.js
index 053ead0734..efef736355 100644
--- a/test/language/expressions/template-literal/invalid-unicode-escape-sequence-1.js
+++ b/test/language/expressions/template-literal/invalid-unicode-escape-sequence-1.js
@@ -3,7 +3,9 @@
 /*---
 esid: sec-template-literal-lexical-components
 description: Invalid unicode escape sequence
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 `\u0`;
diff --git a/test/language/expressions/template-literal/invalid-unicode-escape-sequence-2.js b/test/language/expressions/template-literal/invalid-unicode-escape-sequence-2.js
index 6c9e72a948..762811de37 100644
--- a/test/language/expressions/template-literal/invalid-unicode-escape-sequence-2.js
+++ b/test/language/expressions/template-literal/invalid-unicode-escape-sequence-2.js
@@ -3,7 +3,9 @@
 /*---
 esid: sec-template-literal-lexical-components
 description: Invalid unicode escape sequence
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 `\u0g`;
diff --git a/test/language/expressions/template-literal/invalid-unicode-escape-sequence-3.js b/test/language/expressions/template-literal/invalid-unicode-escape-sequence-3.js
index 21c6ec6121..17fd6db0fa 100644
--- a/test/language/expressions/template-literal/invalid-unicode-escape-sequence-3.js
+++ b/test/language/expressions/template-literal/invalid-unicode-escape-sequence-3.js
@@ -3,7 +3,9 @@
 /*---
 esid: sec-template-literal-lexical-components
 description: Invalid unicode escape sequence
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 `\u00g`;
diff --git a/test/language/expressions/template-literal/invalid-unicode-escape-sequence-4.js b/test/language/expressions/template-literal/invalid-unicode-escape-sequence-4.js
index 028a77b27d..0f3075a646 100644
--- a/test/language/expressions/template-literal/invalid-unicode-escape-sequence-4.js
+++ b/test/language/expressions/template-literal/invalid-unicode-escape-sequence-4.js
@@ -3,7 +3,9 @@
 /*---
 esid: sec-template-literal-lexical-components
 description: Invalid unicode escape sequence
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 `\u000g`;
diff --git a/test/language/expressions/template-literal/invalid-unicode-escape-sequence-5.js b/test/language/expressions/template-literal/invalid-unicode-escape-sequence-5.js
index 13d896b509..2f8c933070 100644
--- a/test/language/expressions/template-literal/invalid-unicode-escape-sequence-5.js
+++ b/test/language/expressions/template-literal/invalid-unicode-escape-sequence-5.js
@@ -3,7 +3,9 @@
 /*---
 esid: sec-template-literal-lexical-components
 description: Invalid unicode escape sequence
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 `\u{g`;
diff --git a/test/language/expressions/template-literal/invalid-unicode-escape-sequence-6.js b/test/language/expressions/template-literal/invalid-unicode-escape-sequence-6.js
index 12c4b99d9e..86749a222b 100644
--- a/test/language/expressions/template-literal/invalid-unicode-escape-sequence-6.js
+++ b/test/language/expressions/template-literal/invalid-unicode-escape-sequence-6.js
@@ -3,7 +3,9 @@
 /*---
 esid: sec-template-literal-lexical-components
 description: Invalid unicode escape sequence
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 `\u{0`;
diff --git a/test/language/expressions/template-literal/invalid-unicode-escape-sequence-7.js b/test/language/expressions/template-literal/invalid-unicode-escape-sequence-7.js
index a8f56fb194..e7269d8eef 100644
--- a/test/language/expressions/template-literal/invalid-unicode-escape-sequence-7.js
+++ b/test/language/expressions/template-literal/invalid-unicode-escape-sequence-7.js
@@ -3,7 +3,9 @@
 /*---
 esid: sec-template-literal-lexical-components
 description: Invalid unicode escape sequence
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 `\u{10FFFFF}`;
diff --git a/test/language/expressions/template-literal/invalid-unicode-escape-sequence-8.js b/test/language/expressions/template-literal/invalid-unicode-escape-sequence-8.js
index fa2d458b91..056a659991 100644
--- a/test/language/expressions/template-literal/invalid-unicode-escape-sequence-8.js
+++ b/test/language/expressions/template-literal/invalid-unicode-escape-sequence-8.js
@@ -3,7 +3,9 @@
 /*---
 esid: sec-template-literal-lexical-components
 description: Invalid unicode escape sequence
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 `\u{10FFFFF}${'inner'}right`;
diff --git a/test/language/expressions/yield/invalid-left-hand-side.js b/test/language/expressions/yield/invalid-left-hand-side.js
index e5d000a914..c4b7d5bd11 100644
--- a/test/language/expressions/yield/invalid-left-hand-side.js
+++ b/test/language/expressions/yield/invalid-left-hand-side.js
@@ -16,7 +16,9 @@ info: |
     NewExpression[?Yield]
     CallExpression[?Yield]
 features: [generators]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 function* g() {
diff --git a/test/language/future-reserved-words/S7.6.1.2_A1.10.js b/test/language/future-reserved-words/S7.6.1.2_A1.10.js
index 183fd99090..be6f1006f7 100644
--- a/test/language/future-reserved-words/S7.6.1.2_A1.10.js
+++ b/test/language/future-reserved-words/S7.6.1.2_A1.10.js
@@ -5,7 +5,9 @@
 info: The "export" token can not be used as identifier
 es5id: 7.6.1.2_A1.10
 description: Checking if execution of "export=1" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var export = 1;
diff --git a/test/language/future-reserved-words/S7.6.1.2_A1.11.js b/test/language/future-reserved-words/S7.6.1.2_A1.11.js
index 5d5d6237c4..d9bdd2f4e3 100644
--- a/test/language/future-reserved-words/S7.6.1.2_A1.11.js
+++ b/test/language/future-reserved-words/S7.6.1.2_A1.11.js
@@ -5,7 +5,9 @@
 info: The "extends" token can not be used as identifier
 es5id: 7.6.1.2_A1.11
 description: Checking if execution of "extends=1" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var extends = 1;
diff --git a/test/language/future-reserved-words/S7.6.1.2_A1.15.js b/test/language/future-reserved-words/S7.6.1.2_A1.15.js
index 582896c26e..7c0fce200f 100644
--- a/test/language/future-reserved-words/S7.6.1.2_A1.15.js
+++ b/test/language/future-reserved-words/S7.6.1.2_A1.15.js
@@ -5,7 +5,9 @@
 info: The "implements" token can not be used as identifier in strict code
 es5id: 7.6.1.2_A1.15
 description: Checking if execution of "implements=1" fails in strict code
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [onlyStrict]
 ---*/
 
diff --git a/test/language/future-reserved-words/S7.6.1.2_A1.16.js b/test/language/future-reserved-words/S7.6.1.2_A1.16.js
index b7c078dd63..da5cd8ad53 100644
--- a/test/language/future-reserved-words/S7.6.1.2_A1.16.js
+++ b/test/language/future-reserved-words/S7.6.1.2_A1.16.js
@@ -5,7 +5,9 @@
 info: The "import" token can not be used as identifier
 es5id: 7.6.1.2_A1.16
 description: Checking if execution of "import=1" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var import = 1;
diff --git a/test/language/future-reserved-words/S7.6.1.2_A1.18.js b/test/language/future-reserved-words/S7.6.1.2_A1.18.js
index 5d99af8beb..c9d8876440 100644
--- a/test/language/future-reserved-words/S7.6.1.2_A1.18.js
+++ b/test/language/future-reserved-words/S7.6.1.2_A1.18.js
@@ -5,7 +5,9 @@
 info: The "interface" token can not be used as identifier in strict code
 es5id: 7.6.1.2_A1.18
 description: Checking if execution of "interface = 1" fails in  strict code
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [onlyStrict]
 ---*/
 
diff --git a/test/language/future-reserved-words/S7.6.1.2_A1.21.js b/test/language/future-reserved-words/S7.6.1.2_A1.21.js
index 9567f9675c..deacbfd3aa 100644
--- a/test/language/future-reserved-words/S7.6.1.2_A1.21.js
+++ b/test/language/future-reserved-words/S7.6.1.2_A1.21.js
@@ -5,7 +5,9 @@
 info: The "package" token can not be used as identifier in strict code
 es5id: 7.6.1.2_A1.21
 description: Checking if execution of "package=1" fails in strict code
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [onlyStrict]
 ---*/
 
diff --git a/test/language/future-reserved-words/S7.6.1.2_A1.22.js b/test/language/future-reserved-words/S7.6.1.2_A1.22.js
index 6a416da847..0a7ed7f81e 100644
--- a/test/language/future-reserved-words/S7.6.1.2_A1.22.js
+++ b/test/language/future-reserved-words/S7.6.1.2_A1.22.js
@@ -5,7 +5,9 @@
 info: The "private" token can not be used as identifier in strict code
 es5id: 7.6.1.2_A1.22
 description: Checking if execution of "private=1" fails in strict code
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [onlyStrict]
 ---*/
 
diff --git a/test/language/future-reserved-words/S7.6.1.2_A1.23.js b/test/language/future-reserved-words/S7.6.1.2_A1.23.js
index 1ad73c51d1..092bf67e34 100644
--- a/test/language/future-reserved-words/S7.6.1.2_A1.23.js
+++ b/test/language/future-reserved-words/S7.6.1.2_A1.23.js
@@ -5,7 +5,9 @@
 info: The "protected" token can not be used as identifier in strict code
 es5id: 7.6.1.2_A1.23
 description: Checking if execution of "protected=1" fails in  strict code
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [onlyStrict]
 ---*/
 
diff --git a/test/language/future-reserved-words/S7.6.1.2_A1.24.js b/test/language/future-reserved-words/S7.6.1.2_A1.24.js
index 7d9e14cdef..abd88425bc 100644
--- a/test/language/future-reserved-words/S7.6.1.2_A1.24.js
+++ b/test/language/future-reserved-words/S7.6.1.2_A1.24.js
@@ -5,7 +5,9 @@
 info: The "public" token can not be used as identifier in strict code
 es5id: 7.6.1.2_A1.24
 description: Checking if execution of "public=1" fails in strict code
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [onlyStrict]
 ---*/
 
diff --git a/test/language/future-reserved-words/S7.6.1.2_A1.26.js b/test/language/future-reserved-words/S7.6.1.2_A1.26.js
index 40153c83b0..b765345a92 100644
--- a/test/language/future-reserved-words/S7.6.1.2_A1.26.js
+++ b/test/language/future-reserved-words/S7.6.1.2_A1.26.js
@@ -5,7 +5,9 @@
 info: The "static" token can not be used as identifier in strict code
 es5id: 7.6.1.2_A1.26
 description: Checking if execution of "static=1" fails in strict code
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [onlyStrict]
 ---*/
 
diff --git a/test/language/future-reserved-words/S7.6.1.2_A1.27.js b/test/language/future-reserved-words/S7.6.1.2_A1.27.js
index 8011fb1833..fae8764e54 100644
--- a/test/language/future-reserved-words/S7.6.1.2_A1.27.js
+++ b/test/language/future-reserved-words/S7.6.1.2_A1.27.js
@@ -5,7 +5,9 @@
 info: The "super" token can not be used as identifier
 es5id: 7.6.1.2_A1.27
 description: Checking if execution of "super=1" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var super = 1;
diff --git a/test/language/future-reserved-words/S7.6.1.2_A1.5.js b/test/language/future-reserved-words/S7.6.1.2_A1.5.js
index b1c184f444..72ab227e80 100644
--- a/test/language/future-reserved-words/S7.6.1.2_A1.5.js
+++ b/test/language/future-reserved-words/S7.6.1.2_A1.5.js
@@ -5,7 +5,9 @@
 info: The "class" token can not be used as identifier
 es5id: 7.6.1.2_A1.5
 description: Checking if execution of "class=1" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var class = 1;
diff --git a/test/language/future-reserved-words/S7.6.1.2_A1.6.js b/test/language/future-reserved-words/S7.6.1.2_A1.6.js
index af899166d5..cf176bbb88 100644
--- a/test/language/future-reserved-words/S7.6.1.2_A1.6.js
+++ b/test/language/future-reserved-words/S7.6.1.2_A1.6.js
@@ -5,7 +5,9 @@
 info: The "const" token can not be used as identifier
 es5id: 7.6.1.2_A1.6
 description: Checking if execution of "const=1" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var const = 1;
diff --git a/test/language/future-reserved-words/S7.6.1.2_A1.7.js b/test/language/future-reserved-words/S7.6.1.2_A1.7.js
index b5217a3f50..eae9074d56 100644
--- a/test/language/future-reserved-words/S7.6.1.2_A1.7.js
+++ b/test/language/future-reserved-words/S7.6.1.2_A1.7.js
@@ -5,7 +5,9 @@
 info: The "debugger" token can not be used as identifier
 es5id: 7.6.1.2_A1.7
 description: Checking if execution of "debugger=1" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var debugger = 1;
diff --git a/test/language/future-reserved-words/S7.6.1.2_A1.9.js b/test/language/future-reserved-words/S7.6.1.2_A1.9.js
index 78fc962f88..8e04cff51f 100644
--- a/test/language/future-reserved-words/S7.6.1.2_A1.9.js
+++ b/test/language/future-reserved-words/S7.6.1.2_A1.9.js
@@ -5,7 +5,9 @@
 info: The "enum" token can not be used as identifier
 es5id: 7.6.1.2_A1.9
 description: Checking if execution of "enum=1" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var enum = 1;
diff --git a/test/language/global-code/decl-lex-restricted-global.js b/test/language/global-code/decl-lex-restricted-global.js
index 7e32fca82a..88561cd928 100644
--- a/test/language/global-code/decl-lex-restricted-global.js
+++ b/test/language/global-code/decl-lex-restricted-global.js
@@ -10,7 +10,9 @@ info: |
      [...]
      c. Let hasRestrictedGlobal be ? envRec.HasRestrictedGlobalProperty(name).
      d. If hasRestrictedGlobal is true, throw a SyntaxError exception.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 let undefined;
diff --git a/test/language/global-code/export.js b/test/language/global-code/export.js
index b41c539694..918d846e2d 100644
--- a/test/language/global-code/export.js
+++ b/test/language/global-code/export.js
@@ -3,7 +3,9 @@
 /*---
 description: The `export` declaration may not appear within a ScriptBody
 esid: sec-scripts
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 info: |
      A.5 Scripts and Modules
 
diff --git a/test/language/global-code/import.js b/test/language/global-code/import.js
index d0332f127b..3080f988c7 100644
--- a/test/language/global-code/import.js
+++ b/test/language/global-code/import.js
@@ -3,7 +3,9 @@
 /*---
 description: The `import` declaration may not appear within a ScriptBody
 esid: sec-scripts
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 info: |
      A.5 Scripts and Modules
 
diff --git a/test/language/global-code/new.target-arrow.js b/test/language/global-code/new.target-arrow.js
index d2f46975fc..53cce9b339 100644
--- a/test/language/global-code/new.target-arrow.js
+++ b/test/language/global-code/new.target-arrow.js
@@ -25,7 +25,9 @@ info: |
        Contains is used to detect new.target, this, and super usage within an
        ArrowFunction.
 features: [arrow-function]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 () => {
diff --git a/test/language/global-code/new.target.js b/test/language/global-code/new.target.js
index 60ea090a3f..b305223323 100644
--- a/test/language/global-code/new.target.js
+++ b/test/language/global-code/new.target.js
@@ -9,7 +9,9 @@ info: |
     code containing NewTarget is eval code that is being processed by a direct
     eval that is contained in function code that is not the function code of an
     ArrowFunction.
-negative: SyntaxError
+negative: 
+  phase: early
+  type: SyntaxError
 ---*/
 
 new.target;
diff --git a/test/language/global-code/return.js b/test/language/global-code/return.js
index e9d3383426..72877c9613 100644
--- a/test/language/global-code/return.js
+++ b/test/language/global-code/return.js
@@ -12,7 +12,9 @@ info: |
 
   ScriptBody :
     StatementList[~Yield, ~Return]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 return;
diff --git a/test/language/global-code/super-call-arrow.js b/test/language/global-code/super-call-arrow.js
index a61130413d..1cf735f4c7 100644
--- a/test/language/global-code/super-call-arrow.js
+++ b/test/language/global-code/super-call-arrow.js
@@ -25,7 +25,9 @@ info: |
        Contains is used to detect new.target, this, and super usage within an
        ArrowFunction.
 features: [super, arrow-function]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 () => {
diff --git a/test/language/global-code/super-call.js b/test/language/global-code/super-call.js
index fc5f87a1bb..5aeee34a10 100644
--- a/test/language/global-code/super-call.js
+++ b/test/language/global-code/super-call.js
@@ -9,7 +9,9 @@ info: |
     containing super is eval code that is being processed by a direct eval that
     is contained in function code that is not the function code of an
     ArrowFunction.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 features: [super]
 ---*/
 
diff --git a/test/language/global-code/super-prop-arrow.js b/test/language/global-code/super-prop-arrow.js
index 30f85698d8..80ac0ce347 100644
--- a/test/language/global-code/super-prop-arrow.js
+++ b/test/language/global-code/super-prop-arrow.js
@@ -25,7 +25,9 @@ info: |
        Contains is used to detect new.target, this, and super usage within an
        ArrowFunction.
 features: [super, arrow-function]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 () => {
diff --git a/test/language/global-code/super-prop.js b/test/language/global-code/super-prop.js
index b91d67cb4f..f0f9860f6a 100644
--- a/test/language/global-code/super-prop.js
+++ b/test/language/global-code/super-prop.js
@@ -9,7 +9,9 @@ info: |
     containing super is eval code that is being processed by a direct eval that
     is contained in function code that is not the function code of an
     ArrowFunction.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 features: [super]
 ---*/
 
diff --git a/test/language/global-code/yield-strict.js b/test/language/global-code/yield-strict.js
index 24e912bb5a..96eb619c92 100644
--- a/test/language/global-code/yield-strict.js
+++ b/test/language/global-code/yield-strict.js
@@ -15,7 +15,9 @@ info: |
   ScriptBody :
     StatementList[~Yield, ~Return]
 flags: [onlyStrict]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 yield;
diff --git a/test/language/identifiers/val-break-via-escape-hex.js b/test/language/identifiers/val-break-via-escape-hex.js
index 42a6cc920f..fb1b737804 100644
--- a/test/language/identifiers/val-break-via-escape-hex.js
+++ b/test/language/identifiers/val-break-via-escape-hex.js
@@ -6,7 +6,9 @@ es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
     Names in UTF8: break
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var \u{62}\u{72}\u{65}\u{61}\u{6b} = 123;;
diff --git a/test/language/identifiers/val-break-via-escape-hex4.js b/test/language/identifiers/val-break-via-escape-hex4.js
index 8206f0eb38..6299858de1 100644
--- a/test/language/identifiers/val-break-via-escape-hex4.js
+++ b/test/language/identifiers/val-break-via-escape-hex4.js
@@ -6,7 +6,9 @@ es5id: 7.6-4
 description: >
     7.6 - SyntaxError expected: reserved words used as Identifier
     Names in UTF8: break (break)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var \u0062\u0072\u0065\u0061\u006b = 123;;
diff --git a/test/language/identifiers/val-break.js b/test/language/identifiers/val-break.js
index 9c74c49ded..6a202e1d7e 100644
--- a/test/language/identifiers/val-break.js
+++ b/test/language/identifiers/val-break.js
@@ -5,7 +5,9 @@
 es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var break = 123;;
diff --git a/test/language/identifiers/val-case-via-escape-hex.js b/test/language/identifiers/val-case-via-escape-hex.js
index e77de17887..eacb03c328 100644
--- a/test/language/identifiers/val-case-via-escape-hex.js
+++ b/test/language/identifiers/val-case-via-escape-hex.js
@@ -6,7 +6,9 @@ es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
     Names in UTF8: case
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var \u{63}ase = 123;
diff --git a/test/language/identifiers/val-case-via-escape-hex4.js b/test/language/identifiers/val-case-via-escape-hex4.js
index cfd8a60221..f64ab18a42 100644
--- a/test/language/identifiers/val-case-via-escape-hex4.js
+++ b/test/language/identifiers/val-case-via-escape-hex4.js
@@ -6,7 +6,9 @@ es5id: 7.6-5
 description: >
     7.6 - SyntaxError expected: reserved words used as Identifier
     Names in UTF8: case (case)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var \u0063ase = 123;
diff --git a/test/language/identifiers/val-case.js b/test/language/identifiers/val-case.js
index f933ccc3e6..f16897c4d2 100644
--- a/test/language/identifiers/val-case.js
+++ b/test/language/identifiers/val-case.js
@@ -5,7 +5,9 @@
 es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var case = 123;
diff --git a/test/language/identifiers/val-catch-via-escape-hex.js b/test/language/identifiers/val-catch-via-escape-hex.js
index 0858e6ffcb..3f41c513ed 100644
--- a/test/language/identifiers/val-catch-via-escape-hex.js
+++ b/test/language/identifiers/val-catch-via-escape-hex.js
@@ -6,7 +6,9 @@ es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
     Names in UTF8: catch
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var \u{63}atch = 123;
diff --git a/test/language/identifiers/val-catch-via-escape-hex4.js b/test/language/identifiers/val-catch-via-escape-hex4.js
index 464c6da520..a4e6f69b04 100644
--- a/test/language/identifiers/val-catch-via-escape-hex4.js
+++ b/test/language/identifiers/val-catch-via-escape-hex4.js
@@ -6,7 +6,9 @@ es5id: 7.6-13
 description: >
     7.6 - SyntaxError expected: reserved words used as Identifier
     Names in UTF8: catch (catch)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var \u0063atch = 123;
diff --git a/test/language/identifiers/val-catch.js b/test/language/identifiers/val-catch.js
index 242f54e590..86265920ab 100644
--- a/test/language/identifiers/val-catch.js
+++ b/test/language/identifiers/val-catch.js
@@ -5,7 +5,9 @@
 es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var catch = 123;
diff --git a/test/language/identifiers/val-class-via-escape-hex.js b/test/language/identifiers/val-class-via-escape-hex.js
index 7a898910f8..633c256ca8 100644
--- a/test/language/identifiers/val-class-via-escape-hex.js
+++ b/test/language/identifiers/val-class-via-escape-hex.js
@@ -6,7 +6,9 @@ es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
     Names in UTF8: class
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var cla\u{73}s = 123;
diff --git a/test/language/identifiers/val-class-via-escape-hex4.js b/test/language/identifiers/val-class-via-escape-hex4.js
index 25e17718a5..85659fccc0 100644
--- a/test/language/identifiers/val-class-via-escape-hex4.js
+++ b/test/language/identifiers/val-class-via-escape-hex4.js
@@ -6,7 +6,9 @@ es5id: 7.6-30
 description: >
     7.6 - SyntaxError expected: reserved words used as Identifier
     Names in UTF8: class (class)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var cla\u0073s = 123;
diff --git a/test/language/identifiers/val-class.js b/test/language/identifiers/val-class.js
index c2a65f53a9..f80e898386 100644
--- a/test/language/identifiers/val-class.js
+++ b/test/language/identifiers/val-class.js
@@ -5,7 +5,9 @@
 es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var class = 123;
diff --git a/test/language/identifiers/val-const-via-escape-hex.js b/test/language/identifiers/val-const-via-escape-hex.js
index 5c8c2f610d..0fc0169887 100644
--- a/test/language/identifiers/val-const-via-escape-hex.js
+++ b/test/language/identifiers/val-const-via-escape-hex.js
@@ -6,7 +6,9 @@ es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
     Names in UTF8: const
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var co\u{6e}st = 123;
diff --git a/test/language/identifiers/val-const-via-escape-hex4.js b/test/language/identifiers/val-const-via-escape-hex4.js
index 2f9f77afe6..273caf9052 100644
--- a/test/language/identifiers/val-const-via-escape-hex4.js
+++ b/test/language/identifiers/val-const-via-escape-hex4.js
@@ -6,7 +6,9 @@ es5id: 7.6-34
 description: >
     7.6 - SyntaxError expected: reserved words used as Identifier
     Names in UTF8: const (const)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var co\u006est = 123;
diff --git a/test/language/identifiers/val-const.js b/test/language/identifiers/val-const.js
index 31fd2667c3..3d1bd5a29a 100644
--- a/test/language/identifiers/val-const.js
+++ b/test/language/identifiers/val-const.js
@@ -5,7 +5,9 @@
 es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var const = 123;
diff --git a/test/language/identifiers/val-continue-via-escape-hex.js b/test/language/identifiers/val-continue-via-escape-hex.js
index 4cf218f069..2768f75ca4 100644
--- a/test/language/identifiers/val-continue-via-escape-hex.js
+++ b/test/language/identifiers/val-continue-via-escape-hex.js
@@ -6,7 +6,9 @@ es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
     Names in UTF8: continue
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var \u{63}ontinue = 123;
diff --git a/test/language/identifiers/val-continue-via-escape-hex4.js b/test/language/identifiers/val-continue-via-escape-hex4.js
index 6d67614d24..e2a71c32df 100644
--- a/test/language/identifiers/val-continue-via-escape-hex4.js
+++ b/test/language/identifiers/val-continue-via-escape-hex4.js
@@ -6,7 +6,9 @@ es5id: 7.6-17
 description: >
     7.6 - SyntaxError expected: reserved words used as Identifier
     Names in UTF8: continue (continue)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var \u0063ontinue = 123;
diff --git a/test/language/identifiers/val-continue.js b/test/language/identifiers/val-continue.js
index 81babe568f..7275001e6e 100644
--- a/test/language/identifiers/val-continue.js
+++ b/test/language/identifiers/val-continue.js
@@ -5,7 +5,9 @@
 es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var continue = 123;
diff --git a/test/language/identifiers/val-debugger-via-escape-hex.js b/test/language/identifiers/val-debugger-via-escape-hex.js
index 827594d336..08a3457014 100644
--- a/test/language/identifiers/val-debugger-via-escape-hex.js
+++ b/test/language/identifiers/val-debugger-via-escape-hex.js
@@ -6,7 +6,9 @@ es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
     Names in UTF8: debugger
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var \u{64}ebugger = 123;
diff --git a/test/language/identifiers/val-debugger-via-escape-hex4.js b/test/language/identifiers/val-debugger-via-escape-hex4.js
index b42e9c7e28..edb7bef5a5 100644
--- a/test/language/identifiers/val-debugger-via-escape-hex4.js
+++ b/test/language/identifiers/val-debugger-via-escape-hex4.js
@@ -6,7 +6,9 @@ es5id: 7.6-21
 description: >
     7.6 - SyntaxError expected: reserved words used as Identifier
     Names in UTF8: debugger (debugger)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var \u0064ebugger = 123;
diff --git a/test/language/identifiers/val-debugger.js b/test/language/identifiers/val-debugger.js
index a0bf31d18a..d613940518 100644
--- a/test/language/identifiers/val-debugger.js
+++ b/test/language/identifiers/val-debugger.js
@@ -5,7 +5,9 @@
 es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var debugger = 123;
diff --git a/test/language/identifiers/val-default-via-escape-hex.js b/test/language/identifiers/val-default-via-escape-hex.js
index 190b572d30..2d5045f3cd 100644
--- a/test/language/identifiers/val-default-via-escape-hex.js
+++ b/test/language/identifiers/val-default-via-escape-hex.js
@@ -6,7 +6,9 @@ es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
     Names in UTF8: default
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var def\u{61}ult = 123;
diff --git a/test/language/identifiers/val-default-via-escape-hex4.js b/test/language/identifiers/val-default-via-escape-hex4.js
index dbd5f3b371..0d7fb4f43b 100644
--- a/test/language/identifiers/val-default-via-escape-hex4.js
+++ b/test/language/identifiers/val-default-via-escape-hex4.js
@@ -6,7 +6,9 @@ es5id: 7.6-26
 description: >
     7.6 - SyntaxError expected: reserved words used as Identifier
     Names in UTF8: default (default)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var def\u0061ult = 123;
diff --git a/test/language/identifiers/val-default.js b/test/language/identifiers/val-default.js
index f1445dc79d..9768c089f1 100644
--- a/test/language/identifiers/val-default.js
+++ b/test/language/identifiers/val-default.js
@@ -5,7 +5,9 @@
 es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var default = 123;
diff --git a/test/language/identifiers/val-delete-via-escape-hex.js b/test/language/identifiers/val-delete-via-escape-hex.js
index 60657d1030..47a6e608e1 100644
--- a/test/language/identifiers/val-delete-via-escape-hex.js
+++ b/test/language/identifiers/val-delete-via-escape-hex.js
@@ -6,7 +6,9 @@ es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
     Names in UTF8: delete
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var \u{64}elete = 123;
diff --git a/test/language/identifiers/val-delete-via-escape-hex4.js b/test/language/identifiers/val-delete-via-escape-hex4.js
index 2f4be9ae69..9d5f41814f 100644
--- a/test/language/identifiers/val-delete-via-escape-hex4.js
+++ b/test/language/identifiers/val-delete-via-escape-hex4.js
@@ -6,7 +6,9 @@ es5id: 7.6-29
 description: >
     7.6 - SyntaxError expected: reserved words used as Identifier
     Names in UTF8: delete (delete)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var \u0064elete = 123;
diff --git a/test/language/identifiers/val-delete.js b/test/language/identifiers/val-delete.js
index 32e7927a29..8ec3b62608 100644
--- a/test/language/identifiers/val-delete.js
+++ b/test/language/identifiers/val-delete.js
@@ -5,7 +5,9 @@
 es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var delete = 123;
diff --git a/test/language/identifiers/val-do-via-escape-hex.js b/test/language/identifiers/val-do-via-escape-hex.js
index 88d7490e1a..86b2e87521 100644
--- a/test/language/identifiers/val-do-via-escape-hex.js
+++ b/test/language/identifiers/val-do-via-escape-hex.js
@@ -6,7 +6,9 @@ es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
     Names in UTF8: do
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var \u{64}\u{6f} = 123;
diff --git a/test/language/identifiers/val-do-via-escape-hex4.js b/test/language/identifiers/val-do-via-escape-hex4.js
index 02fe6d723e..76c8b50373 100644
--- a/test/language/identifiers/val-do-via-escape-hex4.js
+++ b/test/language/identifiers/val-do-via-escape-hex4.js
@@ -6,7 +6,9 @@ es5id: 7.6-8
 description: >
     7.6 - SyntaxError expected: reserved words used as Identifier
     Names in UTF8: do (do)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var \u0064\u006f = 123;
diff --git a/test/language/identifiers/val-do.js b/test/language/identifiers/val-do.js
index 8d920c49e5..5b58a4ebe8 100644
--- a/test/language/identifiers/val-do.js
+++ b/test/language/identifiers/val-do.js
@@ -5,7 +5,9 @@
 es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var do = 123;
diff --git a/test/language/identifiers/val-else-via-escape-hex.js b/test/language/identifiers/val-else-via-escape-hex.js
index 52dcfcebfc..41132c6676 100644
--- a/test/language/identifiers/val-else-via-escape-hex.js
+++ b/test/language/identifiers/val-else-via-escape-hex.js
@@ -6,7 +6,9 @@ es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
     Names in UTF8: else (else)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var \u{65}lse = 123;
diff --git a/test/language/identifiers/val-else-via-escape-hex4.js b/test/language/identifiers/val-else-via-escape-hex4.js
index 497c30c2c0..bf5d1250cb 100644
--- a/test/language/identifiers/val-else-via-escape-hex4.js
+++ b/test/language/identifiers/val-else-via-escape-hex4.js
@@ -6,7 +6,9 @@ es5id: 7.6-9
 description: >
     7.6 - SyntaxError expected: reserved words used as Identifier
     Names in UTF8: else (else) (null)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var \u0065lse = 123;
diff --git a/test/language/identifiers/val-else.js b/test/language/identifiers/val-else.js
index b09b1258f6..7cc8695991 100644
--- a/test/language/identifiers/val-else.js
+++ b/test/language/identifiers/val-else.js
@@ -5,7 +5,9 @@
 es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var else = 123;
diff --git a/test/language/identifiers/val-enum-via-escape-hex.js b/test/language/identifiers/val-enum-via-escape-hex.js
index e7abb7e083..1ba210c39e 100644
--- a/test/language/identifiers/val-enum-via-escape-hex.js
+++ b/test/language/identifiers/val-enum-via-escape-hex.js
@@ -6,7 +6,9 @@ es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
     Names in UTF8: enum
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var \u{65}\u{6e}\u{75}\u{6d} = 123;
diff --git a/test/language/identifiers/val-enum-via-escape-hex4.js b/test/language/identifiers/val-enum-via-escape-hex4.js
index 55184e7534..f27d0029ec 100644
--- a/test/language/identifiers/val-enum-via-escape-hex4.js
+++ b/test/language/identifiers/val-enum-via-escape-hex4.js
@@ -6,7 +6,9 @@ es5id: 7.6-32
 description: >
     7.6 - SyntaxError expected: reserved words used as Identifier
     Names in UTF8: enum (enum)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var \u0065\u006e\u0075\u006d = 123;
diff --git a/test/language/identifiers/val-enum.js b/test/language/identifiers/val-enum.js
index d0c20f47ec..3907af51fe 100644
--- a/test/language/identifiers/val-enum.js
+++ b/test/language/identifiers/val-enum.js
@@ -5,7 +5,9 @@
 es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var enum = 123;
diff --git a/test/language/identifiers/val-export-via-escape-hex.js b/test/language/identifiers/val-export-via-escape-hex.js
index 93eb5e2337..622840b6dd 100644
--- a/test/language/identifiers/val-export-via-escape-hex.js
+++ b/test/language/identifiers/val-export-via-escape-hex.js
@@ -6,7 +6,9 @@ es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
     Names in UTF8: export
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var expor\u{74} = 123;
diff --git a/test/language/identifiers/val-export-via-escape-hex4.js b/test/language/identifiers/val-export-via-escape-hex4.js
index e712aeadca..253e3c77cf 100644
--- a/test/language/identifiers/val-export-via-escape-hex4.js
+++ b/test/language/identifiers/val-export-via-escape-hex4.js
@@ -6,7 +6,9 @@ es5id: 7.6-35
 description: >
     7.6 - SyntaxError expected: reserved words used as Identifier
     Names in UTF8: export (export)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var expor\u0074 = 123;
diff --git a/test/language/identifiers/val-export.js b/test/language/identifiers/val-export.js
index 0607161a24..5dce85307f 100644
--- a/test/language/identifiers/val-export.js
+++ b/test/language/identifiers/val-export.js
@@ -5,7 +5,9 @@
 es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var export = 123;
diff --git a/test/language/identifiers/val-extends-via-escape-hex.js b/test/language/identifiers/val-extends-via-escape-hex.js
index 6ff25420b8..fd67329f83 100644
--- a/test/language/identifiers/val-extends-via-escape-hex.js
+++ b/test/language/identifiers/val-extends-via-escape-hex.js
@@ -6,7 +6,9 @@ es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
     Names in UTF8: extends
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var extend\u{73} = 123;
diff --git a/test/language/identifiers/val-extends-via-escape-hex4.js b/test/language/identifiers/val-extends-via-escape-hex4.js
index af9bd22d21..f6479a6ceb 100644
--- a/test/language/identifiers/val-extends-via-escape-hex4.js
+++ b/test/language/identifiers/val-extends-via-escape-hex4.js
@@ -6,7 +6,9 @@ es5id: 7.6-31
 description: >
     7.6 - SyntaxError expected: reserved words used as Identifier
     Names in UTF8: extends (extends)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var extend\u0073 = 123;
diff --git a/test/language/identifiers/val-extends.js b/test/language/identifiers/val-extends.js
index 92e0a0e9fe..24695e5e01 100644
--- a/test/language/identifiers/val-extends.js
+++ b/test/language/identifiers/val-extends.js
@@ -5,7 +5,9 @@
 es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var extends = 123;
diff --git a/test/language/identifiers/val-false-via-escape-hex.js b/test/language/identifiers/val-false-via-escape-hex.js
index 023b3f4ea9..138c087955 100644
--- a/test/language/identifiers/val-false-via-escape-hex.js
+++ b/test/language/identifiers/val-false-via-escape-hex.js
@@ -6,7 +6,9 @@ es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
     Names in UTF8: false
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var fals\u{65} = 123;
diff --git a/test/language/identifiers/val-false-via-escape-hex4.js b/test/language/identifiers/val-false-via-escape-hex4.js
index ed74335a98..ddb2dacb5a 100644
--- a/test/language/identifiers/val-false-via-escape-hex4.js
+++ b/test/language/identifiers/val-false-via-escape-hex4.js
@@ -6,7 +6,9 @@ es5id: 7.6-3
 description: >
     7.6 - SyntaxError expected: reserved words used as Identifier
     Names in UTF8: false (false)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var fals\u0065 = 123;
diff --git a/test/language/identifiers/val-false.js b/test/language/identifiers/val-false.js
index a7d967813d..d2aaa3eafa 100644
--- a/test/language/identifiers/val-false.js
+++ b/test/language/identifiers/val-false.js
@@ -5,7 +5,9 @@
 es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var false = 123;
diff --git a/test/language/identifiers/val-finally-via-escape-hex.js b/test/language/identifiers/val-finally-via-escape-hex.js
index 4cf0ebc377..c8bcf9b167 100644
--- a/test/language/identifiers/val-finally-via-escape-hex.js
+++ b/test/language/identifiers/val-finally-via-escape-hex.js
@@ -6,7 +6,9 @@ es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
     Names in UTF8: finally
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var fina\u{6c}ly = 123;
diff --git a/test/language/identifiers/val-finally-via-escape-hex4.js b/test/language/identifiers/val-finally-via-escape-hex4.js
index c940c520d6..9bc9814872 100644
--- a/test/language/identifiers/val-finally-via-escape-hex4.js
+++ b/test/language/identifiers/val-finally-via-escape-hex4.js
@@ -6,7 +6,9 @@ es5id: 7.6-14
 description: >
     7.6 - SyntaxError expected: reserved words used as Identifier
     Names in UTF8: finally (finally)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var fina\u006cly = 123;
diff --git a/test/language/identifiers/val-finally.js b/test/language/identifiers/val-finally.js
index 7e3851b837..caadaa11a9 100644
--- a/test/language/identifiers/val-finally.js
+++ b/test/language/identifiers/val-finally.js
@@ -5,7 +5,9 @@
 es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var finally = 123;
diff --git a/test/language/identifiers/val-for-via-escape-hex.js b/test/language/identifiers/val-for-via-escape-hex.js
index 06054e460d..1ef1bf99d6 100644
--- a/test/language/identifiers/val-for-via-escape-hex.js
+++ b/test/language/identifiers/val-for-via-escape-hex.js
@@ -6,7 +6,9 @@ es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
     Names in UTF8: for
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var f\u{6f}r = 123;
diff --git a/test/language/identifiers/val-for-via-escape-hex4.js b/test/language/identifiers/val-for-via-escape-hex4.js
index 005c26eb52..cf79ac8fa4 100644
--- a/test/language/identifiers/val-for-via-escape-hex4.js
+++ b/test/language/identifiers/val-for-via-escape-hex4.js
@@ -6,7 +6,9 @@ es5id: 7.6-18
 description: >
     7.6 - SyntaxError expected: reserved words used as Identifier
     Names in UTF8: for (for)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var f\u006fr = 123;
diff --git a/test/language/identifiers/val-for.js b/test/language/identifiers/val-for.js
index 16a19a1d59..0455e667b6 100644
--- a/test/language/identifiers/val-for.js
+++ b/test/language/identifiers/val-for.js
@@ -5,7 +5,9 @@
 es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var for = 123;
diff --git a/test/language/identifiers/val-function-via-escape-hex.js b/test/language/identifiers/val-function-via-escape-hex.js
index 01bc16a2a9..a3a8d2ab32 100644
--- a/test/language/identifiers/val-function-via-escape-hex.js
+++ b/test/language/identifiers/val-function-via-escape-hex.js
@@ -6,7 +6,9 @@ es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
     Names in UTF8: function
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var func\u{74}ion = 123;
diff --git a/test/language/identifiers/val-function-via-escape-hex4.js b/test/language/identifiers/val-function-via-escape-hex4.js
index 50c50b3d36..44d9028969 100644
--- a/test/language/identifiers/val-function-via-escape-hex4.js
+++ b/test/language/identifiers/val-function-via-escape-hex4.js
@@ -6,7 +6,9 @@ es5id: 7.6-22
 description: >
     7.6 - SyntaxError expected: reserved words used as Identifier
     Names in UTF8: function (function)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var func\u0074ion = 123;
diff --git a/test/language/identifiers/val-function.js b/test/language/identifiers/val-function.js
index dc846ee8b4..563b2d0ba7 100644
--- a/test/language/identifiers/val-function.js
+++ b/test/language/identifiers/val-function.js
@@ -5,7 +5,9 @@
 es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var function = 123;
diff --git a/test/language/identifiers/val-if-via-escape-hex.js b/test/language/identifiers/val-if-via-escape-hex.js
index ae3d116006..65c6658fd9 100644
--- a/test/language/identifiers/val-if-via-escape-hex.js
+++ b/test/language/identifiers/val-if-via-escape-hex.js
@@ -6,7 +6,9 @@ es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
     Names in UTF8: if
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var \u{69}\u{66} = 123;
diff --git a/test/language/identifiers/val-if-via-escape-hex4.js b/test/language/identifiers/val-if-via-escape-hex4.js
index 8fefe16a73..951e1bb2a2 100644
--- a/test/language/identifiers/val-if-via-escape-hex4.js
+++ b/test/language/identifiers/val-if-via-escape-hex4.js
@@ -6,7 +6,9 @@ es5id: 7.6-24
 description: >
     7.6 - SyntaxError expected: reserved words used as Identifier
     Names in UTF8: if (if)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var \u0069\u0066 = 123;
diff --git a/test/language/identifiers/val-if.js b/test/language/identifiers/val-if.js
index 1ad3c2fcce..f63f72bcaf 100644
--- a/test/language/identifiers/val-if.js
+++ b/test/language/identifiers/val-if.js
@@ -5,7 +5,9 @@
 es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var if = 123;
diff --git a/test/language/identifiers/val-import-via-escape-hex.js b/test/language/identifiers/val-import-via-escape-hex.js
index 637b78051d..d977362f9f 100644
--- a/test/language/identifiers/val-import-via-escape-hex.js
+++ b/test/language/identifiers/val-import-via-escape-hex.js
@@ -6,7 +6,9 @@ es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
     Names in UTF8: import
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var \u{69}\u{6d}\u{70}\u{6f}\u{72}\u{74} = 123;
diff --git a/test/language/identifiers/val-import-via-escape-hex4.js b/test/language/identifiers/val-import-via-escape-hex4.js
index dabf8b92dc..eaefad74cf 100644
--- a/test/language/identifiers/val-import-via-escape-hex4.js
+++ b/test/language/identifiers/val-import-via-escape-hex4.js
@@ -6,7 +6,9 @@ es5id: 7.6-36
 description: >
     7.6 - SyntaxError expected: reserved words used as Identifier
     Names in UTF8: import (import)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var \u0069\u006d\u0070\u006f\u0072\u0074 = 123;
diff --git a/test/language/identifiers/val-import.js b/test/language/identifiers/val-import.js
index 6e4884aa6d..8ca17b49d3 100644
--- a/test/language/identifiers/val-import.js
+++ b/test/language/identifiers/val-import.js
@@ -5,7 +5,9 @@
 es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var import = 123;
diff --git a/test/language/identifiers/val-in-via-escape-hex.js b/test/language/identifiers/val-in-via-escape-hex.js
index ac41b788ea..61dac19e33 100644
--- a/test/language/identifiers/val-in-via-escape-hex.js
+++ b/test/language/identifiers/val-in-via-escape-hex.js
@@ -6,7 +6,9 @@ es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
     Names in UTF8: in
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var \u{69}\u{6e} = 123;
diff --git a/test/language/identifiers/val-in-via-escape-hex4.js b/test/language/identifiers/val-in-via-escape-hex4.js
index fcec93268c..79dca2ffde 100644
--- a/test/language/identifiers/val-in-via-escape-hex4.js
+++ b/test/language/identifiers/val-in-via-escape-hex4.js
@@ -6,7 +6,9 @@ es5id: 7.6-28
 description: >
     7.6 - SyntaxError expected: reserved words used as Identifier
     Names in UTF8: in (in)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var \u0069\u006e = 123;
diff --git a/test/language/identifiers/val-in.js b/test/language/identifiers/val-in.js
index 2eb40fa68e..0e23f346f2 100644
--- a/test/language/identifiers/val-in.js
+++ b/test/language/identifiers/val-in.js
@@ -5,7 +5,9 @@
 es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var in = 123;
diff --git a/test/language/identifiers/val-instanceof-via-escape-hex.js b/test/language/identifiers/val-instanceof-via-escape-hex.js
index 9bcacaeff1..f707b91f9e 100644
--- a/test/language/identifiers/val-instanceof-via-escape-hex.js
+++ b/test/language/identifiers/val-instanceof-via-escape-hex.js
@@ -6,7 +6,9 @@ es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
     Names in UTF8: instanceof
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var insta\u{6e}ceof = 123;
diff --git a/test/language/identifiers/val-instanceof-via-escape-hex4.js b/test/language/identifiers/val-instanceof-via-escape-hex4.js
index fb43af7c69..4a16a7d165 100644
--- a/test/language/identifiers/val-instanceof-via-escape-hex4.js
+++ b/test/language/identifiers/val-instanceof-via-escape-hex4.js
@@ -6,7 +6,9 @@ es5id: 7.6-6
 description: >
     7.6 - SyntaxError expected: reserved words used as Identifier
     Names in UTF8: instanceof (instanceof)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var insta\u006eceof = 123;
diff --git a/test/language/identifiers/val-instanceof.js b/test/language/identifiers/val-instanceof.js
index d0f63c7335..767d7ca1f5 100644
--- a/test/language/identifiers/val-instanceof.js
+++ b/test/language/identifiers/val-instanceof.js
@@ -5,7 +5,9 @@
 es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var instanceof = 123;
diff --git a/test/language/identifiers/val-new-via-escape-hex.js b/test/language/identifiers/val-new-via-escape-hex.js
index 1e6993a48c..ceb21b63ac 100644
--- a/test/language/identifiers/val-new-via-escape-hex.js
+++ b/test/language/identifiers/val-new-via-escape-hex.js
@@ -6,7 +6,9 @@ es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
     Names in UTF8: new
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var n\u{65}w = 123;
diff --git a/test/language/identifiers/val-new-via-escape-hex4.js b/test/language/identifiers/val-new-via-escape-hex4.js
index 626ec4c02e..6a64b8e2e2 100644
--- a/test/language/identifiers/val-new-via-escape-hex4.js
+++ b/test/language/identifiers/val-new-via-escape-hex4.js
@@ -6,7 +6,9 @@ es5id: 7.6-10
 description: >
     7.6 - SyntaxError expected: reserved words used as Identifier
     Names in UTF8: new (new)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var n\u0065w = 123;
diff --git a/test/language/identifiers/val-new.js b/test/language/identifiers/val-new.js
index 2afd03c42d..471d897fb4 100644
--- a/test/language/identifiers/val-new.js
+++ b/test/language/identifiers/val-new.js
@@ -5,7 +5,9 @@
 es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var new = 123;
diff --git a/test/language/identifiers/val-null-via-escape-hex.js b/test/language/identifiers/val-null-via-escape-hex.js
index c3d02bc6ad..1df09bee57 100644
--- a/test/language/identifiers/val-null-via-escape-hex.js
+++ b/test/language/identifiers/val-null-via-escape-hex.js
@@ -6,7 +6,9 @@ es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
     Names in UTF8: null
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var \u{6e}ull = 123;
diff --git a/test/language/identifiers/val-null-via-escape-hex4.js b/test/language/identifiers/val-null-via-escape-hex4.js
index c547dac9e7..7083dab43f 100644
--- a/test/language/identifiers/val-null-via-escape-hex4.js
+++ b/test/language/identifiers/val-null-via-escape-hex4.js
@@ -6,7 +6,9 @@ es5id: 7.6-1
 description: >
     7.6 - SyntaxError expected: reserved words used as Identifier
     Names in UTF8: null (null)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var \u006eull = 123;
diff --git a/test/language/identifiers/val-null.js b/test/language/identifiers/val-null.js
index c4ddd797c6..daf8b878a5 100644
--- a/test/language/identifiers/val-null.js
+++ b/test/language/identifiers/val-null.js
@@ -5,7 +5,9 @@
 es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var null = 123;
diff --git a/test/language/identifiers/val-return-via-escape-hex.js b/test/language/identifiers/val-return-via-escape-hex.js
index d7f7817a7f..e8bb6cc6c8 100644
--- a/test/language/identifiers/val-return-via-escape-hex.js
+++ b/test/language/identifiers/val-return-via-escape-hex.js
@@ -6,7 +6,9 @@ es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
     Names in UTF8: return
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var retur\u{6e} = 123;
diff --git a/test/language/identifiers/val-return-via-escape-hex4.js b/test/language/identifiers/val-return-via-escape-hex4.js
index 714f666551..072ea7a73d 100644
--- a/test/language/identifiers/val-return-via-escape-hex4.js
+++ b/test/language/identifiers/val-return-via-escape-hex4.js
@@ -6,7 +6,9 @@ es5id: 7.6-15
 description: >
     7.6 - SyntaxError expected: reserved words used as Identifier
     Names in UTF8: return (return)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var retur\u006e = 123;
diff --git a/test/language/identifiers/val-return.js b/test/language/identifiers/val-return.js
index b8ba3caa65..b57bb8b5fb 100644
--- a/test/language/identifiers/val-return.js
+++ b/test/language/identifiers/val-return.js
@@ -5,7 +5,9 @@
 es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var return = 123;
diff --git a/test/language/identifiers/val-super-via-escape-hex.js b/test/language/identifiers/val-super-via-escape-hex.js
index c22b9dfaab..3cc4edfa0b 100644
--- a/test/language/identifiers/val-super-via-escape-hex.js
+++ b/test/language/identifiers/val-super-via-escape-hex.js
@@ -6,7 +6,9 @@ es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
     Names in UTF8: super
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var \u{73}uper = 123;
diff --git a/test/language/identifiers/val-super-via-escape-hex4.js b/test/language/identifiers/val-super-via-escape-hex4.js
index e9568a7bb1..994ab03c31 100644
--- a/test/language/identifiers/val-super-via-escape-hex4.js
+++ b/test/language/identifiers/val-super-via-escape-hex4.js
@@ -6,7 +6,9 @@ es5id: 7.6-33
 description: >
     7.6 - SyntaxError expected: reserved words used as Identifier
     Names in UTF8: super (super)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var \u0073uper = 123;
diff --git a/test/language/identifiers/val-super.js b/test/language/identifiers/val-super.js
index 009e67f5d6..99ffc47adb 100644
--- a/test/language/identifiers/val-super.js
+++ b/test/language/identifiers/val-super.js
@@ -5,7 +5,9 @@
 es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var super = 123;
diff --git a/test/language/identifiers/val-switch-via-escape-hex.js b/test/language/identifiers/val-switch-via-escape-hex.js
index c864f29866..04cbbd63c9 100644
--- a/test/language/identifiers/val-switch-via-escape-hex.js
+++ b/test/language/identifiers/val-switch-via-escape-hex.js
@@ -6,7 +6,9 @@ es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
     Names in UTF8: switch
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var switc\u{68} = 123;
diff --git a/test/language/identifiers/val-switch-via-escape-hex4.js b/test/language/identifiers/val-switch-via-escape-hex4.js
index bc20a12500..fb40c7c8f7 100644
--- a/test/language/identifiers/val-switch-via-escape-hex4.js
+++ b/test/language/identifiers/val-switch-via-escape-hex4.js
@@ -6,7 +6,9 @@ es5id: 7.6-19
 description: >
     7.6 - SyntaxError expected: reserved words used as Identifier
     Names in UTF8: switch (switch)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var switc\u0068 = 123;
diff --git a/test/language/identifiers/val-switch.js b/test/language/identifiers/val-switch.js
index b505ea1ff8..038df66ff7 100644
--- a/test/language/identifiers/val-switch.js
+++ b/test/language/identifiers/val-switch.js
@@ -5,7 +5,9 @@
 es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var switch = 123;
diff --git a/test/language/identifiers/val-this-via-escape-hex.js b/test/language/identifiers/val-this-via-escape-hex.js
index b1816dc0a4..5bdb3fb90e 100644
--- a/test/language/identifiers/val-this-via-escape-hex.js
+++ b/test/language/identifiers/val-this-via-escape-hex.js
@@ -6,7 +6,9 @@ es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
     Names in UTF8: this
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var thi\u{73} = 123;
diff --git a/test/language/identifiers/val-this-via-escape-hex4.js b/test/language/identifiers/val-this-via-escape-hex4.js
index ffcd5e5928..096712eba6 100644
--- a/test/language/identifiers/val-this-via-escape-hex4.js
+++ b/test/language/identifiers/val-this-via-escape-hex4.js
@@ -6,7 +6,9 @@ es5id: 7.6-23
 description: >
     7.6 - SyntaxError expected: reserved words used as Identifier
     Names in UTF8: this (this)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var thi\u0073 = 123;
diff --git a/test/language/identifiers/val-this.js b/test/language/identifiers/val-this.js
index 71dc283266..e4e556cbcd 100644
--- a/test/language/identifiers/val-this.js
+++ b/test/language/identifiers/val-this.js
@@ -5,7 +5,9 @@
 es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var this = 123;
diff --git a/test/language/identifiers/val-throw-via-escape-hex.js b/test/language/identifiers/val-throw-via-escape-hex.js
index 978c13af78..149477ffca 100644
--- a/test/language/identifiers/val-throw-via-escape-hex.js
+++ b/test/language/identifiers/val-throw-via-escape-hex.js
@@ -6,7 +6,9 @@ es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
     Names in UTF8: throw
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var thro\u{77} = 123;
diff --git a/test/language/identifiers/val-throw-via-escape-hex4.js b/test/language/identifiers/val-throw-via-escape-hex4.js
index dc7c9dc807..5573448205 100644
--- a/test/language/identifiers/val-throw-via-escape-hex4.js
+++ b/test/language/identifiers/val-throw-via-escape-hex4.js
@@ -6,7 +6,9 @@ es5id: 7.6-27
 description: >
     7.6 - SyntaxError expected: reserved words used as Identifier
     Names in UTF8: throw (throw)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var thro\u0077 = 123;
diff --git a/test/language/identifiers/val-throw.js b/test/language/identifiers/val-throw.js
index 3c5758e12c..24e7ebda9e 100644
--- a/test/language/identifiers/val-throw.js
+++ b/test/language/identifiers/val-throw.js
@@ -5,7 +5,9 @@
 es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var throw = 123;
diff --git a/test/language/identifiers/val-true-via-escape-hex.js b/test/language/identifiers/val-true-via-escape-hex.js
index 7aa9228d9f..2bdf5a6e04 100644
--- a/test/language/identifiers/val-true-via-escape-hex.js
+++ b/test/language/identifiers/val-true-via-escape-hex.js
@@ -6,7 +6,9 @@ es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
     Names in UTF8: true
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var tr\u{75}e = 123;
diff --git a/test/language/identifiers/val-true-via-escape-hex4.js b/test/language/identifiers/val-true-via-escape-hex4.js
index 59a541e849..fdf9f9f40f 100644
--- a/test/language/identifiers/val-true-via-escape-hex4.js
+++ b/test/language/identifiers/val-true-via-escape-hex4.js
@@ -6,7 +6,9 @@ es5id: 7.6-2
 description: >
     7.6 - SyntaxError expected: reserved words used as Identifier
     Names in UTF8: true (true)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var tr\u0075e = 123;
diff --git a/test/language/identifiers/val-true.js b/test/language/identifiers/val-true.js
index 2df3fbb7f5..98af63cac1 100644
--- a/test/language/identifiers/val-true.js
+++ b/test/language/identifiers/val-true.js
@@ -5,7 +5,9 @@
 es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var true = 123;
diff --git a/test/language/identifiers/val-try-via-escape-hex.js b/test/language/identifiers/val-try-via-escape-hex.js
index da6c463984..c6eae5b1e1 100644
--- a/test/language/identifiers/val-try-via-escape-hex.js
+++ b/test/language/identifiers/val-try-via-escape-hex.js
@@ -6,7 +6,9 @@ es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
     Names in UTF8: try
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var \u{74}\u{72}\u{79} = 123;
diff --git a/test/language/identifiers/val-try-via-escape-hex4.js b/test/language/identifiers/val-try-via-escape-hex4.js
index 55f73422bb..9db48ea0c4 100644
--- a/test/language/identifiers/val-try-via-escape-hex4.js
+++ b/test/language/identifiers/val-try-via-escape-hex4.js
@@ -6,7 +6,9 @@ es5id: 7.6-12
 description: >
     7.6 - SyntaxError expected: reserved words used as Identifier
     Names in UTF8: try (try)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var \u0074\u0072\u0079 = 123;
diff --git a/test/language/identifiers/val-try.js b/test/language/identifiers/val-try.js
index aa5ff65887..25c1239b4c 100644
--- a/test/language/identifiers/val-try.js
+++ b/test/language/identifiers/val-try.js
@@ -5,7 +5,9 @@
 es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var try = 123;
diff --git a/test/language/identifiers/val-typeof-via-escape-hex.js b/test/language/identifiers/val-typeof-via-escape-hex.js
index 7069490e4f..9a6ae786ec 100644
--- a/test/language/identifiers/val-typeof-via-escape-hex.js
+++ b/test/language/identifiers/val-typeof-via-escape-hex.js
@@ -6,7 +6,9 @@ es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
     Names in UTF8: typeof
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var typeo\u{66} = 123;
diff --git a/test/language/identifiers/val-typeof-via-escape-hex4.js b/test/language/identifiers/val-typeof-via-escape-hex4.js
index 98d4ab0ccc..762afd2f8d 100644
--- a/test/language/identifiers/val-typeof-via-escape-hex4.js
+++ b/test/language/identifiers/val-typeof-via-escape-hex4.js
@@ -6,7 +6,9 @@ es5id: 7.6-7
 description: >
     7.6 - SyntaxError expected: reserved words used as Identifier
     Names in UTF8: typeof (typeof)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var typeo\u0066 = 123;
diff --git a/test/language/identifiers/val-typeof.js b/test/language/identifiers/val-typeof.js
index 02c3a81ff1..713fef7c6e 100644
--- a/test/language/identifiers/val-typeof.js
+++ b/test/language/identifiers/val-typeof.js
@@ -5,7 +5,9 @@
 es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var typeof = 123;
diff --git a/test/language/identifiers/val-var-via-escape-hex.js b/test/language/identifiers/val-var-via-escape-hex.js
index 4e9c22d464..5efde45394 100644
--- a/test/language/identifiers/val-var-via-escape-hex.js
+++ b/test/language/identifiers/val-var-via-escape-hex.js
@@ -6,7 +6,9 @@ es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
     Names in UTF8: var
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var va\u{72} = 123;
diff --git a/test/language/identifiers/val-var-via-escape-hex4.js b/test/language/identifiers/val-var-via-escape-hex4.js
index bdca2d4c8c..b4fada8679 100644
--- a/test/language/identifiers/val-var-via-escape-hex4.js
+++ b/test/language/identifiers/val-var-via-escape-hex4.js
@@ -6,7 +6,9 @@ es5id: 7.6-11
 description: >
     7.6 - SyntaxError expected: reserved words used as Identifier
     Names in UTF8: var (var)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var va\u0072 = 123;
diff --git a/test/language/identifiers/val-var.js b/test/language/identifiers/val-var.js
index 1bed4ca170..d81b4b8c8e 100644
--- a/test/language/identifiers/val-var.js
+++ b/test/language/identifiers/val-var.js
@@ -5,7 +5,9 @@
 es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var var = 123;
diff --git a/test/language/identifiers/val-void-via-escape-hex.js b/test/language/identifiers/val-void-via-escape-hex.js
index 126def5114..ad56d3a3c8 100644
--- a/test/language/identifiers/val-void-via-escape-hex.js
+++ b/test/language/identifiers/val-void-via-escape-hex.js
@@ -6,7 +6,9 @@ es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
     Names in UTF8: void
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var \u{76}\u{6f}\u{69}\u{64} = 123;
diff --git a/test/language/identifiers/val-void-via-escape-hex4.js b/test/language/identifiers/val-void-via-escape-hex4.js
index 7102d8aa61..7daaf94617 100644
--- a/test/language/identifiers/val-void-via-escape-hex4.js
+++ b/test/language/identifiers/val-void-via-escape-hex4.js
@@ -6,7 +6,9 @@ es5id: 7.6-16
 description: >
     7.6 - SyntaxError expected: reserved words used as Identifier
     Names in UTF8: void (void)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var \u0076\u006f\u0069\u0064 = 123;
diff --git a/test/language/identifiers/val-void.js b/test/language/identifiers/val-void.js
index 6260522a3b..62ec52b2b6 100644
--- a/test/language/identifiers/val-void.js
+++ b/test/language/identifiers/val-void.js
@@ -5,7 +5,9 @@
 es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var void = 123;
diff --git a/test/language/identifiers/val-while-via-escape-hex.js b/test/language/identifiers/val-while-via-escape-hex.js
index 86d90e217a..8331b71e5d 100644
--- a/test/language/identifiers/val-while-via-escape-hex.js
+++ b/test/language/identifiers/val-while-via-escape-hex.js
@@ -6,7 +6,9 @@ es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
     Names in UTF8: while
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var \u{77}\u{68}\u{69}\u{6c}\u{65} = 123;
diff --git a/test/language/identifiers/val-while-via-escape-hex4.js b/test/language/identifiers/val-while-via-escape-hex4.js
index a3d4085a83..fcb22db3cf 100644
--- a/test/language/identifiers/val-while-via-escape-hex4.js
+++ b/test/language/identifiers/val-while-via-escape-hex4.js
@@ -6,7 +6,9 @@ es5id: 7.6-20
 description: >
     7.6 - SyntaxError expected: reserved words used as Identifier
     Names in UTF8: while (while)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var \u0077\u0068\u0069\u006c\u0065 = 123;
diff --git a/test/language/identifiers/val-while.js b/test/language/identifiers/val-while.js
index 3a1a0e506a..1e0ec86a96 100644
--- a/test/language/identifiers/val-while.js
+++ b/test/language/identifiers/val-while.js
@@ -5,7 +5,9 @@
 es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var while = 123;
diff --git a/test/language/identifiers/val-with-via-escape-hex.js b/test/language/identifiers/val-with-via-escape-hex.js
index d3b4cdd815..5d0292ac1d 100644
--- a/test/language/identifiers/val-with-via-escape-hex.js
+++ b/test/language/identifiers/val-with-via-escape-hex.js
@@ -6,7 +6,9 @@ es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
     Names in UTF8: with
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var \u{77}ith = 123;
diff --git a/test/language/identifiers/val-with-via-escape-hex4.js b/test/language/identifiers/val-with-via-escape-hex4.js
index 28c866a0e3..a7c91c66ce 100644
--- a/test/language/identifiers/val-with-via-escape-hex4.js
+++ b/test/language/identifiers/val-with-via-escape-hex4.js
@@ -6,7 +6,9 @@ es5id: 7.6-25
 description: >
     7.6 - SyntaxError expected: reserved words used as Identifier
     Names in UTF8: with (with)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var \u0077ith = 123;
diff --git a/test/language/identifiers/val-with.js b/test/language/identifiers/val-with.js
index 43b6970694..2bc89f3e85 100644
--- a/test/language/identifiers/val-with.js
+++ b/test/language/identifiers/val-with.js
@@ -5,7 +5,9 @@
 es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var with = 123;
diff --git a/test/language/identifiers/val-yield-strict.js b/test/language/identifiers/val-yield-strict.js
index deca8d6e6e..f6f3ec7df9 100644
--- a/test/language/identifiers/val-yield-strict.js
+++ b/test/language/identifiers/val-yield-strict.js
@@ -6,7 +6,9 @@ description: >
     `yield` is a reserved identifier in strict mode code and may not be used
     as an identifier.
 es6id: 12.1.1
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [onlyStrict]
  ---*/
 
diff --git a/test/language/import/dup-bound-names.js b/test/language/import/dup-bound-names.js
index 2727eea9c6..34eff72aa0 100644
--- a/test/language/import/dup-bound-names.js
+++ b/test/language/import/dup-bound-names.js
@@ -6,7 +6,9 @@ description: >
     It is a Syntax Error if the BoundNames of ImportDeclaration contains any
     duplicate entries.
 flags: [module]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 import { x, y as x } from 'z';
diff --git a/test/language/keywords/S7.6.1.1_A1.1.js b/test/language/keywords/S7.6.1.1_A1.1.js
index a254c92662..b272cb85dd 100644
--- a/test/language/keywords/S7.6.1.1_A1.1.js
+++ b/test/language/keywords/S7.6.1.1_A1.1.js
@@ -5,7 +5,9 @@
 info: The "break" token can not be used as identifier
 es5id: 7.6.1.1_A1.1
 description: Checking if execution of "break=1" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 break = 1;
diff --git a/test/language/keywords/S7.6.1.1_A1.10.js b/test/language/keywords/S7.6.1.1_A1.10.js
index 053e0faca6..b3d6b9eab5 100644
--- a/test/language/keywords/S7.6.1.1_A1.10.js
+++ b/test/language/keywords/S7.6.1.1_A1.10.js
@@ -5,7 +5,9 @@
 info: The "for" token can not be used as identifier
 es5id: 7.6.1.1_A1.10
 description: Checking if execution of "for=1" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 for = 1;
diff --git a/test/language/keywords/S7.6.1.1_A1.11.js b/test/language/keywords/S7.6.1.1_A1.11.js
index 96652e2b10..6e1479e5f4 100644
--- a/test/language/keywords/S7.6.1.1_A1.11.js
+++ b/test/language/keywords/S7.6.1.1_A1.11.js
@@ -5,7 +5,9 @@
 info: The "function" token can not be used as identifier
 es5id: 7.6.1.1_A1.11
 description: Checking if execution of "function=1" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 function = 1;
diff --git a/test/language/keywords/S7.6.1.1_A1.12.js b/test/language/keywords/S7.6.1.1_A1.12.js
index 603ecbe133..ce3672ffd6 100644
--- a/test/language/keywords/S7.6.1.1_A1.12.js
+++ b/test/language/keywords/S7.6.1.1_A1.12.js
@@ -5,7 +5,9 @@
 info: The "if" token can not be used as identifier
 es5id: 7.6.1.1_A1.12
 description: Checking if execution of "if=1" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 if = 1;
diff --git a/test/language/keywords/S7.6.1.1_A1.13.js b/test/language/keywords/S7.6.1.1_A1.13.js
index d7da9537db..4e9d4f00c9 100644
--- a/test/language/keywords/S7.6.1.1_A1.13.js
+++ b/test/language/keywords/S7.6.1.1_A1.13.js
@@ -5,7 +5,9 @@
 info: The "in" token can not be used as identifier
 es5id: 7.6.1.1_A1.13
 description: Checking if execution of "in=1" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 in = 1;
diff --git a/test/language/keywords/S7.6.1.1_A1.14.js b/test/language/keywords/S7.6.1.1_A1.14.js
index d504419944..9331350253 100644
--- a/test/language/keywords/S7.6.1.1_A1.14.js
+++ b/test/language/keywords/S7.6.1.1_A1.14.js
@@ -5,7 +5,9 @@
 info: The "instanceof" token can not be used as identifier
 es5id: 7.6.1.1_A1.14
 description: Checking if execution of "instanceof=1" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 instanceof = 1;
diff --git a/test/language/keywords/S7.6.1.1_A1.15.js b/test/language/keywords/S7.6.1.1_A1.15.js
index e623b1a0be..6c0865e11d 100644
--- a/test/language/keywords/S7.6.1.1_A1.15.js
+++ b/test/language/keywords/S7.6.1.1_A1.15.js
@@ -5,7 +5,9 @@
 info: The "new" token can not be used as identifier
 es5id: 7.6.1.1_A1.15
 description: Checking if execution of "new=1" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 new = 1;
diff --git a/test/language/keywords/S7.6.1.1_A1.16.js b/test/language/keywords/S7.6.1.1_A1.16.js
index add73e9f27..693b32ec07 100644
--- a/test/language/keywords/S7.6.1.1_A1.16.js
+++ b/test/language/keywords/S7.6.1.1_A1.16.js
@@ -5,7 +5,9 @@
 info: The "return" token can not be used as identifier
 es5id: 7.6.1.1_A1.16
 description: Checking if execution of "return=1" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 return = 1;
diff --git a/test/language/keywords/S7.6.1.1_A1.17.js b/test/language/keywords/S7.6.1.1_A1.17.js
index ae8dbae8e0..d388331d06 100644
--- a/test/language/keywords/S7.6.1.1_A1.17.js
+++ b/test/language/keywords/S7.6.1.1_A1.17.js
@@ -5,7 +5,9 @@
 info: The "switch" token can not be used as identifier
 es5id: 7.6.1.1_A1.17
 description: Checking if execution of "switch=1" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 switch = 1;
diff --git a/test/language/keywords/S7.6.1.1_A1.19.js b/test/language/keywords/S7.6.1.1_A1.19.js
index 16418ccb0f..6f74ed30df 100644
--- a/test/language/keywords/S7.6.1.1_A1.19.js
+++ b/test/language/keywords/S7.6.1.1_A1.19.js
@@ -5,7 +5,9 @@
 info: The "throw" token can not be used as identifier
 es5id: 7.6.1.1_A1.19
 description: Checking if execution of "throw=1" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 throw = 1;
diff --git a/test/language/keywords/S7.6.1.1_A1.2.js b/test/language/keywords/S7.6.1.1_A1.2.js
index a973527c4d..9d1416c61a 100644
--- a/test/language/keywords/S7.6.1.1_A1.2.js
+++ b/test/language/keywords/S7.6.1.1_A1.2.js
@@ -5,7 +5,9 @@
 info: The "case" token can not be used as identifier
 es5id: 7.6.1.1_A1.2
 description: Checking if execution of "case=1" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 case = 1;
diff --git a/test/language/keywords/S7.6.1.1_A1.20.js b/test/language/keywords/S7.6.1.1_A1.20.js
index a72a7ae35a..cde696e305 100644
--- a/test/language/keywords/S7.6.1.1_A1.20.js
+++ b/test/language/keywords/S7.6.1.1_A1.20.js
@@ -5,7 +5,9 @@
 info: The "try" token can not be used as identifier
 es5id: 7.6.1.1_A1.20
 description: Checking if execution of "try=1" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 try = 1;
diff --git a/test/language/keywords/S7.6.1.1_A1.21.js b/test/language/keywords/S7.6.1.1_A1.21.js
index 6a3b03a0b2..e7728c46ca 100644
--- a/test/language/keywords/S7.6.1.1_A1.21.js
+++ b/test/language/keywords/S7.6.1.1_A1.21.js
@@ -5,7 +5,9 @@
 info: The "typeof" token can not be used as identifier
 es5id: 7.6.1.1_A1.21
 description: Checking if execution of "typeof=1" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 typeof = 1;
diff --git a/test/language/keywords/S7.6.1.1_A1.22.js b/test/language/keywords/S7.6.1.1_A1.22.js
index 3192d857ab..91f643325d 100644
--- a/test/language/keywords/S7.6.1.1_A1.22.js
+++ b/test/language/keywords/S7.6.1.1_A1.22.js
@@ -5,7 +5,9 @@
 info: The "var" token can not be used as identifier
 es5id: 7.6.1.1_A1.22
 description: Checking if execution of "var=1" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var = 1;
diff --git a/test/language/keywords/S7.6.1.1_A1.23.js b/test/language/keywords/S7.6.1.1_A1.23.js
index b6cded9f36..c1e3120051 100644
--- a/test/language/keywords/S7.6.1.1_A1.23.js
+++ b/test/language/keywords/S7.6.1.1_A1.23.js
@@ -5,7 +5,9 @@
 info: The "void" token can not be used as identifier
 es5id: 7.6.1.1_A1.23
 description: Checking if execution of "void=1" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 void = 1;
diff --git a/test/language/keywords/S7.6.1.1_A1.24.js b/test/language/keywords/S7.6.1.1_A1.24.js
index 6cbfa08e98..9fb3767f18 100644
--- a/test/language/keywords/S7.6.1.1_A1.24.js
+++ b/test/language/keywords/S7.6.1.1_A1.24.js
@@ -5,7 +5,9 @@
 info: The "while" token can not be used as identifier
 es5id: 7.6.1.1_A1.24
 description: Checking if execution of "while=1" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 while = 1;
diff --git a/test/language/keywords/S7.6.1.1_A1.25.js b/test/language/keywords/S7.6.1.1_A1.25.js
index 693163b6dd..869d56d519 100644
--- a/test/language/keywords/S7.6.1.1_A1.25.js
+++ b/test/language/keywords/S7.6.1.1_A1.25.js
@@ -5,7 +5,9 @@
 info: The "with" token can not be used as identifier
 es5id: 7.6.1.1_A1.25
 description: Checking if execution of "with=1" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 with = 1;
diff --git a/test/language/keywords/S7.6.1.1_A1.3.js b/test/language/keywords/S7.6.1.1_A1.3.js
index e896e65557..38ea1915d7 100644
--- a/test/language/keywords/S7.6.1.1_A1.3.js
+++ b/test/language/keywords/S7.6.1.1_A1.3.js
@@ -5,7 +5,9 @@
 info: The "catch" token can not be used as identifier
 es5id: 7.6.1.1_A1.3
 description: Checking if execution of "catch=1" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 catch = 1;
diff --git a/test/language/keywords/S7.6.1.1_A1.4.js b/test/language/keywords/S7.6.1.1_A1.4.js
index f9215dcdcc..65c97315ce 100644
--- a/test/language/keywords/S7.6.1.1_A1.4.js
+++ b/test/language/keywords/S7.6.1.1_A1.4.js
@@ -5,7 +5,9 @@
 info: The "continue" token can not be used as identifier
 es5id: 7.6.1.1_A1.4
 description: Checking if execution of "contunue=1" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 continue = 1;
diff --git a/test/language/keywords/S7.6.1.1_A1.5.js b/test/language/keywords/S7.6.1.1_A1.5.js
index 35425610c5..1c6f9c5e88 100644
--- a/test/language/keywords/S7.6.1.1_A1.5.js
+++ b/test/language/keywords/S7.6.1.1_A1.5.js
@@ -5,7 +5,9 @@
 info: The "default" token can not be used as identifier
 es5id: 7.6.1.1_A1.5
 description: Checking if execution of "default=1" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 default = 1;
diff --git a/test/language/keywords/S7.6.1.1_A1.6.js b/test/language/keywords/S7.6.1.1_A1.6.js
index e4330159ac..e8eeac7647 100644
--- a/test/language/keywords/S7.6.1.1_A1.6.js
+++ b/test/language/keywords/S7.6.1.1_A1.6.js
@@ -5,7 +5,9 @@
 info: The "delete" token can not be used as identifier
 es5id: 7.6.1.1_A1.6
 description: Checking if execution of "delete=1" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 delete = 1;
diff --git a/test/language/keywords/S7.6.1.1_A1.7.js b/test/language/keywords/S7.6.1.1_A1.7.js
index b9428377a6..310e6476b3 100644
--- a/test/language/keywords/S7.6.1.1_A1.7.js
+++ b/test/language/keywords/S7.6.1.1_A1.7.js
@@ -5,7 +5,9 @@
 info: The "do" token can not be used as identifier
 es5id: 7.6.1.1_A1.7
 description: Checking if execution of "do=1" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 do = 1;
diff --git a/test/language/keywords/S7.6.1.1_A1.8.js b/test/language/keywords/S7.6.1.1_A1.8.js
index bf4409e315..8c5817b86d 100644
--- a/test/language/keywords/S7.6.1.1_A1.8.js
+++ b/test/language/keywords/S7.6.1.1_A1.8.js
@@ -5,7 +5,9 @@
 info: The "else" token can not be used as identifier
 es5id: 7.6.1.1_A1.8
 description: Checking if execution of "else=1" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 else = 1;
diff --git a/test/language/keywords/S7.6.1.1_A1.9.js b/test/language/keywords/S7.6.1.1_A1.9.js
index 50af87b024..e4fe13f21d 100644
--- a/test/language/keywords/S7.6.1.1_A1.9.js
+++ b/test/language/keywords/S7.6.1.1_A1.9.js
@@ -5,7 +5,9 @@
 info: The "finally" token can not be used as identifier
 es5id: 7.6.1.1_A1.9
 description: Checking if execution of "finally=1" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 finally = 1;
diff --git a/test/language/line-terminators/S7.3_A2.1_T2.js b/test/language/line-terminators/S7.3_A2.1_T2.js
index 00c7a1d4b4..8c2689bb3c 100644
--- a/test/language/line-terminators/S7.3_A2.1_T2.js
+++ b/test/language/line-terminators/S7.3_A2.1_T2.js
@@ -5,7 +5,9 @@
 info: LINE FEED (U+000A) within strings is not allowed
 es5id: 7.3_A2.1_T2
 description: Use real LINE FEED into string
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/language/line-terminators/S7.3_A2.2_T2.js b/test/language/line-terminators/S7.3_A2.2_T2.js
index dce4f2a2b9..6d70527026 100644
--- a/test/language/line-terminators/S7.3_A2.2_T2.js
+++ b/test/language/line-terminators/S7.3_A2.2_T2.js
@@ -5,7 +5,9 @@
 info: CARRIAGE RETURN (U+000D) within strings is not allowed
 es5id: 7.3_A2.2_T2
 description: Insert real CARRIAGE RETURN into string
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/language/line-terminators/S7.3_A3.1_T3.js b/test/language/line-terminators/S7.3_A3.1_T3.js
index 68c5a90626..c315d3d427 100644
--- a/test/language/line-terminators/S7.3_A3.1_T3.js
+++ b/test/language/line-terminators/S7.3_A3.1_T3.js
@@ -5,7 +5,9 @@
 info: Single line comments can not contain LINE FEED (U+000A) inside
 es5id: 7.3_A3.1_T3
 description: Insert real LINE FEED into single line comment
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 // CHECK#1
diff --git a/test/language/line-terminators/S7.3_A3.2_T1.js b/test/language/line-terminators/S7.3_A3.2_T1.js
index eb4fbb79e0..ae4fbbf2a6 100644
--- a/test/language/line-terminators/S7.3_A3.2_T1.js
+++ b/test/language/line-terminators/S7.3_A3.2_T1.js
@@ -5,7 +5,9 @@
 info: Single line comments can not contain CARRIAGE RETURN (U+000D) inside
 es5id: 7.3_A3.2_T1
 description: Insert CARRIAGE RETURN (\u000D) into single line comment
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 // single line comment 
 ??? (invalid)
diff --git a/test/language/line-terminators/S7.3_A3.2_T3.js b/test/language/line-terminators/S7.3_A3.2_T3.js
index 02b123410f..04d63d3737 100644
--- a/test/language/line-terminators/S7.3_A3.2_T3.js
+++ b/test/language/line-terminators/S7.3_A3.2_T3.js
@@ -5,7 +5,9 @@
 info: Single line comments can not contain CARRIAGE RETURN (U+000D) inside
 es5id: 7.3_A3.2_T3
 description: Insert real CARRIAGE RETURN into single line comment
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 // CHECK#1
diff --git a/test/language/line-terminators/S7.3_A3.3_T1.js b/test/language/line-terminators/S7.3_A3.3_T1.js
index 6a8bd1b8d8..f895d3289c 100644
--- a/test/language/line-terminators/S7.3_A3.3_T1.js
+++ b/test/language/line-terminators/S7.3_A3.3_T1.js
@@ -7,7 +7,9 @@ info: >
     character
 es5id: 7.3_A3.3_T1
 description: Insert LINE SEPARATOR (\u2028) into single line comment
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 // single line LS>
??? (invalid)
diff --git a/test/language/line-terminators/S7.3_A3.4_T1.js b/test/language/line-terminators/S7.3_A3.4_T1.js
index b1e07af9f2..2ff0ea095c 100644
--- a/test/language/line-terminators/S7.3_A3.4_T1.js
+++ b/test/language/line-terminators/S7.3_A3.4_T1.js
@@ -5,7 +5,9 @@
 info: Single line comments can not contain PARAGRAPH SEPARATOR (U+2029) inside
 es5id: 7.3_A3.4_T1
 description: Insert PARAGRAPH SEPARATOR (\u2029) into single line comment
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 // single line PS>
??? (invalid)
diff --git a/test/language/line-terminators/S7.3_A6_T1.js b/test/language/line-terminators/S7.3_A6_T1.js
index bc16811d39..6cc49d3733 100644
--- a/test/language/line-terminators/S7.3_A6_T1.js
+++ b/test/language/line-terminators/S7.3_A6_T1.js
@@ -7,7 +7,9 @@ info: >
     consisting of six characters, namely \u plus four hexadecimal digits
 es5id: 7.3_A6_T1
 description: Insert LINE FEED (U+000A) in var x
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var\u000Ax;
diff --git a/test/language/line-terminators/S7.3_A6_T2.js b/test/language/line-terminators/S7.3_A6_T2.js
index ed3acaa456..e247745f4b 100644
--- a/test/language/line-terminators/S7.3_A6_T2.js
+++ b/test/language/line-terminators/S7.3_A6_T2.js
@@ -7,7 +7,9 @@ info: >
     consisting of six characters, namely \u plus four hexadecimal digits
 es5id: 7.3_A6_T2
 description: Insert CARRIAGE RETURN (U+000D) in var x
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var\u000Dx;
diff --git a/test/language/line-terminators/S7.3_A6_T3.js b/test/language/line-terminators/S7.3_A6_T3.js
index ea10ae1583..f2c7598158 100644
--- a/test/language/line-terminators/S7.3_A6_T3.js
+++ b/test/language/line-terminators/S7.3_A6_T3.js
@@ -7,7 +7,9 @@ info: >
     consisting of six characters, namely \u plus four hexadecimal digits
 es5id: 7.3_A6_T3
 description: Insert LINE SEPARATOR (U+2028) in var x
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var\u2028x;
diff --git a/test/language/line-terminators/S7.3_A6_T4.js b/test/language/line-terminators/S7.3_A6_T4.js
index daa1ad396b..4c0bc0b99d 100644
--- a/test/language/line-terminators/S7.3_A6_T4.js
+++ b/test/language/line-terminators/S7.3_A6_T4.js
@@ -7,7 +7,9 @@ info: >
     consisting of six characters, namely \u plus four hexadecimal digits
 es5id: 7.3_A6_T4
 description: Insert PARAGRAPH SEPARATOR (U+2029) in var x
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var\u2029x;
diff --git a/test/language/literals/numeric/7.8.3-1gs.js b/test/language/literals/numeric/7.8.3-1gs.js
index b63843295a..05e7ac6f8a 100644
--- a/test/language/literals/numeric/7.8.3-1gs.js
+++ b/test/language/literals/numeric/7.8.3-1gs.js
@@ -4,7 +4,9 @@
 /*---
 es5id: 7.8.3-1gs
 description: Strict Mode - octal extension(010) is forbidden in strict mode
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [onlyStrict]
 ---*/
 
diff --git a/test/language/literals/numeric/7.8.3-2gs.js b/test/language/literals/numeric/7.8.3-2gs.js
index d4c938160f..e2f3ad49e4 100644
--- a/test/language/literals/numeric/7.8.3-2gs.js
+++ b/test/language/literals/numeric/7.8.3-2gs.js
@@ -6,7 +6,9 @@ es5id: 7.8.3-2gs
 description: >
     Strict Mode - octal extension is forbidden in strict mode (after a
     hex number is assigned to a variable)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [onlyStrict]
 ---*/
 
diff --git a/test/language/literals/numeric/S7.8.3_A6.1_T1.js b/test/language/literals/numeric/S7.8.3_A6.1_T1.js
index 23be70d68d..033531cb98 100644
--- a/test/language/literals/numeric/S7.8.3_A6.1_T1.js
+++ b/test/language/literals/numeric/S7.8.3_A6.1_T1.js
@@ -5,7 +5,9 @@
 info: "HexIntegerLiteral :: 0(x/X) is incorrect"
 es5id: 7.8.3_A6.1_T1
 description: Checking if execution of "0x" passes
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/language/literals/numeric/S7.8.3_A6.1_T2.js b/test/language/literals/numeric/S7.8.3_A6.1_T2.js
index ab511578fa..3bfd3a0255 100644
--- a/test/language/literals/numeric/S7.8.3_A6.1_T2.js
+++ b/test/language/literals/numeric/S7.8.3_A6.1_T2.js
@@ -5,7 +5,9 @@
 info: "HexIntegerLiteral :: 0(x/X) is incorrect"
 es5id: 7.8.3_A6.1_T2
 description: Checking if execution of "0X" passes
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/language/literals/numeric/S7.8.3_A6.2_T1.js b/test/language/literals/numeric/S7.8.3_A6.2_T1.js
index bb9870aa2e..50436d13c9 100644
--- a/test/language/literals/numeric/S7.8.3_A6.2_T1.js
+++ b/test/language/literals/numeric/S7.8.3_A6.2_T1.js
@@ -5,7 +5,9 @@
 info: 0xG is incorrect
 es5id: 7.8.3_A6.2_T1
 description: Checking if execution of "0xG" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/language/literals/numeric/S7.8.3_A6.2_T2.js b/test/language/literals/numeric/S7.8.3_A6.2_T2.js
index db0ae747f4..1bebb39c94 100644
--- a/test/language/literals/numeric/S7.8.3_A6.2_T2.js
+++ b/test/language/literals/numeric/S7.8.3_A6.2_T2.js
@@ -5,7 +5,9 @@
 info: 0xG is incorrect
 es5id: 7.8.3_A6.2_T2
 description: Checking if execution of "0xg" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/language/literals/numeric/binary-invalid-digit.js b/test/language/literals/numeric/binary-invalid-digit.js
index 25bdccb9c0..abf985d6ac 100644
--- a/test/language/literals/numeric/binary-invalid-digit.js
+++ b/test/language/literals/numeric/binary-invalid-digit.js
@@ -13,7 +13,9 @@ info: >
       BinaryDigits BinaryDigit
     BinaryDigit :: one of
       0 1
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 0b2;
diff --git a/test/language/literals/numeric/binary-invalid-leading.js b/test/language/literals/numeric/binary-invalid-leading.js
index 5da8ac7c15..8fe6d9168f 100644
--- a/test/language/literals/numeric/binary-invalid-leading.js
+++ b/test/language/literals/numeric/binary-invalid-leading.js
@@ -13,7 +13,9 @@ info: >
       BinaryDigits BinaryDigit
     BinaryDigit :: one of
       0 1
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 00b0;
diff --git a/test/language/literals/numeric/binary-invalid-truncated.js b/test/language/literals/numeric/binary-invalid-truncated.js
index c8e4fbfcb9..f00561453e 100644
--- a/test/language/literals/numeric/binary-invalid-truncated.js
+++ b/test/language/literals/numeric/binary-invalid-truncated.js
@@ -13,7 +13,9 @@ info: >
       BinaryDigits BinaryDigit
     BinaryDigit :: one of
       0 1
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 0b;
diff --git a/test/language/literals/numeric/binary-invalid-unicode.js b/test/language/literals/numeric/binary-invalid-unicode.js
index e43da930f8..eeaf5c8ec0 100644
--- a/test/language/literals/numeric/binary-invalid-unicode.js
+++ b/test/language/literals/numeric/binary-invalid-unicode.js
@@ -13,7 +13,9 @@ info: >
       BinaryDigits BinaryDigit
     BinaryDigit :: one of
       0 1
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 0\u00620;
diff --git a/test/language/literals/numeric/legacy-octal-integer-strict.js b/test/language/literals/numeric/legacy-octal-integer-strict.js
index 9bbcf3b48d..b463a751b5 100644
--- a/test/language/literals/numeric/legacy-octal-integer-strict.js
+++ b/test/language/literals/numeric/legacy-octal-integer-strict.js
@@ -16,7 +16,9 @@ info: >
        0 OctalDigit
        LegacyOctalIntegerLiteral OctalDigit
 flags: [onlyStrict]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 00;
diff --git a/test/language/literals/numeric/non-octal-decimal-integer-strict.js b/test/language/literals/numeric/non-octal-decimal-integer-strict.js
index f20b77aa8e..d5ec7d00ea 100644
--- a/test/language/literals/numeric/non-octal-decimal-integer-strict.js
+++ b/test/language/literals/numeric/non-octal-decimal-integer-strict.js
@@ -22,7 +22,9 @@ info: >
      NonOctalDigit :: one of
        8 9
 flags: [onlyStrict]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 08;
diff --git a/test/language/literals/numeric/octal-invalid-digit.js b/test/language/literals/numeric/octal-invalid-digit.js
index 7823fe6b8c..789365abdf 100644
--- a/test/language/literals/numeric/octal-invalid-digit.js
+++ b/test/language/literals/numeric/octal-invalid-digit.js
@@ -13,7 +13,9 @@ info: >
       OctalDigits OctalDigit
     OctalDigit :: one of
       0 1 2 3 4 5 6 7
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 0o8;
diff --git a/test/language/literals/numeric/octal-invalid-leading.js b/test/language/literals/numeric/octal-invalid-leading.js
index 1319a38471..496856267a 100644
--- a/test/language/literals/numeric/octal-invalid-leading.js
+++ b/test/language/literals/numeric/octal-invalid-leading.js
@@ -13,7 +13,9 @@ info: >
       OctalDigits OctalDigit
     OctalDigit :: one of
       0 1 2 3 4 5 6 7
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 00o0;
diff --git a/test/language/literals/numeric/octal-invalid-truncated.js b/test/language/literals/numeric/octal-invalid-truncated.js
index f17c4860c1..6d36ccc94c 100644
--- a/test/language/literals/numeric/octal-invalid-truncated.js
+++ b/test/language/literals/numeric/octal-invalid-truncated.js
@@ -13,7 +13,9 @@ info: >
       OctalDigits OctalDigit
     OctalDigit :: one of
       0 1 2 3 4 5 6 7
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 0o;
diff --git a/test/language/literals/numeric/octal-invalid-unicode.js b/test/language/literals/numeric/octal-invalid-unicode.js
index 9be0626aba..938d03c4f4 100644
--- a/test/language/literals/numeric/octal-invalid-unicode.js
+++ b/test/language/literals/numeric/octal-invalid-unicode.js
@@ -13,7 +13,9 @@ info: >
       OctalDigits OctalDigit
     OctalDigit :: one of
       0 1 2 3 4 5 6 7
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 0\u006f0;
diff --git a/test/language/literals/regexp/7.8.5-1gs.js b/test/language/literals/regexp/7.8.5-1gs.js
index a525c7f90f..cfb8b07960 100644
--- a/test/language/literals/regexp/7.8.5-1gs.js
+++ b/test/language/literals/regexp/7.8.5-1gs.js
@@ -4,7 +4,9 @@
 /*---
 es5id: 7.8.5-1gs
 description: Empty literal RegExp should result in a SyntaxError
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 throw NotEarlyError;
diff --git a/test/language/literals/regexp/S7.8.5_A1.2_T1.js b/test/language/literals/regexp/S7.8.5_A1.2_T1.js
index 0d75cd4821..d4cec1ce22 100644
--- a/test/language/literals/regexp/S7.8.5_A1.2_T1.js
+++ b/test/language/literals/regexp/S7.8.5_A1.2_T1.js
@@ -5,7 +5,9 @@
 info: "RegularExpressionFirstChar :: * or \\ or / or [empty] is incorrect"
 es5id: 7.8.5_A1.2_T1
 description: "*"
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/language/literals/regexp/S7.8.5_A1.2_T2.js b/test/language/literals/regexp/S7.8.5_A1.2_T2.js
index fec6db97ca..854a86eff3 100644
--- a/test/language/literals/regexp/S7.8.5_A1.2_T2.js
+++ b/test/language/literals/regexp/S7.8.5_A1.2_T2.js
@@ -5,7 +5,9 @@
 info: "RegularExpressionFirstChar :: * or \\ or / or [empty] is incorrect"
 es5id: 7.8.5_A1.2_T2
 description: \
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/language/literals/regexp/S7.8.5_A1.2_T3.js b/test/language/literals/regexp/S7.8.5_A1.2_T3.js
index ea5a41b552..40a3940ef3 100644
--- a/test/language/literals/regexp/S7.8.5_A1.2_T3.js
+++ b/test/language/literals/regexp/S7.8.5_A1.2_T3.js
@@ -5,7 +5,9 @@
 info: "RegularExpressionFirstChar :: * or \\ or / or [empty] is incorrect"
 es5id: 7.8.5_A1.2_T3
 description: /
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/language/literals/regexp/S7.8.5_A1.2_T4.js b/test/language/literals/regexp/S7.8.5_A1.2_T4.js
index 599c6fdc9f..5c1818dccc 100644
--- a/test/language/literals/regexp/S7.8.5_A1.2_T4.js
+++ b/test/language/literals/regexp/S7.8.5_A1.2_T4.js
@@ -5,7 +5,9 @@
 info: "RegularExpressionFirstChar :: * or \\ or / or [empty] is incorrect"
 es5id: 7.8.5_A1.2_T4
 description: "[empty]"
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/language/literals/regexp/S7.8.5_A1.3_T1.js b/test/language/literals/regexp/S7.8.5_A1.3_T1.js
index 7b49ef35a7..31e03c0e0f 100644
--- a/test/language/literals/regexp/S7.8.5_A1.3_T1.js
+++ b/test/language/literals/regexp/S7.8.5_A1.3_T1.js
@@ -5,7 +5,9 @@
 info: "RegularExpressionFirstChar :: LineTerminator is incorrect"
 es5id: 7.8.5_A1.3_T1
 description: Line Feed, without eval
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/language/literals/regexp/S7.8.5_A1.3_T3.js b/test/language/literals/regexp/S7.8.5_A1.3_T3.js
index e7c78e764d..c2ef82357a 100644
--- a/test/language/literals/regexp/S7.8.5_A1.3_T3.js
+++ b/test/language/literals/regexp/S7.8.5_A1.3_T3.js
@@ -5,7 +5,9 @@
 info: "RegularExpressionFirstChar :: LineTerminator is incorrect"
 es5id: 7.8.5_A1.3_T3
 description: Carriage Return, without eval
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/language/literals/regexp/S7.8.5_A1.5_T1.js b/test/language/literals/regexp/S7.8.5_A1.5_T1.js
index b5f81b0736..2e62d51b3d 100644
--- a/test/language/literals/regexp/S7.8.5_A1.5_T1.js
+++ b/test/language/literals/regexp/S7.8.5_A1.5_T1.js
@@ -7,7 +7,9 @@ info: >
     incorrect
 es5id: 7.8.5_A1.5_T1
 description: Line Feed, without eval
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/language/literals/regexp/S7.8.5_A1.5_T3.js b/test/language/literals/regexp/S7.8.5_A1.5_T3.js
index 03a4bf320d..92b1e2d037 100644
--- a/test/language/literals/regexp/S7.8.5_A1.5_T3.js
+++ b/test/language/literals/regexp/S7.8.5_A1.5_T3.js
@@ -7,7 +7,9 @@ info: >
     incorrect
 es5id: 7.8.5_A1.5_T3
 description: Carriage Return, without eval
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/language/literals/regexp/S7.8.5_A2.2_T1.js b/test/language/literals/regexp/S7.8.5_A2.2_T1.js
index 602269b52e..b38c10ccc8 100644
--- a/test/language/literals/regexp/S7.8.5_A2.2_T1.js
+++ b/test/language/literals/regexp/S7.8.5_A2.2_T1.js
@@ -5,7 +5,9 @@
 info: "RegularExpressionChar :: \\ or / is incorrect"
 es5id: 7.8.5_A2.2_T1
 description: \
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/language/literals/regexp/S7.8.5_A2.2_T2.js b/test/language/literals/regexp/S7.8.5_A2.2_T2.js
index e9d02eedc1..a231489510 100644
--- a/test/language/literals/regexp/S7.8.5_A2.2_T2.js
+++ b/test/language/literals/regexp/S7.8.5_A2.2_T2.js
@@ -5,7 +5,9 @@
 info: "RegularExpressionChar :: \\ or / is incorrect"
 es5id: 7.8.5_A2.2_T2
 description: /
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/language/literals/regexp/S7.8.5_A2.3_T1.js b/test/language/literals/regexp/S7.8.5_A2.3_T1.js
index 667e771cec..771cf4fe57 100644
--- a/test/language/literals/regexp/S7.8.5_A2.3_T1.js
+++ b/test/language/literals/regexp/S7.8.5_A2.3_T1.js
@@ -5,7 +5,9 @@
 info: "RegularExpressionChar :: LineTerminator is incorrect"
 es5id: 7.8.5_A2.3_T1
 description: Line Feed, without eval
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/language/literals/regexp/S7.8.5_A2.3_T3.js b/test/language/literals/regexp/S7.8.5_A2.3_T3.js
index 2cc2cda825..aef8993cb9 100644
--- a/test/language/literals/regexp/S7.8.5_A2.3_T3.js
+++ b/test/language/literals/regexp/S7.8.5_A2.3_T3.js
@@ -5,7 +5,9 @@
 info: "RegularExpressionChar :: LineTerminator is incorrect"
 es5id: 7.8.5_A2.3_T3
 description: Carriage Return, without eval
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/language/literals/regexp/S7.8.5_A2.5_T1.js b/test/language/literals/regexp/S7.8.5_A2.5_T1.js
index 44bd5da499..50b89b9c7f 100644
--- a/test/language/literals/regexp/S7.8.5_A2.5_T1.js
+++ b/test/language/literals/regexp/S7.8.5_A2.5_T1.js
@@ -5,7 +5,9 @@
 info: "RegularExpressionChar :: BackslashSequence :: \\LineTerminator is incorrect"
 es5id: 7.8.5_A2.5_T1
 description: Line Feed, without eval
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/language/literals/regexp/S7.8.5_A2.5_T3.js b/test/language/literals/regexp/S7.8.5_A2.5_T3.js
index 64afbad549..c8bc4bfa15 100644
--- a/test/language/literals/regexp/S7.8.5_A2.5_T3.js
+++ b/test/language/literals/regexp/S7.8.5_A2.5_T3.js
@@ -5,7 +5,9 @@
 info: "RegularExpressionChar :: BackslashSequence :: \\LineTerminator is incorrect"
 es5id: 7.8.5_A2.5_T3
 description: Carriage Return, without eval
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/language/literals/regexp/early-err-bad-flag.js b/test/language/literals/regexp/early-err-bad-flag.js
index 72842c41a2..6e2fb67c5c 100644
--- a/test/language/literals/regexp/early-err-bad-flag.js
+++ b/test/language/literals/regexp/early-err-bad-flag.js
@@ -7,7 +7,9 @@ info: >
     It is a Syntax Error if FlagText of RegularExpressionLiteral contains any
     code points other than "g", "i", "m", "u", or "y", or if it contains the
     same code point more than once.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 throw new Test262Error();
diff --git a/test/language/literals/regexp/early-err-dup-flag.js b/test/language/literals/regexp/early-err-dup-flag.js
index 266fff009d..a58c348874 100644
--- a/test/language/literals/regexp/early-err-dup-flag.js
+++ b/test/language/literals/regexp/early-err-dup-flag.js
@@ -7,7 +7,9 @@ info: >
     It is a Syntax Error if FlagText of RegularExpressionLiteral contains any
     code points other than "g", "i", "m", "u", or "y", or if it contains the
     same code point more than once.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 throw new Test262Error();
diff --git a/test/language/literals/regexp/early-err-flags-unicode-escape.js b/test/language/literals/regexp/early-err-flags-unicode-escape.js
index 16a5ec4e65..daccd6df62 100644
--- a/test/language/literals/regexp/early-err-flags-unicode-escape.js
+++ b/test/language/literals/regexp/early-err-flags-unicode-escape.js
@@ -7,7 +7,9 @@ description: >
   RegularExpressionFlags :: RegularExpressionFlags IdentifierPart
 
   - It is a Syntax Error if IdentifierPart contains a Unicode escape sequence.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 /./\u0067;
diff --git a/test/language/literals/regexp/early-err-pattern.js b/test/language/literals/regexp/early-err-pattern.js
index bdea79346a..61b63a1f20 100644
--- a/test/language/literals/regexp/early-err-pattern.js
+++ b/test/language/literals/regexp/early-err-pattern.js
@@ -7,7 +7,9 @@ info: >
     It is a Syntax Error if BodyText of RegularExpressionLiteral cannot be
     recognized using the goal symbol Pattern of the ECMAScript RegExp grammar
     specified in 21.2.1.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 throw new Test262Error();
diff --git a/test/language/literals/regexp/invalid-braced-quantifier-exact.js b/test/language/literals/regexp/invalid-braced-quantifier-exact.js
index 31ade39d4e..1f837e9c3b 100644
--- a/test/language/literals/regexp/invalid-braced-quantifier-exact.js
+++ b/test/language/literals/regexp/invalid-braced-quantifier-exact.js
@@ -15,7 +15,9 @@ info: |
     ExtendedPatternCharacter, it also introduces the InvalidBracedQuantifier
     pattern with a higher precedence. This makes the SyntaxError for such
     patterns consistent between Annex-B and non-Annex-B environments.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 /{2}/;
diff --git a/test/language/literals/regexp/invalid-braced-quantifier-lower.js b/test/language/literals/regexp/invalid-braced-quantifier-lower.js
index 48587fb612..b18f42bc36 100644
--- a/test/language/literals/regexp/invalid-braced-quantifier-lower.js
+++ b/test/language/literals/regexp/invalid-braced-quantifier-lower.js
@@ -15,7 +15,9 @@ info: |
     ExtendedPatternCharacter, it also introduces the InvalidBracedQuantifier
     pattern with a higher precedence. This makes the SyntaxError for such
     patterns consistent between Annex-B and non-Annex-B environments.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 /{2,}/;
diff --git a/test/language/literals/regexp/invalid-braced-quantifier-range.js b/test/language/literals/regexp/invalid-braced-quantifier-range.js
index 56cb830f45..9a95777bc3 100644
--- a/test/language/literals/regexp/invalid-braced-quantifier-range.js
+++ b/test/language/literals/regexp/invalid-braced-quantifier-range.js
@@ -15,7 +15,9 @@ info: |
     ExtendedPatternCharacter, it also introduces the InvalidBracedQuantifier
     pattern with a higher precedence. This makes the SyntaxError for such
     patterns consistent between Annex-B and non-Annex-B environments.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 /{2,3}/;
diff --git a/test/language/literals/regexp/u-dec-esc.js b/test/language/literals/regexp/u-dec-esc.js
index a2f92f579f..b238d86bc6 100644
--- a/test/language/literals/regexp/u-dec-esc.js
+++ b/test/language/literals/regexp/u-dec-esc.js
@@ -7,7 +7,9 @@ info: >
     DecimalEscape is not allowed when the `u` flag is set (regardless of Annex
     B extensions--see ES6 section B.1.4).
 es6id: 21.2.1
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 /\1/u;
diff --git a/test/language/literals/regexp/u-invalid-class-escape.js b/test/language/literals/regexp/u-invalid-class-escape.js
index 702f9ab7b5..1c17f05e6a 100644
--- a/test/language/literals/regexp/u-invalid-class-escape.js
+++ b/test/language/literals/regexp/u-invalid-class-escape.js
@@ -13,7 +13,9 @@ info: |
         CharacterEscape[?U]
 
     The `u` flag precludes the Annex B extension that enables this pattern.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 /\c0/u;
diff --git a/test/language/literals/regexp/u-invalid-extended-pattern-char.js b/test/language/literals/regexp/u-invalid-extended-pattern-char.js
index a4a5a5df3f..a6d91c9d43 100644
--- a/test/language/literals/regexp/u-invalid-extended-pattern-char.js
+++ b/test/language/literals/regexp/u-invalid-extended-pattern-char.js
@@ -10,7 +10,9 @@ info: |
 
     Term[U] ::
          [~U] ExtendedAtom
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 /{/u;
diff --git a/test/language/literals/regexp/u-invalid-identity-escape.js b/test/language/literals/regexp/u-invalid-identity-escape.js
index 4f16bf0f40..b36d6f8a88 100644
--- a/test/language/literals/regexp/u-invalid-identity-escape.js
+++ b/test/language/literals/regexp/u-invalid-identity-escape.js
@@ -12,7 +12,9 @@ info: |
 
     The `u` flag precludes the use of characters in  UnicodeIDContinue
     irrespective of the presence of Annex B extensions.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 /\M/u;
diff --git a/test/language/literals/regexp/u-invalid-legacy-octal-escape.js b/test/language/literals/regexp/u-invalid-legacy-octal-escape.js
index 7c752422ca..204d341353 100644
--- a/test/language/literals/regexp/u-invalid-legacy-octal-escape.js
+++ b/test/language/literals/regexp/u-invalid-legacy-octal-escape.js
@@ -15,7 +15,9 @@ info: |
         HexEscapeSequence
         RegExpUnicodeEscapeSequence[?U]
         IdentityEscape[?U]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 /\1/u;
diff --git a/test/language/literals/regexp/u-invalid-non-empty-class-ranges-no-dash-a.js b/test/language/literals/regexp/u-invalid-non-empty-class-ranges-no-dash-a.js
index 5b8e427b50..a88fe8a8c9 100644
--- a/test/language/literals/regexp/u-invalid-non-empty-class-ranges-no-dash-a.js
+++ b/test/language/literals/regexp/u-invalid-non-empty-class-ranges-no-dash-a.js
@@ -22,7 +22,9 @@ info: |
        exactly one character, throw a SyntaxError exception.
 
     The `u` flag precludes the Annex B extension that enables this pattern.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 /[\d-a]/u;
diff --git a/test/language/literals/regexp/u-invalid-non-empty-class-ranges-no-dash-ab.js b/test/language/literals/regexp/u-invalid-non-empty-class-ranges-no-dash-ab.js
index cd41a927eb..48e7172a4b 100644
--- a/test/language/literals/regexp/u-invalid-non-empty-class-ranges-no-dash-ab.js
+++ b/test/language/literals/regexp/u-invalid-non-empty-class-ranges-no-dash-ab.js
@@ -22,7 +22,9 @@ info: |
        exactly one character, throw a SyntaxError exception.
 
     The `u` flag precludes the Annex B extension that enables this pattern.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 /[\s-\d]/u;
diff --git a/test/language/literals/regexp/u-invalid-non-empty-class-ranges-no-dash-b.js b/test/language/literals/regexp/u-invalid-non-empty-class-ranges-no-dash-b.js
index 54b8ff674e..cb41b9490f 100644
--- a/test/language/literals/regexp/u-invalid-non-empty-class-ranges-no-dash-b.js
+++ b/test/language/literals/regexp/u-invalid-non-empty-class-ranges-no-dash-b.js
@@ -22,7 +22,9 @@ info: |
        exactly one character, throw a SyntaxError exception.
 
     The `u` flag precludes the Annex B extension that enables this pattern.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 /[%-\d]/u;
diff --git a/test/language/literals/regexp/u-invalid-non-empty-class-ranges.js b/test/language/literals/regexp/u-invalid-non-empty-class-ranges.js
index 2187096539..49b6580a51 100644
--- a/test/language/literals/regexp/u-invalid-non-empty-class-ranges.js
+++ b/test/language/literals/regexp/u-invalid-non-empty-class-ranges.js
@@ -21,7 +21,9 @@ info: |
        exactly one character, throw a SyntaxError exception.
 
     The `u` flag precludes the Annex B extension that enables this pattern.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 /[--\d]/u;
diff --git a/test/language/literals/regexp/u-invalid-oob-decimal-escape.js b/test/language/literals/regexp/u-invalid-oob-decimal-escape.js
index bbebbe1070..47c63ab952 100644
--- a/test/language/literals/regexp/u-invalid-oob-decimal-escape.js
+++ b/test/language/literals/regexp/u-invalid-oob-decimal-escape.js
@@ -10,7 +10,9 @@ info: |
 
     When the "unicode" flag is set, this algorithm is honored irrespective of
     the presence of Annex B extensions.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 /\8/u;
diff --git a/test/language/literals/regexp/u-invalid-quantifiable-assertion.js b/test/language/literals/regexp/u-invalid-quantifiable-assertion.js
index a26d51282d..087124e62d 100644
--- a/test/language/literals/regexp/u-invalid-quantifiable-assertion.js
+++ b/test/language/literals/regexp/u-invalid-quantifiable-assertion.js
@@ -10,7 +10,9 @@ info: |
 
     Term[U] ::
          [~U] QuantifiableAssertion Quantifier
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 /.(?=.)?/u;
diff --git a/test/language/literals/regexp/u-unicode-esc-bounds.js b/test/language/literals/regexp/u-unicode-esc-bounds.js
index 58badcde7f..b3140f808f 100644
--- a/test/language/literals/regexp/u-unicode-esc-bounds.js
+++ b/test/language/literals/regexp/u-unicode-esc-bounds.js
@@ -10,7 +10,9 @@ info: >
     RegExpUnicodeEscapeSequence :: u{ HexDigits }
 
         - It is a Syntax Error if the MV of HexDigits > 1114111.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 /\u{110000}/u;
diff --git a/test/language/literals/regexp/u-unicode-esc-non-hex.js b/test/language/literals/regexp/u-unicode-esc-non-hex.js
index 21c23e91d2..c8265206be 100644
--- a/test/language/literals/regexp/u-unicode-esc-non-hex.js
+++ b/test/language/literals/regexp/u-unicode-esc-non-hex.js
@@ -5,7 +5,9 @@
 description: >
     Non-hexadecimal value within the delimiters of a UnicodeEscapeSequence
 es6id: 21.2.1
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 /\u{1,}/u;
diff --git a/test/language/literals/string/7.8.4-1gs.js b/test/language/literals/string/7.8.4-1gs.js
index d78956031e..929907e327 100644
--- a/test/language/literals/string/7.8.4-1gs.js
+++ b/test/language/literals/string/7.8.4-1gs.js
@@ -6,7 +6,9 @@ es5id: 7.8.4-1gs
 description: >
     Strict Mode - OctalEscapeSequence(\0110) is forbidden in strict
     mode
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [onlyStrict]
 ---*/
 
diff --git a/test/language/literals/string/S7.8.4_A1.1_T1.js b/test/language/literals/string/S7.8.4_A1.1_T1.js
index 25e7947d1b..b1da233d7f 100644
--- a/test/language/literals/string/S7.8.4_A1.1_T1.js
+++ b/test/language/literals/string/S7.8.4_A1.1_T1.js
@@ -7,7 +7,9 @@ es5id: 7.8.4_A1.1_T1
 description: >
     DoubleStringCharacter :: SourceCharacter but not double-quote " or
     LineTerminator
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/language/literals/string/S7.8.4_A1.1_T2.js b/test/language/literals/string/S7.8.4_A1.1_T2.js
index bd503769e8..e3516a13f7 100644
--- a/test/language/literals/string/S7.8.4_A1.1_T2.js
+++ b/test/language/literals/string/S7.8.4_A1.1_T2.js
@@ -7,7 +7,9 @@ es5id: 7.8.4_A1.1_T2
 description: >
     DoubleStringCharacter :: SourceCharacter but not double-quote " or
     LineTerminator
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/language/literals/string/S7.8.4_A1.2_T1.js b/test/language/literals/string/S7.8.4_A1.2_T1.js
index 890a6b58e2..1bc242b567 100644
--- a/test/language/literals/string/S7.8.4_A1.2_T1.js
+++ b/test/language/literals/string/S7.8.4_A1.2_T1.js
@@ -7,7 +7,9 @@ es5id: 7.8.4_A1.2_T1
 description: >
     SingleStringCharacter :: SourceCharacter but not single-quote ' or
     LineTerminator
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/language/literals/string/S7.8.4_A1.2_T2.js b/test/language/literals/string/S7.8.4_A1.2_T2.js
index cd300d10f8..5174b7bd7b 100644
--- a/test/language/literals/string/S7.8.4_A1.2_T2.js
+++ b/test/language/literals/string/S7.8.4_A1.2_T2.js
@@ -7,7 +7,9 @@ es5id: 7.8.4_A1.2_T2
 description: >
     SingleStringCharacter :: SourceCharacter but not single-quote ' or
     LineTerminator
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/language/literals/string/S7.8.4_A3.1_T1.js b/test/language/literals/string/S7.8.4_A3.1_T1.js
index d575515300..19b3a6fd6d 100644
--- a/test/language/literals/string/S7.8.4_A3.1_T1.js
+++ b/test/language/literals/string/S7.8.4_A3.1_T1.js
@@ -5,7 +5,9 @@
 info: "StringLiteral :: \"\\\" or '\\' is not correct"
 es5id: 7.8.4_A3.1_T1
 description: Checking if execution of "\" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/language/literals/string/S7.8.4_A3.1_T2.js b/test/language/literals/string/S7.8.4_A3.1_T2.js
index eadb8d72b9..afdbf643c4 100644
--- a/test/language/literals/string/S7.8.4_A3.1_T2.js
+++ b/test/language/literals/string/S7.8.4_A3.1_T2.js
@@ -5,7 +5,9 @@
 info: "StringLiteral :: \"\\\" or '\\' is not correct"
 es5id: 7.8.4_A3.1_T2
 description: Checking if execution of "'\'" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/language/literals/string/S7.8.4_A3.2_T1.js b/test/language/literals/string/S7.8.4_A3.2_T1.js
index 4890f99acc..45e6bd4ef9 100644
--- a/test/language/literals/string/S7.8.4_A3.2_T1.js
+++ b/test/language/literals/string/S7.8.4_A3.2_T1.js
@@ -5,7 +5,9 @@
 info: "StringLiteral :: \"\\\\\\\" or '\\\\\\' is not correct"
 es5id: 7.8.4_A3.2_T1
 description: Checking if execution of "\\\" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/language/literals/string/S7.8.4_A3.2_T2.js b/test/language/literals/string/S7.8.4_A3.2_T2.js
index 2f76790dcd..be3ab6f578 100644
--- a/test/language/literals/string/S7.8.4_A3.2_T2.js
+++ b/test/language/literals/string/S7.8.4_A3.2_T2.js
@@ -5,7 +5,9 @@
 info: "StringLiteral :: \"\\\\\\\" or '\\\\\\' is not correct"
 es5id: 7.8.4_A3.2_T2
 description: Checking if execution of '\\\' fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/language/literals/string/S7.8.4_A4.3_T1.js b/test/language/literals/string/S7.8.4_A4.3_T1.js
index d8ccc3b0da..cb1337c044 100644
--- a/test/language/literals/string/S7.8.4_A4.3_T1.js
+++ b/test/language/literals/string/S7.8.4_A4.3_T1.js
@@ -5,7 +5,9 @@
 info: NonEscapeSequence is not EscapeCharacter
 es5id: 7.8.4_A4.3_T1
 description: "EscapeCharacter :: DecimalDigits :: 1"
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [onlyStrict]
 ---*/
 
diff --git a/test/language/literals/string/S7.8.4_A4.3_T2.js b/test/language/literals/string/S7.8.4_A4.3_T2.js
index daa88f3e7a..70cae82879 100644
--- a/test/language/literals/string/S7.8.4_A4.3_T2.js
+++ b/test/language/literals/string/S7.8.4_A4.3_T2.js
@@ -5,7 +5,9 @@
 info: NonEscapeSequence is not EscapeCharacter
 es5id: 7.8.4_A4.3_T2
 description: "EscapeCharacter :: DecimalDigits :: 7"
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [onlyStrict]
 ---*/
 
diff --git a/test/language/literals/string/S7.8.4_A7.1_T4.js b/test/language/literals/string/S7.8.4_A7.1_T4.js
index dc6d28dd51..390128b43f 100644
--- a/test/language/literals/string/S7.8.4_A7.1_T4.js
+++ b/test/language/literals/string/S7.8.4_A7.1_T4.js
@@ -7,7 +7,9 @@ info: >
     HexDigit
 es5id: 7.8.4_A7.1_T4
 description: "UnicodeEscapeSequence :: u000G is incorrect"
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#
diff --git a/test/language/literals/string/S7.8.4_A7.2_T1.js b/test/language/literals/string/S7.8.4_A7.2_T1.js
index 59ce6a0423..255d3e83c6 100644
--- a/test/language/literals/string/S7.8.4_A7.2_T1.js
+++ b/test/language/literals/string/S7.8.4_A7.2_T1.js
@@ -5,7 +5,9 @@
 info: "UnicodeEscapeSequence :: u HexDigit (one, two or three time) is incorrect"
 es5id: 7.8.4_A7.2_T1
 description: ":: HexDigit :: 1"
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/language/literals/string/S7.8.4_A7.2_T2.js b/test/language/literals/string/S7.8.4_A7.2_T2.js
index df4f0582d1..793819eedc 100644
--- a/test/language/literals/string/S7.8.4_A7.2_T2.js
+++ b/test/language/literals/string/S7.8.4_A7.2_T2.js
@@ -5,7 +5,9 @@
 info: "UnicodeEscapeSequence :: u HexDigit (one, two or three time) is incorrect"
 es5id: 7.8.4_A7.2_T2
 description: ":: HexDigit :: A"
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/language/literals/string/S7.8.4_A7.2_T3.js b/test/language/literals/string/S7.8.4_A7.2_T3.js
index a6ca9c6ec0..2be1ce4ac6 100644
--- a/test/language/literals/string/S7.8.4_A7.2_T3.js
+++ b/test/language/literals/string/S7.8.4_A7.2_T3.js
@@ -5,7 +5,9 @@
 info: "UnicodeEscapeSequence :: u HexDigit (one, two or three time) is incorrect"
 es5id: 7.8.4_A7.2_T3
 description: ":: HexDigit :: 1"
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/language/literals/string/S7.8.4_A7.2_T4.js b/test/language/literals/string/S7.8.4_A7.2_T4.js
index 6a02030dca..3711c0d098 100644
--- a/test/language/literals/string/S7.8.4_A7.2_T4.js
+++ b/test/language/literals/string/S7.8.4_A7.2_T4.js
@@ -5,7 +5,9 @@
 info: "UnicodeEscapeSequence :: u HexDigit (one, two or three time) is incorrect"
 es5id: 7.8.4_A7.2_T4
 description: ":: HexDigit :: A"
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/language/literals/string/S7.8.4_A7.2_T5.js b/test/language/literals/string/S7.8.4_A7.2_T5.js
index 42d0aca8a5..338425c10a 100644
--- a/test/language/literals/string/S7.8.4_A7.2_T5.js
+++ b/test/language/literals/string/S7.8.4_A7.2_T5.js
@@ -5,7 +5,9 @@
 info: "UnicodeEscapeSequence :: u HexDigit (one, two or three time) is incorrect"
 es5id: 7.8.4_A7.2_T5
 description: ":: HexDigit :: 1"
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/language/literals/string/S7.8.4_A7.2_T6.js b/test/language/literals/string/S7.8.4_A7.2_T6.js
index 462748fac7..3abb025a2a 100644
--- a/test/language/literals/string/S7.8.4_A7.2_T6.js
+++ b/test/language/literals/string/S7.8.4_A7.2_T6.js
@@ -5,7 +5,9 @@
 info: "UnicodeEscapeSequence :: u HexDigit (one, two or three time) is incorrect"
 es5id: 7.8.4_A7.2_T6
 description: ":: HexDigit :: A"
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/language/literals/string/legacy-octal-escape-sequence-strict.js b/test/language/literals/string/legacy-octal-escape-sequence-strict.js
index 8486c0e817..c401353dc1 100644
--- a/test/language/literals/string/legacy-octal-escape-sequence-strict.js
+++ b/test/language/literals/string/legacy-octal-escape-sequence-strict.js
@@ -28,7 +28,9 @@ info: >
     This definition of EscapeSequence is not used in strict mode or when
     parsing TemplateCharacter.
 flags: [onlyStrict]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 '\1';
diff --git a/test/language/module-code/comment-multi-line-html-close.js b/test/language/module-code/comment-multi-line-html-close.js
index 22713d2a32..6a4124d3e8 100644
--- a/test/language/module-code/comment-multi-line-html-close.js
+++ b/test/language/module-code/comment-multi-line-html-close.js
@@ -6,7 +6,9 @@ description: >
     (MultiLineHTMLCloseComment)
 esid: sec-html-like-comments
 es6id: B1.3
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/comment-single-line-html-close.js b/test/language/module-code/comment-single-line-html-close.js
index 6e86c6a148..595b9d9c60 100644
--- a/test/language/module-code/comment-single-line-html-close.js
+++ b/test/language/module-code/comment-single-line-html-close.js
@@ -6,7 +6,9 @@ description: >
     (SingleLineHTMLCloseComment)
 esid: sec-html-like-comments
 es6id: B1.3
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/comment-single-line-html-open.js b/test/language/module-code/comment-single-line-html-open.js
index 17f8af2724..3218abfd53 100644
--- a/test/language/module-code/comment-single-line-html-open.js
+++ b/test/language/module-code/comment-single-line-html-open.js
@@ -6,7 +6,9 @@ description: >
     (SingleLineHTMLOpenComment)
 esid: sec-html-like-comments
 es6id: B1.3
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/early-dup-export-decl.js b/test/language/module-code/early-dup-export-decl.js
index 74ff07aff3..c6364991a3 100644
--- a/test/language/module-code/early-dup-export-decl.js
+++ b/test/language/module-code/early-dup-export-decl.js
@@ -6,7 +6,9 @@ description: >
     It is a Syntax Error if the ExportedNames of ModuleItemList contains any
     duplicate entries.
 flags: [module]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 export function f() {}
diff --git a/test/language/module-code/early-dup-export-dflt-id.js b/test/language/module-code/early-dup-export-dflt-id.js
index a82ae96fe3..930d37b730 100644
--- a/test/language/module-code/early-dup-export-dflt-id.js
+++ b/test/language/module-code/early-dup-export-dflt-id.js
@@ -7,7 +7,9 @@ description: >
     It is a Syntax Error if the ExportedNames of ModuleItemList contains any
     duplicate entries.
 flags: [module]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var x, y;
diff --git a/test/language/module-code/early-dup-export-dflt.js b/test/language/module-code/early-dup-export-dflt.js
index 0ddb08bb35..0bc2009f63 100644
--- a/test/language/module-code/early-dup-export-dflt.js
+++ b/test/language/module-code/early-dup-export-dflt.js
@@ -6,7 +6,9 @@ description: >
     It is a Syntax Error if the ExportedNames of ModuleItemList contains any
     duplicate entries.
 flags: [module]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 export default var x = null;
diff --git a/test/language/module-code/early-dup-export-id-as.js b/test/language/module-code/early-dup-export-id-as.js
index 11d1e3e69b..03a27f34fe 100644
--- a/test/language/module-code/early-dup-export-id-as.js
+++ b/test/language/module-code/early-dup-export-id-as.js
@@ -6,7 +6,9 @@ description: >
     It is a Syntax Error if the ExportedNames of ModuleItemList contains any
     duplicate entries.
 flags: [module]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var x, y;
diff --git a/test/language/module-code/early-dup-export-id.js b/test/language/module-code/early-dup-export-id.js
index 249553bb5f..9c155cccf4 100644
--- a/test/language/module-code/early-dup-export-id.js
+++ b/test/language/module-code/early-dup-export-id.js
@@ -6,7 +6,9 @@ description: >
     It is a Syntax Error if the ExportedNames of ModuleItemList contains any
     duplicate entries.
 flags: [module]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var x;
diff --git a/test/language/module-code/early-dup-lables.js b/test/language/module-code/early-dup-lables.js
index 18e3a7b09f..bb15af879a 100644
--- a/test/language/module-code/early-dup-lables.js
+++ b/test/language/module-code/early-dup-lables.js
@@ -6,7 +6,9 @@ description: >
     It is a Syntax Error if ContainsDuplicateLabels of ModuleItemList with
     argument « » is true.
 flags: [module]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 label: {
diff --git a/test/language/module-code/early-dup-lex.js b/test/language/module-code/early-dup-lex.js
index fce2d71b9f..369ed1ec84 100644
--- a/test/language/module-code/early-dup-lex.js
+++ b/test/language/module-code/early-dup-lex.js
@@ -7,7 +7,9 @@ description: >
     contains any duplicate entries.
 flags: [module]
 features: [let, const]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 let x;
diff --git a/test/language/module-code/early-export-global.js b/test/language/module-code/early-export-global.js
index 2e02038bb2..3659544fd6 100644
--- a/test/language/module-code/early-export-global.js
+++ b/test/language/module-code/early-export-global.js
@@ -9,7 +9,9 @@ info: >
     ModuleItemList does not also occur in either the VarDeclaredNames of
     ModuleItemList, or the LexicallyDeclaredNames of ModuleItemList.
 flags: [module]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 export { Number };
diff --git a/test/language/module-code/early-export-unresolvable.js b/test/language/module-code/early-export-unresolvable.js
index 049dce70aa..b0f6a455bb 100644
--- a/test/language/module-code/early-export-unresolvable.js
+++ b/test/language/module-code/early-export-unresolvable.js
@@ -7,7 +7,9 @@ description: >
     ModuleItemList does not also occur in either the VarDeclaredNames of
     ModuleItemList, or the LexicallyDeclaredNames of ModuleItemList.
 flags: [module]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 export { unresolvable };
diff --git a/test/language/module-code/early-import-arguments.js b/test/language/module-code/early-import-arguments.js
index 0885a7ee66..fec3a8d92d 100644
--- a/test/language/module-code/early-import-arguments.js
+++ b/test/language/module-code/early-import-arguments.js
@@ -18,7 +18,9 @@ info: |
     - It is a Syntax Error if the code matched by this production is contained
       in strict mode code and the StringValue of Identifier is "arguments" or
       "eval".
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/early-import-as-arguments.js b/test/language/module-code/early-import-as-arguments.js
index f5250a38ca..cec189e707 100644
--- a/test/language/module-code/early-import-as-arguments.js
+++ b/test/language/module-code/early-import-as-arguments.js
@@ -18,7 +18,9 @@ info: |
     - It is a Syntax Error if the code matched by this production is contained
       in strict mode code and the StringValue of Identifier is "arguments" or
       "eval".
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/early-import-as-eval.js b/test/language/module-code/early-import-as-eval.js
index 2b732cebec..ce4c80885f 100644
--- a/test/language/module-code/early-import-as-eval.js
+++ b/test/language/module-code/early-import-as-eval.js
@@ -18,7 +18,9 @@ info: |
     - It is a Syntax Error if the code matched by this production is contained
       in strict mode code and the StringValue of Identifier is "arguments" or
       "eval".
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/early-import-eval.js b/test/language/module-code/early-import-eval.js
index c8ba3d20f7..7e2bc97888 100644
--- a/test/language/module-code/early-import-eval.js
+++ b/test/language/module-code/early-import-eval.js
@@ -18,7 +18,9 @@ info: |
     - It is a Syntax Error if the code matched by this production is contained
       in strict mode code and the StringValue of Identifier is "arguments" or
       "eval".
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/early-lex-and-var.js b/test/language/module-code/early-lex-and-var.js
index b5b9cae067..9d2f8aa3c9 100644
--- a/test/language/module-code/early-lex-and-var.js
+++ b/test/language/module-code/early-lex-and-var.js
@@ -7,7 +7,9 @@ description: >
     ModuleItemList also occurs in the VarDeclaredNames of ModuleItemList.
 flags: [module]
 features: [let]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 let x;
diff --git a/test/language/module-code/early-new-target.js b/test/language/module-code/early-new-target.js
index 777deec067..2b4cf7e853 100644
--- a/test/language/module-code/early-new-target.js
+++ b/test/language/module-code/early-new-target.js
@@ -5,7 +5,9 @@ es6id: 15.2.1.1
 description: >
     It is a Syntax Error if ModuleItemList Contains NewTarget
 flags: [module]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 new.target;
diff --git a/test/language/module-code/early-strict-mode.js b/test/language/module-code/early-strict-mode.js
index baa5324782..383e32af7e 100644
--- a/test/language/module-code/early-strict-mode.js
+++ b/test/language/module-code/early-strict-mode.js
@@ -5,7 +5,9 @@ description: Module code is always strict mode code.
 es6id: 10.2.1
 esid: sec-strict-mode-code
 flags: [module]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 $ERROR('This statement should not be executed.');
diff --git a/test/language/module-code/early-super.js b/test/language/module-code/early-super.js
index b4acf2e3f6..868708b109 100644
--- a/test/language/module-code/early-super.js
+++ b/test/language/module-code/early-super.js
@@ -5,7 +5,9 @@ es6id: 15.2.1.1
 description: >
     It is a Syntax Error if ModuleItemList Contains super.
 flags: [module]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 super;
diff --git a/test/language/module-code/early-undef-break.js b/test/language/module-code/early-undef-break.js
index 4b99d2fc79..7616744d0b 100644
--- a/test/language/module-code/early-undef-break.js
+++ b/test/language/module-code/early-undef-break.js
@@ -6,7 +6,9 @@ description: >
     It is a Syntax Error if ContainsUndefinedBreakTarget of ModuleItemList with
     argument « » is true.
 flags: [module]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 while (false) {
diff --git a/test/language/module-code/early-undef-continue.js b/test/language/module-code/early-undef-continue.js
index cc9f5070be..f973357bdf 100644
--- a/test/language/module-code/early-undef-continue.js
+++ b/test/language/module-code/early-undef-continue.js
@@ -6,7 +6,9 @@ description: >
     It is a Syntax Error if ContainsUndefinedContinueTarget of ModuleItemList
     with arguments « » and « » is true.
 flags: [module]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 while (false) {
diff --git a/test/language/module-code/instn-iee-err-ambiguous-as.js b/test/language/module-code/instn-iee-err-ambiguous-as.js
index 944e948990..2cb1f99c52 100644
--- a/test/language/module-code/instn-iee-err-ambiguous-as.js
+++ b/test/language/module-code/instn-iee-err-ambiguous-as.js
@@ -30,7 +30,9 @@ info: |
                   not the same Module Record or
                   SameValue(resolution.[[BindingName]],
                   starResolution.[[BindingName]]) is false, return "ambiguous".
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/instn-iee-err-ambiguous.js b/test/language/module-code/instn-iee-err-ambiguous.js
index e3f1275e19..006b8c1cd0 100644
--- a/test/language/module-code/instn-iee-err-ambiguous.js
+++ b/test/language/module-code/instn-iee-err-ambiguous.js
@@ -30,7 +30,9 @@ info: |
                   not the same Module Record or
                   SameValue(resolution.[[BindingName]],
                   starResolution.[[BindingName]]) is false, return "ambiguous".
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/instn-iee-err-circular-as.js b/test/language/module-code/instn-iee-err-circular-as.js
index da272aa2b8..be5e0967c5 100644
--- a/test/language/module-code/instn-iee-err-circular-as.js
+++ b/test/language/module-code/instn-iee-err-circular-as.js
@@ -19,7 +19,9 @@ info: |
           SameValue(exportName, r.[[ExportName]]) is true, then
           i. Assert: this is a circular import request.
           ii. Return null.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/instn-iee-err-circular.js b/test/language/module-code/instn-iee-err-circular.js
index 6255577aa6..c45c71a129 100644
--- a/test/language/module-code/instn-iee-err-circular.js
+++ b/test/language/module-code/instn-iee-err-circular.js
@@ -19,7 +19,9 @@ info: |
           SameValue(exportName, r.[[ExportName]]) is true, then
           i. Assert: this is a circular import request.
           ii. Return null.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/instn-iee-err-dflt-thru-star-as.js b/test/language/module-code/instn-iee-err-dflt-thru-star-as.js
index d7d7d992fc..32c643d216 100644
--- a/test/language/module-code/instn-iee-err-dflt-thru-star-as.js
+++ b/test/language/module-code/instn-iee-err-dflt-thru-star-as.js
@@ -18,7 +18,9 @@ info: |
        a. Assert: A default export was not explicitly defined by this module.
        b. Throw a SyntaxError exception.
        c. NOTE A default export cannot be provided by an export *.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/instn-iee-err-dflt-thru-star.js b/test/language/module-code/instn-iee-err-dflt-thru-star.js
index 6d8093158c..adda2b0224 100644
--- a/test/language/module-code/instn-iee-err-dflt-thru-star.js
+++ b/test/language/module-code/instn-iee-err-dflt-thru-star.js
@@ -18,7 +18,9 @@ info: |
        a. Assert: A default export was not explicitly defined by this module.
        b. Throw a SyntaxError exception.
        c. NOTE A default export cannot be provided by an export *.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/instn-iee-err-not-found-as.js b/test/language/module-code/instn-iee-err-not-found-as.js
index 1befd1bbb9..45340e0932 100644
--- a/test/language/module-code/instn-iee-err-not-found-as.js
+++ b/test/language/module-code/instn-iee-err-not-found-as.js
@@ -18,7 +18,9 @@ info: |
     10. For each ExportEntry Record e in module.[[StarExportEntries]], do
         [...]
     11. Return starResolution.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/instn-iee-err-not-found.js b/test/language/module-code/instn-iee-err-not-found.js
index 349385247f..1c8d138e6c 100644
--- a/test/language/module-code/instn-iee-err-not-found.js
+++ b/test/language/module-code/instn-iee-err-not-found.js
@@ -18,7 +18,9 @@ info: |
     10. For each ExportEntry Record e in module.[[StarExportEntries]], do
         [...]
     11. Return starResolution.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/instn-iee-star-cycle.js b/test/language/module-code/instn-iee-star-cycle.js
index 31c843d6e3..1bd694b60f 100644
--- a/test/language/module-code/instn-iee-star-cycle.js
+++ b/test/language/module-code/instn-iee-star-cycle.js
@@ -18,7 +18,9 @@ info: |
     7. If exportStarSet contains module, return null.
     8. Append module to exportStarSet.
     [...]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/instn-named-err-ambiguous-as.js b/test/language/module-code/instn-named-err-ambiguous-as.js
index cf68ca0c5c..8c6e35ffa1 100644
--- a/test/language/module-code/instn-named-err-ambiguous-as.js
+++ b/test/language/module-code/instn-named-err-ambiguous-as.js
@@ -35,7 +35,9 @@ info: |
                   not the same Module Record or
                   SameValue(resolution.[[BindingName]],
                   starResolution.[[BindingName]]) is false, return "ambiguous".
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/instn-named-err-ambiguous.js b/test/language/module-code/instn-named-err-ambiguous.js
index 8e89f559d5..ea38342cbd 100644
--- a/test/language/module-code/instn-named-err-ambiguous.js
+++ b/test/language/module-code/instn-named-err-ambiguous.js
@@ -35,7 +35,9 @@ info: |
                   not the same Module Record or
                   SameValue(resolution.[[BindingName]],
                   starResolution.[[BindingName]]) is false, return "ambiguous".
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/instn-named-err-dflt-thru-star-as.js b/test/language/module-code/instn-named-err-dflt-thru-star-as.js
index 7f73a48ee0..9750a58199 100644
--- a/test/language/module-code/instn-named-err-dflt-thru-star-as.js
+++ b/test/language/module-code/instn-named-err-dflt-thru-star-as.js
@@ -23,7 +23,9 @@ info: |
        a. Assert: A default export was not explicitly defined by this module.
        b. Throw a SyntaxError exception.
        c. NOTE A default export cannot be provided by an export *.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/instn-named-err-dflt-thru-star-dflt.js b/test/language/module-code/instn-named-err-dflt-thru-star-dflt.js
index e1a8e056c6..35276861a7 100644
--- a/test/language/module-code/instn-named-err-dflt-thru-star-dflt.js
+++ b/test/language/module-code/instn-named-err-dflt-thru-star-dflt.js
@@ -23,7 +23,9 @@ info: |
        a. Assert: A default export was not explicitly defined by this module.
        b. Throw a SyntaxError exception.
        c. NOTE A default export cannot be provided by an export *.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/instn-named-err-not-found-as.js b/test/language/module-code/instn-named-err-not-found-as.js
index 4d5c2f5ee2..29f658e213 100644
--- a/test/language/module-code/instn-named-err-not-found-as.js
+++ b/test/language/module-code/instn-named-err-not-found-as.js
@@ -23,7 +23,9 @@ info: |
     10. For each ExportEntry Record e in module.[[StarExportEntries]], do
         [...]
     11. Return starResolution.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/instn-named-err-not-found-dflt.js b/test/language/module-code/instn-named-err-not-found-dflt.js
index 81528910d9..d3316429a2 100644
--- a/test/language/module-code/instn-named-err-not-found-dflt.js
+++ b/test/language/module-code/instn-named-err-not-found-dflt.js
@@ -23,7 +23,9 @@ info: |
     10. For each ExportEntry Record e in module.[[StarExportEntries]], do
         [...]
     11. Return starResolution.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/instn-named-err-not-found.js b/test/language/module-code/instn-named-err-not-found.js
index 135d8428c3..15f5af7152 100644
--- a/test/language/module-code/instn-named-err-not-found.js
+++ b/test/language/module-code/instn-named-err-not-found.js
@@ -23,7 +23,9 @@ info: |
     10. For each ExportEntry Record e in module.[[StarExportEntries]], do
         [...]
     11. Return starResolution.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/instn-named-star-cycle.js b/test/language/module-code/instn-named-star-cycle.js
index 38749ea9fa..19a7c913a0 100644
--- a/test/language/module-code/instn-named-star-cycle.js
+++ b/test/language/module-code/instn-named-star-cycle.js
@@ -27,7 +27,9 @@ info: |
     7. If exportStarSet contains module, return null.
     8. Append module to exportStarSet.
     [...]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/instn-resolve-err-syntax.js b/test/language/module-code/instn-resolve-err-syntax.js
index 9c389ffcfa..fcedb3942d 100644
--- a/test/language/module-code/instn-resolve-err-syntax.js
+++ b/test/language/module-code/instn-resolve-err-syntax.js
@@ -10,7 +10,9 @@ info: |
        [...]
        b. Let requiredModule be ? HostResolveImportedModule(module, required).
     [...]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/instn-star-err-not-found.js b/test/language/module-code/instn-star-err-not-found.js
index 712172ec0b..10313c971a 100644
--- a/test/language/module-code/instn-star-err-not-found.js
+++ b/test/language/module-code/instn-star-err-not-found.js
@@ -22,7 +22,9 @@ info: |
        c. For each name that is an element of exportedNames,
           i. Let resolution be ? module.ResolveExport(name, « », « »).
           ii. If resolution is null, throw a SyntaxError exception.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/instn-star-star-cycle.js b/test/language/module-code/instn-star-star-cycle.js
index 69547618fe..d40c973ac7 100644
--- a/test/language/module-code/instn-star-star-cycle.js
+++ b/test/language/module-code/instn-star-star-cycle.js
@@ -22,7 +22,9 @@ info: |
     7. If exportStarSet contains module, return null.
     8. Append module to exportStarSet.
     [...]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-export-arrow-function.js b/test/language/module-code/parse-err-decl-pos-export-arrow-function.js
index ddc41e401f..c416f182af 100644
--- a/test/language/module-code/parse-err-decl-pos-export-arrow-function.js
+++ b/test/language/module-code/parse-err-decl-pos-export-arrow-function.js
@@ -3,7 +3,9 @@
 /*---
 description: Expression cannot contain an `export` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-export-block-stmt-list.js b/test/language/module-code/parse-err-decl-pos-export-block-stmt-list.js
index 6af476be1b..644ac851a7 100644
--- a/test/language/module-code/parse-err-decl-pos-export-block-stmt-list.js
+++ b/test/language/module-code/parse-err-decl-pos-export-block-stmt-list.js
@@ -3,7 +3,9 @@
 /*---
 description: Statement cannot contain an `export` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-export-block-stmt.js b/test/language/module-code/parse-err-decl-pos-export-block-stmt.js
index b263b7bcdc..e9210b4997 100644
--- a/test/language/module-code/parse-err-decl-pos-export-block-stmt.js
+++ b/test/language/module-code/parse-err-decl-pos-export-block-stmt.js
@@ -3,7 +3,9 @@
 /*---
 description: Statement cannot contain an `export` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-export-class-decl-meth-static.js b/test/language/module-code/parse-err-decl-pos-export-class-decl-meth-static.js
index b4d16fc137..1b7981b903 100644
--- a/test/language/module-code/parse-err-decl-pos-export-class-decl-meth-static.js
+++ b/test/language/module-code/parse-err-decl-pos-export-class-decl-meth-static.js
@@ -3,7 +3,9 @@
 /*---
 description: Statement cannot contain an `export` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-export-class-decl-meth.js b/test/language/module-code/parse-err-decl-pos-export-class-decl-meth.js
index 40f20daa3f..44850b010e 100644
--- a/test/language/module-code/parse-err-decl-pos-export-class-decl-meth.js
+++ b/test/language/module-code/parse-err-decl-pos-export-class-decl-meth.js
@@ -3,7 +3,9 @@
 /*---
 description: Statement cannot contain an `export` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-export-class-decl-method-gen-static.js b/test/language/module-code/parse-err-decl-pos-export-class-decl-method-gen-static.js
index f72b71335e..fd2886f51c 100644
--- a/test/language/module-code/parse-err-decl-pos-export-class-decl-method-gen-static.js
+++ b/test/language/module-code/parse-err-decl-pos-export-class-decl-method-gen-static.js
@@ -3,7 +3,9 @@
 /*---
 description: Statement cannot contain an `export` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-export-class-decl-method-gen.js b/test/language/module-code/parse-err-decl-pos-export-class-decl-method-gen.js
index 31e9e6a181..a6cc6be07b 100644
--- a/test/language/module-code/parse-err-decl-pos-export-class-decl-method-gen.js
+++ b/test/language/module-code/parse-err-decl-pos-export-class-decl-method-gen.js
@@ -3,7 +3,9 @@
 /*---
 description: Statement cannot contain an `export` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-export-class-expr-meth-gen-static.js b/test/language/module-code/parse-err-decl-pos-export-class-expr-meth-gen-static.js
index d588a06dc1..adf2050cc6 100644
--- a/test/language/module-code/parse-err-decl-pos-export-class-expr-meth-gen-static.js
+++ b/test/language/module-code/parse-err-decl-pos-export-class-expr-meth-gen-static.js
@@ -3,7 +3,9 @@
 /*---
 description: Expression cannot contain an `export` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-export-class-expr-meth-gen.js b/test/language/module-code/parse-err-decl-pos-export-class-expr-meth-gen.js
index d70d683164..2b41991687 100644
--- a/test/language/module-code/parse-err-decl-pos-export-class-expr-meth-gen.js
+++ b/test/language/module-code/parse-err-decl-pos-export-class-expr-meth-gen.js
@@ -3,7 +3,9 @@
 /*---
 description: Expression cannot contain an `export` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-export-class-expr-meth-static.js b/test/language/module-code/parse-err-decl-pos-export-class-expr-meth-static.js
index cbf0c6b6c6..7da2bcfa35 100644
--- a/test/language/module-code/parse-err-decl-pos-export-class-expr-meth-static.js
+++ b/test/language/module-code/parse-err-decl-pos-export-class-expr-meth-static.js
@@ -3,7 +3,9 @@
 /*---
 description: Expression cannot contain an `export` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-export-class-expr-meth.js b/test/language/module-code/parse-err-decl-pos-export-class-expr-meth.js
index 84121167b8..5d569f206b 100644
--- a/test/language/module-code/parse-err-decl-pos-export-class-expr-meth.js
+++ b/test/language/module-code/parse-err-decl-pos-export-class-expr-meth.js
@@ -3,7 +3,9 @@
 /*---
 description: Expression cannot contain an `export` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-export-do-while.js b/test/language/module-code/parse-err-decl-pos-export-do-while.js
index f480d8ff6b..2ed5064de5 100644
--- a/test/language/module-code/parse-err-decl-pos-export-do-while.js
+++ b/test/language/module-code/parse-err-decl-pos-export-do-while.js
@@ -3,7 +3,9 @@
 /*---
 description: Statement cannot contain an `export` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-export-for-const.js b/test/language/module-code/parse-err-decl-pos-export-for-const.js
index 7399befe3c..90019ce3d8 100644
--- a/test/language/module-code/parse-err-decl-pos-export-for-const.js
+++ b/test/language/module-code/parse-err-decl-pos-export-for-const.js
@@ -3,7 +3,9 @@
 /*---
 description: Statement cannot contain an `export` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-export-for-in-const.js b/test/language/module-code/parse-err-decl-pos-export-for-in-const.js
index e75fd81bd9..44adc1b6f8 100644
--- a/test/language/module-code/parse-err-decl-pos-export-for-in-const.js
+++ b/test/language/module-code/parse-err-decl-pos-export-for-in-const.js
@@ -3,7 +3,9 @@
 /*---
 description: Statement cannot contain an `export` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-export-for-in-let.js b/test/language/module-code/parse-err-decl-pos-export-for-in-let.js
index b89a175eb8..eb6866ffd8 100644
--- a/test/language/module-code/parse-err-decl-pos-export-for-in-let.js
+++ b/test/language/module-code/parse-err-decl-pos-export-for-in-let.js
@@ -3,7 +3,9 @@
 /*---
 description: Statement cannot contain an `export` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-export-for-in-lhs.js b/test/language/module-code/parse-err-decl-pos-export-for-in-lhs.js
index 65e73a0c23..b4732dae56 100644
--- a/test/language/module-code/parse-err-decl-pos-export-for-in-lhs.js
+++ b/test/language/module-code/parse-err-decl-pos-export-for-in-lhs.js
@@ -3,7 +3,9 @@
 /*---
 description: Statement cannot contain an `export` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-export-for-in-var.js b/test/language/module-code/parse-err-decl-pos-export-for-in-var.js
index bbf1b26c2f..e9f4520ded 100644
--- a/test/language/module-code/parse-err-decl-pos-export-for-in-var.js
+++ b/test/language/module-code/parse-err-decl-pos-export-for-in-var.js
@@ -3,7 +3,9 @@
 /*---
 description: Statement cannot contain an `export` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-export-for-let.js b/test/language/module-code/parse-err-decl-pos-export-for-let.js
index 5873f7bcd3..735d09846b 100644
--- a/test/language/module-code/parse-err-decl-pos-export-for-let.js
+++ b/test/language/module-code/parse-err-decl-pos-export-for-let.js
@@ -3,7 +3,9 @@
 /*---
 description: Statement cannot contain an `export` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-export-for-lhs.js b/test/language/module-code/parse-err-decl-pos-export-for-lhs.js
index 62f7ce6ed7..392dc2ad7b 100644
--- a/test/language/module-code/parse-err-decl-pos-export-for-lhs.js
+++ b/test/language/module-code/parse-err-decl-pos-export-for-lhs.js
@@ -3,7 +3,9 @@
 /*---
 description: Statement cannot contain an `export` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-export-for-of-const.js b/test/language/module-code/parse-err-decl-pos-export-for-of-const.js
index 70ea0b75e1..1163a69b09 100644
--- a/test/language/module-code/parse-err-decl-pos-export-for-of-const.js
+++ b/test/language/module-code/parse-err-decl-pos-export-for-of-const.js
@@ -3,7 +3,9 @@
 /*---
 description: Statement cannot contain an `export` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-export-for-of-let.js b/test/language/module-code/parse-err-decl-pos-export-for-of-let.js
index 109bd992ba..a20bf165f3 100644
--- a/test/language/module-code/parse-err-decl-pos-export-for-of-let.js
+++ b/test/language/module-code/parse-err-decl-pos-export-for-of-let.js
@@ -3,7 +3,9 @@
 /*---
 description: Statement cannot contain an `export` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-export-for-of-lhs.js b/test/language/module-code/parse-err-decl-pos-export-for-of-lhs.js
index 83f9af25a5..7fb11c41be 100644
--- a/test/language/module-code/parse-err-decl-pos-export-for-of-lhs.js
+++ b/test/language/module-code/parse-err-decl-pos-export-for-of-lhs.js
@@ -3,7 +3,9 @@
 /*---
 description: Statement cannot contain an `export` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-export-for-of-var.js b/test/language/module-code/parse-err-decl-pos-export-for-of-var.js
index 96391d8389..bf435ffc9f 100644
--- a/test/language/module-code/parse-err-decl-pos-export-for-of-var.js
+++ b/test/language/module-code/parse-err-decl-pos-export-for-of-var.js
@@ -3,7 +3,9 @@
 /*---
 description: Statement cannot contain an `export` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-export-for-var.js b/test/language/module-code/parse-err-decl-pos-export-for-var.js
index 040126bcfd..5ebea8093a 100644
--- a/test/language/module-code/parse-err-decl-pos-export-for-var.js
+++ b/test/language/module-code/parse-err-decl-pos-export-for-var.js
@@ -3,7 +3,9 @@
 /*---
 description: Statement cannot contain an `export` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-export-function-decl.js b/test/language/module-code/parse-err-decl-pos-export-function-decl.js
index fe8995b749..38dae22389 100644
--- a/test/language/module-code/parse-err-decl-pos-export-function-decl.js
+++ b/test/language/module-code/parse-err-decl-pos-export-function-decl.js
@@ -3,7 +3,9 @@
 /*---
 description: Statement cannot contain an `export` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-export-function-expr.js b/test/language/module-code/parse-err-decl-pos-export-function-expr.js
index 4024793eea..cff92106eb 100644
--- a/test/language/module-code/parse-err-decl-pos-export-function-expr.js
+++ b/test/language/module-code/parse-err-decl-pos-export-function-expr.js
@@ -3,7 +3,9 @@
 /*---
 description: Expression cannot contain an `export` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-export-generator-decl.js b/test/language/module-code/parse-err-decl-pos-export-generator-decl.js
index 0fdd413db2..a2761fde66 100644
--- a/test/language/module-code/parse-err-decl-pos-export-generator-decl.js
+++ b/test/language/module-code/parse-err-decl-pos-export-generator-decl.js
@@ -3,7 +3,9 @@
 /*---
 description: Statement cannot contain an `export` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-export-generator-expr.js b/test/language/module-code/parse-err-decl-pos-export-generator-expr.js
index a9d1eb3c7a..2a7e53e042 100644
--- a/test/language/module-code/parse-err-decl-pos-export-generator-expr.js
+++ b/test/language/module-code/parse-err-decl-pos-export-generator-expr.js
@@ -3,7 +3,9 @@
 /*---
 description: Expression cannot contain an `export` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-export-if-else.js b/test/language/module-code/parse-err-decl-pos-export-if-else.js
index 8d401b1bc7..516d76d767 100644
--- a/test/language/module-code/parse-err-decl-pos-export-if-else.js
+++ b/test/language/module-code/parse-err-decl-pos-export-if-else.js
@@ -3,7 +3,9 @@
 /*---
 description: Statement cannot contain an `export` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-export-if-if.js b/test/language/module-code/parse-err-decl-pos-export-if-if.js
index 44112ddcbb..012241a201 100644
--- a/test/language/module-code/parse-err-decl-pos-export-if-if.js
+++ b/test/language/module-code/parse-err-decl-pos-export-if-if.js
@@ -3,7 +3,9 @@
 /*---
 description: Statement cannot contain an `export` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-export-labeled.js b/test/language/module-code/parse-err-decl-pos-export-labeled.js
index d9bcae0286..fff280da8a 100644
--- a/test/language/module-code/parse-err-decl-pos-export-labeled.js
+++ b/test/language/module-code/parse-err-decl-pos-export-labeled.js
@@ -3,7 +3,9 @@
 /*---
 description: Statement cannot contain an `export` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-export-object-gen-method.js b/test/language/module-code/parse-err-decl-pos-export-object-gen-method.js
index 1718d525fd..1b56047172 100644
--- a/test/language/module-code/parse-err-decl-pos-export-object-gen-method.js
+++ b/test/language/module-code/parse-err-decl-pos-export-object-gen-method.js
@@ -3,7 +3,9 @@
 /*---
 description: Expression cannot contain an `export` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-export-object-getter.js b/test/language/module-code/parse-err-decl-pos-export-object-getter.js
index 3e75cc5b7e..86f3fb2081 100644
--- a/test/language/module-code/parse-err-decl-pos-export-object-getter.js
+++ b/test/language/module-code/parse-err-decl-pos-export-object-getter.js
@@ -3,7 +3,9 @@
 /*---
 description: Expression cannot contain an `export` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-export-object-method.js b/test/language/module-code/parse-err-decl-pos-export-object-method.js
index a6d1426b3a..c035853d75 100644
--- a/test/language/module-code/parse-err-decl-pos-export-object-method.js
+++ b/test/language/module-code/parse-err-decl-pos-export-object-method.js
@@ -3,7 +3,9 @@
 /*---
 description: Expression cannot contain an `export` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-export-object-setter.js b/test/language/module-code/parse-err-decl-pos-export-object-setter.js
index 2c24a418fa..b156b53a8a 100644
--- a/test/language/module-code/parse-err-decl-pos-export-object-setter.js
+++ b/test/language/module-code/parse-err-decl-pos-export-object-setter.js
@@ -3,7 +3,9 @@
 /*---
 description: Expression cannot contain an `export` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-export-switch-case-dflt.js b/test/language/module-code/parse-err-decl-pos-export-switch-case-dflt.js
index 2cfd81fda0..ba4780c992 100644
--- a/test/language/module-code/parse-err-decl-pos-export-switch-case-dflt.js
+++ b/test/language/module-code/parse-err-decl-pos-export-switch-case-dflt.js
@@ -3,7 +3,9 @@
 /*---
 description: Statement cannot contain an `export` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-export-switch-case.js b/test/language/module-code/parse-err-decl-pos-export-switch-case.js
index 9df8088f1b..4ffefa1f18 100644
--- a/test/language/module-code/parse-err-decl-pos-export-switch-case.js
+++ b/test/language/module-code/parse-err-decl-pos-export-switch-case.js
@@ -3,7 +3,9 @@
 /*---
 description: Statement cannot contain an `export` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-export-switch-dftl.js b/test/language/module-code/parse-err-decl-pos-export-switch-dftl.js
index 78e98b0355..193acb42e2 100644
--- a/test/language/module-code/parse-err-decl-pos-export-switch-dftl.js
+++ b/test/language/module-code/parse-err-decl-pos-export-switch-dftl.js
@@ -3,7 +3,9 @@
 /*---
 description: Statement cannot contain an `export` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-export-try-catch-finally.js b/test/language/module-code/parse-err-decl-pos-export-try-catch-finally.js
index 929f12b5cb..be7fa77428 100644
--- a/test/language/module-code/parse-err-decl-pos-export-try-catch-finally.js
+++ b/test/language/module-code/parse-err-decl-pos-export-try-catch-finally.js
@@ -3,7 +3,9 @@
 /*---
 description: Statement cannot contain an `export` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-export-try-catch.js b/test/language/module-code/parse-err-decl-pos-export-try-catch.js
index 2376cfe349..cd7badb6ef 100644
--- a/test/language/module-code/parse-err-decl-pos-export-try-catch.js
+++ b/test/language/module-code/parse-err-decl-pos-export-try-catch.js
@@ -3,7 +3,9 @@
 /*---
 description: Statement cannot contain an `export` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-export-try-finally.js b/test/language/module-code/parse-err-decl-pos-export-try-finally.js
index 529f15f58f..1f73825de2 100644
--- a/test/language/module-code/parse-err-decl-pos-export-try-finally.js
+++ b/test/language/module-code/parse-err-decl-pos-export-try-finally.js
@@ -3,7 +3,9 @@
 /*---
 description: Statement cannot contain an `export` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-export-try-try.js b/test/language/module-code/parse-err-decl-pos-export-try-try.js
index 202e079469..c641f41433 100644
--- a/test/language/module-code/parse-err-decl-pos-export-try-try.js
+++ b/test/language/module-code/parse-err-decl-pos-export-try-try.js
@@ -3,7 +3,9 @@
 /*---
 description: Statement cannot contain an `export` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-export-while.js b/test/language/module-code/parse-err-decl-pos-export-while.js
index c828f9b284..b2115e5eed 100644
--- a/test/language/module-code/parse-err-decl-pos-export-while.js
+++ b/test/language/module-code/parse-err-decl-pos-export-while.js
@@ -3,7 +3,9 @@
 /*---
 description: Statement cannot contain an `export` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-import-arrow-function.js b/test/language/module-code/parse-err-decl-pos-import-arrow-function.js
index 9bd081d19b..958525b234 100644
--- a/test/language/module-code/parse-err-decl-pos-import-arrow-function.js
+++ b/test/language/module-code/parse-err-decl-pos-import-arrow-function.js
@@ -3,7 +3,9 @@
 /*---
 description: Expression cannot contain an `import` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-import-block-stmt-list.js b/test/language/module-code/parse-err-decl-pos-import-block-stmt-list.js
index 72452f50e2..3b94c0f2a0 100644
--- a/test/language/module-code/parse-err-decl-pos-import-block-stmt-list.js
+++ b/test/language/module-code/parse-err-decl-pos-import-block-stmt-list.js
@@ -3,7 +3,9 @@
 /*---
 description: Statement cannot contain an `import` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-import-block-stmt.js b/test/language/module-code/parse-err-decl-pos-import-block-stmt.js
index d0d7fb5613..91688ce9df 100644
--- a/test/language/module-code/parse-err-decl-pos-import-block-stmt.js
+++ b/test/language/module-code/parse-err-decl-pos-import-block-stmt.js
@@ -3,7 +3,9 @@
 /*---
 description: Statement cannot contain an `import` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-import-class-decl-meth-static.js b/test/language/module-code/parse-err-decl-pos-import-class-decl-meth-static.js
index 32baf075b2..f968a76c45 100644
--- a/test/language/module-code/parse-err-decl-pos-import-class-decl-meth-static.js
+++ b/test/language/module-code/parse-err-decl-pos-import-class-decl-meth-static.js
@@ -3,7 +3,9 @@
 /*---
 description: Statement cannot contain an `import` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-import-class-decl-meth.js b/test/language/module-code/parse-err-decl-pos-import-class-decl-meth.js
index 6feebfd387..3852acdbd9 100644
--- a/test/language/module-code/parse-err-decl-pos-import-class-decl-meth.js
+++ b/test/language/module-code/parse-err-decl-pos-import-class-decl-meth.js
@@ -3,7 +3,9 @@
 /*---
 description: Statement cannot contain an `import` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-import-class-decl-method-gen-static.js b/test/language/module-code/parse-err-decl-pos-import-class-decl-method-gen-static.js
index 9989c819cf..3f62c62f3d 100644
--- a/test/language/module-code/parse-err-decl-pos-import-class-decl-method-gen-static.js
+++ b/test/language/module-code/parse-err-decl-pos-import-class-decl-method-gen-static.js
@@ -3,7 +3,9 @@
 /*---
 description: Statement cannot contain an `import` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-import-class-decl-method-gen.js b/test/language/module-code/parse-err-decl-pos-import-class-decl-method-gen.js
index 3b36537511..dd8d56a4cc 100644
--- a/test/language/module-code/parse-err-decl-pos-import-class-decl-method-gen.js
+++ b/test/language/module-code/parse-err-decl-pos-import-class-decl-method-gen.js
@@ -3,7 +3,9 @@
 /*---
 description: Statement cannot contain an `import` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-import-class-expr-meth-gen-static.js b/test/language/module-code/parse-err-decl-pos-import-class-expr-meth-gen-static.js
index b795945208..e25f32f30d 100644
--- a/test/language/module-code/parse-err-decl-pos-import-class-expr-meth-gen-static.js
+++ b/test/language/module-code/parse-err-decl-pos-import-class-expr-meth-gen-static.js
@@ -3,7 +3,9 @@
 /*---
 description: Expression cannot contain an `import` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-import-class-expr-meth-gen.js b/test/language/module-code/parse-err-decl-pos-import-class-expr-meth-gen.js
index bc6a6954b3..8a145d7d0c 100644
--- a/test/language/module-code/parse-err-decl-pos-import-class-expr-meth-gen.js
+++ b/test/language/module-code/parse-err-decl-pos-import-class-expr-meth-gen.js
@@ -3,7 +3,9 @@
 /*---
 description: Expression cannot contain an `import` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-import-class-expr-meth-static.js b/test/language/module-code/parse-err-decl-pos-import-class-expr-meth-static.js
index f43d5db5ac..3ac43fd1b3 100644
--- a/test/language/module-code/parse-err-decl-pos-import-class-expr-meth-static.js
+++ b/test/language/module-code/parse-err-decl-pos-import-class-expr-meth-static.js
@@ -3,7 +3,9 @@
 /*---
 description: Expression cannot contain an `import` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-import-class-expr-meth.js b/test/language/module-code/parse-err-decl-pos-import-class-expr-meth.js
index 845ab4ee74..93a02d6470 100644
--- a/test/language/module-code/parse-err-decl-pos-import-class-expr-meth.js
+++ b/test/language/module-code/parse-err-decl-pos-import-class-expr-meth.js
@@ -3,7 +3,9 @@
 /*---
 description: Expression cannot contain an `import` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-import-do-while.js b/test/language/module-code/parse-err-decl-pos-import-do-while.js
index 06200b07af..968b579447 100644
--- a/test/language/module-code/parse-err-decl-pos-import-do-while.js
+++ b/test/language/module-code/parse-err-decl-pos-import-do-while.js
@@ -3,7 +3,9 @@
 /*---
 description: Statement cannot contain an `import` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-import-for-const.js b/test/language/module-code/parse-err-decl-pos-import-for-const.js
index 4911d41841..7df32518b8 100644
--- a/test/language/module-code/parse-err-decl-pos-import-for-const.js
+++ b/test/language/module-code/parse-err-decl-pos-import-for-const.js
@@ -3,7 +3,9 @@
 /*---
 description: Statement cannot contain an `import` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-import-for-in-const.js b/test/language/module-code/parse-err-decl-pos-import-for-in-const.js
index ad42e3ac9f..30abe3217d 100644
--- a/test/language/module-code/parse-err-decl-pos-import-for-in-const.js
+++ b/test/language/module-code/parse-err-decl-pos-import-for-in-const.js
@@ -3,7 +3,9 @@
 /*---
 description: Statement cannot contain an `import` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-import-for-in-let.js b/test/language/module-code/parse-err-decl-pos-import-for-in-let.js
index 01080d3022..7961f5a860 100644
--- a/test/language/module-code/parse-err-decl-pos-import-for-in-let.js
+++ b/test/language/module-code/parse-err-decl-pos-import-for-in-let.js
@@ -3,7 +3,9 @@
 /*---
 description: Statement cannot contain an `import` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-import-for-in-lhs.js b/test/language/module-code/parse-err-decl-pos-import-for-in-lhs.js
index 24d6159c17..52b433c5e3 100644
--- a/test/language/module-code/parse-err-decl-pos-import-for-in-lhs.js
+++ b/test/language/module-code/parse-err-decl-pos-import-for-in-lhs.js
@@ -3,7 +3,9 @@
 /*---
 description: Statement cannot contain an `import` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-import-for-in-var.js b/test/language/module-code/parse-err-decl-pos-import-for-in-var.js
index ea0f9ebe49..79af4f41a4 100644
--- a/test/language/module-code/parse-err-decl-pos-import-for-in-var.js
+++ b/test/language/module-code/parse-err-decl-pos-import-for-in-var.js
@@ -3,7 +3,9 @@
 /*---
 description: Statement cannot contain an `import` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-import-for-let.js b/test/language/module-code/parse-err-decl-pos-import-for-let.js
index 1fee0012e7..369b1f2012 100644
--- a/test/language/module-code/parse-err-decl-pos-import-for-let.js
+++ b/test/language/module-code/parse-err-decl-pos-import-for-let.js
@@ -3,7 +3,9 @@
 /*---
 description: Statement cannot contain an `import` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-import-for-lhs.js b/test/language/module-code/parse-err-decl-pos-import-for-lhs.js
index 9d74073960..f368c493b5 100644
--- a/test/language/module-code/parse-err-decl-pos-import-for-lhs.js
+++ b/test/language/module-code/parse-err-decl-pos-import-for-lhs.js
@@ -3,7 +3,9 @@
 /*---
 description: Statement cannot contain an `import` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-import-for-of-const.js b/test/language/module-code/parse-err-decl-pos-import-for-of-const.js
index 7fabfe2ff0..5e93d21ab9 100644
--- a/test/language/module-code/parse-err-decl-pos-import-for-of-const.js
+++ b/test/language/module-code/parse-err-decl-pos-import-for-of-const.js
@@ -3,7 +3,9 @@
 /*---
 description: Statement cannot contain an `import` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-import-for-of-let.js b/test/language/module-code/parse-err-decl-pos-import-for-of-let.js
index b42b677e0d..0a7d642100 100644
--- a/test/language/module-code/parse-err-decl-pos-import-for-of-let.js
+++ b/test/language/module-code/parse-err-decl-pos-import-for-of-let.js
@@ -3,7 +3,9 @@
 /*---
 description: Statement cannot contain an `import` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-import-for-of-lhs.js b/test/language/module-code/parse-err-decl-pos-import-for-of-lhs.js
index 6bdad656f1..dc06d5279c 100644
--- a/test/language/module-code/parse-err-decl-pos-import-for-of-lhs.js
+++ b/test/language/module-code/parse-err-decl-pos-import-for-of-lhs.js
@@ -3,7 +3,9 @@
 /*---
 description: Statement cannot contain an `import` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-import-for-of-var.js b/test/language/module-code/parse-err-decl-pos-import-for-of-var.js
index 00d31771cc..dd95d3d970 100644
--- a/test/language/module-code/parse-err-decl-pos-import-for-of-var.js
+++ b/test/language/module-code/parse-err-decl-pos-import-for-of-var.js
@@ -3,7 +3,9 @@
 /*---
 description: Statement cannot contain an `import` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-import-for-var.js b/test/language/module-code/parse-err-decl-pos-import-for-var.js
index 51bbc3954d..74ba81ae6e 100644
--- a/test/language/module-code/parse-err-decl-pos-import-for-var.js
+++ b/test/language/module-code/parse-err-decl-pos-import-for-var.js
@@ -3,7 +3,9 @@
 /*---
 description: Statement cannot contain an `import` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-import-function-decl.js b/test/language/module-code/parse-err-decl-pos-import-function-decl.js
index ae20168b6b..b03ffec870 100644
--- a/test/language/module-code/parse-err-decl-pos-import-function-decl.js
+++ b/test/language/module-code/parse-err-decl-pos-import-function-decl.js
@@ -3,7 +3,9 @@
 /*---
 description: Statement cannot contain an `import` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-import-function-expr.js b/test/language/module-code/parse-err-decl-pos-import-function-expr.js
index 371c726c88..d52ac19733 100644
--- a/test/language/module-code/parse-err-decl-pos-import-function-expr.js
+++ b/test/language/module-code/parse-err-decl-pos-import-function-expr.js
@@ -3,7 +3,9 @@
 /*---
 description: Expression cannot contain an `import` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-import-generator-decl.js b/test/language/module-code/parse-err-decl-pos-import-generator-decl.js
index b41a01ecb6..a29796607a 100644
--- a/test/language/module-code/parse-err-decl-pos-import-generator-decl.js
+++ b/test/language/module-code/parse-err-decl-pos-import-generator-decl.js
@@ -3,7 +3,9 @@
 /*---
 description: Statement cannot contain an `import` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-import-generator-expr.js b/test/language/module-code/parse-err-decl-pos-import-generator-expr.js
index 52044a39bd..ca3e9a3b73 100644
--- a/test/language/module-code/parse-err-decl-pos-import-generator-expr.js
+++ b/test/language/module-code/parse-err-decl-pos-import-generator-expr.js
@@ -3,7 +3,9 @@
 /*---
 description: Expression cannot contain an `import` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-import-if-else.js b/test/language/module-code/parse-err-decl-pos-import-if-else.js
index ce5b02398d..6023e015d1 100644
--- a/test/language/module-code/parse-err-decl-pos-import-if-else.js
+++ b/test/language/module-code/parse-err-decl-pos-import-if-else.js
@@ -3,7 +3,9 @@
 /*---
 description: Statement cannot contain an `import` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-import-if-if.js b/test/language/module-code/parse-err-decl-pos-import-if-if.js
index 7975a9b253..ca57171d76 100644
--- a/test/language/module-code/parse-err-decl-pos-import-if-if.js
+++ b/test/language/module-code/parse-err-decl-pos-import-if-if.js
@@ -3,7 +3,9 @@
 /*---
 description: Statement cannot contain an `import` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-import-labeled.js b/test/language/module-code/parse-err-decl-pos-import-labeled.js
index 8ed78ae2d7..a4d963396b 100644
--- a/test/language/module-code/parse-err-decl-pos-import-labeled.js
+++ b/test/language/module-code/parse-err-decl-pos-import-labeled.js
@@ -3,7 +3,9 @@
 /*---
 description: Statement cannot contain an `import` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-import-object-gen-method.js b/test/language/module-code/parse-err-decl-pos-import-object-gen-method.js
index fe6e583401..a316e5a36d 100644
--- a/test/language/module-code/parse-err-decl-pos-import-object-gen-method.js
+++ b/test/language/module-code/parse-err-decl-pos-import-object-gen-method.js
@@ -3,7 +3,9 @@
 /*---
 description: Expression cannot contain an `import` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-import-object-getter.js b/test/language/module-code/parse-err-decl-pos-import-object-getter.js
index 74aca8c393..6cd9488662 100644
--- a/test/language/module-code/parse-err-decl-pos-import-object-getter.js
+++ b/test/language/module-code/parse-err-decl-pos-import-object-getter.js
@@ -3,7 +3,9 @@
 /*---
 description: Expression cannot contain an `import` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-import-object-method.js b/test/language/module-code/parse-err-decl-pos-import-object-method.js
index fdf7cccfe8..7632d1fab4 100644
--- a/test/language/module-code/parse-err-decl-pos-import-object-method.js
+++ b/test/language/module-code/parse-err-decl-pos-import-object-method.js
@@ -3,7 +3,9 @@
 /*---
 description: Expression cannot contain an `import` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-import-object-setter.js b/test/language/module-code/parse-err-decl-pos-import-object-setter.js
index a3dd23a29c..bc316b3d9a 100644
--- a/test/language/module-code/parse-err-decl-pos-import-object-setter.js
+++ b/test/language/module-code/parse-err-decl-pos-import-object-setter.js
@@ -3,7 +3,9 @@
 /*---
 description: Expression cannot contain an `import` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-import-switch-case-dflt.js b/test/language/module-code/parse-err-decl-pos-import-switch-case-dflt.js
index 1a56b8e84f..6081a05a9a 100644
--- a/test/language/module-code/parse-err-decl-pos-import-switch-case-dflt.js
+++ b/test/language/module-code/parse-err-decl-pos-import-switch-case-dflt.js
@@ -3,7 +3,9 @@
 /*---
 description: Statement cannot contain an `import` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-import-switch-case.js b/test/language/module-code/parse-err-decl-pos-import-switch-case.js
index e8efe29ef7..c8f22347dd 100644
--- a/test/language/module-code/parse-err-decl-pos-import-switch-case.js
+++ b/test/language/module-code/parse-err-decl-pos-import-switch-case.js
@@ -3,7 +3,9 @@
 /*---
 description: Statement cannot contain an `import` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-import-switch-dftl.js b/test/language/module-code/parse-err-decl-pos-import-switch-dftl.js
index 8a855a97ea..ad9cd2500f 100644
--- a/test/language/module-code/parse-err-decl-pos-import-switch-dftl.js
+++ b/test/language/module-code/parse-err-decl-pos-import-switch-dftl.js
@@ -3,7 +3,9 @@
 /*---
 description: Statement cannot contain an `import` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-import-try-catch-finally.js b/test/language/module-code/parse-err-decl-pos-import-try-catch-finally.js
index f0212bd37b..f1bde8b211 100644
--- a/test/language/module-code/parse-err-decl-pos-import-try-catch-finally.js
+++ b/test/language/module-code/parse-err-decl-pos-import-try-catch-finally.js
@@ -3,7 +3,9 @@
 /*---
 description: Statement cannot contain an `import` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-import-try-catch.js b/test/language/module-code/parse-err-decl-pos-import-try-catch.js
index e0d4f944f8..289b3a750c 100644
--- a/test/language/module-code/parse-err-decl-pos-import-try-catch.js
+++ b/test/language/module-code/parse-err-decl-pos-import-try-catch.js
@@ -3,7 +3,9 @@
 /*---
 description: Statement cannot contain an `import` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-import-try-finally.js b/test/language/module-code/parse-err-decl-pos-import-try-finally.js
index 76db6fd4c5..e99b64719b 100644
--- a/test/language/module-code/parse-err-decl-pos-import-try-finally.js
+++ b/test/language/module-code/parse-err-decl-pos-import-try-finally.js
@@ -3,7 +3,9 @@
 /*---
 description: Statement cannot contain an `import` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-import-try-try.js b/test/language/module-code/parse-err-decl-pos-import-try-try.js
index 39ed0e8053..8e1d62b6c1 100644
--- a/test/language/module-code/parse-err-decl-pos-import-try-try.js
+++ b/test/language/module-code/parse-err-decl-pos-import-try-try.js
@@ -3,7 +3,9 @@
 /*---
 description: Statement cannot contain an `import` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-import-while.js b/test/language/module-code/parse-err-decl-pos-import-while.js
index add8e60a11..c7840f3c46 100644
--- a/test/language/module-code/parse-err-decl-pos-import-while.js
+++ b/test/language/module-code/parse-err-decl-pos-import-while.js
@@ -3,7 +3,9 @@
 /*---
 description: Statement cannot contain an `import` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-export-dflt-const.js b/test/language/module-code/parse-err-export-dflt-const.js
index ca886476e1..ef7247b415 100644
--- a/test/language/module-code/parse-err-export-dflt-const.js
+++ b/test/language/module-code/parse-err-export-dflt-const.js
@@ -5,7 +5,9 @@ esid: sec-exports
 es6id: 15.2.3
 description: The default export may not be a LexicalDeclaration (const)
 flags: [module]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 export default const x = null;
diff --git a/test/language/module-code/parse-err-export-dflt-expr.js b/test/language/module-code/parse-err-export-dflt-expr.js
index 61c05e4913..c9f03e464f 100644
--- a/test/language/module-code/parse-err-export-dflt-expr.js
+++ b/test/language/module-code/parse-err-export-dflt-expr.js
@@ -14,7 +14,9 @@ info: |
       export default HoistableDeclaration[Default]
       export default ClassDeclaration[Default]
       export default [lookahead ∉ { function, class }] AssignmentExpression[In];
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-export-dflt-let.js b/test/language/module-code/parse-err-export-dflt-let.js
index cb3ae054b0..e355941efa 100644
--- a/test/language/module-code/parse-err-export-dflt-let.js
+++ b/test/language/module-code/parse-err-export-dflt-let.js
@@ -5,7 +5,9 @@ esid: sec-exports
 es6id: 15.2.3
 description: The default export may not be a LexicalDeclaration (let)
 flags: [module]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 export default let x;
diff --git a/test/language/module-code/parse-err-export-dflt-var.js b/test/language/module-code/parse-err-export-dflt-var.js
index 5cd5102168..4165cdf1f3 100644
--- a/test/language/module-code/parse-err-export-dflt-var.js
+++ b/test/language/module-code/parse-err-export-dflt-var.js
@@ -5,7 +5,9 @@ esid: sec-exports
 es6id: 15.2.3
 description: The default export may not be a VariableStatement
 flags: [module]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 export default var x;
diff --git a/test/language/module-code/parse-err-hoist-lex-fun.js b/test/language/module-code/parse-err-hoist-lex-fun.js
index 98c95ae674..3ecf06c587 100644
--- a/test/language/module-code/parse-err-hoist-lex-fun.js
+++ b/test/language/module-code/parse-err-hoist-lex-fun.js
@@ -13,7 +13,9 @@ info: |
 
     - It is a Syntax Error if any element of the LexicallyDeclaredNames of
       ModuleItemList also occurs in the VarDeclaredNames of ModuleItemList.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-hoist-lex-gen.js b/test/language/module-code/parse-err-hoist-lex-gen.js
index 6f32a70240..bb1f5d0fbe 100644
--- a/test/language/module-code/parse-err-hoist-lex-gen.js
+++ b/test/language/module-code/parse-err-hoist-lex-gen.js
@@ -14,7 +14,9 @@ info: |
 
     - It is a Syntax Error if any element of the LexicallyDeclaredNames of
       ModuleItemList also occurs in the VarDeclaredNames of ModuleItemList.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-invoke-anon-fun-decl.js b/test/language/module-code/parse-err-invoke-anon-fun-decl.js
index e161036907..f443981cde 100644
--- a/test/language/module-code/parse-err-invoke-anon-fun-decl.js
+++ b/test/language/module-code/parse-err-invoke-anon-fun-decl.js
@@ -14,7 +14,9 @@ info: |
       export default HoistableDeclaration[Default]
       export default ClassDeclaration[Default]
       export default [lookahead ∉ { function, class }] AssignmentExpression[In];
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-invoke-anon-gen-decl.js b/test/language/module-code/parse-err-invoke-anon-gen-decl.js
index 68c13642fe..ea625968a9 100644
--- a/test/language/module-code/parse-err-invoke-anon-gen-decl.js
+++ b/test/language/module-code/parse-err-invoke-anon-gen-decl.js
@@ -15,7 +15,9 @@ info: |
       export default HoistableDeclaration[Default]
       export default ClassDeclaration[Default]
       export default [lookahead ∉ { function, class }] AssignmentExpression[In];
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-return.js b/test/language/module-code/parse-err-return.js
index e51e894a8d..0130511208 100644
--- a/test/language/module-code/parse-err-return.js
+++ b/test/language/module-code/parse-err-return.js
@@ -22,7 +22,9 @@ info: |
     ExportDeclaration
     StatementListItem[~Yield, ~Return]
 flags: [module]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 return;
diff --git a/test/language/module-code/parse-err-semi-dflt-expr.js b/test/language/module-code/parse-err-semi-dflt-expr.js
index 78cba692fd..331915a7b4 100644
--- a/test/language/module-code/parse-err-semi-dflt-expr.js
+++ b/test/language/module-code/parse-err-semi-dflt-expr.js
@@ -15,7 +15,9 @@ info: |
       export default HoistableDeclaration[Default]
       export default ClassDeclaration[Default]
       export default [lookahead ∉ { function, class }] AssignmentExpression[In];
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-semi-export-clause-from.js b/test/language/module-code/parse-err-semi-export-clause-from.js
index b581cd3e65..3eaa729a64 100644
--- a/test/language/module-code/parse-err-semi-export-clause-from.js
+++ b/test/language/module-code/parse-err-semi-export-clause-from.js
@@ -15,7 +15,9 @@ info: |
       export default HoistableDeclaration[Default]
       export default ClassDeclaration[Default]
       export default [lookahead ∉ { function, class }] AssignmentExpression[In];
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-semi-export-clause.js b/test/language/module-code/parse-err-semi-export-clause.js
index 7b45846291..a876deeb54 100644
--- a/test/language/module-code/parse-err-semi-export-clause.js
+++ b/test/language/module-code/parse-err-semi-export-clause.js
@@ -15,7 +15,9 @@ info: |
       export default HoistableDeclaration[Default]
       export default ClassDeclaration[Default]
       export default [lookahead ∉ { function, class }] AssignmentExpression[In];
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-semi-export-star.js b/test/language/module-code/parse-err-semi-export-star.js
index cc8f908891..6ff59a84cf 100644
--- a/test/language/module-code/parse-err-semi-export-star.js
+++ b/test/language/module-code/parse-err-semi-export-star.js
@@ -14,7 +14,9 @@ info: |
       export default HoistableDeclaration[Default]
       export default ClassDeclaration[Default]
       export default [lookahead ∉ { function, class }] AssignmentExpression[In];
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-syntax.js b/test/language/module-code/parse-err-syntax.js
index ec36f521c6..818199963d 100644
--- a/test/language/module-code/parse-err-syntax.js
+++ b/test/language/module-code/parse-err-syntax.js
@@ -3,7 +3,9 @@
 /*---
 description: Early SyntaxError resulting from module parsing
 esid: sec-parsemodule
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 info: |
     [...]
     2. Parse sourceText using Module as the goal symbol and analyze the parse
diff --git a/test/language/module-code/parse-err-yield.js b/test/language/module-code/parse-err-yield.js
index 34600568a2..17e20c96dc 100644
--- a/test/language/module-code/parse-err-yield.js
+++ b/test/language/module-code/parse-err-yield.js
@@ -22,7 +22,9 @@ info: |
     ExportDeclaration
     StatementListItem[~Yield, ~Return]
 flags: [module]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 yield;
diff --git a/test/language/punctuators/S7.7_A2_T1.js b/test/language/punctuators/S7.7_A2_T1.js
index 1e955d54b6..52b658b056 100644
--- a/test/language/punctuators/S7.7_A2_T1.js
+++ b/test/language/punctuators/S7.7_A2_T1.js
@@ -7,7 +7,9 @@ info: >
     six characters, namely \u plus four hexadecimal digits
 es5id: 7.7_A2_T1
 description: Try to use {} as a Unicode \u007B\u007D
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 \u007B\u007D;
diff --git a/test/language/punctuators/S7.7_A2_T10.js b/test/language/punctuators/S7.7_A2_T10.js
index 2fcdf86b4a..02765dc64f 100644
--- a/test/language/punctuators/S7.7_A2_T10.js
+++ b/test/language/punctuators/S7.7_A2_T10.js
@@ -7,7 +7,9 @@ info: >
     six characters, namely \u plus four hexadecimal digits
 es5id: 7.7_A2_T10
 description: Try to use / as a Unicode \u002F
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 1\u002F2;
diff --git a/test/language/punctuators/S7.7_A2_T2.js b/test/language/punctuators/S7.7_A2_T2.js
index 665b242978..97118e83da 100644
--- a/test/language/punctuators/S7.7_A2_T2.js
+++ b/test/language/punctuators/S7.7_A2_T2.js
@@ -7,7 +7,9 @@ info: >
     six characters, namely \u plus four hexadecimal digits
 es5id: 7.7_A2_T2
 description: Try to use () as Unicode \u00281\u0029
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 \u00281\u0029;
diff --git a/test/language/punctuators/S7.7_A2_T3.js b/test/language/punctuators/S7.7_A2_T3.js
index a38c8f2924..c45c90eb12 100644
--- a/test/language/punctuators/S7.7_A2_T3.js
+++ b/test/language/punctuators/S7.7_A2_T3.js
@@ -7,7 +7,9 @@ info: >
     six characters, namely \u plus four hexadecimal digits
 es5id: 7.7_A2_T3
 description: Try to use [] as a Unicode \u005B\u005D
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 \u005B\u005D;
diff --git a/test/language/punctuators/S7.7_A2_T4.js b/test/language/punctuators/S7.7_A2_T4.js
index a6f1f305b8..4963bda477 100644
--- a/test/language/punctuators/S7.7_A2_T4.js
+++ b/test/language/punctuators/S7.7_A2_T4.js
@@ -7,7 +7,9 @@ info: >
     six characters, namely \u plus four hexadecimal digits
 es5id: 7.7_A2_T4
 description: Try to use ; as a Unicode \u003B
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 \u003B;
diff --git a/test/language/punctuators/S7.7_A2_T5.js b/test/language/punctuators/S7.7_A2_T5.js
index 59135976d3..379bfe789a 100644
--- a/test/language/punctuators/S7.7_A2_T5.js
+++ b/test/language/punctuators/S7.7_A2_T5.js
@@ -7,7 +7,9 @@ info: >
     six characters, namely \u plus four hexadecimal digits
 es5id: 7.7_A2_T5
 description: Try to use . as a Unicode \u002E
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 x = 1;
diff --git a/test/language/punctuators/S7.7_A2_T6.js b/test/language/punctuators/S7.7_A2_T6.js
index db832e0fa9..6d9f73c3e4 100644
--- a/test/language/punctuators/S7.7_A2_T6.js
+++ b/test/language/punctuators/S7.7_A2_T6.js
@@ -7,7 +7,9 @@ info: >
     six characters, namely \u plus four hexadecimal digits
 es5id: 7.7_A2_T6
 description: Try to use , as a Unicode \u002C
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 1\u002C2;
diff --git a/test/language/punctuators/S7.7_A2_T7.js b/test/language/punctuators/S7.7_A2_T7.js
index 685311c3fe..9b066810b2 100644
--- a/test/language/punctuators/S7.7_A2_T7.js
+++ b/test/language/punctuators/S7.7_A2_T7.js
@@ -7,7 +7,9 @@ info: >
     six characters, namely \u plus four hexadecimal digits
 es5id: 7.7_A2_T7
 description: Try to use + as a Unicode \u002B
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 1\u002B2;
diff --git a/test/language/punctuators/S7.7_A2_T8.js b/test/language/punctuators/S7.7_A2_T8.js
index 7fd346dabb..88469020da 100644
--- a/test/language/punctuators/S7.7_A2_T8.js
+++ b/test/language/punctuators/S7.7_A2_T8.js
@@ -7,7 +7,9 @@ info: >
     six characters, namely \u plus four hexadecimal digits
 es5id: 7.7_A2_T8
 description: Try to use -  as a Unicode \u002D
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 1\u002D2;
diff --git a/test/language/punctuators/S7.7_A2_T9.js b/test/language/punctuators/S7.7_A2_T9.js
index 789a7d1e0e..cbfdeb8fc8 100644
--- a/test/language/punctuators/S7.7_A2_T9.js
+++ b/test/language/punctuators/S7.7_A2_T9.js
@@ -7,7 +7,9 @@ info: >
     six characters, namely \u plus four hexadecimal digits
 es5id: 7.7_A2_T9
 description: Try to use * as a Unicode \u002A
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 1\u002A2;
diff --git a/test/language/reserved-words/7.6.1.2-1gs.js b/test/language/reserved-words/7.6.1.2-1gs.js
index 2dac365873..2642d13c61 100644
--- a/test/language/reserved-words/7.6.1.2-1gs.js
+++ b/test/language/reserved-words/7.6.1.2-1gs.js
@@ -6,7 +6,9 @@ es5id: 7.6.1.2-1gs
 description: >
     Strict Mode - SyntaxError is thrown when FutureReservedWord
     'implements' occurs in strict mode code
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [onlyStrict]
 ---*/
 
diff --git a/test/language/reserved-words/await-module.js b/test/language/reserved-words/await-module.js
index 1f822edc34..0f80c91273 100644
--- a/test/language/reserved-words/await-module.js
+++ b/test/language/reserved-words/await-module.js
@@ -5,7 +5,9 @@ esid: sec-reserved-words
 es6id: 11.6.2
 description: The `await` token is not permitted as an identifier in module code
 flags: [module]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var await;
diff --git a/test/language/rest-parameters/params-trailing-comma-rest.js b/test/language/rest-parameters/params-trailing-comma-rest.js
index 823b8806cc..028e7a36e5 100644
--- a/test/language/rest-parameters/params-trailing-comma-rest.js
+++ b/test/language/rest-parameters/params-trailing-comma-rest.js
@@ -6,7 +6,9 @@ description: >
   arguments in arrow function argument lists.
 info: http://jeffmo.github.io/es-trailing-function-commas/
 author: Jeff Morrison <lbljeffmo@gmail.com>
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 ((...a,) => {})
diff --git a/test/language/rest-parameters/position-invalid.js b/test/language/rest-parameters/position-invalid.js
index 27b6757725..bc64f3bb0b 100644
--- a/test/language/rest-parameters/position-invalid.js
+++ b/test/language/rest-parameters/position-invalid.js
@@ -4,6 +4,8 @@
 es6id: 14.1
 description: >
     Rest parameter cannot be followed by another named parameter
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 function f(a, ...b, c) {}
diff --git a/test/language/statements/async-function/early-errors-declaration-NSPL-with-USD.js b/test/language/statements/async-function/early-errors-declaration-NSPL-with-USD.js
index 2284554d85..dc8000e30c 100644
--- a/test/language/statements/async-function/early-errors-declaration-NSPL-with-USD.js
+++ b/test/language/statements/async-function/early-errors-declaration-NSPL-with-USD.js
@@ -6,7 +6,9 @@ author: Brian Terlson <brian.terlson@microsoft.com>
 esid: pending
 description: >
   It is a Syntax Error if ContainsUseStrict of AsyncConciseBody is *true* and IsSimpleParameterList of ArrowParameters is *false*.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 async function foo(x = 1){"use strict"}
diff --git a/test/language/statements/async-function/early-errors-declaration-arguments-in-formal-parameters.js b/test/language/statements/async-function/early-errors-declaration-arguments-in-formal-parameters.js
index 6bfb5c8974..f107468b1e 100644
--- a/test/language/statements/async-function/early-errors-declaration-arguments-in-formal-parameters.js
+++ b/test/language/statements/async-function/early-errors-declaration-arguments-in-formal-parameters.js
@@ -5,7 +5,9 @@
 author: Brian Terlson <brian.terlson@microsoft.com>
 esid: pending
 description: It is a SyntaxError if FormalParameters contains arguments in strict mode
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [onlyStrict]
 ---*/
 
diff --git a/test/language/statements/async-function/early-errors-declaration-await-in-formals-default.js b/test/language/statements/async-function/early-errors-declaration-await-in-formals-default.js
index aa3e5e5159..f961342868 100644
--- a/test/language/statements/async-function/early-errors-declaration-await-in-formals-default.js
+++ b/test/language/statements/async-function/early-errors-declaration-await-in-formals-default.js
@@ -5,6 +5,8 @@
 author: Brian Terlson <brian.terlson@microsoft.com>
 esid: pending
 description: It is a SyntaxError if FormalParameters' default expressions contains await
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 async function foo (x = await) {  }
diff --git a/test/language/statements/async-function/early-errors-declaration-await-in-formals.js b/test/language/statements/async-function/early-errors-declaration-await-in-formals.js
index ee57dcd19c..e93d9f6ab3 100644
--- a/test/language/statements/async-function/early-errors-declaration-await-in-formals.js
+++ b/test/language/statements/async-function/early-errors-declaration-await-in-formals.js
@@ -5,6 +5,8 @@
 author: Brian Terlson <brian.terlson@microsoft.com>
 esid: pending
 description: It is a SyntaxError if FormalParameters contains await
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 async function foo (await) {  }
diff --git a/test/language/statements/async-function/early-errors-declaration-binding-identifier-arguments.js b/test/language/statements/async-function/early-errors-declaration-binding-identifier-arguments.js
index 225e0085e3..a5c91fb576 100644
--- a/test/language/statements/async-function/early-errors-declaration-binding-identifier-arguments.js
+++ b/test/language/statements/async-function/early-errors-declaration-binding-identifier-arguments.js
@@ -6,7 +6,9 @@ author: Brian Terlson <brian.terlson@microsoft.com>
 esid: pending
 description: >
   If the source code matching this production is strict code, it is a Syntax Error if BindingIdentifier is the IdentifierName arguments. 
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [onlyStrict]
 ---*/
 async function arguments () {  }
diff --git a/test/language/statements/async-function/early-errors-declaration-binding-identifier-eval.js b/test/language/statements/async-function/early-errors-declaration-binding-identifier-eval.js
index ea9a58e962..29facf91ae 100644
--- a/test/language/statements/async-function/early-errors-declaration-binding-identifier-eval.js
+++ b/test/language/statements/async-function/early-errors-declaration-binding-identifier-eval.js
@@ -6,7 +6,9 @@ author: Brian Terlson <brian.terlson@microsoft.com>
 esid: pending
 description: >
   If the source code matching this production is strict code, it is a Syntax Error if BindingIdentifier is the IdentifierName eval. 
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [onlyStrict]
 ---*/
 async function eval () {  }
diff --git a/test/language/statements/async-function/early-errors-declaration-body-contains-super-call.js b/test/language/statements/async-function/early-errors-declaration-body-contains-super-call.js
index b4ad18cccc..a1d84ef3dd 100644
--- a/test/language/statements/async-function/early-errors-declaration-body-contains-super-call.js
+++ b/test/language/statements/async-function/early-errors-declaration-body-contains-super-call.js
@@ -5,7 +5,9 @@
 author: Brian Terlson <brian.terlson@microsoft.com>
 esid: pending
 description: It is a syntax error if AsyncFunctionBody contains SuperCall is true
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 async function foo (foo) { super() };
diff --git a/test/language/statements/async-function/early-errors-declaration-body-contains-super-property.js b/test/language/statements/async-function/early-errors-declaration-body-contains-super-property.js
index 53fb87e10c..ed9570766f 100644
--- a/test/language/statements/async-function/early-errors-declaration-body-contains-super-property.js
+++ b/test/language/statements/async-function/early-errors-declaration-body-contains-super-property.js
@@ -5,7 +5,9 @@
 author: Brian Terlson <brian.terlson@microsoft.com>
 esid: pending
 description: It is a syntax error if AsyncFunctionBody contains SuperProperty is true
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 async function foo (foo) { super.prop };
diff --git a/test/language/statements/async-function/early-errors-declaration-duplicate-parameters.js b/test/language/statements/async-function/early-errors-declaration-duplicate-parameters.js
index f91c35c614..186baca6db 100644
--- a/test/language/statements/async-function/early-errors-declaration-duplicate-parameters.js
+++ b/test/language/statements/async-function/early-errors-declaration-duplicate-parameters.js
@@ -6,7 +6,9 @@ author: Brian Terlson <brian.terlson@microsoft.com>
 esid: pending
 description: >
   If strict mode, early error rules for StrictFormalParameters are applied
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [onlyStrict]
 ---*/
 
diff --git a/test/language/statements/async-function/early-errors-declaration-eval-in-formal-parameters.js b/test/language/statements/async-function/early-errors-declaration-eval-in-formal-parameters.js
index f2b24adaa7..39d32b22ec 100644
--- a/test/language/statements/async-function/early-errors-declaration-eval-in-formal-parameters.js
+++ b/test/language/statements/async-function/early-errors-declaration-eval-in-formal-parameters.js
@@ -5,7 +5,9 @@
 author: Brian Terlson <brian.terlson@microsoft.com>
 esid: pending
 description: It is a SyntaxError if FormalParameters contains eval in strict mode
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [onlyStrict]
 ---*/
 
diff --git a/test/language/statements/async-function/early-errors-declaration-formals-body-duplicate.js b/test/language/statements/async-function/early-errors-declaration-formals-body-duplicate.js
index 1de28ba4f2..c4132bd532 100644
--- a/test/language/statements/async-function/early-errors-declaration-formals-body-duplicate.js
+++ b/test/language/statements/async-function/early-errors-declaration-formals-body-duplicate.js
@@ -5,7 +5,9 @@
 author: Brian Terlson <brian.terlson@microsoft.com>
 esid: pending
 description: It is a SyntaxError if BoundNames of FormalParameters also occurs in the LexicallyDeclaredNames of AsyncFunctionBody
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 async function foo (bar) { let bar; }
diff --git a/test/language/statements/async-function/early-errors-declaration-formals-contains-super-call.js b/test/language/statements/async-function/early-errors-declaration-formals-contains-super-call.js
index bdd6e2b55d..73e1ad8704 100644
--- a/test/language/statements/async-function/early-errors-declaration-formals-contains-super-call.js
+++ b/test/language/statements/async-function/early-errors-declaration-formals-contains-super-call.js
@@ -5,7 +5,9 @@
 author: Brian Terlson <brian.terlson@microsoft.com>
 esid: pending
 description: It is a syntax error if FormalParameters contains SuperCall is true
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 async function foo (foo = super()) { let bar; }
diff --git a/test/language/statements/async-function/early-errors-declaration-formals-contains-super-property.js b/test/language/statements/async-function/early-errors-declaration-formals-contains-super-property.js
index d68260db71..ee20b11cf3 100644
--- a/test/language/statements/async-function/early-errors-declaration-formals-contains-super-property.js
+++ b/test/language/statements/async-function/early-errors-declaration-formals-contains-super-property.js
@@ -5,7 +5,9 @@
 author: Brian Terlson <brian.terlson@microsoft.com>
 esid: pending
 description: It is a syntax error if FormalParameters contains SuperCall is true
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 async function foo (foo = super.foo) { let bar; }
diff --git a/test/language/statements/async-function/early-errors-no-async-generator.js b/test/language/statements/async-function/early-errors-no-async-generator.js
index 4e4d2e44a7..9c4d2b4713 100644
--- a/test/language/statements/async-function/early-errors-no-async-generator.js
+++ b/test/language/statements/async-function/early-errors-no-async-generator.js
@@ -6,7 +6,9 @@ author: Brian Terlson <brian.terlson@microsoft.com>
 esid: pending
 description: >
   Async generators are not a thing (yet)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 async function* foo() { }
diff --git a/test/language/statements/block/S12.1_A4_T1.js b/test/language/statements/block/S12.1_A4_T1.js
index bcd1697bcb..6addb73a51 100644
--- a/test/language/statements/block/S12.1_A4_T1.js
+++ b/test/language/statements/block/S12.1_A4_T1.js
@@ -5,7 +5,9 @@
 info: The production Block can't be inside of expression
 es5id: 12.1_A4_T1
 description: Checking if execution of "y={__func}()" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 function __func(){};
diff --git a/test/language/statements/block/S12.1_A4_T2.js b/test/language/statements/block/S12.1_A4_T2.js
index 2a6a56ffe5..0032285eb5 100644
--- a/test/language/statements/block/S12.1_A4_T2.js
+++ b/test/language/statements/block/S12.1_A4_T2.js
@@ -5,7 +5,9 @@
 info: The production Block can't be inside of expression
 es5id: 12.1_A4_T2
 description: Checking if execution of "y={x;}" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 x=1;
diff --git a/test/language/statements/break/S12.8_A1_T1.js b/test/language/statements/break/S12.8_A1_T1.js
index 9a631ca00c..5128e62847 100644
--- a/test/language/statements/break/S12.8_A1_T1.js
+++ b/test/language/statements/break/S12.8_A1_T1.js
@@ -5,7 +5,9 @@
 info: Appearing of break without an IterationStatement leads to syntax error
 es5id: 12.8_A1_T1
 description: Checking if break statement with no loop fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/language/statements/break/S12.8_A1_T2.js b/test/language/statements/break/S12.8_A1_T2.js
index 4b2ee30c2b..517cd8b753 100644
--- a/test/language/statements/break/S12.8_A1_T2.js
+++ b/test/language/statements/break/S12.8_A1_T2.js
@@ -5,7 +5,9 @@
 info: Appearing of break without an IterationStatement leads to syntax error
 es5id: 12.8_A1_T2
 description: Checking if break Identifier with no loop fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 LABEL : x=3.14;
diff --git a/test/language/statements/break/S12.8_A1_T3.js b/test/language/statements/break/S12.8_A1_T3.js
index 9f1693cbad..fbd6e646d8 100644
--- a/test/language/statements/break/S12.8_A1_T3.js
+++ b/test/language/statements/break/S12.8_A1_T3.js
@@ -7,7 +7,9 @@ es5id: 12.8_A1_T3
 description: >
     Checking if break statement with no loop, placed into a block,
     fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/language/statements/break/S12.8_A1_T4.js b/test/language/statements/break/S12.8_A1_T4.js
index e1c5752ea2..a8c085f674 100644
--- a/test/language/statements/break/S12.8_A1_T4.js
+++ b/test/language/statements/break/S12.8_A1_T4.js
@@ -7,7 +7,9 @@ es5id: 12.8_A1_T4
 description: >
     Checking if break Identifier with no loop, placed into a  block,
     fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 LABEL : x=3.14;
diff --git a/test/language/statements/break/S12.8_A5_T1.js b/test/language/statements/break/S12.8_A5_T1.js
index c30bfa322c..e74390fdd5 100644
--- a/test/language/statements/break/S12.8_A5_T1.js
+++ b/test/language/statements/break/S12.8_A5_T1.js
@@ -7,7 +7,9 @@ info: >
     crossing function boundaries) IterationStatement
 es5id: 12.8_A5_T1
 description: Checking if breaking another labeled loop fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 (function(){
diff --git a/test/language/statements/break/S12.8_A5_T2.js b/test/language/statements/break/S12.8_A5_T2.js
index d22d0af9c7..91a0bc7f41 100644
--- a/test/language/statements/break/S12.8_A5_T2.js
+++ b/test/language/statements/break/S12.8_A5_T2.js
@@ -9,7 +9,9 @@ es5id: 12.8_A5_T2
 description: >
     Checking if using function name as an Identifier appears to be
     invalid
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 (function(){
diff --git a/test/language/statements/break/S12.8_A5_T3.js b/test/language/statements/break/S12.8_A5_T3.js
index ac14feb593..955e7794f3 100644
--- a/test/language/statements/break/S12.8_A5_T3.js
+++ b/test/language/statements/break/S12.8_A5_T3.js
@@ -9,7 +9,9 @@ es5id: 12.8_A5_T3
 description: >
     Checking if using internal loop label as an Identifier appears to
     be invalid
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 (function(){
diff --git a/test/language/statements/break/S12.8_A6.js b/test/language/statements/break/S12.8_A6.js
index d996d39204..1a3ad0014e 100644
--- a/test/language/statements/break/S12.8_A6.js
+++ b/test/language/statements/break/S12.8_A6.js
@@ -9,7 +9,9 @@ es5id: 12.8_A6
 description: >
     Checking if using "break Identifier" within a function body
     appears to be invalid
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var x=0,y=0;
diff --git a/test/language/statements/break/S12.8_A8_T1.js b/test/language/statements/break/S12.8_A8_T1.js
index cdcb23e929..f2ff054be0 100644
--- a/test/language/statements/break/S12.8_A8_T1.js
+++ b/test/language/statements/break/S12.8_A8_T1.js
@@ -7,7 +7,9 @@ es5id: 12.8_A8_T1
 description: >
     Checking if using "break Identifier" from within catch Block
     appears to be invalid
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var x=0,y=0;
diff --git a/test/language/statements/break/S12.8_A8_T2.js b/test/language/statements/break/S12.8_A8_T2.js
index 51d7f1f49a..772289224f 100644
--- a/test/language/statements/break/S12.8_A8_T2.js
+++ b/test/language/statements/break/S12.8_A8_T2.js
@@ -7,7 +7,9 @@ es5id: 12.8_A8_T2
 description: >
     Checking if using "break Identifier" from within catch Block
     appears to be invalid
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var x=0,y=0;
diff --git a/test/language/statements/class/definition/early-errors-class-method-NSPL-with-USD.js b/test/language/statements/class/definition/early-errors-class-method-NSPL-with-USD.js
index 1df3a557dd..400cda4473 100644
--- a/test/language/statements/class/definition/early-errors-class-method-NSPL-with-USD.js
+++ b/test/language/statements/class/definition/early-errors-class-method-NSPL-with-USD.js
@@ -6,7 +6,9 @@ author: Brian Terlson <brian.terlson@microsoft.com>
 esid: pending
 description: >
   It is a Syntax Error if ContainsUseStrict of AsyncConciseBody is *true* and IsSimpleParameterList of ArrowParameters is *false*.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 class Foo {
   async bar(x = 1) {"use strict"}
diff --git a/test/language/statements/class/definition/early-errors-class-method-arguments-in-formal-parameters.js b/test/language/statements/class/definition/early-errors-class-method-arguments-in-formal-parameters.js
index e19517e009..6832dcea00 100644
--- a/test/language/statements/class/definition/early-errors-class-method-arguments-in-formal-parameters.js
+++ b/test/language/statements/class/definition/early-errors-class-method-arguments-in-formal-parameters.js
@@ -5,7 +5,9 @@
 author: Brian Terlson <brian.terlson@microsoft.com>
 esid: pending
 description: It is a SyntaxError if FormalParameters contains arguments
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 class Foo {
   async foo (arguments) { }
diff --git a/test/language/statements/class/definition/early-errors-class-method-await-in-formals-default.js b/test/language/statements/class/definition/early-errors-class-method-await-in-formals-default.js
index 4575aa1d9e..48535adb20 100644
--- a/test/language/statements/class/definition/early-errors-class-method-await-in-formals-default.js
+++ b/test/language/statements/class/definition/early-errors-class-method-await-in-formals-default.js
@@ -5,7 +5,9 @@
 author: Brian Terlson <brian.terlson@microsoft.com>
 esid: pending
 description: It is a SyntaxError if FormalParameters' default expressions contains await
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 class Foo {
   async foo (x = await) {  }
diff --git a/test/language/statements/class/definition/early-errors-class-method-await-in-formals.js b/test/language/statements/class/definition/early-errors-class-method-await-in-formals.js
index 5a0512b3c8..b6776099b4 100644
--- a/test/language/statements/class/definition/early-errors-class-method-await-in-formals.js
+++ b/test/language/statements/class/definition/early-errors-class-method-await-in-formals.js
@@ -5,7 +5,9 @@
 author: Brian Terlson <brian.terlson@microsoft.com>
 esid: pending
 description: It is a SyntaxError if FormalParameters contains await
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 class Foo {
   async foo (await) {  }
diff --git a/test/language/statements/class/definition/early-errors-class-method-body-contains-super-call.js b/test/language/statements/class/definition/early-errors-class-method-body-contains-super-call.js
index 5e0814155c..5d3b515459 100644
--- a/test/language/statements/class/definition/early-errors-class-method-body-contains-super-call.js
+++ b/test/language/statements/class/definition/early-errors-class-method-body-contains-super-call.js
@@ -5,7 +5,9 @@
 author: Brian Terlson <brian.terlson@microsoft.com>
 esid: pending
 description: It is a SyntaxError if AsyncFunctionBody contains SuperCall is true
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 class Foo {
   async foo () { super() }
diff --git a/test/language/statements/class/definition/early-errors-class-method-duplicate-parameters.js b/test/language/statements/class/definition/early-errors-class-method-duplicate-parameters.js
index aaa491c938..b060183acc 100644
--- a/test/language/statements/class/definition/early-errors-class-method-duplicate-parameters.js
+++ b/test/language/statements/class/definition/early-errors-class-method-duplicate-parameters.js
@@ -6,7 +6,9 @@ author: Brian Terlson <brian.terlson@microsoft.com>
 esid: pending
 description: >
   Early error rules for StrictFormalParameters are applied
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 class Foo {
diff --git a/test/language/statements/class/definition/early-errors-class-method-eval-in-formal-parameters.js b/test/language/statements/class/definition/early-errors-class-method-eval-in-formal-parameters.js
index 2f4341fb55..f476e39214 100644
--- a/test/language/statements/class/definition/early-errors-class-method-eval-in-formal-parameters.js
+++ b/test/language/statements/class/definition/early-errors-class-method-eval-in-formal-parameters.js
@@ -5,7 +5,9 @@
 author: Brian Terlson <brian.terlson@microsoft.com>
 esid: pending
 description: It is a SyntaxError if FormalParameters contains eval in strict mode
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 class Foo {
   async foo(eval) { }
diff --git a/test/language/statements/class/definition/early-errors-class-method-formals-body-duplicate.js b/test/language/statements/class/definition/early-errors-class-method-formals-body-duplicate.js
index f7170dc9db..dbcdd6dba8 100644
--- a/test/language/statements/class/definition/early-errors-class-method-formals-body-duplicate.js
+++ b/test/language/statements/class/definition/early-errors-class-method-formals-body-duplicate.js
@@ -6,7 +6,9 @@ author: Brian Terlson <brian.terlson@microsoft.com>
 esid: pending
 description: >
   It is a SyntaxError if BoundNames of FormalParameters also occurs in the LexicallyDeclaredNames of AsyncFunctionBody
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 class Foo {
diff --git a/test/language/statements/class/definition/early-errors-class-method-formals-contains-super-call.js b/test/language/statements/class/definition/early-errors-class-method-formals-contains-super-call.js
index 8103422068..bef1a5c811 100644
--- a/test/language/statements/class/definition/early-errors-class-method-formals-contains-super-call.js
+++ b/test/language/statements/class/definition/early-errors-class-method-formals-contains-super-call.js
@@ -5,7 +5,9 @@
 author: Brian Terlson <brian.terlson@microsoft.com>
 esid: pending
 description: It is a syntax error if FormalParameters contains SuperCall is true
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 class Foo {
   async foo(foo = super()) { }
diff --git a/test/language/statements/class/definition/methods-gen-yield-as-binding-identifier.js b/test/language/statements/class/definition/methods-gen-yield-as-binding-identifier.js
index 3bcdafe5d3..ff2f57abb2 100644
--- a/test/language/statements/class/definition/methods-gen-yield-as-binding-identifier.js
+++ b/test/language/statements/class/definition/methods-gen-yield-as-binding-identifier.js
@@ -7,7 +7,9 @@
       not be used as a binding identifier.
   features: [generators]
   es6id: 12.1.1
-  negative: SyntaxError
+  negative:
+    phase: early
+    type: SyntaxError
  ---*/
 
 class A {
diff --git a/test/language/statements/class/definition/methods-gen-yield-as-function-expression-binding-identifier.js b/test/language/statements/class/definition/methods-gen-yield-as-function-expression-binding-identifier.js
index bb081f14e9..5540822b63 100644
--- a/test/language/statements/class/definition/methods-gen-yield-as-function-expression-binding-identifier.js
+++ b/test/language/statements/class/definition/methods-gen-yield-as-function-expression-binding-identifier.js
@@ -7,7 +7,9 @@
       expression within classes.
   features: [generators]
   es6id: 14.1
-  negative: SyntaxError
+  negative:
+    phase: early
+    type: SyntaxError
  ---*/
 
 class A {
diff --git a/test/language/statements/class/definition/methods-gen-yield-as-identifier-in-nested-function.js b/test/language/statements/class/definition/methods-gen-yield-as-identifier-in-nested-function.js
index 1cf64ff357..3ecab10e8f 100644
--- a/test/language/statements/class/definition/methods-gen-yield-as-identifier-in-nested-function.js
+++ b/test/language/statements/class/definition/methods-gen-yield-as-identifier-in-nested-function.js
@@ -7,7 +7,9 @@
       within classes.
   features: [generators]
   es6id: 12.1.1
-  negative: SyntaxError
+  negative:
+    phase: early
+    type: SyntaxError
  ---*/
 
 class A {
diff --git a/test/language/statements/class/definition/methods-gen-yield-as-label.js b/test/language/statements/class/definition/methods-gen-yield-as-label.js
index 094f90ac72..6b9da37724 100644
--- a/test/language/statements/class/definition/methods-gen-yield-as-label.js
+++ b/test/language/statements/class/definition/methods-gen-yield-as-label.js
@@ -7,7 +7,9 @@
       not be used as a label.
   features: [generators]
   es6id: 12.1.1
-  negative: SyntaxError
+  negative:
+    phase: early
+    type: SyntaxError
  ---*/
 
 class A {
diff --git a/test/language/statements/class/definition/methods-gen-yield-as-logical-or-expression.js b/test/language/statements/class/definition/methods-gen-yield-as-logical-or-expression.js
index f4bb32f416..538a14447b 100644
--- a/test/language/statements/class/definition/methods-gen-yield-as-logical-or-expression.js
+++ b/test/language/statements/class/definition/methods-gen-yield-as-logical-or-expression.js
@@ -6,7 +6,9 @@
       `yield` expressions are not LogicalOrExpressions.
   features: [generators]
   es6id: 12.1.1
-  negative: SyntaxError
+  negative:
+    phase: early
+    type: SyntaxError
  ---*/
 
 class A {
diff --git a/test/language/statements/class/definition/methods-gen-yield-as-parameter.js b/test/language/statements/class/definition/methods-gen-yield-as-parameter.js
index a1b648051e..2b036aaec1 100644
--- a/test/language/statements/class/definition/methods-gen-yield-as-parameter.js
+++ b/test/language/statements/class/definition/methods-gen-yield-as-parameter.js
@@ -7,7 +7,9 @@
       not be used as the binding identifier of a parameter.
   features: [generators]
   es6id: 12.1.1
-  negative: SyntaxError
+  negative:
+    phase: early
+    type: SyntaxError
  ---*/
 
 class A {
diff --git a/test/language/statements/class/definition/methods-gen-yield-star-after-newline.js b/test/language/statements/class/definition/methods-gen-yield-star-after-newline.js
index 80cef3e561..97cb6f5c50 100644
--- a/test/language/statements/class/definition/methods-gen-yield-star-after-newline.js
+++ b/test/language/statements/class/definition/methods-gen-yield-star-after-newline.js
@@ -6,7 +6,9 @@
       A newline may not precede the `*` token in a `yield` expression.
   features: [generators]
   es6id: 14.4
-  negative: SyntaxError
+  negative:
+    phase: early
+    type: SyntaxError
  ---*/
 
 class A {
diff --git a/test/language/statements/class/definition/methods-gen-yield-weak-binding.js b/test/language/statements/class/definition/methods-gen-yield-weak-binding.js
index 8a8d4aa491..b3e4aef733 100644
--- a/test/language/statements/class/definition/methods-gen-yield-weak-binding.js
+++ b/test/language/statements/class/definition/methods-gen-yield-weak-binding.js
@@ -6,7 +6,9 @@
       `yield` expressions bind weakly
   features: [generators]
   es6id: 14.4
-  negative: SyntaxError
+  negative:
+    phase: early
+    type: SyntaxError
  ---*/
 
 class A {
diff --git a/test/language/statements/class/definition/params-trailing-comma-rest.js b/test/language/statements/class/definition/params-trailing-comma-rest.js
index 6ba7c5672e..d295a468bb 100644
--- a/test/language/statements/class/definition/params-trailing-comma-rest.js
+++ b/test/language/statements/class/definition/params-trailing-comma-rest.js
@@ -6,7 +6,9 @@ description: >
   class method parameter lists.
 info: http://jeffmo.github.io/es-trailing-function-commas/
 author: Jeff Morrison <lbljeffmo@gmail.com>
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 class C {
   m(...[],) {}
diff --git a/test/language/statements/class/gen-method-param-dflt-yield.js b/test/language/statements/class/gen-method-param-dflt-yield.js
index 708120b2b5..1f09847183 100644
--- a/test/language/statements/class/gen-method-param-dflt-yield.js
+++ b/test/language/statements/class/gen-method-param-dflt-yield.js
@@ -15,7 +15,9 @@ info: |
   function because any expressions that are part of FormalParameters are
   evaluated before the resulting generator object is in a resumable state.
 features: [generators, default-parameters]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 class C {
diff --git a/test/language/statements/class/getter-param-dflt.js b/test/language/statements/class/getter-param-dflt.js
index 460bec80b8..4e0db48325 100644
--- a/test/language/statements/class/getter-param-dflt.js
+++ b/test/language/statements/class/getter-param-dflt.js
@@ -13,7 +13,9 @@ info: |
 
     get PropertyName[?Yield] ( ) { FunctionBody }
 features: [default-parameters]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 class C { get a(param = null) {} }
diff --git a/test/language/statements/class/method-param-yield.js b/test/language/statements/class/method-param-yield.js
index 244c1e8945..a8461d4c69 100644
--- a/test/language/statements/class/method-param-yield.js
+++ b/test/language/statements/class/method-param-yield.js
@@ -10,7 +10,9 @@ info: |
 
     PropertyName[?Yield] ( StrictFormalParameters ) { FunctionBody }
 features: [generators, default-parameters]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 class C {
diff --git a/test/language/statements/class/static-gen-method-param-dflt-yield.js b/test/language/statements/class/static-gen-method-param-dflt-yield.js
index 903c8eeba3..31a0c074cf 100644
--- a/test/language/statements/class/static-gen-method-param-dflt-yield.js
+++ b/test/language/statements/class/static-gen-method-param-dflt-yield.js
@@ -15,7 +15,9 @@ info: |
   function because any expressions that are part of FormalParameters are
   evaluated before the resulting generator object is in a resumable state.
 features: [generators, default-parameters]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 class C {
diff --git a/test/language/statements/class/static-method-param-yield.js b/test/language/statements/class/static-method-param-yield.js
index be2fc13002..263b50f6b1 100644
--- a/test/language/statements/class/static-method-param-yield.js
+++ b/test/language/statements/class/static-method-param-yield.js
@@ -10,7 +10,9 @@ info: |
 
     PropertyName[?Yield] ( StrictFormalParameters ) { FunctionBody }
 features: [generators, default-parameters]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 class C {
diff --git a/test/language/statements/class/strict-mode/with.js b/test/language/statements/class/strict-mode/with.js
index 75858186d5..b1a619fc89 100644
--- a/test/language/statements/class/strict-mode/with.js
+++ b/test/language/statements/class/strict-mode/with.js
@@ -4,7 +4,9 @@
 es6id: 14.5
 description: >
     class strict mode: `with` disallowed
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 class C extends (function B() { with ({}); return B; }()) {}
diff --git a/test/language/statements/class/syntax/early-errors/class-body-contains-multiple-constructor.js b/test/language/statements/class/syntax/early-errors/class-body-contains-multiple-constructor.js
index a40ed24724..f2452f6fbe 100644
--- a/test/language/statements/class/syntax/early-errors/class-body-contains-multiple-constructor.js
+++ b/test/language/statements/class/syntax/early-errors/class-body-contains-multiple-constructor.js
@@ -7,7 +7,9 @@ description: >
 
     It is a Syntax Error if PrototypePropertyNameList of ClassElementList contains more than one occurrence of "constructor".
 
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 class A {
   constructor() {}
diff --git a/test/language/statements/class/syntax/early-errors/class-body-has-direct-super-missing-class-heritage.js b/test/language/statements/class/syntax/early-errors/class-body-has-direct-super-missing-class-heritage.js
index 07a9c5d879..0b759115ff 100644
--- a/test/language/statements/class/syntax/early-errors/class-body-has-direct-super-missing-class-heritage.js
+++ b/test/language/statements/class/syntax/early-errors/class-body-has-direct-super-missing-class-heritage.js
@@ -10,7 +10,9 @@ description: >
       2. If constructor is empty, return false.
       3. Return HasDirectSuper of constructor.
 
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 class A {
   constructor() {
diff --git a/test/language/statements/class/syntax/early-errors/class-body-method-contains-direct-super.js b/test/language/statements/class/syntax/early-errors/class-body-method-contains-direct-super.js
index f44157bb93..7f5d66760e 100644
--- a/test/language/statements/class/syntax/early-errors/class-body-method-contains-direct-super.js
+++ b/test/language/statements/class/syntax/early-errors/class-body-method-contains-direct-super.js
@@ -7,7 +7,9 @@ description: >
 
     It is a Syntax Error if PropName of MethodDefinition is not "constructor" and HasDirectSuper of MethodDefinition is true.
 
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 class A {
   method() {
diff --git a/test/language/statements/class/syntax/early-errors/class-body-special-method-generator-contains-direct-super.js b/test/language/statements/class/syntax/early-errors/class-body-special-method-generator-contains-direct-super.js
index e850d38da8..5d665efd5d 100644
--- a/test/language/statements/class/syntax/early-errors/class-body-special-method-generator-contains-direct-super.js
+++ b/test/language/statements/class/syntax/early-errors/class-body-special-method-generator-contains-direct-super.js
@@ -9,7 +9,9 @@ description: >
 
     (GeneratorMethod)
 
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 class A {
   * method() {
diff --git a/test/language/statements/class/syntax/early-errors/class-body-special-method-generator-propname-constructor.js b/test/language/statements/class/syntax/early-errors/class-body-special-method-generator-propname-constructor.js
index aad5526baf..b5888db49e 100644
--- a/test/language/statements/class/syntax/early-errors/class-body-special-method-generator-propname-constructor.js
+++ b/test/language/statements/class/syntax/early-errors/class-body-special-method-generator-propname-constructor.js
@@ -9,7 +9,9 @@ description: >
 
     (GeneratorMethod)
 
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 class A {
   * constructor() {}
diff --git a/test/language/statements/class/syntax/early-errors/class-body-special-method-get-contains-direct-super.js b/test/language/statements/class/syntax/early-errors/class-body-special-method-get-contains-direct-super.js
index 1cabc3a7e7..0bb2db2626 100644
--- a/test/language/statements/class/syntax/early-errors/class-body-special-method-get-contains-direct-super.js
+++ b/test/language/statements/class/syntax/early-errors/class-body-special-method-get-contains-direct-super.js
@@ -9,7 +9,9 @@ description: >
 
     (get)
 
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 class A {
   get method() {
diff --git a/test/language/statements/class/syntax/early-errors/class-body-special-method-get-propname-constructor.js b/test/language/statements/class/syntax/early-errors/class-body-special-method-get-propname-constructor.js
index 5cf769a3fd..c48d155928 100644
--- a/test/language/statements/class/syntax/early-errors/class-body-special-method-get-propname-constructor.js
+++ b/test/language/statements/class/syntax/early-errors/class-body-special-method-get-propname-constructor.js
@@ -9,7 +9,9 @@ description: >
 
     (get)
 
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 class A {
   get constructor() {}
diff --git a/test/language/statements/class/syntax/early-errors/class-body-special-method-set-contains-direct-super.js b/test/language/statements/class/syntax/early-errors/class-body-special-method-set-contains-direct-super.js
index 11a636583f..1132f0a87a 100644
--- a/test/language/statements/class/syntax/early-errors/class-body-special-method-set-contains-direct-super.js
+++ b/test/language/statements/class/syntax/early-errors/class-body-special-method-set-contains-direct-super.js
@@ -9,7 +9,9 @@ description: >
 
     (set)
 
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 class A {
   set method(_) {
diff --git a/test/language/statements/class/syntax/early-errors/class-body-special-method-set-propname-constructor.js b/test/language/statements/class/syntax/early-errors/class-body-special-method-set-propname-constructor.js
index e0f3e48ace..500da9c523 100644
--- a/test/language/statements/class/syntax/early-errors/class-body-special-method-set-propname-constructor.js
+++ b/test/language/statements/class/syntax/early-errors/class-body-special-method-set-propname-constructor.js
@@ -9,7 +9,9 @@ description: >
 
     (set)
 
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 class A {
   set constructor(_) {}
diff --git a/test/language/statements/class/syntax/early-errors/class-body-static-method-contains-direct-super.js b/test/language/statements/class/syntax/early-errors/class-body-static-method-contains-direct-super.js
index c5981097b1..b738c74cf7 100644
--- a/test/language/statements/class/syntax/early-errors/class-body-static-method-contains-direct-super.js
+++ b/test/language/statements/class/syntax/early-errors/class-body-static-method-contains-direct-super.js
@@ -7,7 +7,9 @@ description: >
 
     It is a Syntax Error if HasDirectSuper of MethodDefinition is true.
 
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 class A {
   static method() {
diff --git a/test/language/statements/class/syntax/early-errors/class-body-static-method-get-contains-direct-super.js b/test/language/statements/class/syntax/early-errors/class-body-static-method-get-contains-direct-super.js
index 4b1c412a63..98918d166a 100644
--- a/test/language/statements/class/syntax/early-errors/class-body-static-method-get-contains-direct-super.js
+++ b/test/language/statements/class/syntax/early-errors/class-body-static-method-get-contains-direct-super.js
@@ -9,7 +9,9 @@ description: >
 
     (get)
 
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 class A {
   static get method() {
diff --git a/test/language/statements/class/syntax/early-errors/class-body-static-method-get-propname-prototype.js b/test/language/statements/class/syntax/early-errors/class-body-static-method-get-propname-prototype.js
index 67afb020ea..294f055222 100644
--- a/test/language/statements/class/syntax/early-errors/class-body-static-method-get-propname-prototype.js
+++ b/test/language/statements/class/syntax/early-errors/class-body-static-method-get-propname-prototype.js
@@ -9,7 +9,9 @@ description: >
 
     (get)
 
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 class A {
   static get prototype() {}
diff --git a/test/language/statements/class/syntax/early-errors/class-body-static-method-propname-prototype.js b/test/language/statements/class/syntax/early-errors/class-body-static-method-propname-prototype.js
index 6ea780588e..abd42901d3 100644
--- a/test/language/statements/class/syntax/early-errors/class-body-static-method-propname-prototype.js
+++ b/test/language/statements/class/syntax/early-errors/class-body-static-method-propname-prototype.js
@@ -7,7 +7,9 @@ description: >
 
     It is a Syntax Error if PropName of MethodDefinition is "prototype".
 
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 class A {
   static prototype() {}
diff --git a/test/language/statements/class/syntax/early-errors/class-body-static-method-set-contains-direct-super.js b/test/language/statements/class/syntax/early-errors/class-body-static-method-set-contains-direct-super.js
index fe7f6c52ad..05de3dfc04 100644
--- a/test/language/statements/class/syntax/early-errors/class-body-static-method-set-contains-direct-super.js
+++ b/test/language/statements/class/syntax/early-errors/class-body-static-method-set-contains-direct-super.js
@@ -9,7 +9,9 @@ description: >
 
     (set)
 
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 class A {
   static set method(_) {
diff --git a/test/language/statements/class/syntax/early-errors/class-body-static-method-set-propname-prototype.js b/test/language/statements/class/syntax/early-errors/class-body-static-method-set-propname-prototype.js
index 03e104010c..10f1a7716f 100644
--- a/test/language/statements/class/syntax/early-errors/class-body-static-method-set-propname-prototype.js
+++ b/test/language/statements/class/syntax/early-errors/class-body-static-method-set-propname-prototype.js
@@ -9,7 +9,9 @@ description: >
 
     (set)
 
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 class A {
   static set prototype() {}
diff --git a/test/language/statements/class/syntax/early-errors/class-definition-evaluation-block-duplicate-binding.js b/test/language/statements/class/syntax/early-errors/class-definition-evaluation-block-duplicate-binding.js
index 22e4c97ffd..80779355d0 100644
--- a/test/language/statements/class/syntax/early-errors/class-definition-evaluation-block-duplicate-binding.js
+++ b/test/language/statements/class/syntax/early-errors/class-definition-evaluation-block-duplicate-binding.js
@@ -6,7 +6,9 @@ description: >
     Block : { StatementList }
 
     It is a Syntax Error if the LexicallyDeclaredNames of StatementList contains any duplicate entries.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 {
   class A {}
diff --git a/test/language/statements/class/syntax/early-errors/class-definition-evaluation-scriptbody-duplicate-binding.js b/test/language/statements/class/syntax/early-errors/class-definition-evaluation-scriptbody-duplicate-binding.js
index 81f1967637..1e5b1fd1ea 100644
--- a/test/language/statements/class/syntax/early-errors/class-definition-evaluation-scriptbody-duplicate-binding.js
+++ b/test/language/statements/class/syntax/early-errors/class-definition-evaluation-scriptbody-duplicate-binding.js
@@ -6,7 +6,9 @@ description: >
     ScriptBody : StatementList
 
     It is a Syntax Error if the LexicallyDeclaredNames of StatementList contains any duplicate entries.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 class A {}
 class A {}
diff --git a/test/language/statements/const/redeclaration-error-from-within-strict-mode-function-const.js b/test/language/statements/const/redeclaration-error-from-within-strict-mode-function-const.js
index 7077a0fdb5..74863da568 100644
--- a/test/language/statements/const/redeclaration-error-from-within-strict-mode-function-const.js
+++ b/test/language/statements/const/redeclaration-error-from-within-strict-mode-function-const.js
@@ -4,7 +4,9 @@
 es6id: 13.1
 description: >
     Redeclaration error within strict mode function inside non-strict code.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [noStrict]
 ---*/
 (function() { 'use strict'; { const f = 1; var f; } })
diff --git a/test/language/statements/const/syntax/block-scope-syntax-const-declarations-mixed-with-without-initialiser.js b/test/language/statements/const/syntax/block-scope-syntax-const-declarations-mixed-with-without-initialiser.js
index c77cc74962..cde8810b16 100644
--- a/test/language/statements/const/syntax/block-scope-syntax-const-declarations-mixed-with-without-initialiser.js
+++ b/test/language/statements/const/syntax/block-scope-syntax-const-declarations-mixed-with-without-initialiser.js
@@ -4,7 +4,9 @@
 es6id: 13.1
 description: >
     const declarations mixed: with, without initialiser
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 const x = 1, y;
 
diff --git a/test/language/statements/const/syntax/block-scope-syntax-const-declarations-mixed-without-with-initialiser.js b/test/language/statements/const/syntax/block-scope-syntax-const-declarations-mixed-without-with-initialiser.js
index b80fe15099..bd4d8ad1e9 100644
--- a/test/language/statements/const/syntax/block-scope-syntax-const-declarations-mixed-without-with-initialiser.js
+++ b/test/language/statements/const/syntax/block-scope-syntax-const-declarations-mixed-without-with-initialiser.js
@@ -4,7 +4,9 @@
 es6id: 13.1
 description: >
     const declarations mixed: without, with initialiser
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 const x, y = 1;
 
diff --git a/test/language/statements/const/syntax/block-scope-syntax-const-declarations-without-initialiser.js b/test/language/statements/const/syntax/block-scope-syntax-const-declarations-without-initialiser.js
index acc7f5bd07..a19ea69ce2 100644
--- a/test/language/statements/const/syntax/block-scope-syntax-const-declarations-without-initialiser.js
+++ b/test/language/statements/const/syntax/block-scope-syntax-const-declarations-without-initialiser.js
@@ -4,7 +4,9 @@
 es6id: 13.1
 description: >
     const declarations without initialiser
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 const x;
 
diff --git a/test/language/statements/const/syntax/const-declaring-let-split-across-two-lines.js b/test/language/statements/const/syntax/const-declaring-let-split-across-two-lines.js
index e6d9a0108f..559c283dfb 100644
--- a/test/language/statements/const/syntax/const-declaring-let-split-across-two-lines.js
+++ b/test/language/statements/const/syntax/const-declaring-let-split-across-two-lines.js
@@ -8,7 +8,9 @@ description: >
     const: |const let| split across two lines is a static semantics early error.
 info: >
   Lexical declarations may not declare a binding named "let".
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 throw NotEarlyError;
 
diff --git a/test/language/statements/const/syntax/with-initializer-do-statement-while-expression.js b/test/language/statements/const/syntax/with-initializer-do-statement-while-expression.js
index b145b91b12..8cb66c374c 100644
--- a/test/language/statements/const/syntax/with-initializer-do-statement-while-expression.js
+++ b/test/language/statements/const/syntax/with-initializer-do-statement-while-expression.js
@@ -5,6 +5,8 @@ es6id: 13.1
 description: >
     const declarations with initialisers in statement positions: 
     do Statement while ( Expression )
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 do const x = 1; while (false)
diff --git a/test/language/statements/const/syntax/with-initializer-for-statement.js b/test/language/statements/const/syntax/with-initializer-for-statement.js
index 3e9667a08b..571125e688 100644
--- a/test/language/statements/const/syntax/with-initializer-for-statement.js
+++ b/test/language/statements/const/syntax/with-initializer-for-statement.js
@@ -5,6 +5,8 @@ es6id: 13.1
 description: >
     const declarations with initialisers in statement positions: 
     for ( ;;) Statement
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 for (;false;) const x = 1;
diff --git a/test/language/statements/const/syntax/with-initializer-if-expression-statement-else-statement.js b/test/language/statements/const/syntax/with-initializer-if-expression-statement-else-statement.js
index 2e4826da4b..c710482d2a 100644
--- a/test/language/statements/const/syntax/with-initializer-if-expression-statement-else-statement.js
+++ b/test/language/statements/const/syntax/with-initializer-if-expression-statement-else-statement.js
@@ -5,6 +5,8 @@ es6id: 13.1
 description: >
     const declarations with initialisers in statement positions: 
     if ( Expression ) Statement else Statement
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 if (true) {} else const x = 1;
diff --git a/test/language/statements/const/syntax/with-initializer-if-expression-statement.js b/test/language/statements/const/syntax/with-initializer-if-expression-statement.js
index 6ecb959ae0..f485a5ca77 100644
--- a/test/language/statements/const/syntax/with-initializer-if-expression-statement.js
+++ b/test/language/statements/const/syntax/with-initializer-if-expression-statement.js
@@ -5,6 +5,8 @@ es6id: 13.1
 description: >
     const declarations with initialisers in statement positions: 
     if ( Expression ) Statement
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 if (true) const x = 1;
diff --git a/test/language/statements/const/syntax/with-initializer-label-statement.js b/test/language/statements/const/syntax/with-initializer-label-statement.js
index d6b4d144ca..432c2d3744 100644
--- a/test/language/statements/const/syntax/with-initializer-label-statement.js
+++ b/test/language/statements/const/syntax/with-initializer-label-statement.js
@@ -5,6 +5,8 @@ es6id: 13.1
 description: >
     const declarations with initialisers in statement positions: 
     label: Statement
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 label: const x = 1;
diff --git a/test/language/statements/const/syntax/with-initializer-while-expression-statement.js b/test/language/statements/const/syntax/with-initializer-while-expression-statement.js
index 7c0ffab5d2..7d35cfeb5c 100644
--- a/test/language/statements/const/syntax/with-initializer-while-expression-statement.js
+++ b/test/language/statements/const/syntax/with-initializer-while-expression-statement.js
@@ -5,6 +5,8 @@ es6id: 13.1
 description: >
     const declarations with initialisers in statement positions: 
     while ( Expression ) Statement
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 while (false) const x = 1;
diff --git a/test/language/statements/const/syntax/without-initializer-case-expression-statement-list.js b/test/language/statements/const/syntax/without-initializer-case-expression-statement-list.js
index 542f2107f8..6656dd4935 100644
--- a/test/language/statements/const/syntax/without-initializer-case-expression-statement-list.js
+++ b/test/language/statements/const/syntax/without-initializer-case-expression-statement-list.js
@@ -5,6 +5,8 @@ es6id: 13.1
 description: >
     const declarations without initialisers in statement positions: 
     case Expression : StatementList
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 switch (true) { case true: const x; }
diff --git a/test/language/statements/const/syntax/without-initializer-default-statement-list.js b/test/language/statements/const/syntax/without-initializer-default-statement-list.js
index 7af1230546..1d5c088e35 100644
--- a/test/language/statements/const/syntax/without-initializer-default-statement-list.js
+++ b/test/language/statements/const/syntax/without-initializer-default-statement-list.js
@@ -5,6 +5,8 @@ es6id: 13.1
 description: >
     const declarations without initialisers in statement positions: 
     default : StatementList
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 switch (true) { default: const x; }
diff --git a/test/language/statements/const/syntax/without-initializer-do-statement-while-expression.js b/test/language/statements/const/syntax/without-initializer-do-statement-while-expression.js
index f0fa50472e..d8e5f62d2f 100644
--- a/test/language/statements/const/syntax/without-initializer-do-statement-while-expression.js
+++ b/test/language/statements/const/syntax/without-initializer-do-statement-while-expression.js
@@ -5,6 +5,8 @@ es6id: 13.1
 description: >
     const declarations without initialisers in statement positions: 
     do Statement while ( Expression )
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 do const x; while (false)
diff --git a/test/language/statements/const/syntax/without-initializer-for-statement.js b/test/language/statements/const/syntax/without-initializer-for-statement.js
index f1c4a535ae..5ef41674c6 100644
--- a/test/language/statements/const/syntax/without-initializer-for-statement.js
+++ b/test/language/statements/const/syntax/without-initializer-for-statement.js
@@ -5,6 +5,8 @@ es6id: 13.1
 description: >
     const declarations without initialisers in statement positions: 
     for ( ;;) Statement
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 for (;false;) const x;
diff --git a/test/language/statements/const/syntax/without-initializer-if-expression-statement-else-statement.js b/test/language/statements/const/syntax/without-initializer-if-expression-statement-else-statement.js
index af8e62312a..a0c3043e9b 100644
--- a/test/language/statements/const/syntax/without-initializer-if-expression-statement-else-statement.js
+++ b/test/language/statements/const/syntax/without-initializer-if-expression-statement-else-statement.js
@@ -5,6 +5,8 @@ es6id: 13.1
 description: >
     const declarations without initialisers in statement positions: 
     if ( Expression ) Statement else Statement
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 if (true) {} else const x;
diff --git a/test/language/statements/const/syntax/without-initializer-if-expression-statement.js b/test/language/statements/const/syntax/without-initializer-if-expression-statement.js
index a93aa3d7b7..e84e357e1a 100644
--- a/test/language/statements/const/syntax/without-initializer-if-expression-statement.js
+++ b/test/language/statements/const/syntax/without-initializer-if-expression-statement.js
@@ -5,6 +5,8 @@ es6id: 13.1
 description: >
     const declarations without initialisers in statement positions: 
     if ( Expression ) Statement
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 if (true) const x;
diff --git a/test/language/statements/const/syntax/without-initializer-label-statement.js b/test/language/statements/const/syntax/without-initializer-label-statement.js
index 39279abcae..d7cfd173f4 100644
--- a/test/language/statements/const/syntax/without-initializer-label-statement.js
+++ b/test/language/statements/const/syntax/without-initializer-label-statement.js
@@ -5,6 +5,8 @@ es6id: 13.1
 description: >
     const declarations without initialisers in statement positions: 
     label: Statement
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 label: const x;
diff --git a/test/language/statements/const/syntax/without-initializer-while-expression-statement.js b/test/language/statements/const/syntax/without-initializer-while-expression-statement.js
index 9210efce82..f726a94cc7 100644
--- a/test/language/statements/const/syntax/without-initializer-while-expression-statement.js
+++ b/test/language/statements/const/syntax/without-initializer-while-expression-statement.js
@@ -5,6 +5,8 @@ es6id: 13.1
 description: >
     const declarations without initialisers in statement positions: 
     while ( Expression ) Statement
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 while (false) const x;
diff --git a/test/language/statements/continue/S12.7_A1_T1.js b/test/language/statements/continue/S12.7_A1_T1.js
index b93a188952..367ee71e77 100644
--- a/test/language/statements/continue/S12.7_A1_T1.js
+++ b/test/language/statements/continue/S12.7_A1_T1.js
@@ -7,7 +7,9 @@ es5id: 12.7_A1_T1
 description: >
     Checking if execution of single "continue" without any
     IterationStatement fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/language/statements/continue/S12.7_A1_T2.js b/test/language/statements/continue/S12.7_A1_T2.js
index 3f64dc48f9..de01cbdfee 100644
--- a/test/language/statements/continue/S12.7_A1_T2.js
+++ b/test/language/statements/continue/S12.7_A1_T2.js
@@ -7,7 +7,9 @@ es5id: 12.7_A1_T2
 description: >
     Checking if single "continue" with Label but without any
     IterationStatement fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 LABEL : x=3.14;
diff --git a/test/language/statements/continue/S12.7_A1_T3.js b/test/language/statements/continue/S12.7_A1_T3.js
index 5dc269fa75..a3a77601b2 100644
--- a/test/language/statements/continue/S12.7_A1_T3.js
+++ b/test/language/statements/continue/S12.7_A1_T3.js
@@ -7,7 +7,9 @@ es5id: 12.7_A1_T3
 description: >
     Checking if laballed "continue" with no IterationStatement, placed
     into a block, fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 LABEL : x=3.14;
diff --git a/test/language/statements/continue/S12.7_A1_T4.js b/test/language/statements/continue/S12.7_A1_T4.js
index f766c3390a..58c2ba0448 100644
--- a/test/language/statements/continue/S12.7_A1_T4.js
+++ b/test/language/statements/continue/S12.7_A1_T4.js
@@ -7,7 +7,9 @@ es5id: 12.7_A1_T4
 description: >
     Checking if execution of "continue" with no IterationStatement,
     placed into a block, fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/language/statements/continue/S12.7_A5_T1.js b/test/language/statements/continue/S12.7_A5_T1.js
index 48980dd7a2..9a553b6b18 100644
--- a/test/language/statements/continue/S12.7_A5_T1.js
+++ b/test/language/statements/continue/S12.7_A5_T1.js
@@ -8,7 +8,9 @@ info: >
     IterationStatement
 es5id: 12.7_A5_T1
 description: Trying to continue another labeled loop
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 LABEL_OUT : var x=0, y=0;
diff --git a/test/language/statements/continue/S12.7_A5_T2.js b/test/language/statements/continue/S12.7_A5_T2.js
index e31903c2c7..248eb84f11 100644
--- a/test/language/statements/continue/S12.7_A5_T2.js
+++ b/test/language/statements/continue/S12.7_A5_T2.js
@@ -8,7 +8,9 @@ info: >
     IterationStatement
 es5id: 12.7_A5_T2
 description: Identifier is a function name
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 LABEL_OUT : var x=0, y=0;
diff --git a/test/language/statements/continue/S12.7_A5_T3.js b/test/language/statements/continue/S12.7_A5_T3.js
index 1f7b0226f0..e00bf8c787 100644
--- a/test/language/statements/continue/S12.7_A5_T3.js
+++ b/test/language/statements/continue/S12.7_A5_T3.js
@@ -8,7 +8,9 @@ info: >
     IterationStatement
 es5id: 12.7_A5_T3
 description: Identifier is within loop label
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 LABEL_OUT : var x=0, y=0;
diff --git a/test/language/statements/continue/S12.7_A6.js b/test/language/statements/continue/S12.7_A6.js
index 48d0646b2a..4a98557171 100644
--- a/test/language/statements/continue/S12.7_A6.js
+++ b/test/language/statements/continue/S12.7_A6.js
@@ -7,7 +7,9 @@ info: >
     IterationStatement yields SyntaxError
 es5id: 12.7_A6
 description: Using labaled "continue Identifier" within a function body
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var x=0,y=0;
diff --git a/test/language/statements/continue/S12.7_A8_T1.js b/test/language/statements/continue/S12.7_A8_T1.js
index 68e2e22d58..ba4197939a 100644
--- a/test/language/statements/continue/S12.7_A8_T1.js
+++ b/test/language/statements/continue/S12.7_A8_T1.js
@@ -7,7 +7,9 @@ es5id: 12.7_A8_T1
 description: >
     Checking if execution of "continue Identifier" within catch Block
     fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var x=0,y=0;
diff --git a/test/language/statements/continue/S12.7_A8_T2.js b/test/language/statements/continue/S12.7_A8_T2.js
index 005df354e1..5c3c10072b 100644
--- a/test/language/statements/continue/S12.7_A8_T2.js
+++ b/test/language/statements/continue/S12.7_A8_T2.js
@@ -5,7 +5,9 @@
 info: Appearing of "continue" within a "try/catch" Block yields SyntaxError
 es5id: 12.7_A8_T2
 description: Checking if execution of "continue" within catch Block fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var x=0,y=0;
diff --git a/test/language/statements/debugger/expression.js b/test/language/statements/debugger/expression.js
index c335e4e2b5..1b965da36c 100644
--- a/test/language/statements/debugger/expression.js
+++ b/test/language/statements/debugger/expression.js
@@ -4,7 +4,9 @@
 description: The `debugger` token may not occupy an expression position
 esid: sec-debugger-statement
 es6id: 13.16
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 (debugger);
diff --git a/test/language/statements/do-while/S12.6.1_A12.js b/test/language/statements/do-while/S12.6.1_A12.js
index a174829c5f..999d6d381f 100644
--- a/test/language/statements/do-while/S12.6.1_A12.js
+++ b/test/language/statements/do-while/S12.6.1_A12.js
@@ -5,7 +5,9 @@
 info: Any statement within "do-while" construction must be a compound
 es5id: 12.6.1_A12
 description: Checking if execution of "do var x=1; var y =2; while (0)" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/language/statements/do-while/S12.6.1_A15.js b/test/language/statements/do-while/S12.6.1_A15.js
index f079896efa..5c76c385c1 100644
--- a/test/language/statements/do-while/S12.6.1_A15.js
+++ b/test/language/statements/do-while/S12.6.1_A15.js
@@ -5,7 +5,9 @@
 info: Block within a "do-while" Expression is not allowed
 es5id: 12.6.1_A15
 description: Using "{0}" Block as an Expression
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/language/statements/do-while/S12.6.1_A6_T1.js b/test/language/statements/do-while/S12.6.1_A6_T1.js
index a0aacd85fd..2597009ea1 100644
--- a/test/language/statements/do-while/S12.6.1_A6_T1.js
+++ b/test/language/statements/do-while/S12.6.1_A6_T1.js
@@ -5,7 +5,9 @@
 info: Expression in "do-while" IterationStatement is bracketed with braces
 es5id: 12.6.1_A6_T1
 description: Checking if execution of "do{} while 1" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/language/statements/do-while/S12.6.1_A6_T2.js b/test/language/statements/do-while/S12.6.1_A6_T2.js
index a7686e92c8..c63c1bffcd 100644
--- a/test/language/statements/do-while/S12.6.1_A6_T2.js
+++ b/test/language/statements/do-while/S12.6.1_A6_T2.js
@@ -5,7 +5,9 @@
 info: Expression in "do-while" IterationStatement is bracketed with braces
 es5id: 12.6.1_A6_T2
 description: Checking if execution of "do{} while 0" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/language/statements/do-while/S12.6.1_A6_T3.js b/test/language/statements/do-while/S12.6.1_A6_T3.js
index 4f59089ddc..fe0c68c056 100644
--- a/test/language/statements/do-while/S12.6.1_A6_T3.js
+++ b/test/language/statements/do-while/S12.6.1_A6_T3.js
@@ -5,7 +5,9 @@
 info: Expression in "do-while" IterationStatement is bracketed with braces
 es5id: 12.6.1_A6_T3
 description: Checking if execution of "do{}while true" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/language/statements/do-while/S12.6.1_A6_T4.js b/test/language/statements/do-while/S12.6.1_A6_T4.js
index 9e77619bca..e10fbbf268 100644
--- a/test/language/statements/do-while/S12.6.1_A6_T4.js
+++ b/test/language/statements/do-while/S12.6.1_A6_T4.js
@@ -5,7 +5,9 @@
 info: Expression in "do-while" IterationStatement is bracketed with braces
 es5id: 12.6.1_A6_T4
 description: Checking if execution of "do{}while false" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/language/statements/do-while/S12.6.1_A6_T5.js b/test/language/statements/do-while/S12.6.1_A6_T5.js
index 2182ea4f9a..7ad3ebe8aa 100644
--- a/test/language/statements/do-while/S12.6.1_A6_T5.js
+++ b/test/language/statements/do-while/S12.6.1_A6_T5.js
@@ -5,7 +5,9 @@
 info: Expression in "do-while" IterationStatement is bracketed with braces
 es5id: 12.6.1_A6_T5
 description: Checking if execution of "do{}while ''" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/language/statements/do-while/S12.6.1_A6_T6.js b/test/language/statements/do-while/S12.6.1_A6_T6.js
index 2ee26417fb..88b0d79131 100644
--- a/test/language/statements/do-while/S12.6.1_A6_T6.js
+++ b/test/language/statements/do-while/S12.6.1_A6_T6.js
@@ -5,7 +5,9 @@
 info: Expression in "do-while" IterationStatement is bracketed with braces
 es5id: 12.6.1_A6_T6
 description: Checking if execution of "do{}while 'hood'" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/language/statements/do-while/decl-cls.js b/test/language/statements/do-while/decl-cls.js
index b88a399b8b..f4bea89c81 100644
--- a/test/language/statements/do-while/decl-cls.js
+++ b/test/language/statements/do-while/decl-cls.js
@@ -4,7 +4,9 @@
 description: Class declaration not allowed in statement position
 esid: sec-do-while-statement
 es6id: 13.7.2
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 do class C {} while (false)
diff --git a/test/language/statements/do-while/decl-const.js b/test/language/statements/do-while/decl-const.js
index 6e8a23a70f..f1bacdb9e1 100644
--- a/test/language/statements/do-while/decl-const.js
+++ b/test/language/statements/do-while/decl-const.js
@@ -4,7 +4,9 @@
 description: Lexical declaration (const) not allowed in statement position
 esid: sec-do-while-statement
 es6id: 13.7.2
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 do const x = null; while (false)
diff --git a/test/language/statements/do-while/decl-fun.js b/test/language/statements/do-while/decl-fun.js
index ff94a75480..a1f104b498 100644
--- a/test/language/statements/do-while/decl-fun.js
+++ b/test/language/statements/do-while/decl-fun.js
@@ -4,7 +4,9 @@
 description: Class declaration not allowed in statement position
 esid: sec-do-while-statement
 es6id: 13.7.2
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 do function f() {} while (false)
diff --git a/test/language/statements/do-while/decl-gen.js b/test/language/statements/do-while/decl-gen.js
index 2e47fcc5fd..3fc8778ea8 100644
--- a/test/language/statements/do-while/decl-gen.js
+++ b/test/language/statements/do-while/decl-gen.js
@@ -4,7 +4,9 @@
 description: Generator declaration not allowed in statement position
 esid: sec-do-while-statement
 es6id: 13.7.2
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 do function* g() {} while (false)
diff --git a/test/language/statements/do-while/decl-let.js b/test/language/statements/do-while/decl-let.js
index 42c320ea45..2392e6a207 100644
--- a/test/language/statements/do-while/decl-let.js
+++ b/test/language/statements/do-while/decl-let.js
@@ -4,7 +4,9 @@
 description: Lexical declaration (const) not allowed in statement position
 esid: sec-do-while-statement
 es6id: 13.7.2
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 do let x; while (false)
diff --git a/test/language/statements/do-while/labelled-fn-stmt.js b/test/language/statements/do-while/labelled-fn-stmt.js
index 0469dc9b8f..80f2faf6d4 100644
--- a/test/language/statements/do-while/labelled-fn-stmt.js
+++ b/test/language/statements/do-while/labelled-fn-stmt.js
@@ -2,7 +2,9 @@
 // This code is governed by the BSD license found in the LICENSE file.
 /*---
 description: It is a Syntax Error if IsLabelledFunction(Statement) is true.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 esid: sec-semantics-static-semantics-early-errors
 es6id: 13.7.1.1
 info: >
diff --git a/test/language/statements/expression/S12.4_A1.js b/test/language/statements/expression/S12.4_A1.js
index dc4fe9dc03..7671e3cbfc 100644
--- a/test/language/statements/expression/S12.4_A1.js
+++ b/test/language/statements/expression/S12.4_A1.js
@@ -7,7 +7,9 @@ info: >
     that might make it ambiguous with a FunctionDeclaration
 es5id: 12.4_A1
 description: Checking if execution of "function(){}()" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/language/statements/for-in/S12.6.4_A15.js b/test/language/statements/for-in/S12.6.4_A15.js
index 64f1e25e1b..487474793e 100644
--- a/test/language/statements/for-in/S12.6.4_A15.js
+++ b/test/language/statements/for-in/S12.6.4_A15.js
@@ -5,7 +5,9 @@
 info: Block within a "for-in" Expression is not allowed
 es5id: 12.6.4_A15
 description: Using block within "for-in" Expression
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var __arr=[1,2,3];
diff --git a/test/language/statements/for-in/decl-cls.js b/test/language/statements/for-in/decl-cls.js
index 85ff5e16a3..359f33b1d7 100644
--- a/test/language/statements/for-in/decl-cls.js
+++ b/test/language/statements/for-in/decl-cls.js
@@ -4,7 +4,9 @@
 description: Class declaration not allowed in statement position
 esid: sec-for-in-and-for-of-statements
 es6id: 13.7.5
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 for (var x in {}) class C {}
diff --git a/test/language/statements/for-in/decl-const.js b/test/language/statements/for-in/decl-const.js
index 3a55cd477d..527202d757 100644
--- a/test/language/statements/for-in/decl-const.js
+++ b/test/language/statements/for-in/decl-const.js
@@ -4,7 +4,9 @@
 description: Lexical declaration (const) not allowed in statement position
 esid: sec-for-in-and-for-of-statements
 es6id: 13.7.5
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 for (var x in {}) const y = null;
diff --git a/test/language/statements/for-in/decl-fun.js b/test/language/statements/for-in/decl-fun.js
index 29509bc413..5e8c5de56c 100644
--- a/test/language/statements/for-in/decl-fun.js
+++ b/test/language/statements/for-in/decl-fun.js
@@ -4,7 +4,9 @@
 description: Function declaration not allowed in statement position
 esid: sec-for-in-and-for-of-statements
 es6id: 13.7.5
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 for (var x in {}) function f() {}
diff --git a/test/language/statements/for-in/decl-gen.js b/test/language/statements/for-in/decl-gen.js
index 4d263ec376..0dbf7e3c66 100644
--- a/test/language/statements/for-in/decl-gen.js
+++ b/test/language/statements/for-in/decl-gen.js
@@ -4,7 +4,9 @@
 description: Generator declaration not allowed in statement position
 esid: sec-for-in-and-for-of-statements
 es6id: 13.7.5
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 for (var x in {}) function* g() {}
diff --git a/test/language/statements/for-in/decl-let.js b/test/language/statements/for-in/decl-let.js
index 2cf556476d..0884d32202 100644
--- a/test/language/statements/for-in/decl-let.js
+++ b/test/language/statements/for-in/decl-let.js
@@ -4,7 +4,9 @@
 description: Lexical declaration (let) not allowed in statement position
 esid: sec-for-in-and-for-of-statements
 es6id: 13.7.5
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 for (var x in {}) let y;
diff --git a/test/language/statements/for-in/head-const-bound-names-dup.js b/test/language/statements/for-in/head-const-bound-names-dup.js
index a0afd41eb1..b0388e1912 100644
--- a/test/language/statements/for-in/head-const-bound-names-dup.js
+++ b/test/language/statements/for-in/head-const-bound-names-dup.js
@@ -2,7 +2,9 @@
 // This code is governed by the BSD license found in the LICENSE file.
 /*---
 description: The head's declaration may not contain duplicate entries
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 info: |
     It is a Syntax Error if the BoundNames of ForDeclaration contains any
     duplicate entries.
diff --git a/test/language/statements/for-in/head-const-bound-names-in-stmt.js b/test/language/statements/for-in/head-const-bound-names-in-stmt.js
index 3f8001633e..e084ca56b5 100644
--- a/test/language/statements/for-in/head-const-bound-names-in-stmt.js
+++ b/test/language/statements/for-in/head-const-bound-names-in-stmt.js
@@ -2,7 +2,9 @@
 // This code is governed by the BSD license found in the LICENSE file.
 /*---
 description: The body may not re-declare variables declared in the head
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 info: |
     It is a Syntax Error if any element of the BoundNames of ForDeclaration
     also occurs in the VarDeclaredNames of Statement.
diff --git a/test/language/statements/for-in/head-const-bound-names-let.js b/test/language/statements/for-in/head-const-bound-names-let.js
index ddaea955aa..dc83306d85 100644
--- a/test/language/statements/for-in/head-const-bound-names-let.js
+++ b/test/language/statements/for-in/head-const-bound-names-let.js
@@ -2,7 +2,9 @@
 // This code is governed by the BSD license found in the LICENSE file.
 /*---
 description: The declaration may not contain a binding for `let`
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 info: |
     It is a Syntax Error if the BoundNames of ForDeclaration contains "let".
 esid: sec-for-in-and-for-of-statements
diff --git a/test/language/statements/for-in/head-let-bound-names-dup.js b/test/language/statements/for-in/head-let-bound-names-dup.js
index 8e395f5f93..f347753a8f 100644
--- a/test/language/statements/for-in/head-let-bound-names-dup.js
+++ b/test/language/statements/for-in/head-let-bound-names-dup.js
@@ -2,7 +2,9 @@
 // This code is governed by the BSD license found in the LICENSE file.
 /*---
 description: The head's declaration may not contain duplicate entries
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 info: |
     It is a Syntax Error if the BoundNames of ForDeclaration contains any
     duplicate entries.
diff --git a/test/language/statements/for-in/head-let-bound-names-in-stmt.js b/test/language/statements/for-in/head-let-bound-names-in-stmt.js
index 219a7fd2e2..d4dfe3e268 100644
--- a/test/language/statements/for-in/head-let-bound-names-in-stmt.js
+++ b/test/language/statements/for-in/head-let-bound-names-in-stmt.js
@@ -2,7 +2,9 @@
 // This code is governed by the BSD license found in the LICENSE file.
 /*---
 description: The body may not re-declare variables declared in the head
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 info: |
     It is a Syntax Error if any element of the BoundNames of ForDeclaration
     also occurs in the VarDeclaredNames of Statement.
diff --git a/test/language/statements/for-in/head-let-bound-names-let.js b/test/language/statements/for-in/head-let-bound-names-let.js
index d70fbc5e9b..c5c9c9754a 100644
--- a/test/language/statements/for-in/head-let-bound-names-let.js
+++ b/test/language/statements/for-in/head-let-bound-names-let.js
@@ -2,7 +2,9 @@
 // This code is governed by the BSD license found in the LICENSE file.
 /*---
 description: The declaration may not contain a binding for `let`
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 info: |
     It is a Syntax Error if the BoundNames of ForDeclaration contains "let".
 flags: [noStrict]
diff --git a/test/language/statements/for-in/head-lhs-cover-non-asnmt-trgt.js b/test/language/statements/for-in/head-lhs-cover-non-asnmt-trgt.js
index ea340a318a..031fe155e6 100644
--- a/test/language/statements/for-in/head-lhs-cover-non-asnmt-trgt.js
+++ b/test/language/statements/for-in/head-lhs-cover-non-asnmt-trgt.js
@@ -14,7 +14,9 @@ info: >
     LeftHandSideExpression. This rule is recursively applied.
 esid: sec-for-in-and-for-of-statements-static-semantics-early-errors
 es6id: 13.7.5
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 for ((this) in {}) {}
diff --git a/test/language/statements/for-in/head-lhs-invalid-asnmt-ptrn-ary.js b/test/language/statements/for-in/head-lhs-invalid-asnmt-ptrn-ary.js
index 460f9128e8..1f2585f4f2 100644
--- a/test/language/statements/for-in/head-lhs-invalid-asnmt-ptrn-ary.js
+++ b/test/language/statements/for-in/head-lhs-invalid-asnmt-ptrn-ary.js
@@ -10,7 +10,9 @@ info: >
     AssignmentPattern as the goal symbol.
 esid: sec-for-in-and-for-of-statements-static-semantics-early-errors
 es6id: 13.7.5
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 for ([(x, y)] in {}) {}
diff --git a/test/language/statements/for-in/head-lhs-invalid-asnmt-ptrn-obj.js b/test/language/statements/for-in/head-lhs-invalid-asnmt-ptrn-obj.js
index 871ebfb4aa..4089c5082e 100644
--- a/test/language/statements/for-in/head-lhs-invalid-asnmt-ptrn-obj.js
+++ b/test/language/statements/for-in/head-lhs-invalid-asnmt-ptrn-obj.js
@@ -10,7 +10,9 @@ info: >
     AssignmentPattern as the goal symbol.
 esid: sec-for-in-and-for-of-statements-static-semantics-early-errors
 es6id: 13.7.5
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 for ({ m() {} } in {}) {}
diff --git a/test/language/statements/for-in/head-lhs-non-asnmt-trgt.js b/test/language/statements/for-in/head-lhs-non-asnmt-trgt.js
index 55e906093d..0813f474e0 100644
--- a/test/language/statements/for-in/head-lhs-non-asnmt-trgt.js
+++ b/test/language/statements/for-in/head-lhs-non-asnmt-trgt.js
@@ -8,7 +8,9 @@ info: >
     LeftHandSideExpression is false.
 esid: sec-for-in-and-for-of-statements-static-semantics-early-errors
 es6id: 13.7.5
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 for (this in {}) {}
diff --git a/test/language/statements/for-in/labelled-fn-stmt-const.js b/test/language/statements/for-in/labelled-fn-stmt-const.js
index 9feb0161cc..d1362ea1af 100644
--- a/test/language/statements/for-in/labelled-fn-stmt-const.js
+++ b/test/language/statements/for-in/labelled-fn-stmt-const.js
@@ -2,7 +2,9 @@
 // This code is governed by the BSD license found in the LICENSE file.
 /*---
 description: It is a Syntax Error if IsLabelledFunction(Statement) is true.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 esid: sec-semantics-static-semantics-early-errors
 es6id: 13.7.1.1
 info: >
diff --git a/test/language/statements/for-in/labelled-fn-stmt-let.js b/test/language/statements/for-in/labelled-fn-stmt-let.js
index 6e2c24e0cf..9fbb407fc6 100644
--- a/test/language/statements/for-in/labelled-fn-stmt-let.js
+++ b/test/language/statements/for-in/labelled-fn-stmt-let.js
@@ -2,7 +2,9 @@
 // This code is governed by the BSD license found in the LICENSE file.
 /*---
 description: It is a Syntax Error if IsLabelledFunction(Statement) is true.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 esid: sec-semantics-static-semantics-early-errors
 es6id: 13.7.1.1
 info: >
diff --git a/test/language/statements/for-in/labelled-fn-stmt-lhs.js b/test/language/statements/for-in/labelled-fn-stmt-lhs.js
index bc5f6490ce..7564b4cb6d 100644
--- a/test/language/statements/for-in/labelled-fn-stmt-lhs.js
+++ b/test/language/statements/for-in/labelled-fn-stmt-lhs.js
@@ -2,7 +2,9 @@
 // This code is governed by the BSD license found in the LICENSE file.
 /*---
 description: It is a Syntax Error if IsLabelledFunction(Statement) is true.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 esid: sec-semantics-static-semantics-early-errors
 es6id: 13.7.1.1
 info: >
diff --git a/test/language/statements/for-in/labelled-fn-stmt-var.js b/test/language/statements/for-in/labelled-fn-stmt-var.js
index 25a17fe36f..1ac8edb3db 100644
--- a/test/language/statements/for-in/labelled-fn-stmt-var.js
+++ b/test/language/statements/for-in/labelled-fn-stmt-var.js
@@ -2,7 +2,9 @@
 // This code is governed by the BSD license found in the LICENSE file.
 /*---
 description: It is a Syntax Error if IsLabelledFunction(Statement) is true.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 esid: sec-semantics-static-semantics-early-errors
 es6id: 13.7.1.1
 info: >
diff --git a/test/language/statements/for-of/decl-cls.js b/test/language/statements/for-of/decl-cls.js
index d33b4eb58e..4871ac9cf0 100644
--- a/test/language/statements/for-of/decl-cls.js
+++ b/test/language/statements/for-of/decl-cls.js
@@ -4,7 +4,9 @@
 description: Class declaration not allowed in statement position
 esid: sec-for-in-and-for-of-statements
 es6id: 13.7.5
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 for (var x of []) class C {}
diff --git a/test/language/statements/for-of/decl-const.js b/test/language/statements/for-of/decl-const.js
index 69d193185b..9c34b01234 100644
--- a/test/language/statements/for-of/decl-const.js
+++ b/test/language/statements/for-of/decl-const.js
@@ -4,7 +4,9 @@
 description: Lexical declaration (const) not allowed in statement position
 esid: sec-for-in-and-for-of-statements
 es6id: 13.7.5
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 for (var x of []) const y = null;
diff --git a/test/language/statements/for-of/decl-fun.js b/test/language/statements/for-of/decl-fun.js
index 8001c192e9..e2330dc155 100644
--- a/test/language/statements/for-of/decl-fun.js
+++ b/test/language/statements/for-of/decl-fun.js
@@ -4,7 +4,9 @@
 description: Function declaration not allowed in statement position
 esid: sec-for-in-and-for-of-statements
 es6id: 13.7.5
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 for (var x of []) function f() {}
diff --git a/test/language/statements/for-of/decl-gen.js b/test/language/statements/for-of/decl-gen.js
index eb4b3aab1f..1914167d27 100644
--- a/test/language/statements/for-of/decl-gen.js
+++ b/test/language/statements/for-of/decl-gen.js
@@ -4,7 +4,9 @@
 description: Generator declaration not allowed in statement position
 esid: sec-for-in-and-for-of-statements
 es6id: 13.7.5
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 for (var x of []) function* g() {}
diff --git a/test/language/statements/for-of/decl-let.js b/test/language/statements/for-of/decl-let.js
index 93cd0725de..a7fc8f2fd2 100644
--- a/test/language/statements/for-of/decl-let.js
+++ b/test/language/statements/for-of/decl-let.js
@@ -4,7 +4,9 @@
 description: Lexical declaration (let) not allowed in statement position
 esid: sec-for-in-and-for-of-statements
 es6id: 13.7.5
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 for (var x of []) let y;
diff --git a/test/language/statements/for-of/head-const-bound-names-dup.js b/test/language/statements/for-of/head-const-bound-names-dup.js
index 0fbfeeb269..38544ffc5b 100644
--- a/test/language/statements/for-of/head-const-bound-names-dup.js
+++ b/test/language/statements/for-of/head-const-bound-names-dup.js
@@ -2,7 +2,9 @@
 // This code is governed by the BSD license found in the LICENSE file.
 /*---
 description: The head's declaration may not contain duplicate entries
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 info: |
     It is a Syntax Error if the BoundNames of ForDeclaration contains any
     duplicate entries.
diff --git a/test/language/statements/for-of/head-const-bound-names-in-stmt.js b/test/language/statements/for-of/head-const-bound-names-in-stmt.js
index a9cafda4e3..7aad7a615a 100644
--- a/test/language/statements/for-of/head-const-bound-names-in-stmt.js
+++ b/test/language/statements/for-of/head-const-bound-names-in-stmt.js
@@ -2,7 +2,9 @@
 // This code is governed by the BSD license found in the LICENSE file.
 /*---
 description: The body may not re-declare variables declared in the head
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 info: |
     It is a Syntax Error if any element of the BoundNames of ForDeclaration
     also occurs in the VarDeclaredNames of Statement.
diff --git a/test/language/statements/for-of/head-const-bound-names-let.js b/test/language/statements/for-of/head-const-bound-names-let.js
index 07b2cbfea9..c6885f79bf 100644
--- a/test/language/statements/for-of/head-const-bound-names-let.js
+++ b/test/language/statements/for-of/head-const-bound-names-let.js
@@ -2,7 +2,9 @@
 // This code is governed by the BSD license found in the LICENSE file.
 /*---
 description: The declaration may not contain a binding for `let`
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 info: |
     It is a Syntax Error if the BoundNames of ForDeclaration contains "let".
 esid: sec-for-in-and-for-of-statements
diff --git a/test/language/statements/for-of/head-decl-no-expr.js b/test/language/statements/for-of/head-decl-no-expr.js
index 01da99998f..675a67d679 100644
--- a/test/language/statements/for-of/head-decl-no-expr.js
+++ b/test/language/statements/for-of/head-decl-no-expr.js
@@ -7,7 +7,9 @@ info: >
     IterationStatement :
         for ( ForDeclaration of AssignmentExpression ) Statement
 es6id: 13.7
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 for (let x of [], []) {}
diff --git a/test/language/statements/for-of/head-expr-no-expr.js b/test/language/statements/for-of/head-expr-no-expr.js
index 14e8e47bc4..1ecb7bab60 100644
--- a/test/language/statements/for-of/head-expr-no-expr.js
+++ b/test/language/statements/for-of/head-expr-no-expr.js
@@ -7,7 +7,9 @@ info: >
     IterationStatement :
         for ( LeftHandSideExpression of AssignmentExpression ) Statement
 es6id: 13.7
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var x;
diff --git a/test/language/statements/for-of/head-let-bound-names-dup.js b/test/language/statements/for-of/head-let-bound-names-dup.js
index 32bfb157b4..51fd365615 100644
--- a/test/language/statements/for-of/head-let-bound-names-dup.js
+++ b/test/language/statements/for-of/head-let-bound-names-dup.js
@@ -2,7 +2,9 @@
 // This code is governed by the BSD license found in the LICENSE file.
 /*---
 description: The head's declaration may not contain duplicate entries
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 info: |
     It is a Syntax Error if the BoundNames of ForDeclaration contains any
     duplicate entries.
diff --git a/test/language/statements/for-of/head-let-bound-names-in-stmt.js b/test/language/statements/for-of/head-let-bound-names-in-stmt.js
index eababe1a3e..42b512c4b2 100644
--- a/test/language/statements/for-of/head-let-bound-names-in-stmt.js
+++ b/test/language/statements/for-of/head-let-bound-names-in-stmt.js
@@ -2,7 +2,9 @@
 // This code is governed by the BSD license found in the LICENSE file.
 /*---
 description: The body may not re-declare variables declared in the head
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 info: |
     It is a Syntax Error if any element of the BoundNames of ForDeclaration
     also occurs in the VarDeclaredNames of Statement.
diff --git a/test/language/statements/for-of/head-let-bound-names-let.js b/test/language/statements/for-of/head-let-bound-names-let.js
index bff8bdbf56..b591bc504b 100644
--- a/test/language/statements/for-of/head-let-bound-names-let.js
+++ b/test/language/statements/for-of/head-let-bound-names-let.js
@@ -2,7 +2,9 @@
 // This code is governed by the BSD license found in the LICENSE file.
 /*---
 description: The declaration may not contain a binding for `let`
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 info: |
     It is a Syntax Error if the BoundNames of ForDeclaration contains "let".
 flags: [noStrict]
diff --git a/test/language/statements/for-of/head-lhs-cover-non-asnmt-trgt.js b/test/language/statements/for-of/head-lhs-cover-non-asnmt-trgt.js
index 7f7749ec79..025dd4fe15 100644
--- a/test/language/statements/for-of/head-lhs-cover-non-asnmt-trgt.js
+++ b/test/language/statements/for-of/head-lhs-cover-non-asnmt-trgt.js
@@ -14,7 +14,9 @@ info: >
     LeftHandSideExpression. This rule is recursively applied.
 esid: sec-for-in-and-for-of-statements-static-semantics-early-errors
 es6id: 13.7.5
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 for ((this) of []) {}
diff --git a/test/language/statements/for-of/head-lhs-invalid-asnmt-ptrn-ary.js b/test/language/statements/for-of/head-lhs-invalid-asnmt-ptrn-ary.js
index cde3f4ed2f..0092b720c2 100644
--- a/test/language/statements/for-of/head-lhs-invalid-asnmt-ptrn-ary.js
+++ b/test/language/statements/for-of/head-lhs-invalid-asnmt-ptrn-ary.js
@@ -10,7 +10,9 @@ info: >
     AssignmentPattern as the goal symbol.
 esid: sec-for-in-and-for-of-statements-static-semantics-early-errors
 es6id: 13.7.5
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 for ([(x, y)] of []) {}
diff --git a/test/language/statements/for-of/head-lhs-invalid-asnmt-ptrn-obj.js b/test/language/statements/for-of/head-lhs-invalid-asnmt-ptrn-obj.js
index 66562b56b4..81b881177c 100644
--- a/test/language/statements/for-of/head-lhs-invalid-asnmt-ptrn-obj.js
+++ b/test/language/statements/for-of/head-lhs-invalid-asnmt-ptrn-obj.js
@@ -10,7 +10,9 @@ info: >
     AssignmentPattern as the goal symbol.
 esid: sec-for-in-and-for-of-statements-static-semantics-early-errors
 es6id: 13.7.5
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 for ({ m() {} } of []) {}
diff --git a/test/language/statements/for-of/head-lhs-let.js b/test/language/statements/for-of/head-lhs-let.js
index 8c3e0fe2f6..baa4db286a 100644
--- a/test/language/statements/for-of/head-lhs-let.js
+++ b/test/language/statements/for-of/head-lhs-let.js
@@ -15,7 +15,9 @@ info: |
 
     for ( ForDeclaration[?Yield] of AssignmentExpression[+In, ?Yield] )
       Statement[?Yield, ?Return]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 for ( let of [] ) ;
diff --git a/test/language/statements/for-of/head-lhs-non-asnmt-trgt.js b/test/language/statements/for-of/head-lhs-non-asnmt-trgt.js
index 3b0868017b..a0dc7105b2 100644
--- a/test/language/statements/for-of/head-lhs-non-asnmt-trgt.js
+++ b/test/language/statements/for-of/head-lhs-non-asnmt-trgt.js
@@ -8,7 +8,9 @@ info: >
     LeftHandSideExpression is false.
 esid: sec-for-in-and-for-of-statements-static-semantics-early-errors
 es6id: 13.7.5
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 for (this of []) {}
diff --git a/test/language/statements/for-of/head-var-no-expr.js b/test/language/statements/for-of/head-var-no-expr.js
index f2de943db9..6e72ecd303 100644
--- a/test/language/statements/for-of/head-var-no-expr.js
+++ b/test/language/statements/for-of/head-var-no-expr.js
@@ -7,7 +7,9 @@ info: >
     IterationStatement :
         for ( var ForBinding of AssignmentExpression ) Statement
 es6id: 13.7
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 for (var x of [], []) {}
diff --git a/test/language/statements/for-of/labelled-fn-stmt-const.js b/test/language/statements/for-of/labelled-fn-stmt-const.js
index 09cd108e53..4442f3c452 100644
--- a/test/language/statements/for-of/labelled-fn-stmt-const.js
+++ b/test/language/statements/for-of/labelled-fn-stmt-const.js
@@ -2,7 +2,9 @@
 // This code is governed by the BSD license found in the LICENSE file.
 /*---
 description: It is a Syntax Error if IsLabelledFunction(Statement) is true.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 esid: sec-semantics-static-semantics-early-errors
 es6id: 13.7.1.1
 info: >
diff --git a/test/language/statements/for-of/labelled-fn-stmt-let.js b/test/language/statements/for-of/labelled-fn-stmt-let.js
index a4032965e0..3a6b518479 100644
--- a/test/language/statements/for-of/labelled-fn-stmt-let.js
+++ b/test/language/statements/for-of/labelled-fn-stmt-let.js
@@ -2,7 +2,9 @@
 // This code is governed by the BSD license found in the LICENSE file.
 /*---
 description: It is a Syntax Error if IsLabelledFunction(Statement) is true.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 esid: sec-semantics-static-semantics-early-errors
 es6id: 13.7.1.1
 info: >
diff --git a/test/language/statements/for-of/labelled-fn-stmt-lhs.js b/test/language/statements/for-of/labelled-fn-stmt-lhs.js
index 7873b6bd19..e0d2ef855c 100644
--- a/test/language/statements/for-of/labelled-fn-stmt-lhs.js
+++ b/test/language/statements/for-of/labelled-fn-stmt-lhs.js
@@ -2,7 +2,9 @@
 // This code is governed by the BSD license found in the LICENSE file.
 /*---
 description: It is a Syntax Error if IsLabelledFunction(Statement) is true.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 esid: sec-semantics-static-semantics-early-errors
 es6id: 13.7.1.1
 info: >
diff --git a/test/language/statements/for-of/labelled-fn-stmt-var.js b/test/language/statements/for-of/labelled-fn-stmt-var.js
index 11c13cfb7e..c174c5d2b1 100644
--- a/test/language/statements/for-of/labelled-fn-stmt-var.js
+++ b/test/language/statements/for-of/labelled-fn-stmt-var.js
@@ -2,7 +2,9 @@
 // This code is governed by the BSD license found in the LICENSE file.
 /*---
 description: It is a Syntax Error if IsLabelledFunction(Statement) is true.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 esid: sec-semantics-static-semantics-early-errors
 es6id: 13.7.1.1
 info: >
diff --git a/test/language/statements/for/S12.6.3_A11.1_T3.js b/test/language/statements/for/S12.6.3_A11.1_T3.js
index 686587b616..9428041171 100644
--- a/test/language/statements/for/S12.6.3_A11.1_T3.js
+++ b/test/language/statements/for/S12.6.3_A11.1_T3.js
@@ -8,7 +8,9 @@ info: >
     "var-loop" breaks
 es5id: 12.6.3_A11.1_T3
 description: Trying to continue non-existent label
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 __str="";
diff --git a/test/language/statements/for/S12.6.3_A11_T3.js b/test/language/statements/for/S12.6.3_A11_T3.js
index a3272871cb..2dfabdcccd 100644
--- a/test/language/statements/for/S12.6.3_A11_T3.js
+++ b/test/language/statements/for/S12.6.3_A11_T3.js
@@ -8,7 +8,9 @@ info: >
     breaks
 es5id: 12.6.3_A11_T3
 description: Trying to continue non-existent label
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 __str="";
diff --git a/test/language/statements/for/S12.6.3_A12.1_T3.js b/test/language/statements/for/S12.6.3_A12.1_T3.js
index b54efa56ce..51508b0bc3 100644
--- a/test/language/statements/for/S12.6.3_A12.1_T3.js
+++ b/test/language/statements/for/S12.6.3_A12.1_T3.js
@@ -8,7 +8,9 @@ info: >
     returned while evaluating a "var-loop"
 es5id: 12.6.3_A12.1_T3
 description: Trying to break non-existent label
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 __str="";
diff --git a/test/language/statements/for/S12.6.3_A12_T3.js b/test/language/statements/for/S12.6.3_A12_T3.js
index 42680be4d6..4c5d997ee2 100644
--- a/test/language/statements/for/S12.6.3_A12_T3.js
+++ b/test/language/statements/for/S12.6.3_A12_T3.js
@@ -8,7 +8,9 @@ info: >
     returned while evaluating a loop
 es5id: 12.6.3_A12_T3
 description: Trying to break non-existent label
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 __str="";
diff --git a/test/language/statements/for/S12.6.3_A4.1.js b/test/language/statements/for/S12.6.3_A4.1.js
index aa8b4dca22..c699257dde 100644
--- a/test/language/statements/for/S12.6.3_A4.1.js
+++ b/test/language/statements/for/S12.6.3_A4.1.js
@@ -8,7 +8,9 @@ info: >
     IterationStatement
 es5id: 12.6.3_A4.1
 description: Checking if execution of "for (var a in arr;1;){}" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 arr = [1,2,3,4,5];
diff --git a/test/language/statements/for/S12.6.3_A4_T1.js b/test/language/statements/for/S12.6.3_A4_T1.js
index d9654fa5f8..c8e355bb24 100644
--- a/test/language/statements/for/S12.6.3_A4_T1.js
+++ b/test/language/statements/for/S12.6.3_A4_T1.js
@@ -8,7 +8,9 @@ info: >
     IterationStatement
 es5id: 12.6.3_A4_T1
 description: Checking if execution of "for (a in arr;1;){}" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 arr = [1,2,3,4,5];
diff --git a/test/language/statements/for/S12.6.3_A4_T2.js b/test/language/statements/for/S12.6.3_A4_T2.js
index 0fe801b152..ccffa955b4 100644
--- a/test/language/statements/for/S12.6.3_A4_T2.js
+++ b/test/language/statements/for/S12.6.3_A4_T2.js
@@ -8,7 +8,9 @@ info: >
     IterationStatement
 es5id: 12.6.3_A4_T2
 description: Checking if execution of "for (1 in arr;1;){}" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 arr = [1,2,3,4,5];
diff --git a/test/language/statements/for/S12.6.3_A7.1_T1.js b/test/language/statements/for/S12.6.3_A7.1_T1.js
index 5b61708279..fba75344df 100644
--- a/test/language/statements/for/S12.6.3_A7.1_T1.js
+++ b/test/language/statements/for/S12.6.3_A7.1_T1.js
@@ -9,7 +9,9 @@ es5id: 12.6.3_A7.1_T1
 description: >
     Checking if execution of "for(var index=0; index<10; index++;
     index--)" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/language/statements/for/S12.6.3_A7.1_T2.js b/test/language/statements/for/S12.6.3_A7.1_T2.js
index 20cd21ef76..439ac887d0 100644
--- a/test/language/statements/for/S12.6.3_A7.1_T2.js
+++ b/test/language/statements/for/S12.6.3_A7.1_T2.js
@@ -9,7 +9,9 @@ es5id: 12.6.3_A7.1_T2
 description: >
     Checking if execution of "for(var index=0; index<10; index+=4;
     index++; index--)" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/language/statements/for/S12.6.3_A7_T1.js b/test/language/statements/for/S12.6.3_A7_T1.js
index 11189440ee..68eefb6dd7 100644
--- a/test/language/statements/for/S12.6.3_A7_T1.js
+++ b/test/language/statements/for/S12.6.3_A7_T1.js
@@ -9,7 +9,9 @@ es5id: 12.6.3_A7_T1
 description: >
     Checking if execution of "for(index=0; index<10; index++;
     index--)" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/language/statements/for/S12.6.3_A7_T2.js b/test/language/statements/for/S12.6.3_A7_T2.js
index 342a611457..81dd59e635 100644
--- a/test/language/statements/for/S12.6.3_A7_T2.js
+++ b/test/language/statements/for/S12.6.3_A7_T2.js
@@ -9,7 +9,9 @@ es5id: 12.6.3_A7_T2
 description: >
     Checking if execution of "for(index=0; index<10; index+=4;
     index++; index--)" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/language/statements/for/S12.6.3_A8.1_T1.js b/test/language/statements/for/S12.6.3_A8.1_T1.js
index eae1d63e70..788e5313fe 100644
--- a/test/language/statements/for/S12.6.3_A8.1_T1.js
+++ b/test/language/statements/for/S12.6.3_A8.1_T1.js
@@ -7,7 +7,9 @@ es5id: 12.6.3_A8.1_T1
 description: >
     Checking if execution of "for(var index=0; index<100; {index++;
     index*2;}) {  arr.add(""+index);}" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var arr = [];
diff --git a/test/language/statements/for/S12.6.3_A8.1_T2.js b/test/language/statements/for/S12.6.3_A8.1_T2.js
index d5774cd7bb..e5aa75eb31 100644
--- a/test/language/statements/for/S12.6.3_A8.1_T2.js
+++ b/test/language/statements/for/S12.6.3_A8.1_T2.js
@@ -7,7 +7,9 @@ es5id: 12.6.3_A8.1_T2
 description: >
     Checking if execution of "for(var index=0; {index++;index<100;};
     index*2;) {  arr.add(""+index);}" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var arr = [];
diff --git a/test/language/statements/for/S12.6.3_A8.1_T3.js b/test/language/statements/for/S12.6.3_A8.1_T3.js
index 2298869eb8..a4ca8ef743 100644
--- a/test/language/statements/for/S12.6.3_A8.1_T3.js
+++ b/test/language/statements/for/S12.6.3_A8.1_T3.js
@@ -7,7 +7,9 @@ es5id: 12.6.3_A8.1_T3
 description: >
     Checking if execution of "for({var index=0; index+=1;}
     index++<=10; index*2;) { arr.add(""+index);}" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var arr = [];
diff --git a/test/language/statements/for/S12.6.3_A8_T1.js b/test/language/statements/for/S12.6.3_A8_T1.js
index 90a8a52e3f..4c90bd6912 100644
--- a/test/language/statements/for/S12.6.3_A8_T1.js
+++ b/test/language/statements/for/S12.6.3_A8_T1.js
@@ -7,7 +7,9 @@ es5id: 12.6.3_A8_T1
 description: >
     Checking if execution of "for(index=0; index<100; {index++;
     index*2;}) {  arr.add(""+index);}" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var arr = [];
diff --git a/test/language/statements/for/S12.6.3_A8_T2.js b/test/language/statements/for/S12.6.3_A8_T2.js
index 8bb3742e9b..d307a29a4c 100644
--- a/test/language/statements/for/S12.6.3_A8_T2.js
+++ b/test/language/statements/for/S12.6.3_A8_T2.js
@@ -7,7 +7,9 @@ es5id: 12.6.3_A8_T2
 description: >
     Checking if execution of "for(index=0; {index++;index<100;};
     index*2;) {  arr.add(""+index);}" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var arr = [];
diff --git a/test/language/statements/for/S12.6.3_A8_T3.js b/test/language/statements/for/S12.6.3_A8_T3.js
index cea0f6099e..c29bcf3d2c 100644
--- a/test/language/statements/for/S12.6.3_A8_T3.js
+++ b/test/language/statements/for/S12.6.3_A8_T3.js
@@ -7,7 +7,9 @@ es5id: 12.6.3_A8_T3
 description: >
     Checking if execution of "for({index=0; index+=1;} index++<=10;
     index*2;) { arr.add(""+index);}" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var arr = [];
diff --git a/test/language/statements/for/decl-cls.js b/test/language/statements/for/decl-cls.js
index 54a6ffbc50..f3b9d9ba88 100644
--- a/test/language/statements/for/decl-cls.js
+++ b/test/language/statements/for/decl-cls.js
@@ -4,7 +4,9 @@
 description: Class declaration not allowed in statement position
 esid: sec-for-statement
 es6id: 13.7.4
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 for ( ; false; ) class C {}
diff --git a/test/language/statements/for/decl-const.js b/test/language/statements/for/decl-const.js
index 0c54e87741..ea599f0de5 100644
--- a/test/language/statements/for/decl-const.js
+++ b/test/language/statements/for/decl-const.js
@@ -4,7 +4,9 @@
 description: Lexical declaration (const) not allowed in statement position
 esid: sec-for-statement
 es6id: 13.7.4
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 for ( ; false; ) const x = null;
diff --git a/test/language/statements/for/decl-fun.js b/test/language/statements/for/decl-fun.js
index ef3005a5c0..6ae66fc468 100644
--- a/test/language/statements/for/decl-fun.js
+++ b/test/language/statements/for/decl-fun.js
@@ -4,7 +4,9 @@
 description: Function declaration not allowed in statement position
 esid: sec-for-statement
 es6id: 13.7.4
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 for ( ; false; ) function f() {}
diff --git a/test/language/statements/for/decl-gen.js b/test/language/statements/for/decl-gen.js
index 30a02fa163..6d427ac666 100644
--- a/test/language/statements/for/decl-gen.js
+++ b/test/language/statements/for/decl-gen.js
@@ -4,7 +4,9 @@
 description: Generator declaration not allowed in statement position
 esid: sec-for-statement
 es6id: 13.7.4
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 for ( ; false; ) function* g() {}
diff --git a/test/language/statements/for/decl-let.js b/test/language/statements/for/decl-let.js
index 9b40c281d4..7e65f0261e 100644
--- a/test/language/statements/for/decl-let.js
+++ b/test/language/statements/for/decl-let.js
@@ -4,7 +4,9 @@
 description: Lexical declaration (let) not allowed in statement position
 esid: sec-for-statement
 es6id: 13.7.4
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 for ( ; false; ) let x;
diff --git a/test/language/statements/for/head-const-bound-names-in-stmt.js b/test/language/statements/for/head-const-bound-names-in-stmt.js
index 65ad8dde24..793d427a9c 100644
--- a/test/language/statements/for/head-const-bound-names-in-stmt.js
+++ b/test/language/statements/for/head-const-bound-names-in-stmt.js
@@ -8,7 +8,9 @@ info: |
 
     It is a Syntax Error if any element of the BoundNames of LexicalDeclaration
     also occurs in the VarDeclaredNames of Statement.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 esid: sec-for-statement
 es6id: 13.7.4
 ---*/
diff --git a/test/language/statements/for/head-let-bound-names-in-stmt.js b/test/language/statements/for/head-let-bound-names-in-stmt.js
index e026d4edf8..c2a6acb1e6 100644
--- a/test/language/statements/for/head-let-bound-names-in-stmt.js
+++ b/test/language/statements/for/head-let-bound-names-in-stmt.js
@@ -8,7 +8,9 @@ info: |
 
     It is a Syntax Error if any element of the BoundNames of LexicalDeclaration
     also occurs in the VarDeclaredNames of Statement.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 esid: sec-for-statement
 es6id: 13.7.4
 ---*/
diff --git a/test/language/statements/for/labelled-fn-stmt-const.js b/test/language/statements/for/labelled-fn-stmt-const.js
index ec6bfccffa..d198573ae3 100644
--- a/test/language/statements/for/labelled-fn-stmt-const.js
+++ b/test/language/statements/for/labelled-fn-stmt-const.js
@@ -2,7 +2,9 @@
 // This code is governed by the BSD license found in the LICENSE file.
 /*---
 description: It is a Syntax Error if IsLabelledFunction(Statement) is true.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 esid: sec-semantics-static-semantics-early-errors
 es6id: 13.7.1.1
 info: >
diff --git a/test/language/statements/for/labelled-fn-stmt-expr.js b/test/language/statements/for/labelled-fn-stmt-expr.js
index 80cd61dcd1..86aaa01a08 100644
--- a/test/language/statements/for/labelled-fn-stmt-expr.js
+++ b/test/language/statements/for/labelled-fn-stmt-expr.js
@@ -2,7 +2,9 @@
 // This code is governed by the BSD license found in the LICENSE file.
 /*---
 description: It is a Syntax Error if IsLabelledFunction(Statement) is true.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 esid: sec-semantics-static-semantics-early-errors
 es6id: 13.7.1.1
 info: >
diff --git a/test/language/statements/for/labelled-fn-stmt-let.js b/test/language/statements/for/labelled-fn-stmt-let.js
index 9ac16eaf56..47b14c01e2 100644
--- a/test/language/statements/for/labelled-fn-stmt-let.js
+++ b/test/language/statements/for/labelled-fn-stmt-let.js
@@ -2,7 +2,9 @@
 // This code is governed by the BSD license found in the LICENSE file.
 /*---
 description: It is a Syntax Error if IsLabelledFunction(Statement) is true.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 esid: sec-semantics-static-semantics-early-errors
 es6id: 13.7.1.1
 info: >
diff --git a/test/language/statements/for/labelled-fn-stmt-var.js b/test/language/statements/for/labelled-fn-stmt-var.js
index 58c08f623a..c1ea93bb40 100644
--- a/test/language/statements/for/labelled-fn-stmt-var.js
+++ b/test/language/statements/for/labelled-fn-stmt-var.js
@@ -2,7 +2,9 @@
 // This code is governed by the BSD license found in the LICENSE file.
 /*---
 description: It is a Syntax Error if IsLabelledFunction(Statement) is true.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 esid: sec-semantics-static-semantics-early-errors
 es6id: 13.7.1.1
 info: >
diff --git a/test/language/statements/function/13.0_4-5gs.js b/test/language/statements/function/13.0_4-5gs.js
index 325748e671..74ca27c4b9 100644
--- a/test/language/statements/function/13.0_4-5gs.js
+++ b/test/language/statements/function/13.0_4-5gs.js
@@ -6,7 +6,9 @@ es5id: 13.0_4-5gs
 description: >
     Strict Mode - SourceElements is evaluated as strict mode code when
     a FunctionDeclaration is contained in strict mode code
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [onlyStrict]
 ---*/
 
diff --git a/test/language/statements/function/13.1-13gs.js b/test/language/statements/function/13.1-13gs.js
index a39cfaa17d..585803950d 100644
--- a/test/language/statements/function/13.1-13gs.js
+++ b/test/language/statements/function/13.1-13gs.js
@@ -6,7 +6,9 @@ es5id: 13.1-13gs
 description: >
     StrictMode - SyntaxError is thrown if 'arguments' occurs as the
     Identifier of a FunctionDeclaration
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [onlyStrict]
 ---*/
 
diff --git a/test/language/statements/function/13.1-1gs.js b/test/language/statements/function/13.1-1gs.js
index 0dbfb45670..87e05d48a1 100644
--- a/test/language/statements/function/13.1-1gs.js
+++ b/test/language/statements/function/13.1-1gs.js
@@ -7,7 +7,9 @@ description: >
     Strict Mode - SyntaxError is thrown if the identifier 'eval'
     appears within a FormalParameterList of a strict mode
     FunctionDeclaration
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [onlyStrict]
 ---*/
 
diff --git a/test/language/statements/function/13.1-4gs.js b/test/language/statements/function/13.1-4gs.js
index e7726c47eb..8e97c1e13b 100644
--- a/test/language/statements/function/13.1-4gs.js
+++ b/test/language/statements/function/13.1-4gs.js
@@ -7,7 +7,9 @@ description: >
     Strict Mode - SyntaxError is thrown if the identifier 'arguments'
     appears within a FormalParameterList of a strict mode
     FunctionExpression
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [onlyStrict]
 ---*/
 
diff --git a/test/language/statements/function/13.1-5gs.js b/test/language/statements/function/13.1-5gs.js
index 27c9026195..c274c9503f 100644
--- a/test/language/statements/function/13.1-5gs.js
+++ b/test/language/statements/function/13.1-5gs.js
@@ -6,7 +6,9 @@ es5id: 13.1-5gs
 description: >
     Strict Mode - SyntaxError is thrown if a FunctionDeclaration has
     two identical parameters
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [onlyStrict]
 ---*/
 
diff --git a/test/language/statements/function/13.1-8gs.js b/test/language/statements/function/13.1-8gs.js
index a2c54ffdc4..b7d6a7a45a 100644
--- a/test/language/statements/function/13.1-8gs.js
+++ b/test/language/statements/function/13.1-8gs.js
@@ -6,7 +6,9 @@ es5id: 13.1-8gs
 description: >
     Strict Mode - SyntaxError is thrown if a FunctionExpression has
     two identical parameters
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [onlyStrict]
 ---*/
 
diff --git a/test/language/statements/function/S13_A7_T3.js b/test/language/statements/function/S13_A7_T3.js
index 315edd9470..81926f1006 100644
--- a/test/language/statements/function/S13_A7_T3.js
+++ b/test/language/statements/function/S13_A7_T3.js
@@ -5,7 +5,9 @@
 info: The FunctionBody must be SourceElements
 es5id: 13_A7_T3
 description: Checking if execution of "function __func(){\A\B\C}" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 function __func(){\A\B\C};
diff --git a/test/language/statements/function/early-body-super-call.js b/test/language/statements/function/early-body-super-call.js
index fa3c2a24d2..23380b0291 100644
--- a/test/language/statements/function/early-body-super-call.js
+++ b/test/language/statements/function/early-body-super-call.js
@@ -6,7 +6,9 @@ es6id: 14.1.2
 description: Body may not contain a "super" call
 info: >
   It is a Syntax Error if FunctionBody Contains SuperCall is true.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 function f() {
diff --git a/test/language/statements/function/early-body-super-prop.js b/test/language/statements/function/early-body-super-prop.js
index b1602ff856..3fc7f900a6 100644
--- a/test/language/statements/function/early-body-super-prop.js
+++ b/test/language/statements/function/early-body-super-prop.js
@@ -6,7 +6,9 @@ es6id: 14.1.2
 description: Body may not contain a "super" property reference
 info: >
   It is a Syntax Error if FunctionBody Contains SuperProperty is true.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 function f() {
diff --git a/test/language/statements/function/early-params-super-call.js b/test/language/statements/function/early-params-super-call.js
index be1ff3d6e4..ce762e6b96 100644
--- a/test/language/statements/function/early-params-super-call.js
+++ b/test/language/statements/function/early-params-super-call.js
@@ -6,7 +6,9 @@ es6id: 14.1.2
 description: Parameters may not contain a "super" call
 info: >
   It is a Syntax Error if FormalParameters Contains SuperProperty is true.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 function f(x = super()) {}
diff --git a/test/language/statements/function/early-params-super-prop.js b/test/language/statements/function/early-params-super-prop.js
index 2dbe965d87..829470b7e4 100644
--- a/test/language/statements/function/early-params-super-prop.js
+++ b/test/language/statements/function/early-params-super-prop.js
@@ -6,7 +6,9 @@ es6id: 14.1.2
 description: Parameters may not contain a "super" property reference
 info: >
   It is a Syntax Error if FunctionBody Contains SuperProperty is true.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 function f(x = super.x) {}
diff --git a/test/language/statements/function/param-dflt-yield-strict.js b/test/language/statements/function/param-dflt-yield-strict.js
index 39a14ad1d4..f2dd00ab2b 100644
--- a/test/language/statements/function/param-dflt-yield-strict.js
+++ b/test/language/statements/function/param-dflt-yield-strict.js
@@ -11,7 +11,9 @@ info: |
     function BindingIdentifier[?Yield] ( FormalParameters ) { FunctionBody }
 features: [generators, default-parameters]
 flags: [onlyStrict]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 function *g() {
diff --git a/test/language/statements/function/use-strict-with-non-simple-param.js b/test/language/statements/function/use-strict-with-non-simple-param.js
index 91efcc18e3..13821eb24d 100755
--- a/test/language/statements/function/use-strict-with-non-simple-param.js
+++ b/test/language/statements/function/use-strict-with-non-simple-param.js
@@ -9,7 +9,9 @@ info: >
   Static Semantics: Early Errors
 
   It is a Syntax Error if ContainsUseStrict of FunctionBody is true and IsSimpleParameterList of FormalParameters is false.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 function f(a = 0) {
diff --git a/test/language/statements/generators/param-dflt-yield.js b/test/language/statements/generators/param-dflt-yield.js
index 6df68b3beb..5d7cc7e561 100644
--- a/test/language/statements/generators/param-dflt-yield.js
+++ b/test/language/statements/generators/param-dflt-yield.js
@@ -14,7 +14,9 @@ info: |
   function because any expressions that are part of FormalParameters are
   evaluated before the resulting generator object is in a resumable state.
 features: [default-parameters]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 function* g(x = yield) {}
diff --git a/test/language/statements/generators/use-strict-with-non-simple-param.js b/test/language/statements/generators/use-strict-with-non-simple-param.js
index 1fc9b13ef7..91dd8c8592 100755
--- a/test/language/statements/generators/use-strict-with-non-simple-param.js
+++ b/test/language/statements/generators/use-strict-with-non-simple-param.js
@@ -9,7 +9,9 @@ info: >
   Static Semantics: Early Errors
 
   It is a Syntax Error if ContainsUseStrict of GeneratorBody is true and IsSimpleParameterList of FormalParameters is false.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 function* f(a = 0) {
diff --git a/test/language/statements/generators/yield-as-binding-identifier.js b/test/language/statements/generators/yield-as-binding-identifier.js
index fa7cc86cd0..e450378779 100644
--- a/test/language/statements/generators/yield-as-binding-identifier.js
+++ b/test/language/statements/generators/yield-as-binding-identifier.js
@@ -6,7 +6,9 @@
       `yield` is a reserved keyword within generator function bodies and may
       not be used as a binding identifier.
   es6id: 12.1.1
-  negative: SyntaxError
+  negative:
+    phase: early
+    type: SyntaxError
  ---*/
 
 var result;
diff --git a/test/language/statements/generators/yield-as-label.js b/test/language/statements/generators/yield-as-label.js
index 21ad2760c4..0da2b9a424 100644
--- a/test/language/statements/generators/yield-as-label.js
+++ b/test/language/statements/generators/yield-as-label.js
@@ -6,7 +6,9 @@
       `yield` is a reserved keyword within generator function bodies and may
       not be used as a label.
   es6id: 12.1.1
-  negative: SyntaxError
+  negative:
+    phase: early
+    type: SyntaxError
  ---*/
 
 function* g() {
diff --git a/test/language/statements/generators/yield-as-logical-or-expression.js b/test/language/statements/generators/yield-as-logical-or-expression.js
index 2ebb34402f..d77b31584c 100644
--- a/test/language/statements/generators/yield-as-logical-or-expression.js
+++ b/test/language/statements/generators/yield-as-logical-or-expression.js
@@ -5,7 +5,9 @@
   description: >
       `yield` expressions are not LogicalOrExpressions.
   es6id: 12.1.1
-  negative: SyntaxError
+  negative:
+    phase: early
+    type: SyntaxError
  ---*/
 
 
diff --git a/test/language/statements/generators/yield-as-parameter.js b/test/language/statements/generators/yield-as-parameter.js
index 0b7c04ba05..1ced6fbb24 100644
--- a/test/language/statements/generators/yield-as-parameter.js
+++ b/test/language/statements/generators/yield-as-parameter.js
@@ -6,7 +6,9 @@
       `yield` is a reserved keyword within generator function bodies and may
       not be used as the binding identifier of a parameter.
   es6id: 12.1.1
-  negative: SyntaxError
+  negative:
+    phase: early
+    type: SyntaxError
  ---*/
 
 function* g(yield) {}
diff --git a/test/language/statements/generators/yield-star-after-newline.js b/test/language/statements/generators/yield-star-after-newline.js
index 0f4f65c558..88d72db5c0 100644
--- a/test/language/statements/generators/yield-star-after-newline.js
+++ b/test/language/statements/generators/yield-star-after-newline.js
@@ -5,7 +5,9 @@
   description: >
       A newline may not precede the `*` token in a `yield` expression.
   es6id: 14.4
-  negative: SyntaxError
+  negative:
+    phase: early
+    type: SyntaxError
  ---*/
 
 function* g() {
diff --git a/test/language/statements/generators/yield-weak-binding.js b/test/language/statements/generators/yield-weak-binding.js
index 6fab61a33c..5b5c2a1c56 100644
--- a/test/language/statements/generators/yield-weak-binding.js
+++ b/test/language/statements/generators/yield-weak-binding.js
@@ -5,7 +5,9 @@
   description: >
       `yield` expressions bind weakly
   es6id: 14.4
-  negative: SyntaxError
+  negative:
+    phase: early
+    type: SyntaxError
  ---*/
 
 function* g() { yield 3 + yield 4; }
diff --git a/test/language/statements/if/S12.5_A11.js b/test/language/statements/if/S12.5_A11.js
index a574356ea8..322cd0b752 100644
--- a/test/language/statements/if/S12.5_A11.js
+++ b/test/language/statements/if/S12.5_A11.js
@@ -5,7 +5,9 @@
 info: "{} within the \"if\" expression is not allowed"
 es5id: 12.5_A11
 description: Checking if execution of "if({1})" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/language/statements/if/S12.5_A6_T1.js b/test/language/statements/if/S12.5_A6_T1.js
index 0eef08663a..b31fb3a799 100644
--- a/test/language/statements/if/S12.5_A6_T1.js
+++ b/test/language/statements/if/S12.5_A6_T1.js
@@ -5,7 +5,9 @@
 info: In the If statement expression must be enclosed in braces
 es5id: 12.5_A6_T1
 description: Checking if execution of "if true" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/language/statements/if/S12.5_A6_T2.js b/test/language/statements/if/S12.5_A6_T2.js
index f555ef988c..fb5f29796d 100644
--- a/test/language/statements/if/S12.5_A6_T2.js
+++ b/test/language/statements/if/S12.5_A6_T2.js
@@ -5,7 +5,9 @@
 info: In the If statement expression must be enclosed in braces
 es5id: 12.5_A6_T2
 description: Checking if execution of "if false" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/language/statements/if/S12.5_A8.js b/test/language/statements/if/S12.5_A8.js
index f4488788e6..dc0a087c32 100644
--- a/test/language/statements/if/S12.5_A8.js
+++ b/test/language/statements/if/S12.5_A8.js
@@ -5,7 +5,9 @@
 info: In the "if" Statement empty expression is not allowed
 es5id: 12.5_A8
 description: Checking if execution of "if()" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/language/statements/if/if-cls-else-cls.js b/test/language/statements/if/if-cls-else-cls.js
index 16e6728367..dad1387b66 100644
--- a/test/language/statements/if/if-cls-else-cls.js
+++ b/test/language/statements/if/if-cls-else-cls.js
@@ -4,7 +4,9 @@
 description: Class declaration not allowed in statement position
 esid: sec-if-statement
 es6id: 13.6
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 if (true) class C {} else class D {}
diff --git a/test/language/statements/if/if-cls-else-stmt.js b/test/language/statements/if/if-cls-else-stmt.js
index 1c5fdca986..7aef0ed565 100644
--- a/test/language/statements/if/if-cls-else-stmt.js
+++ b/test/language/statements/if/if-cls-else-stmt.js
@@ -4,7 +4,9 @@
 description: Class declaration not allowed in statement position
 esid: sec-if-statement
 es6id: 13.6
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 if (true) class C {} else ;
diff --git a/test/language/statements/if/if-cls-no-else.js b/test/language/statements/if/if-cls-no-else.js
index 49956bf38c..0d3da48837 100644
--- a/test/language/statements/if/if-cls-no-else.js
+++ b/test/language/statements/if/if-cls-no-else.js
@@ -4,7 +4,9 @@
 description: Class declaration not allowed in statement position
 esid: sec-if-statement
 es6id: 13.6
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 if (true) class C {}
diff --git a/test/language/statements/if/if-const-else-const.js b/test/language/statements/if/if-const-else-const.js
index fba8cdbadf..1612733656 100644
--- a/test/language/statements/if/if-const-else-const.js
+++ b/test/language/statements/if/if-const-else-const.js
@@ -4,7 +4,9 @@
 description: Lexical declaration (const) not allowed in statement position
 esid: sec-if-statement
 es6id: 13.6
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 if (true) const x = null; else const y = null;
diff --git a/test/language/statements/if/if-const-else-stmt.js b/test/language/statements/if/if-const-else-stmt.js
index e051c1726c..f95e1a3bce 100644
--- a/test/language/statements/if/if-const-else-stmt.js
+++ b/test/language/statements/if/if-const-else-stmt.js
@@ -4,7 +4,9 @@
 description: Lexical declaration (const) not allowed in statement position
 esid: sec-if-statement
 es6id: 13.6
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 if (true) const x = null; else ;
diff --git a/test/language/statements/if/if-const-no-else.js b/test/language/statements/if/if-const-no-else.js
index 317751f4e4..b50b138109 100644
--- a/test/language/statements/if/if-const-no-else.js
+++ b/test/language/statements/if/if-const-no-else.js
@@ -4,7 +4,9 @@
 description: Lexical declaration (const) not allowed in statement position
 esid: sec-if-statement
 es6id: 13.6
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 if (true) const x = null;
diff --git a/test/language/statements/if/if-decl-else-decl-strict.js b/test/language/statements/if/if-decl-else-decl-strict.js
index f510ab911e..8304624ff6 100644
--- a/test/language/statements/if/if-decl-else-decl-strict.js
+++ b/test/language/statements/if/if-decl-else-decl-strict.js
@@ -4,7 +4,9 @@
 description: AnnexB extension not honored in strict mode (IfStatement with a declaration in both statement positions in the global scope)
 es6id: B.3.4
 flags: [onlyStrict]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 info: >
     The following rules for IfStatement augment those in 13.6:
     
diff --git a/test/language/statements/if/if-decl-else-stmt-strict.js b/test/language/statements/if/if-decl-else-stmt-strict.js
index 3303fdcade..a44d3566f5 100644
--- a/test/language/statements/if/if-decl-else-stmt-strict.js
+++ b/test/language/statements/if/if-decl-else-stmt-strict.js
@@ -4,7 +4,9 @@
 description: AnnexB extension not honored in strict mode (IfStatement with a declaration in the first statement position in the global scope)
 es6id: B.3.4
 flags: [onlyStrict]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 info: >
     The following rules for IfStatement augment those in 13.6:
     
diff --git a/test/language/statements/if/if-decl-no-else-strict.js b/test/language/statements/if/if-decl-no-else-strict.js
index 22001387f1..6e6ce0b5f9 100644
--- a/test/language/statements/if/if-decl-no-else-strict.js
+++ b/test/language/statements/if/if-decl-no-else-strict.js
@@ -4,7 +4,9 @@
 description: AnnexB extension not honored in strict mode (IfStatement without an else clause in the global scope)
 es6id: B.3.4
 flags: [onlyStrict]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 info: >
     The following rules for IfStatement augment those in 13.6:
     
diff --git a/test/language/statements/if/if-fun-else-fun-strict.js b/test/language/statements/if/if-fun-else-fun-strict.js
index f6f5837874..5242b83c68 100644
--- a/test/language/statements/if/if-fun-else-fun-strict.js
+++ b/test/language/statements/if/if-fun-else-fun-strict.js
@@ -5,7 +5,9 @@ description: AnnexB extension not honored in strict mode (IfStatement with a dec
 esid: sec-if-statement
 es6id: 13.6
 flags: [onlyStrict]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 info: >
     The following rules for IfStatement augment those in 13.6:
 
diff --git a/test/language/statements/if/if-fun-else-stmt-strict.js b/test/language/statements/if/if-fun-else-stmt-strict.js
index fcb8da8deb..d82cc8c709 100644
--- a/test/language/statements/if/if-fun-else-stmt-strict.js
+++ b/test/language/statements/if/if-fun-else-stmt-strict.js
@@ -5,7 +5,9 @@ description: AnnexB extension not honored in strict mode (IfStatement with a dec
 esid: sec-if-statement
 es6id: 13.6
 flags: [onlyStrict]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 info: >
     The following rules for IfStatement augment those in 13.6:
 
diff --git a/test/language/statements/if/if-fun-no-else-strict.js b/test/language/statements/if/if-fun-no-else-strict.js
index 7e1199e363..0e30a9f622 100644
--- a/test/language/statements/if/if-fun-no-else-strict.js
+++ b/test/language/statements/if/if-fun-no-else-strict.js
@@ -5,7 +5,9 @@ description: AnnexB extension not honored in strict mode (IfStatement without an
 esid: sec-if-statement
 es6id: 13.6
 flags: [onlyStrict]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 info: >
     The following rules for IfStatement augment those in 13.6:
 
diff --git a/test/language/statements/if/if-gen-else-gen.js b/test/language/statements/if/if-gen-else-gen.js
index 438b1e2cb6..9d6517d44a 100644
--- a/test/language/statements/if/if-gen-else-gen.js
+++ b/test/language/statements/if/if-gen-else-gen.js
@@ -4,7 +4,9 @@
 description: Generator declaration not allowed in statement position
 esid: sec-if-statement
 es6id: 13.6
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 if (true) function* g() {  } else function* _g() {}
diff --git a/test/language/statements/if/if-gen-else-stmt.js b/test/language/statements/if/if-gen-else-stmt.js
index a39b393374..d735c65fe8 100644
--- a/test/language/statements/if/if-gen-else-stmt.js
+++ b/test/language/statements/if/if-gen-else-stmt.js
@@ -4,7 +4,9 @@
 description: Generator declaration not allowed in statement position
 esid: sec-if-statement
 es6id: 13.6
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 if (true) function* g() {  } else ;
diff --git a/test/language/statements/if/if-gen-no-else.js b/test/language/statements/if/if-gen-no-else.js
index 5a90a93a5a..8f575bae7f 100644
--- a/test/language/statements/if/if-gen-no-else.js
+++ b/test/language/statements/if/if-gen-no-else.js
@@ -4,7 +4,9 @@
 description: Generator declaration not allowed in statement position
 esid: sec-if-statement
 es6id: 13.6
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 if (true) function* g() {  }
diff --git a/test/language/statements/if/if-let-else-let.js b/test/language/statements/if/if-let-else-let.js
index 4991327704..ef7eef79c2 100644
--- a/test/language/statements/if/if-let-else-let.js
+++ b/test/language/statements/if/if-let-else-let.js
@@ -4,7 +4,9 @@
 description: Lexical declaration (let) not allowed in statement position
 esid: sec-if-statement
 es6id: 13.6
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 if (true) let x; else let y;
diff --git a/test/language/statements/if/if-let-else-stmt.js b/test/language/statements/if/if-let-else-stmt.js
index 065476cb9b..638a8eff81 100644
--- a/test/language/statements/if/if-let-else-stmt.js
+++ b/test/language/statements/if/if-let-else-stmt.js
@@ -4,7 +4,9 @@
 description: Lexical declaration (let) not allowed in statement position
 esid: sec-if-statement
 es6id: 13.6
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 if (true) let x; else ;
diff --git a/test/language/statements/if/if-let-no-else.js b/test/language/statements/if/if-let-no-else.js
index c24f675ea2..634a61b1d3 100644
--- a/test/language/statements/if/if-let-no-else.js
+++ b/test/language/statements/if/if-let-no-else.js
@@ -4,7 +4,9 @@
 description: Lexical declaration (let) not allowed in statement position
 esid: sec-if-statement
 es6id: 13.6
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 if (true) let x;
diff --git a/test/language/statements/if/if-stmt-else-cls.js b/test/language/statements/if/if-stmt-else-cls.js
index 2d05e58d8a..9ddb252fd5 100644
--- a/test/language/statements/if/if-stmt-else-cls.js
+++ b/test/language/statements/if/if-stmt-else-cls.js
@@ -4,7 +4,9 @@
 description: Class declaration not allowed in statement position
 esid: sec-if-statement
 es6id: 13.6
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 if (false) ; else class C {}
diff --git a/test/language/statements/if/if-stmt-else-const.js b/test/language/statements/if/if-stmt-else-const.js
index e8746d34db..21dc19451f 100644
--- a/test/language/statements/if/if-stmt-else-const.js
+++ b/test/language/statements/if/if-stmt-else-const.js
@@ -4,7 +4,9 @@
 description: Lexical declaration (const) not allowed in statement position
 esid: sec-if-statement
 es6id: 13.6
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 if (false) ; else const x = null;
diff --git a/test/language/statements/if/if-stmt-else-decl-strict.js b/test/language/statements/if/if-stmt-else-decl-strict.js
index fc7ad50daa..4db206e30d 100644
--- a/test/language/statements/if/if-stmt-else-decl-strict.js
+++ b/test/language/statements/if/if-stmt-else-decl-strict.js
@@ -4,7 +4,9 @@
 description: AnnexB extension not honored in strict mode (IfStatement with a declaration in the second statement position in the global scope)
 es6id: B.3.4
 flags: [onlyStrict]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 info: >
     The following rules for IfStatement augment those in 13.6:
     
diff --git a/test/language/statements/if/if-stmt-else-fun-strict.js b/test/language/statements/if/if-stmt-else-fun-strict.js
index 80326edf3e..d9610f50dc 100644
--- a/test/language/statements/if/if-stmt-else-fun-strict.js
+++ b/test/language/statements/if/if-stmt-else-fun-strict.js
@@ -5,7 +5,9 @@ description: AnnexB extension not honored in strict mode (IfStatement with a dec
 esid: sec-if-statement
 es6id: 13.6
 flags: [onlyStrict]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 info: >
     The following rules for IfStatement augment those in 13.6:
 
diff --git a/test/language/statements/if/if-stmt-else-gen.js b/test/language/statements/if/if-stmt-else-gen.js
index d5a158e294..7579651aed 100644
--- a/test/language/statements/if/if-stmt-else-gen.js
+++ b/test/language/statements/if/if-stmt-else-gen.js
@@ -4,7 +4,9 @@
 description: Generator declaration not allowed in statement position
 esid: sec-if-statement
 es6id: 13.6
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 if (false) ; else function* g() {  }
diff --git a/test/language/statements/if/if-stmt-else-let.js b/test/language/statements/if/if-stmt-else-let.js
index 28cd5a74ac..78016c57eb 100644
--- a/test/language/statements/if/if-stmt-else-let.js
+++ b/test/language/statements/if/if-stmt-else-let.js
@@ -4,7 +4,9 @@
 description: Lexical declaration (let) not allowed in statement position
 esid: sec-if-statement
 es6id: 13.6
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 if (false) ; else let x;
diff --git a/test/language/statements/if/labelled-fn-stmt-first.js b/test/language/statements/if/labelled-fn-stmt-first.js
index b17aaafec8..6d930fc05b 100644
--- a/test/language/statements/if/labelled-fn-stmt-first.js
+++ b/test/language/statements/if/labelled-fn-stmt-first.js
@@ -19,7 +19,9 @@ info: |
 
   In the absence of Annex B.3.2, a SyntaxError should be produced due to the
   labelled function declaration itself.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 if (false) label1: label2: function test262() {} else ;
diff --git a/test/language/statements/if/labelled-fn-stmt-lone.js b/test/language/statements/if/labelled-fn-stmt-lone.js
index c6e03f3700..50a627c0fa 100644
--- a/test/language/statements/if/labelled-fn-stmt-lone.js
+++ b/test/language/statements/if/labelled-fn-stmt-lone.js
@@ -19,7 +19,9 @@ info: |
 
   In the absence of Annex B.3.2, a SyntaxError should be produced due to the
   labelled function declaration itself.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 if (false) label1: label2: function test262() {}
diff --git a/test/language/statements/if/labelled-fn-stmt-second.js b/test/language/statements/if/labelled-fn-stmt-second.js
index 6433ce9dd4..559ad47abd 100644
--- a/test/language/statements/if/labelled-fn-stmt-second.js
+++ b/test/language/statements/if/labelled-fn-stmt-second.js
@@ -19,7 +19,9 @@ info: |
 
   In the absence of Annex B.3.2, a SyntaxError should be produced due to the
   labelled function declaration itself.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 if (true) ; else label1: label2: function test262() {}
diff --git a/test/language/statements/labeled/continue.js b/test/language/statements/labeled/continue.js
index 315718a4cc..3c2f4a84e4 100644
--- a/test/language/statements/labeled/continue.js
+++ b/test/language/statements/labeled/continue.js
@@ -13,7 +13,9 @@ info: |
   2. Let newLabelSet be a copy of labelSet with label appended.
   3. Return ContainsUndefinedContinueTarget of LabelledItem with arguments
      iterationSet and newLabelSet. negative: SyntaxError
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 do {
diff --git a/test/language/statements/labeled/decl-cls.js b/test/language/statements/labeled/decl-cls.js
index 5b94766564..a3ab64d758 100644
--- a/test/language/statements/labeled/decl-cls.js
+++ b/test/language/statements/labeled/decl-cls.js
@@ -4,7 +4,9 @@
 description: Class declaration not allowed in statement position
 esid: sec-labelled-statements
 es6id: 13.13
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 label: class C {}
diff --git a/test/language/statements/labeled/decl-const.js b/test/language/statements/labeled/decl-const.js
index 0cbc8f8693..18e38c3012 100644
--- a/test/language/statements/labeled/decl-const.js
+++ b/test/language/statements/labeled/decl-const.js
@@ -4,7 +4,9 @@
 description: Lexical declaration (const) not allowed in statement position
 esid: sec-labelled-statements
 es6id: 13.13
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 label: const x = null;
diff --git a/test/language/statements/labeled/decl-fun-strict.js b/test/language/statements/labeled/decl-fun-strict.js
index edbf6a3d0d..400d0950d2 100644
--- a/test/language/statements/labeled/decl-fun-strict.js
+++ b/test/language/statements/labeled/decl-fun-strict.js
@@ -7,7 +7,9 @@ description: >
     function declarations in statement position in strict mode:
     label: Statement
 flags: [onlyStrict]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 label: function g() {}
diff --git a/test/language/statements/labeled/decl-gen.js b/test/language/statements/labeled/decl-gen.js
index 7ba25d863e..7a361e2261 100644
--- a/test/language/statements/labeled/decl-gen.js
+++ b/test/language/statements/labeled/decl-gen.js
@@ -4,7 +4,9 @@
 description: Generator declaration not allowed in statement position
 esid: sec-labelled-statements
 es6id: 13.13
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 label: function* g() {}
diff --git a/test/language/statements/labeled/decl-let.js b/test/language/statements/labeled/decl-let.js
index 8d5d9e5d5d..56547ab2ee 100644
--- a/test/language/statements/labeled/decl-let.js
+++ b/test/language/statements/labeled/decl-let.js
@@ -4,7 +4,9 @@
 description: Lexical declaration (let) not allowed in statement position
 esid: sec-labelled-statements
 es6id: 13.13
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 label: let x;
diff --git a/test/language/statements/labeled/value-yield-strict.js b/test/language/statements/labeled/value-yield-strict.js
index 855a0aa088..544a2db941 100644
--- a/test/language/statements/labeled/value-yield-strict.js
+++ b/test/language/statements/labeled/value-yield-strict.js
@@ -6,7 +6,9 @@
       `yield` is a reserved identifier in strict mode code and may not be used
       as a label.
   es6id: 12.1.1
-  negative: SyntaxError
+  negative:
+    phase: early
+    type: SyntaxError
   flags: [onlyStrict]
  ---*/
 
diff --git a/test/language/statements/let/redeclaration-error-from-within-strict-mode-function.js b/test/language/statements/let/redeclaration-error-from-within-strict-mode-function.js
index 0f59463f14..9081359904 100644
--- a/test/language/statements/let/redeclaration-error-from-within-strict-mode-function.js
+++ b/test/language/statements/let/redeclaration-error-from-within-strict-mode-function.js
@@ -4,7 +4,9 @@
 es6id: 13.1
 description: >
     Redeclaration error within strict mode function inside non-strict code.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [noStrict]
 ---*/
 (function() { 'use strict'; { let f; var f; } })
diff --git a/test/language/statements/let/syntax/attempt-to-redeclare-let-binding-with-function-declaration.js b/test/language/statements/let/syntax/attempt-to-redeclare-let-binding-with-function-declaration.js
index 5663651f06..15b1659c3c 100644
--- a/test/language/statements/let/syntax/attempt-to-redeclare-let-binding-with-function-declaration.js
+++ b/test/language/statements/let/syntax/attempt-to-redeclare-let-binding-with-function-declaration.js
@@ -5,6 +5,8 @@ es6id: B.3.3
 description: >
     redeclaration within block:
     attempt to redeclare let binding with function declaration
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 { let f; function f() {} }
diff --git a/test/language/statements/let/syntax/attempt-to-redeclare-let-binding-with-var.js b/test/language/statements/let/syntax/attempt-to-redeclare-let-binding-with-var.js
index 427692df67..ab18e36810 100644
--- a/test/language/statements/let/syntax/attempt-to-redeclare-let-binding-with-var.js
+++ b/test/language/statements/let/syntax/attempt-to-redeclare-let-binding-with-var.js
@@ -5,7 +5,9 @@ es6id: B.3.3
 description: >
     redeclaration within block:
     attempt to redeclare let binding with var
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 { let f; var f; }
 
diff --git a/test/language/statements/let/syntax/identifier-let-allowed-as-lefthandside-expression-strict.js b/test/language/statements/let/syntax/identifier-let-allowed-as-lefthandside-expression-strict.js
index fb677c8041..50a08aa4ed 100644
--- a/test/language/statements/let/syntax/identifier-let-allowed-as-lefthandside-expression-strict.js
+++ b/test/language/statements/let/syntax/identifier-let-allowed-as-lefthandside-expression-strict.js
@@ -6,7 +6,9 @@ description: >
     for declaration:
     identifier "let" disallowed as lefthandside expression in strict mode
 flags: [onlyStrict]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 var o = { a: 1 };
 for (let in o) { }
diff --git a/test/language/statements/let/syntax/identifier-let-disallowed-as-boundname.js b/test/language/statements/let/syntax/identifier-let-disallowed-as-boundname.js
index b7db9eed0a..7331e5cbb5 100644
--- a/test/language/statements/let/syntax/identifier-let-disallowed-as-boundname.js
+++ b/test/language/statements/let/syntax/identifier-let-disallowed-as-boundname.js
@@ -4,7 +4,9 @@
 es6id: 13.6.4.1
 description: >
     It is a Syntax Error if the BoundNames of ForDeclaration contains "let".
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 for (let let in {}) { }
 
diff --git a/test/language/statements/let/syntax/let-let-declaration-split-across-two-lines.js b/test/language/statements/let/syntax/let-let-declaration-split-across-two-lines.js
index 0ef615cea4..541dcef355 100644
--- a/test/language/statements/let/syntax/let-let-declaration-split-across-two-lines.js
+++ b/test/language/statements/let/syntax/let-let-declaration-split-across-two-lines.js
@@ -22,7 +22,9 @@ info: >
   are considered.  *Then* 13.3.1.1's static semantics for the LexicalDeclaration
   just chosen, per 5.3, are validated to recognize the Script as invalid.  Thus
   the eval script can't be evaluated, and a SyntaxError is thrown.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 throw NotEarlyError;
 
diff --git a/test/language/statements/let/syntax/let-let-declaration-with-initializer-split-across-two-lines.js b/test/language/statements/let/syntax/let-let-declaration-with-initializer-split-across-two-lines.js
index 5efbf57212..30b0de237e 100644
--- a/test/language/statements/let/syntax/let-let-declaration-with-initializer-split-across-two-lines.js
+++ b/test/language/statements/let/syntax/let-let-declaration-with-initializer-split-across-two-lines.js
@@ -22,7 +22,9 @@ info: >
   are considered.  *Then* 13.3.1.1's static semantics for the LexicalDeclaration
   just chosen, per 5.3, are validated to recognize the Script as invalid.  Thus
   the eval script can't be evaluated, and a SyntaxError is thrown.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 throw NotEarlyError;
 
diff --git a/test/language/statements/let/syntax/with-initialisers-in-statement-positions-do-statement-while-expression.js b/test/language/statements/let/syntax/with-initialisers-in-statement-positions-do-statement-while-expression.js
index a0633d27d1..9640ced8df 100644
--- a/test/language/statements/let/syntax/with-initialisers-in-statement-positions-do-statement-while-expression.js
+++ b/test/language/statements/let/syntax/with-initialisers-in-statement-positions-do-statement-while-expression.js
@@ -5,6 +5,8 @@ es6id: 13.1
 description: >
     let declarations with initialisers in statement positions: 
     do Statement while ( Expression )
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 do let x = 1; while (false)
diff --git a/test/language/statements/let/syntax/with-initialisers-in-statement-positions-for-statement.js b/test/language/statements/let/syntax/with-initialisers-in-statement-positions-for-statement.js
index 0da5b348c3..d2a0473402 100644
--- a/test/language/statements/let/syntax/with-initialisers-in-statement-positions-for-statement.js
+++ b/test/language/statements/let/syntax/with-initialisers-in-statement-positions-for-statement.js
@@ -5,6 +5,8 @@ es6id: 13.1
 description: >
     let declarations with initialisers in statement positions: 
     for ( ;;) Statement
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 for (;false;) let x = 1;
diff --git a/test/language/statements/let/syntax/with-initialisers-in-statement-positions-if-expression-statement-else-statement.js b/test/language/statements/let/syntax/with-initialisers-in-statement-positions-if-expression-statement-else-statement.js
index c1bc33779d..96f368d6bd 100644
--- a/test/language/statements/let/syntax/with-initialisers-in-statement-positions-if-expression-statement-else-statement.js
+++ b/test/language/statements/let/syntax/with-initialisers-in-statement-positions-if-expression-statement-else-statement.js
@@ -5,6 +5,8 @@ es6id: 13.1
 description: >
     let declarations with initialisers in statement positions: 
     if ( Expression ) Statement else Statement
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 if (true) {} else let x = 1;
diff --git a/test/language/statements/let/syntax/with-initialisers-in-statement-positions-if-expression-statement.js b/test/language/statements/let/syntax/with-initialisers-in-statement-positions-if-expression-statement.js
index eadff5feb1..e41d75cb72 100644
--- a/test/language/statements/let/syntax/with-initialisers-in-statement-positions-if-expression-statement.js
+++ b/test/language/statements/let/syntax/with-initialisers-in-statement-positions-if-expression-statement.js
@@ -5,6 +5,8 @@ es6id: 13.1
 description: >
     let declarations with initialisers in statement positions: 
     if ( Expression ) Statement
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 if (true) let x = 1;
diff --git a/test/language/statements/let/syntax/with-initialisers-in-statement-positions-label-statement.js b/test/language/statements/let/syntax/with-initialisers-in-statement-positions-label-statement.js
index 93c7ed337e..05559bf840 100644
--- a/test/language/statements/let/syntax/with-initialisers-in-statement-positions-label-statement.js
+++ b/test/language/statements/let/syntax/with-initialisers-in-statement-positions-label-statement.js
@@ -5,6 +5,8 @@ es6id: 13.1
 description: >
     let declarations with initialisers in statement positions: 
     label: Statement
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 label: let x = 1;
diff --git a/test/language/statements/let/syntax/with-initialisers-in-statement-positions-while-expression-statement.js b/test/language/statements/let/syntax/with-initialisers-in-statement-positions-while-expression-statement.js
index c200c59a0a..2e7762be9f 100644
--- a/test/language/statements/let/syntax/with-initialisers-in-statement-positions-while-expression-statement.js
+++ b/test/language/statements/let/syntax/with-initialisers-in-statement-positions-while-expression-statement.js
@@ -5,6 +5,8 @@ es6id: 13.1
 description: >
     let declarations with initialisers in statement positions: 
     while ( Expression ) Statement
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 while (false) let x = 1;
diff --git a/test/language/statements/let/syntax/without-initialisers-in-statement-positions-do-statement-while-expression.js b/test/language/statements/let/syntax/without-initialisers-in-statement-positions-do-statement-while-expression.js
index 6e39f9bfc3..45573edfc1 100644
--- a/test/language/statements/let/syntax/without-initialisers-in-statement-positions-do-statement-while-expression.js
+++ b/test/language/statements/let/syntax/without-initialisers-in-statement-positions-do-statement-while-expression.js
@@ -5,6 +5,8 @@ es6id: 13.1
 description: >
     let declarations without initialisers in statement positions: 
     do Statement while ( Expression )
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 do let x; while (false)
diff --git a/test/language/statements/let/syntax/without-initialisers-in-statement-positions-for-statement.js b/test/language/statements/let/syntax/without-initialisers-in-statement-positions-for-statement.js
index 52d3082b69..8b401e5fd1 100644
--- a/test/language/statements/let/syntax/without-initialisers-in-statement-positions-for-statement.js
+++ b/test/language/statements/let/syntax/without-initialisers-in-statement-positions-for-statement.js
@@ -5,6 +5,8 @@ es6id: 13.1
 description: >
     let declarations without initialisers in statement positions: 
     for ( ;;) Statement
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 for (;false;) let x;
diff --git a/test/language/statements/let/syntax/without-initialisers-in-statement-positions-if-expression-statement-else-statement.js b/test/language/statements/let/syntax/without-initialisers-in-statement-positions-if-expression-statement-else-statement.js
index 5d21b1f003..b130b250a5 100644
--- a/test/language/statements/let/syntax/without-initialisers-in-statement-positions-if-expression-statement-else-statement.js
+++ b/test/language/statements/let/syntax/without-initialisers-in-statement-positions-if-expression-statement-else-statement.js
@@ -5,6 +5,8 @@ es6id: 13.1
 description: >
     let declarations without initialisers in statement positions: 
     if ( Expression ) Statement else Statement
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 if (true) {} else let x;
diff --git a/test/language/statements/let/syntax/without-initialisers-in-statement-positions-if-expression-statement.js b/test/language/statements/let/syntax/without-initialisers-in-statement-positions-if-expression-statement.js
index 26198763fb..5f85664450 100644
--- a/test/language/statements/let/syntax/without-initialisers-in-statement-positions-if-expression-statement.js
+++ b/test/language/statements/let/syntax/without-initialisers-in-statement-positions-if-expression-statement.js
@@ -5,6 +5,8 @@ es6id: 13.1
 description: >
     let declarations without initialisers in statement positions: 
     if ( Expression ) Statement
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 if (true) let x;
diff --git a/test/language/statements/let/syntax/without-initialisers-in-statement-positions-label-statement.js b/test/language/statements/let/syntax/without-initialisers-in-statement-positions-label-statement.js
index f4024fb756..625e7b93b4 100644
--- a/test/language/statements/let/syntax/without-initialisers-in-statement-positions-label-statement.js
+++ b/test/language/statements/let/syntax/without-initialisers-in-statement-positions-label-statement.js
@@ -5,6 +5,8 @@ es6id: 13.1
 description: >
     let declarations without initialisers in statement positions: 
     label: Statement
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 label: let x;
diff --git a/test/language/statements/let/syntax/without-initialisers-in-statement-positions-while-expression-statement.js b/test/language/statements/let/syntax/without-initialisers-in-statement-positions-while-expression-statement.js
index 359f2a1182..3ccb8cc70f 100644
--- a/test/language/statements/let/syntax/without-initialisers-in-statement-positions-while-expression-statement.js
+++ b/test/language/statements/let/syntax/without-initialisers-in-statement-positions-while-expression-statement.js
@@ -5,6 +5,8 @@ es6id: 13.1
 description: >
     let declarations without initialisers in statement positions: 
     while ( Expression ) Statement
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 while (false) let x;
diff --git a/test/language/statements/return/S12.9_A1_T1.js b/test/language/statements/return/S12.9_A1_T1.js
index 5738fa4c6a..bbf69f6276 100644
--- a/test/language/statements/return/S12.9_A1_T1.js
+++ b/test/language/statements/return/S12.9_A1_T1.js
@@ -5,7 +5,9 @@
 info: Appearing of "return" without a function body leads to syntax error
 es5id: 12.9_A1_T1
 description: Checking if execution of "return" with no function fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/language/statements/return/S12.9_A1_T10.js b/test/language/statements/return/S12.9_A1_T10.js
index b7bce0a775..7ca8dc906c 100644
--- a/test/language/statements/return/S12.9_A1_T10.js
+++ b/test/language/statements/return/S12.9_A1_T10.js
@@ -5,7 +5,9 @@
 info: Appearing of "return" without a function body leads to syntax error
 es5id: 12.9_A1_T10
 description: Checking if execution of "return (0)" with no function fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/language/statements/return/S12.9_A1_T2.js b/test/language/statements/return/S12.9_A1_T2.js
index 52fc7500c5..38555bd1d7 100644
--- a/test/language/statements/return/S12.9_A1_T2.js
+++ b/test/language/statements/return/S12.9_A1_T2.js
@@ -5,7 +5,9 @@
 info: Appearing of "return" without a function body leads to syntax error
 es5id: 12.9_A1_T2
 description: Checking if execution of "return x" with no function fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/language/statements/return/S12.9_A1_T3.js b/test/language/statements/return/S12.9_A1_T3.js
index db82a9aa29..f1b07cb3c8 100644
--- a/test/language/statements/return/S12.9_A1_T3.js
+++ b/test/language/statements/return/S12.9_A1_T3.js
@@ -5,7 +5,9 @@
 info: Appearing of "return" without a function body leads to syntax error
 es5id: 12.9_A1_T3
 description: Checking if execution of "return" within "try" statement fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/language/statements/return/S12.9_A1_T4.js b/test/language/statements/return/S12.9_A1_T4.js
index c26d347e33..7e5c5f4fec 100644
--- a/test/language/statements/return/S12.9_A1_T4.js
+++ b/test/language/statements/return/S12.9_A1_T4.js
@@ -5,7 +5,9 @@
 info: Appearing of "return" without a function body leads to syntax error
 es5id: 12.9_A1_T4
 description: Checking if execution of "return" with no function fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/language/statements/return/S12.9_A1_T5.js b/test/language/statements/return/S12.9_A1_T5.js
index 12c8a617a0..b63023b294 100644
--- a/test/language/statements/return/S12.9_A1_T5.js
+++ b/test/language/statements/return/S12.9_A1_T5.js
@@ -7,7 +7,9 @@ es5id: 12.9_A1_T5
 description: >
     Checking if execution of "return" with no function, placed into a
     Block, fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/language/statements/return/S12.9_A1_T6.js b/test/language/statements/return/S12.9_A1_T6.js
index 372d6a4b93..9e62cd7f0d 100644
--- a/test/language/statements/return/S12.9_A1_T6.js
+++ b/test/language/statements/return/S12.9_A1_T6.js
@@ -7,7 +7,9 @@ es5id: 12.9_A1_T6
 description: >
     Checking if execution of "return" with no function, placed into a
     loop, fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/language/statements/return/S12.9_A1_T7.js b/test/language/statements/return/S12.9_A1_T7.js
index 0a2d7d33a9..d37b225ca4 100644
--- a/test/language/statements/return/S12.9_A1_T7.js
+++ b/test/language/statements/return/S12.9_A1_T7.js
@@ -7,7 +7,9 @@ es5id: 12.9_A1_T7
 description: >
     Checking if execution of "return x" with no function, placed
     inside Block, fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/language/statements/return/S12.9_A1_T8.js b/test/language/statements/return/S12.9_A1_T8.js
index 0433fabc2e..6ec21b5471 100644
--- a/test/language/statements/return/S12.9_A1_T8.js
+++ b/test/language/statements/return/S12.9_A1_T8.js
@@ -7,7 +7,9 @@ es5id: 12.9_A1_T8
 description: >
     Checking if execution of "return x" with no function, placed into
     a loop, fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/language/statements/return/S12.9_A1_T9.js b/test/language/statements/return/S12.9_A1_T9.js
index d6df82e861..9b9ad3f3b2 100644
--- a/test/language/statements/return/S12.9_A1_T9.js
+++ b/test/language/statements/return/S12.9_A1_T9.js
@@ -5,7 +5,9 @@
 info: Appearing of "return" without a function body leads to syntax error
 es5id: 12.9_A1_T9
 description: Checking if execution of "return", placed into a catch Block, fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/language/statements/switch/S12.11_A2_T1.js b/test/language/statements/switch/S12.11_A2_T1.js
index 5947de0f98..71c4b1b541 100644
--- a/test/language/statements/switch/S12.11_A2_T1.js
+++ b/test/language/statements/switch/S12.11_A2_T1.js
@@ -5,7 +5,9 @@
 info: There can be only one DefaultClause
 es5id: 12.11_A2_T1
 description: Duplicate DefaultClause
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 function SwitchTest(value){
diff --git a/test/language/statements/switch/S12.11_A3_T1.js b/test/language/statements/switch/S12.11_A3_T1.js
index 56fa00ebd7..b2fb28997b 100644
--- a/test/language/statements/switch/S12.11_A3_T1.js
+++ b/test/language/statements/switch/S12.11_A3_T1.js
@@ -5,7 +5,9 @@
 info: Syntax constructions of switch statement
 es5id: 12.11_A3_T1
 description: Checking if execution of "switch() {}" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 function SwitchTest(value){
diff --git a/test/language/statements/switch/S12.11_A3_T2.js b/test/language/statements/switch/S12.11_A3_T2.js
index a6c4cecaeb..6774c8cbb9 100644
--- a/test/language/statements/switch/S12.11_A3_T2.js
+++ b/test/language/statements/switch/S12.11_A3_T2.js
@@ -5,7 +5,9 @@
 info: Syntax constructions of switch statement
 es5id: 12.11_A3_T2
 description: Checking if execution of "switch {}" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 function SwitchTest(value){
diff --git a/test/language/statements/switch/S12.11_A3_T3.js b/test/language/statements/switch/S12.11_A3_T3.js
index bb983237ba..5a8fa38c4f 100644
--- a/test/language/statements/switch/S12.11_A3_T3.js
+++ b/test/language/statements/switch/S12.11_A3_T3.js
@@ -5,7 +5,9 @@
 info: Syntax constructions of switch statement
 es5id: 12.11_A3_T3
 description: Checking if execution of "switch(value)" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 switch(value);
diff --git a/test/language/statements/switch/S12.11_A3_T4.js b/test/language/statements/switch/S12.11_A3_T4.js
index 856e189d82..94a3320ce4 100644
--- a/test/language/statements/switch/S12.11_A3_T4.js
+++ b/test/language/statements/switch/S12.11_A3_T4.js
@@ -7,7 +7,9 @@ es5id: 12.11_A3_T4
 description: >
     Using "case" that has no Expresson after it. "CaseClause: case
     Expression : [StatementList]"
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 function SwitchTest(value){
diff --git a/test/language/statements/switch/S12.11_A3_T5.js b/test/language/statements/switch/S12.11_A3_T5.js
index 8dbb4d9548..80b10ddf77 100644
--- a/test/language/statements/switch/S12.11_A3_T5.js
+++ b/test/language/statements/switch/S12.11_A3_T5.js
@@ -5,7 +5,9 @@
 info: Syntax constructions of switch statement
 es5id: 12.11_A3_T5
 description: Introducing statement not followed by "case" keyword
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 function SwitchTest(value){
diff --git a/test/language/statements/switch/early-lex-dup.js b/test/language/statements/switch/early-lex-dup.js
index 3f74919c6f..c9896a5275 100644
--- a/test/language/statements/switch/early-lex-dup.js
+++ b/test/language/statements/switch/early-lex-dup.js
@@ -7,7 +7,9 @@ description: Syntax error from duplicate lexical variables
 info: >
   It is a Syntax Error if the LexicallyDeclaredNames of CaseBlock contains any
   duplicate entries.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 features: [let, const]
 ---*/
 
diff --git a/test/language/statements/switch/early-lex-var-collision.js b/test/language/statements/switch/early-lex-var-collision.js
index b642264586..9150eb4984 100644
--- a/test/language/statements/switch/early-lex-var-collision.js
+++ b/test/language/statements/switch/early-lex-var-collision.js
@@ -9,7 +9,9 @@ description: >
 info: >
   It is a Syntax Error if any element of the LexicallyDeclaredNames of
   CaseClauses also occurs in the VarDeclaredNames of CaseClauses.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 features: [let]
 ---*/
 
diff --git a/test/language/statements/try/12.14.1-1gs.js b/test/language/statements/try/12.14.1-1gs.js
index 33b87b9a58..a575377fd7 100644
--- a/test/language/statements/try/12.14.1-1gs.js
+++ b/test/language/statements/try/12.14.1-1gs.js
@@ -7,7 +7,9 @@ description: >
     Strict Mode - SyntaxError is thrown if a TryStatement with a Catch
     occurs within strict code and the Identifier of the Catch
     production is eval
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [onlyStrict]
 ---*/
 
diff --git a/test/language/statements/try/S12.14_A16_T1.js b/test/language/statements/try/S12.14_A16_T1.js
index 2d4f7c81e6..fbc1eb6419 100644
--- a/test/language/statements/try/S12.14_A16_T1.js
+++ b/test/language/statements/try/S12.14_A16_T1.js
@@ -7,7 +7,9 @@ info: >
     Catch Finally"
 es5id: 12.14_A16_T1
 description: Checking if pure "try" syntax construction passes
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 // CHECK#1
diff --git a/test/language/statements/try/S12.14_A16_T10.js b/test/language/statements/try/S12.14_A16_T10.js
index b70057076f..274a956186 100644
--- a/test/language/statements/try/S12.14_A16_T10.js
+++ b/test/language/statements/try/S12.14_A16_T10.js
@@ -7,7 +7,9 @@ info: >
     Catch Finally"
 es5id: 12.14_A16_T10
 description: "Catch: \"catch (Identifier ) Block\""
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 // CHECK#1
diff --git a/test/language/statements/try/S12.14_A16_T11.js b/test/language/statements/try/S12.14_A16_T11.js
index 8b46cf73cb..32a4966e99 100644
--- a/test/language/statements/try/S12.14_A16_T11.js
+++ b/test/language/statements/try/S12.14_A16_T11.js
@@ -9,7 +9,9 @@ es5id: 12.14_A16_T11
 description: >
     Catch and Finally are placed into the Block of "try" (whitle
     expected outside)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 // CHECK#1
diff --git a/test/language/statements/try/S12.14_A16_T12.js b/test/language/statements/try/S12.14_A16_T12.js
index 0d6246dc93..56d699c45c 100644
--- a/test/language/statements/try/S12.14_A16_T12.js
+++ b/test/language/statements/try/S12.14_A16_T12.js
@@ -7,7 +7,9 @@ info: >
     Catch Finally"
 es5id: 12.14_A16_T12
 description: Embedded "try" statements followed by two "catch" statements
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 // CHECK#1
diff --git a/test/language/statements/try/S12.14_A16_T13.js b/test/language/statements/try/S12.14_A16_T13.js
index ece3312bfe..bc6fd3e47c 100644
--- a/test/language/statements/try/S12.14_A16_T13.js
+++ b/test/language/statements/try/S12.14_A16_T13.js
@@ -9,7 +9,9 @@ es5id: 12.14_A16_T13
 description: >
     Catch: "catch (Identifier ) Block". Checking if execution of "22"
     passes at the place of Identifier of "catch"
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 // CHECK#1
diff --git a/test/language/statements/try/S12.14_A16_T14.js b/test/language/statements/try/S12.14_A16_T14.js
index 472201bc68..af40c60983 100644
--- a/test/language/statements/try/S12.14_A16_T14.js
+++ b/test/language/statements/try/S12.14_A16_T14.js
@@ -7,7 +7,9 @@ info: >
     Catch Finally"
 es5id: 12.14_A16_T14
 description: Checking if passing argument to "try" statement fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 // CHECK#1
diff --git a/test/language/statements/try/S12.14_A16_T15.js b/test/language/statements/try/S12.14_A16_T15.js
index 6290c9e09e..03369e0c72 100644
--- a/test/language/statements/try/S12.14_A16_T15.js
+++ b/test/language/statements/try/S12.14_A16_T15.js
@@ -9,7 +9,9 @@ es5id: 12.14_A16_T15
 description: >
     Finally: "finally Block". Checking if passing argument to "try"
     statement fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 // CHECK#1
diff --git a/test/language/statements/try/S12.14_A16_T2.js b/test/language/statements/try/S12.14_A16_T2.js
index 2aa5ae6ef1..9ec0979d1a 100644
--- a/test/language/statements/try/S12.14_A16_T2.js
+++ b/test/language/statements/try/S12.14_A16_T2.js
@@ -7,7 +7,9 @@ info: >
     Catch Finally"
 es5id: 12.14_A16_T2
 description: Checking if execution of "catch" with no "try" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 // CHECK#1
diff --git a/test/language/statements/try/S12.14_A16_T3.js b/test/language/statements/try/S12.14_A16_T3.js
index bed9ac8ab6..8fd817c327 100644
--- a/test/language/statements/try/S12.14_A16_T3.js
+++ b/test/language/statements/try/S12.14_A16_T3.js
@@ -7,7 +7,9 @@ info: >
     Catch Finally"
 es5id: 12.14_A16_T3
 description: Checking if execution of "finally" with no "try" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 // CHECK#1
diff --git a/test/language/statements/try/S12.14_A16_T4.js b/test/language/statements/try/S12.14_A16_T4.js
index 65d66448ae..b764c035a3 100644
--- a/test/language/statements/try/S12.14_A16_T4.js
+++ b/test/language/statements/try/S12.14_A16_T4.js
@@ -9,7 +9,9 @@ es5id: 12.14_A16_T4
 description: >
     Catch: "catch (Identifier ) Block". Checking if execution of
     "catch" that takes no arguments fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 // CHECK#1
diff --git a/test/language/statements/try/S12.14_A16_T5.js b/test/language/statements/try/S12.14_A16_T5.js
index 48722136f8..bb41afe346 100644
--- a/test/language/statements/try/S12.14_A16_T5.js
+++ b/test/language/statements/try/S12.14_A16_T5.js
@@ -9,7 +9,9 @@ es5id: 12.14_A16_T5
 description: >
     Catch: "catch (Identifier ) Block". Checking if execution of
     "catch" with no Block fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 // CHECK#1
diff --git a/test/language/statements/try/S12.14_A16_T6.js b/test/language/statements/try/S12.14_A16_T6.js
index fd00f1fd1a..d5010188be 100644
--- a/test/language/statements/try/S12.14_A16_T6.js
+++ b/test/language/statements/try/S12.14_A16_T6.js
@@ -9,7 +9,9 @@ es5id: 12.14_A16_T6
 description: >
     Block: "{ StatementList }". Checking if execution of "try{
     catch{}{}" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 // CHECK#1
diff --git a/test/language/statements/try/S12.14_A16_T7.js b/test/language/statements/try/S12.14_A16_T7.js
index 44ca68cf30..b3a6af9f8f 100644
--- a/test/language/statements/try/S12.14_A16_T7.js
+++ b/test/language/statements/try/S12.14_A16_T7.js
@@ -9,7 +9,9 @@ es5id: 12.14_A16_T7
 description: >
     Block: "{ StatementList }". Checking if execution of "try{}
     catch(){" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 // CHECK#1
diff --git a/test/language/statements/try/S12.14_A16_T8.js b/test/language/statements/try/S12.14_A16_T8.js
index b9266cf7dc..d966bb1f1b 100644
--- a/test/language/statements/try/S12.14_A16_T8.js
+++ b/test/language/statements/try/S12.14_A16_T8.js
@@ -9,7 +9,9 @@ es5id: 12.14_A16_T8
 description: >
     Block: "{ StatementList }". Catch: "catch (Identifier ) Block".
     Checking if execution of "try{} catch(){finally{}" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 // CHECK#1
diff --git a/test/language/statements/try/S12.14_A16_T9.js b/test/language/statements/try/S12.14_A16_T9.js
index c6ca68ad0c..c92a76a158 100644
--- a/test/language/statements/try/S12.14_A16_T9.js
+++ b/test/language/statements/try/S12.14_A16_T9.js
@@ -7,7 +7,9 @@ info: >
     Catch Finally"
 es5id: 12.14_A16_T9
 description: Checking if execution of "catch(){} finally{}" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 // CHECK#1
diff --git a/test/language/statements/try/early-catch-duplicates.js b/test/language/statements/try/early-catch-duplicates.js
index 59fedeeafd..9dcd0483f9 100644
--- a/test/language/statements/try/early-catch-duplicates.js
+++ b/test/language/statements/try/early-catch-duplicates.js
@@ -6,7 +6,9 @@ es6id: 13.15.1
 description: >
     It is a Syntax Error if BoundNames of CatchParameter contains any duplicate
     elements.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 $ERROR('This code should not be executed.');
diff --git a/test/language/statements/try/early-catch-lex.js b/test/language/statements/try/early-catch-lex.js
index e685e3369b..7608a94d3d 100644
--- a/test/language/statements/try/early-catch-lex.js
+++ b/test/language/statements/try/early-catch-lex.js
@@ -6,7 +6,9 @@ es6id: 13.15.1
 description: >
     It is a Syntax Error if any element of the BoundNames of CatchParameter
     also occurs in the LexicallyDeclaredNames of Block.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 features: [let]
 ---*/
 
diff --git a/test/language/statements/try/early-catch-var.js b/test/language/statements/try/early-catch-var.js
index 51d772c12d..43e5555085 100644
--- a/test/language/statements/try/early-catch-var.js
+++ b/test/language/statements/try/early-catch-var.js
@@ -11,7 +11,9 @@ info: >
     VariableDeclarationList of a for statement, and the ForBinding of a for-of
     statement. Bindings from the ForBinding of a for-in statement are
     restricted regardless of the application of Annex B.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 $ERROR('This code should not be executed.');
diff --git a/test/language/statements/variable/12.2.1-1gs.js b/test/language/statements/variable/12.2.1-1gs.js
index 59fb0a2db3..b1047b29de 100644
--- a/test/language/statements/variable/12.2.1-1gs.js
+++ b/test/language/statements/variable/12.2.1-1gs.js
@@ -6,7 +6,9 @@ es5id: 12.2.1-1gs
 description: >
     Strict Mode - SyntaxError is thrown if a VariableDeclaration
     occurs within strict code and its Identifier is eval
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [onlyStrict]
 ---*/
 
diff --git a/test/language/statements/variable/12.2.1-4gs.js b/test/language/statements/variable/12.2.1-4gs.js
index 868265bedd..58a0a7b38d 100644
--- a/test/language/statements/variable/12.2.1-4gs.js
+++ b/test/language/statements/variable/12.2.1-4gs.js
@@ -6,7 +6,9 @@ es5id: 12.2.1-4gs
 description: >
     Strict Mode - SyntaxError is thrown if a VariableDeclarationNoIn
     occurs within strict code and its Identifier is arguments
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [onlyStrict]
 ---*/
 
diff --git a/test/language/statements/variable/S12.2_A8_T1.js b/test/language/statements/variable/S12.2_A8_T1.js
index 4e5f1efacd..52b7c5177b 100644
--- a/test/language/statements/variable/S12.2_A8_T1.js
+++ b/test/language/statements/variable/S12.2_A8_T1.js
@@ -5,7 +5,9 @@
 info: Only AssignmentExpression is admitted when variable is initialized
 es5id: 12.2_A8_T1
 description: Checking if execution of "var x += 1" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/language/statements/variable/S12.2_A8_T2.js b/test/language/statements/variable/S12.2_A8_T2.js
index 8f60c152c0..742821c8ad 100644
--- a/test/language/statements/variable/S12.2_A8_T2.js
+++ b/test/language/statements/variable/S12.2_A8_T2.js
@@ -5,7 +5,9 @@
 info: Only AssignmentExpression is admitted when variable is initialized
 es5id: 12.2_A8_T2
 description: Checking if execution of "var x | true" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/language/statements/variable/S12.2_A8_T3.js b/test/language/statements/variable/S12.2_A8_T3.js
index b5b8949b99..b945fabda5 100644
--- a/test/language/statements/variable/S12.2_A8_T3.js
+++ b/test/language/statements/variable/S12.2_A8_T3.js
@@ -5,7 +5,9 @@
 info: Only AssignmentExpression is admitted when variable is initialized
 es5id: 12.2_A8_T3
 description: Checking if execution of "var x && 1" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/language/statements/variable/S12.2_A8_T4.js b/test/language/statements/variable/S12.2_A8_T4.js
index 9b125cc983..0676a72447 100644
--- a/test/language/statements/variable/S12.2_A8_T4.js
+++ b/test/language/statements/variable/S12.2_A8_T4.js
@@ -5,7 +5,9 @@
 info: Only AssignmentExpression is admitted when variable is initialized
 es5id: 12.2_A8_T4
 description: Checking if execution of "var x++" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/language/statements/variable/S12.2_A8_T5.js b/test/language/statements/variable/S12.2_A8_T5.js
index 4640a96dbc..bde43d8be7 100644
--- a/test/language/statements/variable/S12.2_A8_T5.js
+++ b/test/language/statements/variable/S12.2_A8_T5.js
@@ -5,7 +5,9 @@
 info: Only AssignmentExpression is admitted when variable is initialized
 es5id: 12.2_A8_T5
 description: Checking if execution of "var --x" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/language/statements/variable/S12.2_A8_T6.js b/test/language/statements/variable/S12.2_A8_T6.js
index 9eb53feb8c..288fbf26ba 100644
--- a/test/language/statements/variable/S12.2_A8_T6.js
+++ b/test/language/statements/variable/S12.2_A8_T6.js
@@ -5,7 +5,9 @@
 info: Only AssignmentExpression is admitted when variable is initialized
 es5id: 12.2_A8_T6
 description: Checking if execution of "var x*1" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/language/statements/variable/S12.2_A8_T7.js b/test/language/statements/variable/S12.2_A8_T7.js
index 6a80d0d7ab..cb2610e235 100644
--- a/test/language/statements/variable/S12.2_A8_T7.js
+++ b/test/language/statements/variable/S12.2_A8_T7.js
@@ -5,7 +5,9 @@
 info: Only AssignmentExpression is admitted when variable is initialized
 es5id: 12.2_A8_T7
 description: Checking if execution of "var x>>1" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/language/statements/variable/S12.2_A8_T8.js b/test/language/statements/variable/S12.2_A8_T8.js
index e5138c7e06..9871fc63c9 100644
--- a/test/language/statements/variable/S12.2_A8_T8.js
+++ b/test/language/statements/variable/S12.2_A8_T8.js
@@ -5,7 +5,9 @@
 info: Only AssignmentExpression is admitted when variable is initialized
 es5id: 12.2_A8_T8
 description: Checking if execution of "var x in __arr" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 __arr = [];
diff --git a/test/language/statements/while/S12.6.2_A15.js b/test/language/statements/while/S12.6.2_A15.js
index a5dcce4a5c..de53df5c7c 100644
--- a/test/language/statements/while/S12.6.2_A15.js
+++ b/test/language/statements/while/S12.6.2_A15.js
@@ -5,7 +5,9 @@
 info: Block within a "while" Expression is not allowed
 es5id: 12.6.2_A15
 description: Expression is "{0}"
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/language/statements/while/S12.6.2_A6_T1.js b/test/language/statements/while/S12.6.2_A6_T1.js
index b2d4949b15..a7e555c37d 100644
--- a/test/language/statements/while/S12.6.2_A6_T1.js
+++ b/test/language/statements/while/S12.6.2_A6_T1.js
@@ -5,7 +5,9 @@
 info: Expression in "while" IterationStatement is bracketed with braces
 es5id: 12.6.2_A6_T1
 description: Checking if execution of "while 1 break" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/language/statements/while/S12.6.2_A6_T2.js b/test/language/statements/while/S12.6.2_A6_T2.js
index beb06e866a..fdc2a8baa9 100644
--- a/test/language/statements/while/S12.6.2_A6_T2.js
+++ b/test/language/statements/while/S12.6.2_A6_T2.js
@@ -5,7 +5,9 @@
 info: Expression in "while" IterationStatement is bracketed with braces
 es5id: 12.6.2_A6_T2
 description: Checking if execution of "while 0 break" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/language/statements/while/S12.6.2_A6_T3.js b/test/language/statements/while/S12.6.2_A6_T3.js
index 6c28cf6628..d9685dd1c2 100644
--- a/test/language/statements/while/S12.6.2_A6_T3.js
+++ b/test/language/statements/while/S12.6.2_A6_T3.js
@@ -5,7 +5,9 @@
 info: Expression in "while" IterationStatement is bracketed with braces
 es5id: 12.6.2_A6_T3
 description: Checking if execution of "while true break" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/language/statements/while/S12.6.2_A6_T4.js b/test/language/statements/while/S12.6.2_A6_T4.js
index 7b74d4efce..ad94fbc6d0 100644
--- a/test/language/statements/while/S12.6.2_A6_T4.js
+++ b/test/language/statements/while/S12.6.2_A6_T4.js
@@ -5,7 +5,9 @@
 info: Expression in "while" IterationStatement is bracketed with braces
 es5id: 12.6.2_A6_T4
 description: Checking if execution of "while false break" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/language/statements/while/S12.6.2_A6_T5.js b/test/language/statements/while/S12.6.2_A6_T5.js
index 644e32b525..19b1eb6af7 100644
--- a/test/language/statements/while/S12.6.2_A6_T5.js
+++ b/test/language/statements/while/S12.6.2_A6_T5.js
@@ -5,7 +5,9 @@
 info: Expression in "while" IterationStatement is bracketed with braces
 es5id: 12.6.2_A6_T5
 description: Checking if execution of "while '' break" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/language/statements/while/S12.6.2_A6_T6.js b/test/language/statements/while/S12.6.2_A6_T6.js
index 49cba88d4d..66ecbee8ab 100644
--- a/test/language/statements/while/S12.6.2_A6_T6.js
+++ b/test/language/statements/while/S12.6.2_A6_T6.js
@@ -5,7 +5,9 @@
 info: Expression in "while" IterationStatement is bracketed with braces
 es5id: 12.6.2_A6_T6
 description: Checking if execution of "while 'hood' break" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/language/statements/while/decl-cls.js b/test/language/statements/while/decl-cls.js
index f2c30d1e63..491f50e717 100644
--- a/test/language/statements/while/decl-cls.js
+++ b/test/language/statements/while/decl-cls.js
@@ -4,7 +4,9 @@
 description: Class declaration not allowed in statement position
 esid: sec-while-statement
 es6id: 13.7.3
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 while (false) class C {}
diff --git a/test/language/statements/while/decl-const.js b/test/language/statements/while/decl-const.js
index 93b313f3ce..efc004035e 100644
--- a/test/language/statements/while/decl-const.js
+++ b/test/language/statements/while/decl-const.js
@@ -4,7 +4,9 @@
 description: Lexical declaration (const) not allowed in statement position
 esid: sec-while-statement
 es6id: 13.7.3
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 while (false) const x = null;
diff --git a/test/language/statements/while/decl-fun.js b/test/language/statements/while/decl-fun.js
index e76d8c893f..92ad5bb65d 100644
--- a/test/language/statements/while/decl-fun.js
+++ b/test/language/statements/while/decl-fun.js
@@ -4,7 +4,9 @@
 description: Function declaration not allowed in statement position
 esid: sec-while-statement
 es6id: 13.7.3
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 while (false) function f() {}
diff --git a/test/language/statements/while/decl-gen.js b/test/language/statements/while/decl-gen.js
index 62973f4581..06340c8985 100644
--- a/test/language/statements/while/decl-gen.js
+++ b/test/language/statements/while/decl-gen.js
@@ -4,7 +4,9 @@
 description: Generator declaration not allowed in statement position
 esid: sec-while-statement
 es6id: 13.7.3
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 while (false) function* g() {}
diff --git a/test/language/statements/while/decl-let.js b/test/language/statements/while/decl-let.js
index 920673f56c..1c0bfa24bb 100644
--- a/test/language/statements/while/decl-let.js
+++ b/test/language/statements/while/decl-let.js
@@ -4,7 +4,9 @@
 description: Lexical declaration (let) not allowed in statement position
 esid: sec-while-statement
 es6id: 13.7.3
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 while (false) let x;
diff --git a/test/language/statements/while/labelled-fn-stmt.js b/test/language/statements/while/labelled-fn-stmt.js
index e82e931874..1d30320d7a 100644
--- a/test/language/statements/while/labelled-fn-stmt.js
+++ b/test/language/statements/while/labelled-fn-stmt.js
@@ -2,7 +2,9 @@
 // This code is governed by the BSD license found in the LICENSE file.
 /*---
 description: It is a Syntax Error if IsLabelledFunction(Statement) is true.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 esid: sec-semantics-static-semantics-early-errors
 es6id: 13.7.1.1
 info: >
diff --git a/test/language/statements/with/12.10.1-11gs.js b/test/language/statements/with/12.10.1-11gs.js
index c00f62bee3..cb2f432d8a 100644
--- a/test/language/statements/with/12.10.1-11gs.js
+++ b/test/language/statements/with/12.10.1-11gs.js
@@ -4,7 +4,9 @@
 /*---
 es5id: 12.10.1-11gs
 description: Strict Mode - SyntaxError is thrown when using with statement
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [onlyStrict]
 ---*/
 
diff --git a/test/language/statements/with/decl-cls.js b/test/language/statements/with/decl-cls.js
index 18f1f9ab5f..267a5136b4 100644
--- a/test/language/statements/with/decl-cls.js
+++ b/test/language/statements/with/decl-cls.js
@@ -5,7 +5,9 @@ description: Class declaration not allowed in statement position
 esid: sec-with-statement
 es6id: 13.11
 flags: [noStrict]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 with ({}) class C {}
diff --git a/test/language/statements/with/decl-const.js b/test/language/statements/with/decl-const.js
index d5e5b8aeb1..e7f52299fa 100644
--- a/test/language/statements/with/decl-const.js
+++ b/test/language/statements/with/decl-const.js
@@ -5,7 +5,9 @@ description: Lexical declaration (const) not allowed in statement position
 esid: sec-with-statement
 es6id: 13.11
 flags: [noStrict]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 with ({}) const x = null;
diff --git a/test/language/statements/with/decl-fun.js b/test/language/statements/with/decl-fun.js
index 3bed84ea2d..7601f9af6c 100644
--- a/test/language/statements/with/decl-fun.js
+++ b/test/language/statements/with/decl-fun.js
@@ -5,7 +5,9 @@ description: Function declaration not allowed in statement position
 esid: sec-with-statement
 es6id: 13.11
 flags: [noStrict]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 with ({}) function f() {}
diff --git a/test/language/statements/with/decl-gen.js b/test/language/statements/with/decl-gen.js
index 0d0c2451e2..8a492d2d4e 100644
--- a/test/language/statements/with/decl-gen.js
+++ b/test/language/statements/with/decl-gen.js
@@ -5,7 +5,9 @@ description: Generator declaration not allowed in statement position
 esid: sec-with-statement
 es6id: 13.11
 flags: [noStrict]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 with ({}) function* g() {}
diff --git a/test/language/statements/with/decl-let.js b/test/language/statements/with/decl-let.js
index 9293c0aa56..577f5bcff0 100644
--- a/test/language/statements/with/decl-let.js
+++ b/test/language/statements/with/decl-let.js
@@ -5,7 +5,9 @@ description: Lexical declaration (let) not allowed in statement position
 esid: sec-with-statement
 es6id: 13.11
 flags: [noStrict]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 with ({}) let x;
diff --git a/test/language/statements/with/labelled-fn-stmt.js b/test/language/statements/with/labelled-fn-stmt.js
index 4725c360f3..8008b39308 100644
--- a/test/language/statements/with/labelled-fn-stmt.js
+++ b/test/language/statements/with/labelled-fn-stmt.js
@@ -16,7 +16,9 @@ info: |
 
   In the absence of Annex B.3.2, a SyntaxError should be produced due to the
   labelled function declaration itself.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 with ({}) label1: label2: function test262() {}
diff --git a/test/language/types/null/S8.2_A2.js b/test/language/types/null/S8.2_A2.js
index 620e1ea06b..c4810923f4 100644
--- a/test/language/types/null/S8.2_A2.js
+++ b/test/language/types/null/S8.2_A2.js
@@ -5,7 +5,9 @@
 info: The null is resrved word
 es5id: 8.2_A2
 description: Checking if execution of "var null" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var null;
diff --git a/test/language/types/string/S8.4_A13_T1.js b/test/language/types/string/S8.4_A13_T1.js
index 60d047be9f..e0d8a133d2 100644
--- a/test/language/types/string/S8.4_A13_T1.js
+++ b/test/language/types/string/S8.4_A13_T1.js
@@ -5,7 +5,9 @@
 info: When appears not closed single-quote program failes
 es5id: 8.4_A13_T1
 description: Try to create variable using 3 single-quote
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var str = ''';
diff --git a/test/language/types/string/S8.4_A13_T2.js b/test/language/types/string/S8.4_A13_T2.js
index c4912bd52b..8c67774ea8 100644
--- a/test/language/types/string/S8.4_A13_T2.js
+++ b/test/language/types/string/S8.4_A13_T2.js
@@ -5,7 +5,9 @@
 info: When appears not closed single-quote program failes
 es5id: 8.4_A13_T2
 description: Try to create variable using 1 single-quote
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var str = ';
diff --git a/test/language/types/string/S8.4_A13_T3.js b/test/language/types/string/S8.4_A13_T3.js
index 7a028d6fb4..13e7ff79d1 100644
--- a/test/language/types/string/S8.4_A13_T3.js
+++ b/test/language/types/string/S8.4_A13_T3.js
@@ -5,7 +5,9 @@
 info: When appears not closed single-quote program failes
 es5id: 8.4_A13_T3
 description: Try to create variable using 4 single-quote
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var str = '''';
diff --git a/test/language/types/string/S8.4_A14_T1.js b/test/language/types/string/S8.4_A14_T1.js
index 80def88b06..178b6cbe26 100644
--- a/test/language/types/string/S8.4_A14_T1.js
+++ b/test/language/types/string/S8.4_A14_T1.js
@@ -5,7 +5,9 @@
 info: When appears not closed double-quote program failes
 es5id: 8.4_A14_T1
 description: Try to create variable using 1 double-quote
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var str = ";
diff --git a/test/language/types/string/S8.4_A14_T2.js b/test/language/types/string/S8.4_A14_T2.js
index 21a9804214..a87b6110e4 100644
--- a/test/language/types/string/S8.4_A14_T2.js
+++ b/test/language/types/string/S8.4_A14_T2.js
@@ -5,7 +5,9 @@
 info: When appears not closed double-quote program failes
 es5id: 8.4_A14_T2
 description: Try to create variable using 3 double-quote
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var str = """;
diff --git a/test/language/types/string/S8.4_A14_T3.js b/test/language/types/string/S8.4_A14_T3.js
index 40d8743acd..5304a43d7c 100644
--- a/test/language/types/string/S8.4_A14_T3.js
+++ b/test/language/types/string/S8.4_A14_T3.js
@@ -5,7 +5,9 @@
 info: When appears not closed double-quote program failes
 es5id: 8.4_A14_T3
 description: Try to create variable using 4 double-quote
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var str = """";
diff --git a/test/language/white-space/S7.2_A5_T1.js b/test/language/white-space/S7.2_A5_T1.js
index 957767e8a0..7fcef77219 100644
--- a/test/language/white-space/S7.2_A5_T1.js
+++ b/test/language/white-space/S7.2_A5_T1.js
@@ -7,7 +7,9 @@ info: >
     of six characters, namely \u plus four hexadecimal digits
 es5id: 7.2_A5_T1
 description: Use TAB (U+0009)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var\u0009x;
diff --git a/test/language/white-space/S7.2_A5_T2.js b/test/language/white-space/S7.2_A5_T2.js
index bd60773b27..320dbf31f3 100644
--- a/test/language/white-space/S7.2_A5_T2.js
+++ b/test/language/white-space/S7.2_A5_T2.js
@@ -7,7 +7,9 @@ info: >
     of six characters, namely \u plus four hexadecimal digits
 es5id: 7.2_A5_T2
 description: Use VERTICAL TAB (U+000B)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var\u000Bx;
diff --git a/test/language/white-space/S7.2_A5_T3.js b/test/language/white-space/S7.2_A5_T3.js
index fa3a23620d..6187c2b751 100644
--- a/test/language/white-space/S7.2_A5_T3.js
+++ b/test/language/white-space/S7.2_A5_T3.js
@@ -7,7 +7,9 @@ info: >
     of six characters, namely \u plus four hexadecimal digits
 es5id: 7.2_A5_T3
 description: Use FORM FEED (U+000C)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var\u000Cx;
diff --git a/test/language/white-space/S7.2_A5_T4.js b/test/language/white-space/S7.2_A5_T4.js
index 4ff6bbad43..21ae38f7ce 100644
--- a/test/language/white-space/S7.2_A5_T4.js
+++ b/test/language/white-space/S7.2_A5_T4.js
@@ -7,7 +7,9 @@ info: >
     of six characters, namely \u plus four hexadecimal digits
 es5id: 7.2_A5_T4
 description: Use SPACE (U+0020)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var\u0020x;
diff --git a/test/language/white-space/S7.2_A5_T5.js b/test/language/white-space/S7.2_A5_T5.js
index 956341d913..439efb4bec 100644
--- a/test/language/white-space/S7.2_A5_T5.js
+++ b/test/language/white-space/S7.2_A5_T5.js
@@ -7,7 +7,9 @@ info: >
     of six characters, namely \u plus four hexadecimal digits
 es5id: 7.2_A5_T5
 description: Use NO-BREAK SPACE (U+00A0)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var\u00A0x;
diff --git a/test/language/white-space/mongolian-vowel-separator.js b/test/language/white-space/mongolian-vowel-separator.js
index 1229707a9e..6a134eba1a 100644
--- a/test/language/white-space/mongolian-vowel-separator.js
+++ b/test/language/white-space/mongolian-vowel-separator.js
@@ -20,7 +20,9 @@ info: >
     Other category “Zs” code points
 
   General Category of U+180E is “Cf” (Format).
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 // U+180E between "var" and "foo"; UTF8(0x180E) = 0xE1 0xA0 0x8E
-- 
GitLab