 | Destructuring194 tests/language/statements/variable/dstr/ | 96% ChakraCore: 89%JavaScriptCore: 96%SpiderMonkey: 100%V8: 100%Moddable XS: 98%QuickJS: 98%engine262: 92% |
 | Strict Mode: an indirect eval assigning into 'eval' does not throw SD 12.2.1-10-s.js | ChakraCore: 2 of 2JavaScriptCore: 2 of 2SpiderMonkey: 2 of 2V8: 2 of 2Moddable XS: 2 of 2QuickJS: 2 of 2engine262: 2 of 2 |
 | Arguments as var identifier in eval code is allowed D 12.2.1-11.js | ChakraCore: 1 of 1JavaScriptCore: 1 of 1SpiderMonkey: 1 of 1V8: 1 of 1Moddable XS: 1 of 1QuickJS: 1 of 1engine262: 1 of 1 |
 | A Function constructor (called as a function) declaring a var named 'arguments' does not throw a SyntaxError SD 12.2.1-16-s.js | ChakraCore: 2 of 2JavaScriptCore: 2 of 2SpiderMonkey: 2 of 2V8: 2 of 2Moddable XS: 2 of 2QuickJS: 2 of 2engine262: 2 of 2 |
 | A Function constructor (called as a function) assigning into 'arguments' will not throw any error if contained within strict mode and its body does not start with strict mode S 12.2.1-17-s.js | ChakraCore: 1 of 1JavaScriptCore: 1 of 1SpiderMonkey: 1 of 1V8: 1 of 1Moddable XS: 1 of 1QuickJS: 1 of 1engine262: 1 of 1 |
 | A direct eval declaring a var named 'arguments' throws SyntaxError in strict mode S 12.2.1-18-s.js | ChakraCore: 1 of 1JavaScriptCore: 1 of 1SpiderMonkey: 1 of 1V8: 1 of 1Moddable XS: 0 of 1QuickJS: 1 of 1engine262: 1 of 1 |
 | A direct eval assigning into 'arguments' throws SyntaxError in strict mode S 12.2.1-19-s.js | ChakraCore: 1 of 1JavaScriptCore: 1 of 1SpiderMonkey: 1 of 1V8: 1 of 1Moddable XS: 0 of 1QuickJS: 1 of 1engine262: 1 of 1 |
 | SyntaxError is thrown if a VariableDeclaration occurs within strict code and its Identifier is eval S 12.2.1-1gs.js | ChakraCore: 1 of 1JavaScriptCore: 1 of 1SpiderMonkey: 1 of 1V8: 1 of 1Moddable XS: 0 of 1QuickJS: 1 of 1engine262: 0 of 1 |
 | A function assigning into 'eval' throws SyntaxError in strict mode S 12.2.1-2-s.js | ChakraCore: 1 of 1JavaScriptCore: 1 of 1SpiderMonkey: 1 of 1V8: 1 of 1Moddable XS: 0 of 1QuickJS: 1 of 1engine262: 1 of 1 |
 | Strict Mode: an indirect eval declaring a var named 'arguments' does not throw SD 12.2.1-20-s.js | ChakraCore: 2 of 2JavaScriptCore: 2 of 2SpiderMonkey: 2 of 2V8: 2 of 2Moddable XS: 2 of 2QuickJS: 2 of 2engine262: 2 of 2 |
 | Strict Mode: an indirect eval assigning into 'arguments' does not throw SD 12.2.1-21-s.js | ChakraCore: 2 of 2JavaScriptCore: 2 of 2SpiderMonkey: 2 of 2V8: 2 of 2Moddable XS: 2 of 2QuickJS: 2 of 2engine262: 2 of 2 |
 | Arguments as global var identifier throws SyntaxError in strict mode SD 12.2.1-22-s.js | ChakraCore: 2 of 2JavaScriptCore: 2 of 2SpiderMonkey: 2 of 2V8: 2 of 2Moddable XS: 2 of 2QuickJS: 2 of 2engine262: 2 of 2 |
 | A function expr declaring a var named 'eval' throws SyntaxError in strict mode S 12.2.1-3-s.js | ChakraCore: 1 of 1JavaScriptCore: 1 of 1SpiderMonkey: 1 of 1V8: 1 of 1Moddable XS: 0 of 1QuickJS: 1 of 1engine262: 1 of 1 |
 | A function expr assigning into 'eval' throws a SyntaxError in strict mode S 12.2.1-4-s.js | ChakraCore: 1 of 1JavaScriptCore: 1 of 1SpiderMonkey: 1 of 1V8: 1 of 1Moddable XS: 0 of 1QuickJS: 1 of 1engine262: 1 of 1 |
 | SyntaxError is thrown if a VariableDeclarationNoIn occurs within strict code and its Identifier is arguments S 12.2.1-4gs.js | ChakraCore: 1 of 1JavaScriptCore: 1 of 1SpiderMonkey: 1 of 1V8: 1 of 1Moddable XS: 0 of 1QuickJS: 1 of 1engine262: 0 of 1 |
 | A Function declaring var named 'eval' does not throw SyntaxError SD 12.2.1-5-s.js | ChakraCore: 2 of 2JavaScriptCore: 2 of 2SpiderMonkey: 2 of 2V8: 2 of 2Moddable XS: 2 of 2QuickJS: 2 of 2engine262: 2 of 2 |
 | A Function assigning into 'eval' will not throw any error if contained within strict mode and its body does not start with strict mode S 12.2.1-6-s.js | ChakraCore: 1 of 1JavaScriptCore: 1 of 1SpiderMonkey: 1 of 1V8: 1 of 1Moddable XS: 1 of 1QuickJS: 1 of 1engine262: 1 of 1 |
 | A direct eval declaring a var named 'eval' throws SyntaxError in strict mode S 12.2.1-7-s.js | ChakraCore: 1 of 1JavaScriptCore: 1 of 1SpiderMonkey: 1 of 1V8: 1 of 1Moddable XS: 0 of 1QuickJS: 1 of 1engine262: 1 of 1 |
 | A direct eval assigning into 'eval' throws SyntaxError in strict mode S 12.2.1-8-s.js | ChakraCore: 1 of 1JavaScriptCore: 1 of 1SpiderMonkey: 1 of 1V8: 1 of 1Moddable XS: 0 of 1QuickJS: 1 of 1engine262: 1 of 1 |
 | An indirect eval declaring a var named 'eval' does not throw SD 12.2.1-9-s.js | ChakraCore: 2 of 2JavaScriptCore: 2 of 2SpiderMonkey: 2 of 2V8: 2 of 2Moddable XS: 2 of 2QuickJS: 2 of 2engine262: 2 of 2 |
 | arguments-fn-non-strict.js D | ChakraCore: 1 of 1JavaScriptCore: 1 of 1SpiderMonkey: 1 of 1V8: 1 of 1Moddable XS: 1 of 1QuickJS: 1 of 1engine262: 1 of 1 |
 | arguments-fn-strict-list-final-init.js S | ChakraCore: 1 of 1JavaScriptCore: 1 of 1SpiderMonkey: 1 of 1V8: 1 of 1Moddable XS: 0 of 1QuickJS: 1 of 1engine262: 1 of 1 |
 | arguments-fn-strict-list-final.js S | ChakraCore: 1 of 1JavaScriptCore: 1 of 1SpiderMonkey: 1 of 1V8: 1 of 1Moddable XS: 0 of 1QuickJS: 1 of 1engine262: 1 of 1 |
 | arguments-fn-strict-list-first-init.js S | ChakraCore: 1 of 1JavaScriptCore: 1 of 1SpiderMonkey: 1 of 1V8: 1 of 1Moddable XS: 0 of 1QuickJS: 1 of 1engine262: 1 of 1 |
 | arguments-fn-strict-list-first.js S | ChakraCore: 1 of 1JavaScriptCore: 1 of 1SpiderMonkey: 1 of 1V8: 1 of 1Moddable XS: 0 of 1QuickJS: 1 of 1engine262: 1 of 1 |
 | arguments-fn-strict-list-middle-init.js S | ChakraCore: 1 of 1JavaScriptCore: 1 of 1SpiderMonkey: 1 of 1V8: 1 of 1Moddable XS: 0 of 1QuickJS: 1 of 1engine262: 1 of 1 |
 | arguments-fn-strict-list-middle.js S | ChakraCore: 1 of 1JavaScriptCore: 1 of 1SpiderMonkey: 1 of 1V8: 1 of 1Moddable XS: 0 of 1QuickJS: 1 of 1engine262: 1 of 1 |
 | arguments-fn-strict-list-repeated.js S | ChakraCore: 1 of 1JavaScriptCore: 1 of 1SpiderMonkey: 1 of 1V8: 1 of 1Moddable XS: 0 of 1QuickJS: 1 of 1engine262: 1 of 1 |
 | arguments-fn-strict-single-init.js S | ChakraCore: 1 of 1JavaScriptCore: 1 of 1SpiderMonkey: 1 of 1V8: 1 of 1Moddable XS: 0 of 1QuickJS: 1 of 1engine262: 1 of 1 |
 | arguments-fn-strict-single.js S | ChakraCore: 1 of 1JavaScriptCore: 1 of 1SpiderMonkey: 1 of 1V8: 1 of 1Moddable XS: 0 of 1QuickJS: 1 of 1engine262: 1 of 1 |
 | arguments-non-strict.js D | ChakraCore: 1 of 1JavaScriptCore: 1 of 1SpiderMonkey: 1 of 1V8: 1 of 1Moddable XS: 1 of 1QuickJS: 1 of 1engine262: 1 of 1 |
 | arguments-strict-list-final-init.js S | ChakraCore: 1 of 1JavaScriptCore: 1 of 1SpiderMonkey: 1 of 1V8: 1 of 1Moddable XS: 0 of 1QuickJS: 1 of 1engine262: 0 of 1 |
 | arguments-strict-list-final.js S | ChakraCore: 1 of 1JavaScriptCore: 1 of 1SpiderMonkey: 1 of 1V8: 1 of 1Moddable XS: 0 of 1QuickJS: 1 of 1engine262: 0 of 1 |
 | arguments-strict-list-first-init.js S | ChakraCore: 1 of 1JavaScriptCore: 1 of 1SpiderMonkey: 1 of 1V8: 1 of 1Moddable XS: 0 of 1QuickJS: 1 of 1engine262: 0 of 1 |
 | arguments-strict-list-first.js S | ChakraCore: 1 of 1JavaScriptCore: 1 of 1SpiderMonkey: 1 of 1V8: 1 of 1Moddable XS: 0 of 1QuickJS: 1 of 1engine262: 0 of 1 |
 | arguments-strict-list-middle-init.js S | ChakraCore: 1 of 1JavaScriptCore: 1 of 1SpiderMonkey: 1 of 1V8: 1 of 1Moddable XS: 0 of 1QuickJS: 1 of 1engine262: 0 of 1 |
 | arguments-strict-list-middle.js S | ChakraCore: 1 of 1JavaScriptCore: 1 of 1SpiderMonkey: 1 of 1V8: 1 of 1Moddable XS: 0 of 1QuickJS: 1 of 1engine262: 0 of 1 |
 | arguments-strict-list-repeated.js S | ChakraCore: 1 of 1JavaScriptCore: 1 of 1SpiderMonkey: 1 of 1V8: 1 of 1Moddable XS: 0 of 1QuickJS: 1 of 1engine262: 0 of 1 |
 | arguments-strict-single-init.js S | ChakraCore: 1 of 1JavaScriptCore: 1 of 1SpiderMonkey: 1 of 1V8: 1 of 1Moddable XS: 0 of 1QuickJS: 1 of 1engine262: 0 of 1 |
 | arguments-strict-single.js S | ChakraCore: 1 of 1JavaScriptCore: 1 of 1SpiderMonkey: 1 of 1V8: 1 of 1Moddable XS: 0 of 1QuickJS: 1 of 1engine262: 0 of 1 |
 | binding-resolution.js D | ChakraCore: 0 of 1JavaScriptCore: 1 of 1SpiderMonkey: 1 of 1V8: 0 of 1Moddable XS: 1 of 1QuickJS: 1 of 1engine262: 1 of 1 |
 | cptn-value.js SD | ChakraCore: 2 of 2JavaScriptCore: 2 of 2SpiderMonkey: 2 of 2V8: 2 of 2Moddable XS: 2 of 2QuickJS: 2 of 2engine262: 2 of 2 |
 | eval-non-strict.js D | ChakraCore: 1 of 1JavaScriptCore: 1 of 1SpiderMonkey: 1 of 1V8: 1 of 1Moddable XS: 1 of 1QuickJS: 1 of 1engine262: 1 of 1 |
 | eval-strict-list-final-init.js S | ChakraCore: 1 of 1JavaScriptCore: 1 of 1SpiderMonkey: 1 of 1V8: 1 of 1Moddable XS: 0 of 1QuickJS: 1 of 1engine262: 0 of 1 |
 | eval-strict-list-final.js S | ChakraCore: 1 of 1JavaScriptCore: 1 of 1SpiderMonkey: 1 of 1V8: 1 of 1Moddable XS: 0 of 1QuickJS: 1 of 1engine262: 0 of 1 |
 | eval-strict-list-first-init.js S | ChakraCore: 1 of 1JavaScriptCore: 1 of 1SpiderMonkey: 1 of 1V8: 1 of 1Moddable XS: 0 of 1QuickJS: 1 of 1engine262: 0 of 1 |
 | eval-strict-list-first.js S | ChakraCore: 1 of 1JavaScriptCore: 1 of 1SpiderMonkey: 1 of 1V8: 1 of 1Moddable XS: 0 of 1QuickJS: 1 of 1engine262: 0 of 1 |
 | eval-strict-list-middle-init.js S | ChakraCore: 1 of 1JavaScriptCore: 1 of 1SpiderMonkey: 1 of 1V8: 1 of 1Moddable XS: 0 of 1QuickJS: 1 of 1engine262: 0 of 1 |
 | eval-strict-list-middle.js S | ChakraCore: 1 of 1JavaScriptCore: 1 of 1SpiderMonkey: 1 of 1V8: 1 of 1Moddable XS: 0 of 1QuickJS: 1 of 1engine262: 0 of 1 |
 | eval-strict-list-repeated.js S | ChakraCore: 1 of 1JavaScriptCore: 1 of 1SpiderMonkey: 1 of 1V8: 1 of 1Moddable XS: 0 of 1QuickJS: 1 of 1engine262: 0 of 1 |
 | eval-strict-single-init.js S | ChakraCore: 1 of 1JavaScriptCore: 1 of 1SpiderMonkey: 1 of 1V8: 1 of 1Moddable XS: 0 of 1QuickJS: 1 of 1engine262: 0 of 1 |
 | eval-strict-single.js S | ChakraCore: 1 of 1JavaScriptCore: 1 of 1SpiderMonkey: 1 of 1V8: 1 of 1Moddable XS: 0 of 1QuickJS: 1 of 1engine262: 0 of 1 |
 | fn-name-arrow.js SD | ChakraCore: 2 of 2JavaScriptCore: 2 of 2SpiderMonkey: 2 of 2V8: 2 of 2Moddable XS: 2 of 2QuickJS: 2 of 2engine262: 2 of 2 |
 | fn-name-class.js SD | ChakraCore: 2 of 2JavaScriptCore: 2 of 2SpiderMonkey: 2 of 2V8: 2 of 2Moddable XS: 2 of 2QuickJS: 2 of 2engine262: 2 of 2 |
 | fn-name-cover.js SD | ChakraCore: 0 of 2JavaScriptCore: 2 of 2SpiderMonkey: 2 of 2V8: 2 of 2Moddable XS: 2 of 2QuickJS: 2 of 2engine262: 2 of 2 |
 | fn-name-fn.js SD | ChakraCore: 0 of 2JavaScriptCore: 2 of 2SpiderMonkey: 2 of 2V8: 2 of 2Moddable XS: 2 of 2QuickJS: 2 of 2engine262: 2 of 2 |
 | fn-name-gen.js SD | ChakraCore: 0 of 2JavaScriptCore: 2 of 2SpiderMonkey: 2 of 2V8: 2 of 2Moddable XS: 2 of 2QuickJS: 2 of 2engine262: 2 of 2 |
 | id-arguments-strict.js S | ChakraCore: 1 of 1JavaScriptCore: 1 of 1SpiderMonkey: 1 of 1V8: 1 of 1Moddable XS: 0 of 1QuickJS: 1 of 1engine262: 0 of 1 |
 | id-eval-strict.js S | ChakraCore: 1 of 1JavaScriptCore: 1 of 1SpiderMonkey: 1 of 1V8: 1 of 1Moddable XS: 0 of 1QuickJS: 1 of 1engine262: 0 of 1 |
 | Creating variables after entering the execution scope SD S12.2_A1.js | ChakraCore: 2 of 2JavaScriptCore: 2 of 2SpiderMonkey: 2 of 2V8: 2 of 2Moddable XS: 2 of 2QuickJS: 2 of 2engine262: 2 of 2 |
 | Declaring variable within a 'for' IterationStatement SD S12.2_A10.js | ChakraCore: 2 of 2JavaScriptCore: 2 of 2SpiderMonkey: 2 of 2V8: 2 of 2Moddable XS: 2 of 2QuickJS: 2 of 2engine262: 2 of 2 |
 | Changing variable value using property attributes SD S12.2_A11.js | ChakraCore: 2 of 2JavaScriptCore: 2 of 2SpiderMonkey: 2 of 2V8: 2 of 2Moddable XS: 2 of 2QuickJS: 2 of 2engine262: 2 of 2 |
 | Declaring variable within 'do-while' statement SD S12.2_A12.js | ChakraCore: 2 of 2JavaScriptCore: 2 of 2SpiderMonkey: 2 of 2V8: 2 of 2Moddable XS: 2 of 2QuickJS: 2 of 2engine262: 2 of 2 |
 | If deleting global variables that have the attributes {DontDelete} fails D S12.2_A2.js | ChakraCore: 1 of 1JavaScriptCore: 1 of 1SpiderMonkey: 1 of 1V8: 1 of 1Moddable XS: 1 of 1QuickJS: 1 of 1engine262: 1 of 1 |
 | Using Global scope and Function scope together SD S12.2_A3.js | ChakraCore: 2 of 2JavaScriptCore: 2 of 2SpiderMonkey: 2 of 2V8: 2 of 2Moddable XS: 2 of 2QuickJS: 2 of 2engine262: 2 of 2 |
 | Create and use unicode characters in variable Identifier SD S12.2_A4.js | ChakraCore: 2 of 2JavaScriptCore: 2 of 2SpiderMonkey: 2 of 2V8: 2 of 2Moddable XS: 2 of 2QuickJS: 2 of 2engine262: 2 of 2 |
 | Executing eval('var x') D S12.2_A5.js | ChakraCore: 1 of 1JavaScriptCore: 1 of 1SpiderMonkey: 1 of 1V8: 1 of 1Moddable XS: 1 of 1QuickJS: 1 of 1engine262: 1 of 1 |
 | Declaring variable within 'try-catch' statement SD S12.2_A6_T1.js | ChakraCore: 2 of 2JavaScriptCore: 2 of 2SpiderMonkey: 2 of 2V8: 2 of 2Moddable XS: 2 of 2QuickJS: 2 of 2engine262: 2 of 2 |
 | Declaring variables within 'try-catch' statement SD S12.2_A6_T2.js | ChakraCore: 2 of 2JavaScriptCore: 2 of 2SpiderMonkey: 2 of 2V8: 2 of 2Moddable XS: 2 of 2QuickJS: 2 of 2engine262: 2 of 2 |
 | Declaring variable within 'for' statement SD S12.2_A7.js | ChakraCore: 2 of 2JavaScriptCore: 2 of 2SpiderMonkey: 2 of 2V8: 2 of 2Moddable XS: 2 of 2QuickJS: 2 of 2engine262: 2 of 2 |
 | If execution of 'var x += 1' fails SD S12.2_A8_T1.js | ChakraCore: 2 of 2JavaScriptCore: 2 of 2SpiderMonkey: 2 of 2V8: 2 of 2Moddable XS: 2 of 2QuickJS: 2 of 2engine262: 0 of 2 |
 | If execution of 'var x | true' fails SD S12.2_A8_T2.js | ChakraCore: 2 of 2JavaScriptCore: 2 of 2SpiderMonkey: 2 of 2V8: 2 of 2Moddable XS: 2 of 2QuickJS: 2 of 2engine262: 0 of 2 |
 | If execution of 'var x && 1' fails SD S12.2_A8_T3.js | ChakraCore: 2 of 2JavaScriptCore: 2 of 2SpiderMonkey: 2 of 2V8: 2 of 2Moddable XS: 2 of 2QuickJS: 2 of 2engine262: 0 of 2 |
 | If execution of 'var x++' fails SD S12.2_A8_T4.js | ChakraCore: 2 of 2JavaScriptCore: 2 of 2SpiderMonkey: 2 of 2V8: 2 of 2Moddable XS: 2 of 2QuickJS: 2 of 2engine262: 0 of 2 |
 | If execution of 'var --x' fails SD S12.2_A8_T5.js | ChakraCore: 2 of 2JavaScriptCore: 2 of 2SpiderMonkey: 2 of 2V8: 2 of 2Moddable XS: 2 of 2QuickJS: 2 of 2engine262: 0 of 2 |
 | If execution of 'var x*1' fails SD S12.2_A8_T6.js | ChakraCore: 2 of 2JavaScriptCore: 2 of 2SpiderMonkey: 2 of 2V8: 2 of 2Moddable XS: 2 of 2QuickJS: 2 of 2engine262: 0 of 2 |
 | If execution of 'var x>>1' fails SD S12.2_A8_T7.js | ChakraCore: 2 of 2JavaScriptCore: 2 of 2SpiderMonkey: 2 of 2V8: 2 of 2Moddable XS: 2 of 2QuickJS: 2 of 2engine262: 0 of 2 |
 | If execution of 'var x in __arr' fails SD S12.2_A8_T8.js | ChakraCore: 2 of 2JavaScriptCore: 2 of 2SpiderMonkey: 2 of 2V8: 2 of 2Moddable XS: 2 of 2QuickJS: 2 of 2engine262: 0 of 2 |
 | Enumerating property attributes of 'this' and then searching for the declared variable SD S12.2_A9.js | ChakraCore: 2 of 2JavaScriptCore: 2 of 2SpiderMonkey: 2 of 2V8: 2 of 2Moddable XS: 2 of 2QuickJS: 2 of 2engine262: 2 of 2 |
 | Declaring a function within an 'if' Expression SD S14_A1.js | ChakraCore: 2 of 2JavaScriptCore: 2 of 2SpiderMonkey: 2 of 2V8: 2 of 2Moddable XS: 2 of 2QuickJS: 2 of 2engine262: 2 of 2 |
 | static-init-await-binding-invalid.js SD | ChakraCore: 2 of 2JavaScriptCore: 2 of 2SpiderMonkey: 2 of 2V8: 2 of 2Moddable XS: 2 of 2QuickJS: 2 of 2engine262: 2 of 2 |
 | static-init-await-binding-valid.js SD | ChakraCore: 0 of 2JavaScriptCore: 0 of 2SpiderMonkey: 2 of 2V8: 2 of 2Moddable XS: 0 of 2QuickJS: 0 of 2engine262: 0 of 2 |