|
29 | 29 | } |
30 | 30 |
|
31 | 31 | if (!esprima || !_) { |
32 | | - throw "Error: Both Esprima and UnderscoreJS are required dependencies."; |
| 32 | + throw new Error("Error: Both Esprima and UnderscoreJS are required dependencies."); |
33 | 33 | } |
34 | 34 |
|
35 | 35 | /* |
|
257 | 257 | cachedCodeTree : |
258 | 258 | typeof code === "object" ? |
259 | 259 | deepClone(code) : |
260 | | - esprima.parse(code)); |
| 260 | + esprima.parse(code, { jsx: true })); |
261 | 261 |
|
262 | 262 | cachedCode = code; |
263 | 263 | cachedCodeTree = codeTree; |
|
440 | 440 | } |
441 | 441 |
|
442 | 442 | // Wrapped in parentheses so function() {} becomes valid Javascript. |
443 | | - var fullTree = esprima.parse("(" + structure + ")"); |
| 443 | + var fullTree = esprima.parse("(" + structure + ")", { jsx: true }); |
444 | 444 |
|
445 | | - if (fullTree.body[0].expression.type !== "FunctionExpression" || |
| 445 | + if ((fullTree.body[0].expression.type !== "FunctionExpression" && fullTree.body[0].expression.type !== "ArrowFunctionExpression") || |
446 | 446 | !fullTree.body[0].expression.body) { |
447 | | - throw "Poorly formatted structure code"; |
| 447 | + throw new Error("Poorly formatted structure code"); |
448 | 448 | } |
449 | 449 |
|
450 | 450 | var tree = fullTree.body[0].expression.body; |
|
965 | 965 |
|
966 | 966 | if (node.name === "_") { |
967 | 967 | if (!data._ || data._.length === 0) { |
968 | | - throw "No _ data available."; |
| 968 | + throw new Error("No _ data available."); |
969 | 969 | } |
970 | 970 |
|
971 | 971 | return data._.shift(); |
972 | 972 | } else if (node.name && node.name.indexOf("$") === 0) { |
973 | 973 | var name = node.name.slice(1); |
974 | 974 |
|
975 | 975 | if (!data.vars || !(name in data.vars)) { |
976 | | - throw "No vars available."; |
| 976 | + throw new Error("No vars available."); |
977 | 977 | } |
978 | 978 |
|
979 | 979 | return data.vars[name]; |
|
989 | 989 |
|
990 | 990 | if (check.name === "glob_") { |
991 | 991 | if (!data._ || data._.length === 0) { |
992 | | - throw "No _ data available."; |
| 992 | + throw new Error("No _ data available."); |
993 | 993 | } |
994 | 994 |
|
995 | 995 | return data._.shift(); |
996 | 996 | } else if (check.name && check.name.indexOf("glob$") === 0) { |
997 | 997 | var name = check.name.slice(5); |
998 | 998 |
|
999 | 999 | if (!data.vars || !(name in data.vars)) { |
1000 | | - throw "No vars available."; |
| 1000 | + throw new Error("No vars available."); |
1001 | 1001 | } |
1002 | 1002 |
|
1003 | 1003 | return data.vars[name]; |
|
0 commit comments