Improve parsing errors related to destructuring bind
authorlittledan <littledan@chromium.org>
Tue, 14 Jul 2015 21:57:40 +0000 (14:57 -0700)
committerCommit bot <commit-bot@chromium.org>
Tue, 14 Jul 2015 21:57:51 +0000 (21:57 +0000)
commit9d6ab46aefdd2fac057e443ff5dd8ee81f570e39
treed31c5e6af5af66958b9534096acbffaff39cc3a8
parented898473cfadcb8b3b5b0c776a56d4a2513f5317
Improve parsing errors related to destructuring bind

For destructuring bind, the parser needs to complain about things
which are inappropriate to have on the left-hand side.

Previously, regexp literals and template literals were let through
the parser inappropriately. This patch turns those into errors.

This patch also fixes off-by-one errors in reporting the location
of this type of error for strings and numbers. Before the patch,
the error would look like:

d8> var {x: 3} = {x: 4}
(d8):1: SyntaxError: Unexpected number
var {x: 3} = {x: 4}
      ^
SyntaxError: Unexpected number

And with the patch, the error is

d8> var {x: 3} = {x: 4}
(d8):1: SyntaxError: Unexpected number
var {x: 3} = {x: 4}
        ^
SyntaxError: Unexpected number

R=rossberg

Review URL: https://codereview.chromium.org/1236803003

Cr-Commit-Position: refs/heads/master@{#29661}
src/messages.h
src/preparser.h
test/cctest/test-parsing.cc