Commit Graph

18 Commits

Author SHA1 Message Date
marja
44c8c1bcfe [strong] Cleanup and fix test (declaration-after-use.js).
Cleanup: Better helpers, unified line splitting. Also asserting that without
strong mode, the snippets don't produce errors.

Fix: The eval related tests were wrong (we didn't make sure that the error
thrown comes from strong scoping and is not a normal runtime error).

BUG=v8:3956
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#27153}
2015-03-12 10:52:08 +00:00
marja
6ad87e4f86 [strong] More scoping related errors: object literal methods.
This CL adds errors for illegal references which occur inside object literal
methods inside computed properrty names.

BUG=v8:3948,v8:3956
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#27118}
2015-03-10 16:48:07 +00:00
marja
4a709dd658 [strong] Fix scoping related errors for methods.
Methods can refer to the class name.

BUG=v8:3927
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#27075}
2015-03-09 14:30:40 +00:00
arv
392b591e0c Fix issue with class name TDZ in computed property names
BUG=v8:3923
LOG=N
R=marja,rossberg

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

Cr-Commit-Position: refs/heads/master@{#26892}
2015-02-26 18:37:19 +00:00
marja
1eddcf5b71 [strong] Declaration-after-use errors.
We cannot yet detect use-before-declaration in general, because for that we'd
need to analyze the context when compiling. But we can detect an error case
where we first see a use, then a declaration.

For this, I also added end position tracking (needed for error messages) to
VariableProxy.

Note: the position naming is completely inconsistent: start_position &
end_position, position & end_position, pos & end_pos, beg_pos & end_pos, to name
a few. This doesn't fix all of it, but tries to unify towards start_position &
end_position whenever possible w/ minimal changes.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#26880}
2015-02-26 13:48:19 +00:00
rossberg
c094da9233 [strong] Make functions and generators non-extensible non-constructors
R=dslomov@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#26854}
2015-02-25 14:52:51 +00:00
rossberg
943dc63126 [strong] Deprecate ellisions
R=marja@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#26820}
2015-02-24 12:51:08 +00:00
rossberg
7b49ed658c [strong] make function and class declarations lexical & immutable
R=arv@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#26755}
2015-02-19 16:49:19 +00:00
rossberg
0ebd870f72 [strong] Deprecate arguments
R=marja@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#26753}
2015-02-19 14:58:42 +00:00
rossberg
7d089a5929 [strong] Deprecate for-in
R=marja@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#26751}
2015-02-19 13:50:41 +00:00
marja
90501dd703 [strong] Remove a regression test for "use before var".
This case should break in strong mode (unlike previously thought).

R=rossberg@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#26726}
2015-02-18 16:12:51 +00:00
Andreas Rossberg
c503241945 [strong] deprecate empty sub-statements
R=marja@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#26701}
2015-02-17 16:26:06 +00:00
Andreas Rossberg
f55242948e [strong] Deprecate delete
R=marja@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#26698}
2015-02-17 16:08:11 +00:00
marja
34281c8322 [strong] Forbid var.
R=rossberg@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#26697}
2015-02-17 15:41:25 +00:00
marja
7c15df8144 [strong] Remove mjsunit/strong/use-strong-flag.js
It would force us to make mjsunit.js strong-compatible, and that's too much for
now (for the upcoming features) and would have a ripple effect on other
tests. Especially debug-script.js which unships harmony features would break.

R=rossberg@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#26694}
2015-02-17 15:11:08 +00:00
rossberg
5c847d1f09 [strong] make --use-strong flag work in d8
This broke with the TSAN fix.

R=marja@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#26687}
2015-02-17 12:08:02 +00:00
marja
868470ddc9 [strong] Adding regression cases which should always continue working.
1) Mutually recursive functions
2) Strong code using non-strong var before declaration.

These test cases ensure that we don't accidentally kill these wanted behaviors
when adding restrictions to strong mode.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#26671}
2015-02-16 17:57:43 +00:00
rossberg
dff690ec07 [strong] no sloppy equality
R=marja@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#26619}
2015-02-12 15:10:04 +00:00