twada / power-assert-runtime

monorepo of power-assert runtime side
MIT License
20 stars 5 forks source link

throws with object spread operator in assertion expression #6

Open nfcampos opened 8 years ago

nfcampos commented 8 years ago

Description

const obj = {a: 1}
t.true(obj == {...obj})

throws the following exception

SyntaxError: Unexpected token (1:16)
    at Parser.pp.raise (/Users/nuno/cp/j2/node_modules/power-assert-formatter/node_modules/acorn/dist/acorn.js:943:13)
    at Parser.pp.unexpected (/Users/nuno/cp/j2/node_modules/power-assert-formatter/node_modules/acorn/dist/acorn.js:1503:8)
    at Parser.pp.parseIdent (/Users/nuno/cp/j2/node_modules/power-assert-formatter/node_modules/acorn/dist/acorn.js:670:10)
    at Parser.parseIdent (/Users/nuno/cp/j2/node_modules/acorn-es7-plugin/acorn-es7-plugin.js:93:19)
    at Parser.pp.parsePropertyName (/Users/nuno/cp/j2/node_modules/power-assert-formatter/node_modules/acorn/dist/acorn.js:554:127)
    at Parser.parsePropertyName (/Users/nuno/cp/j2/node_modules/acorn-es7-plugin/acorn-es7-plugin.js:219:19)
    at Parser.pp.parseObj (/Users/nuno/cp/j2/node_modules/power-assert-formatter/node_modules/acorn/dist/acorn.js:500:10)
    at Parser.pp.parseExprAtom (/Users/nuno/cp/j2/node_modules/power-assert-formatter/node_modules/acorn/dist/acorn.js:310:19)
    at Parser.parseExprAtom (/Users/nuno/cp/j2/node_modules/acorn-es7-plugin/acorn-es7-plugin.js:109:21)
    at Parser.pp.parseExprSubscripts (/Users/nuno/cp/j2/node_modules/power-assert-formatter/node_modules/acorn/dist/acorn.js:216:19)
    at Parser.pp.parseMaybeUnary (/Users/nuno/cp/j2/node_modules/power-assert-formatter/node_modules/acorn/dist/acorn.js:197:19)
    at Parser.pp.parseExprOp (/Users/nuno/cp/j2/node_modules/power-assert-formatter/node_modules/acorn/dist/acorn.js:173:42)
    at Parser.pp.parseExprOps (/Users/nuno/cp/j2/node_modules/power-assert-formatter/node_modules/acorn/dist/acorn.js:153:15)
    at Parser.pp.parseMaybeConditional (/Users/nuno/cp/j2/node_modules/power-assert-formatter/node_modules/acorn/dist/acorn.js:133:19)
    at Parser.pp.parseMaybeAssign (/Users/nuno/cp/j2/node_modules/power-assert-formatter/node_modules/acorn/dist/acorn.js:110:19)
    at Parser.pp.parseExprList (/Users/nuno/cp/j2/node_modules/power-assert-formatter/node_modules/acorn/dist/acorn.js:651:185)
twada commented 8 years ago

@nfcampos Thank you for reporting! I assume that you are using AVA. I'm going to fix this.

jamestalmage commented 8 years ago

Originally reported here: https://github.com/avajs/ava/issues/797

Hey @twada! 😃

dbettini commented 7 years ago

Hey @twada , any update on this? I see you made a commit but it doesn't seem to work. babylon still throws Unexpected token error. I'm guessing it needs babel-plugin-transform-object-rest-spread plugin to work

twada commented 7 years ago

@dbettini Thanks and I forgot to close this issue since this is fixed a year ago.

On Babel6, you can use object spread operator by setting embedAst: true to babel-plugin-espower. Would you try it? If it doesn't work. Would you give me a small reproduction case in a form of github repository or gist?

On Babel7, I need a tiny fix to run experimental features so please keep in touch. I'll release it in a few days.

dbettini commented 7 years ago

@twada since I'm using AVA, I just added babel-plugin-transform-object-rest-spread plugin by extending ava config in package.json

twada commented 7 years ago

@dbettini FYI https://github.com/avajs/ava/issues/1554