node-theseus
node-theseus copied to clipboard
support for generators
Hello,
I want to use theseus with the generator functions ( --harmony ) I changed the shebang of node-theseus to add the --harmony option, and i was able to start my project but I get some errors. And I can see any "call" in brackets Does theseus support generators ? Can I configure something else to get it work ?
Here's the log : $ node-theseus --theseus-verbose index.js [node-theseus] adding require() instrumentation hook [node-theseus] listening for WebSocket connections on port 8888 [node-theseus] instrumenting /home/user/folder/Repo/koa-crud/index.js ... exception during parsing /home/user/folder/Repo/koa-crud/index.js Error: Line 61: Unexpected token * at throwError (/usr/local/lib/node_modules/node-theseus/node_modules/fondue/node_modules/falafel/node_modules/esprima/esprima.js:1156:21) at throwUnexpected (/usr/local/lib/node_modules/node-theseus/node_modules/fondue/node_modules/falafel/node_modules/esprima/esprima.js:1213:9) at parseVariableIdentifier (/usr/local/lib/node_modules/node-theseus/node_modules/fondue/node_modules/falafel/node_modules/esprima/esprima.js:2074:13) at /usr/local/lib/node_modules/node-theseus/node_modules/fondue/node_modules/falafel/node_modules/esprima/esprima.js:3598:38 at parseFunctionDeclaration (/usr/local/lib/node_modules/node-theseus/node_modules/fondue/node_modules/falafel/node_modules/esprima/esprima.js:2873:14) at /usr/local/lib/node_modules/node-theseus/node_modules/fondue/node_modules/falafel/node_modules/esprima/esprima.js:3598:38 at parseSourceElement (/usr/local/lib/node_modules/node-theseus/node_modules/fondue/node_modules/falafel/node_modules/esprima/esprima.js:3044:24) at parseSourceElements (/usr/local/lib/node_modules/node-theseus/node_modules/fondue/node_modules/falafel/node_modules/esprima/esprima.js:3084:29) at parseProgram (/usr/local/lib/node_modules/node-theseus/node_modules/fondue/node_modules/falafel/node_modules/esprima/esprima.js:3098:19) at /usr/local/lib/node_modules/node-theseus/node_modules/fondue/node_modules/falafel/node_modules/esprima/esprima.js:3598:38 exception during parsing /home/alexis/Stage/Repo/koa-crud/index.js Error: Line 61: Unexpected token * at throwError (/usr/local/lib/node_modules/node-theseus/node_modules/fondue/node_modules/falafel/node_modules/esprima/esprima.js:1156:21) at throwUnexpected (/usr/local/lib/node_modules/node-theseus/node_modules/fondue/node_modules/falafel/node_modules/esprima/esprima.js:1213:9) at parseVariableIdentifier (/usr/local/lib/node_modules/node-theseus/node_modules/fondue/node_modules/falafel/node_modules/esprima/esprima.js:2074:13) at /usr/local/lib/node_modules/node-theseus/node_modules/fondue/node_modules/falafel/node_modules/esprima/esprima.js:3598:38 at parseFunctionDeclaration (/usr/local/lib/node_modules/node-theseus/node_modules/fondue/node_modules/falafel/node_modules/esprima/esprima.js:2873:14) at /usr/local/lib/node_modules/node-theseus/node_modules/fondue/node_modules/falafel/node_modules/esprima/esprima.js:3598:38 at parseSourceElement (/usr/local/lib/node_modules/node-theseus/node_modules/fondue/node_modules/falafel/node_modules/esprima/esprima.js:3044:24) at parseSourceElements (/usr/local/lib/node_modules/node-theseus/node_modules/fondue/node_modules/falafel/node_modules/esprima/esprima.js:3084:29) at parseProgram (/usr/local/lib/node_modules/node-theseus/node_modules/fondue/node_modules/falafel/node_modules/esprima/esprima.js:3098:19) at /usr/local/lib/node_modules/node-theseus/node_modules/fondue/node_modules/falafel/node_modules/esprima/esprima.js:3598:38 js-bson: Failed to load c++ bson extension, using pure JS version Failed to load c++ bson extension, using pure JS version [node-theseus] instrumenting /home/user/folder/Repo/koa-crud/config/db.js ... listening on port 3000 Successfully connected to: mongodb://localhost/myDb [node-theseus] debugger connected
The problem is actually that Theseus doesn't support Harmony.
After [node-theseus] adding require() instrumentation hook, any time you use require(), Theseus looks at the JavaScript before it's loaded, analyzes it, tweaks it for debugging, then evaluates the result. Unfortunately, Theseus's parser doesn't support Harmony (or at least, not very much of Harmony).
I'd welcome a patch that adds support for Harmony, but fondue is pretty esprima-specific at this point, and I won't have the time to work on that in the near future. :\
Esprima now fully supports ES2015. Please work again on Theseus. I liked this tool very much.