computed properties start with a punctuator

Code:

    ({ '[': 42 })

The string '[' is confused with an ES6 computed property so running the resulting AST through escodegen gives:

    ({ ['[']: 42 })

This fix just checks to make sure the `[` is a punctuator.

https://code.google.com/p/esprima/issues/detail?id=589