Tests for ES6 arrow function syntax errors On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". PASS =>{} threw exception SyntaxError: Unexpected token '=>'. PASS x=> threw exception SyntaxError: Unexpected end of script. PASS x=>* threw exception SyntaxError: Unexpected token '*'. PASS x=>/ threw exception SyntaxError: Unterminated regular expression literal '/'. PASS x=>% threw exception SyntaxError: Unexpected token '%'. PASS x=>+ threw exception SyntaxError: Unexpected end of script. PASS x=>- threw exception SyntaxError: Unexpected end of script. PASS x=><< threw exception SyntaxError: Unexpected token '<<'. PASS x=>>> threw exception SyntaxError: Unexpected token '>>'. PASS x=>>>> threw exception SyntaxError: Unexpected token '>>>'. PASS x=>< threw exception SyntaxError: Unexpected token '<'. PASS x=>> threw exception SyntaxError: Unexpected token '>'. PASS x=><= threw exception SyntaxError: Unexpected token '<='. PASS x=>>= threw exception SyntaxError: Unexpected token '>='. PASS x=>instanceof threw exception SyntaxError: Unexpected keyword 'instanceof'. PASS x=>in threw exception SyntaxError: Unexpected keyword 'in'. PASS x=>== threw exception SyntaxError: Unexpected token '=='. PASS x=>!= threw exception SyntaxError: Unexpected token '!='. PASS x=>=== threw exception SyntaxError: Unexpected token '==='. PASS x=>!== threw exception SyntaxError: Unexpected token '!=='. PASS x=>& threw exception SyntaxError: Unexpected token '&'. PASS x=>^ threw exception SyntaxError: Unexpected token '^'. PASS x=>| threw exception SyntaxError: Unexpected token '|'. PASS x=>&& threw exception SyntaxError: Unexpected token '&&'. PASS x=>|| threw exception SyntaxError: Unexpected token '||'. PASS x=>; threw exception SyntaxError: Unexpected token ';'. PASS x=>, threw exception SyntaxError: Unexpected token ','. PASS x=>{ threw exception SyntaxError: Unexpected end of script. PASS x=>{* threw exception SyntaxError: Unexpected token '*'. PASS x=>{/ threw exception SyntaxError: Unterminated regular expression literal '/'. PASS x=>{% threw exception SyntaxError: Unexpected token '%'. PASS x=>{+ threw exception SyntaxError: Unexpected end of script. PASS x=>{- threw exception SyntaxError: Unexpected end of script. PASS x=>{<< threw exception SyntaxError: Unexpected token '<<'. PASS x=>{>> threw exception SyntaxError: Unexpected token '>>'. PASS x=>{>>> threw exception SyntaxError: Unexpected token '>>>'. PASS x=>{< threw exception SyntaxError: Unexpected token '<'. PASS x=>{> threw exception SyntaxError: Unexpected token '>'. PASS x=>{<= threw exception SyntaxError: Unexpected token '<='. PASS x=>{>= threw exception SyntaxError: Unexpected token '>='. PASS x=>{instanceof threw exception SyntaxError: Unexpected keyword 'instanceof'. PASS x=>{in threw exception SyntaxError: Unexpected keyword 'in'. PASS x=>{== threw exception SyntaxError: Unexpected token '=='. PASS x=>{!= threw exception SyntaxError: Unexpected token '!='. PASS x=>{=== threw exception SyntaxError: Unexpected token '==='. PASS x=>{!== threw exception SyntaxError: Unexpected token '!=='. PASS x=>{& threw exception SyntaxError: Unexpected token '&'. PASS x=>{^ threw exception SyntaxError: Unexpected token '^'. PASS x=>{| threw exception SyntaxError: Unexpected token '|'. PASS x=>{&& threw exception SyntaxError: Unexpected token '&&'. PASS x=>{|| threw exception SyntaxError: Unexpected token '||'. PASS x=>{; threw exception SyntaxError: Unexpected end of script. PASS x=>{, threw exception SyntaxError: Unexpected token ','. PASS x=>} threw exception SyntaxError: Unexpected token '}'. PASS var y = x=> threw exception SyntaxError: Unexpected end of script. PASS var y = x=>* threw exception SyntaxError: Unexpected token '*'. PASS var y = x=>/ threw exception SyntaxError: Unterminated regular expression literal '/'. PASS var y = x=>% threw exception SyntaxError: Unexpected token '%'. PASS var y = x=>+ threw exception SyntaxError: Unexpected end of script. PASS var y = x=>- threw exception SyntaxError: Unexpected end of script. PASS var y = x=><< threw exception SyntaxError: Unexpected token '<<'. PASS var y = x=>>> threw exception SyntaxError: Unexpected token '>>'. PASS var y = x=>>>> threw exception SyntaxError: Unexpected token '>>>'. PASS var y = x=>< threw exception SyntaxError: Unexpected token '<'. PASS var y = x=>> threw exception SyntaxError: Unexpected token '>'. PASS var y = x=><= threw exception SyntaxError: Unexpected token '<='. PASS var y = x=>>= threw exception SyntaxError: Unexpected token '>='. PASS var y = x=>instanceof threw exception SyntaxError: Unexpected keyword 'instanceof'. PASS var y = x=>in threw exception SyntaxError: Unexpected keyword 'in'. PASS var y = x=>== threw exception SyntaxError: Unexpected token '=='. PASS var y = x=>!= threw exception SyntaxError: Unexpected token '!='. PASS var y = x=>=== threw exception SyntaxError: Unexpected token '==='. PASS var y = x=>!== threw exception SyntaxError: Unexpected token '!=='. PASS var y = x=>& threw exception SyntaxError: Unexpected token '&'. PASS var y = x=>^ threw exception SyntaxError: Unexpected token '^'. PASS var y = x=>| threw exception SyntaxError: Unexpected token '|'. PASS var y = x=>&& threw exception SyntaxError: Unexpected token '&&'. PASS var y = x=>|| threw exception SyntaxError: Unexpected token '||'. PASS var y = x=>; threw exception SyntaxError: Unexpected token ';'. PASS var y = x=>, threw exception SyntaxError: Unexpected token ','. PASS var y = x=>{ threw exception SyntaxError: Unexpected end of script. PASS var y = x=>{* threw exception SyntaxError: Unexpected token '*'. PASS var y = x=>{/ threw exception SyntaxError: Unterminated regular expression literal '/'. PASS var y = x=>{% threw exception SyntaxError: Unexpected token '%'. PASS var y = x=>{+ threw exception SyntaxError: Unexpected end of script. PASS var y = x=>{- threw exception SyntaxError: Unexpected end of script. PASS var y = x=>{<< threw exception SyntaxError: Unexpected token '<<'. PASS var y = x=>{>> threw exception SyntaxError: Unexpected token '>>'. PASS var y = x=>{>>> threw exception SyntaxError: Unexpected token '>>>'. PASS var y = x=>{< threw exception SyntaxError: Unexpected token '<'. PASS var y = x=>{> threw exception SyntaxError: Unexpected token '>'. PASS var y = x=>{<= threw exception SyntaxError: Unexpected token '<='. PASS var y = x=>{>= threw exception SyntaxError: Unexpected token '>='. PASS var y = x=>{instanceof threw exception SyntaxError: Unexpected keyword 'instanceof'. PASS var y = x=>{in threw exception SyntaxError: Unexpected keyword 'in'. PASS var y = x=>{== threw exception SyntaxError: Unexpected token '=='. PASS var y = x=>{!= threw exception SyntaxError: Unexpected token '!='. PASS var y = x=>{=== threw exception SyntaxError: Unexpected token '==='. PASS var y = x=>{!== threw exception SyntaxError: Unexpected token '!=='. PASS var y = x=>{& threw exception SyntaxError: Unexpected token '&'. PASS var y = x=>{^ threw exception SyntaxError: Unexpected token '^'. PASS var y = x=>{| threw exception SyntaxError: Unexpected token '|'. PASS var y = x=>{&& threw exception SyntaxError: Unexpected token '&&'. PASS var y = x=>{|| threw exception SyntaxError: Unexpected token '||'. PASS var y = x=>{; threw exception SyntaxError: Unexpected end of script. PASS var y = x=>{, threw exception SyntaxError: Unexpected token ','. PASS var y = x=>} threw exception SyntaxError: Unexpected token '}'. PASS var t = x=>x+1; =>{} threw exception SyntaxError: Unexpected token '=>'. PASS [=>x+1] threw exception SyntaxError: Unexpected token '=>'. PASS [x=>x+1, =>x+1] threw exception SyntaxError: Unexpected token '=>'. PASS var f=>x+1; threw exception SyntaxError: Unexpected token '=>'. Expected ';' after variable declaration.. PASS var x, y=>y+1; threw exception SyntaxError: Unexpected token '=>'. Expected ';' after variable declaration.. PASS debug(=>x+1) threw exception SyntaxError: Unexpected token '=>'. PASS debug("xyz", =>x+1) threw exception SyntaxError: Unexpected token '=>'. PASS var af1=y =>y+1 threw exception SyntaxError: Unexpected token '=>'. PASS var af2=(y) =>y+1 threw exception SyntaxError: Unexpected token '=>'. PASS var af3=(x, y) =>y+1 threw exception SyntaxError: Unexpected token '=>'. PASS ([a, b] => a + b)(["a_", "b_"]) threw exception SyntaxError: Unexpected token '=>'. Expected ')' to end a compound expression.. PASS ({a, b} => a + b)({a:"a_", b:"b_"}) threw exception SyntaxError: Unexpected token '=>'. Expected ')' to end a compound expression.. PASS ({c:a,d:b} => a + b)({c:"a_", d:"b_"}) threw exception SyntaxError: Unexpected token '=>'. Expected ')' to end a compound expression.. PASS ({c:b,d:a} => a + b)({c:"a_", d:"b_"}) threw exception SyntaxError: Unexpected token '=>'. Expected ')' to end a compound expression.. PASS var arr1 = [a, b] => a + b; threw exception SyntaxError: Unexpected token '=>'. Expected ';' after variable declaration.. PASS var arr2 = {a, b} => a + b; threw exception SyntaxError: Unexpected token '=>'. Expected ';' after variable declaration.. PASS var arr3 = {c:a,d:b} => a + b; threw exception SyntaxError: Unexpected token '=>'. Expected ';' after variable declaration.. PASS var arr3 = {c:b,d:a} => a + b; threw exception SyntaxError: Unexpected token '=>'. Expected ';' after variable declaration.. PASS var arr4 = () => { super(); }; threw exception SyntaxError: super is not valid in this context.. PASS var arr4 = () => { super; }; threw exception SyntaxError: super is not valid in this context.. PASS var arr5 = () => { super.getValue(); }; threw exception SyntaxError: super is not valid in this context.. PASS var arr6 = () => super(); threw exception SyntaxError: super is not valid in this context.. PASS var arr7 = () => super; threw exception SyntaxError: super is not valid in this context.. PASS var arr8 = () => super.getValue(); threw exception SyntaxError: super is not valid in this context.. PASS class A { constructor() { function a () { return () => { super(); };}} threw exception SyntaxError: super is not valid in this context.. PASS class B { constructor() { function b () { return () => { super; }; }; }} threw exception SyntaxError: super is not valid in this context.. PASS class C { constructor() { function c () { return () => { super.getValue(); };}} threw exception SyntaxError: super is not valid in this context.. PASS class D { constructor() { function a () { return () => super(); }} threw exception SyntaxError: super is not valid in this context.. PASS class E { constructor() { function b () { return () => super; }; }} threw exception SyntaxError: super is not valid in this context.. PASS class F { constructor() { function c () { return () => super.getValue(); }} threw exception SyntaxError: super is not valid in this context.. PASS class G {}; class G2 extends G { getValue() { function c () { return () => super.getValue(); }} threw exception SyntaxError: super is not valid in this context.. PASS class H {}; class H2 extends H { method() { function *gen() { let arr = () => super.getValue(); arr(); } } } threw exception SyntaxError: super is not valid in this context.. PASS successfullyParsed is true TEST COMPLETE