marja@chromium.org
b6a8f739ea
Misc cleanup (split from the "delay string / value internalization" CL).
...
- Missing includes / forward declaration
- Parser: Simplifying calling error reporting funcs.
R=ulan@chromium.org
BUG=
Review URL: https://codereview.chromium.org/307393002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21652 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-03 16:12:48 +00:00
jochen@chromium.org
56a486c322
Use full include paths everywhere
...
- this avoids using relative include paths which are forbidden by the style guide
- makes the code more readable since it's clear which header is meant
- allows for starting to use checkdeps
BUG=none
R=jkummerow@chromium.org , danno@chromium.org
LOG=n
Review URL: https://codereview.chromium.org/304153016
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21625 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-03 08:12:43 +00:00
marja@chromium.org
048ee40e3d
Minor cleanups & trivial refactoring related to Ast.
...
1) Literal::IsNull, IsTrue and IsFalse were dead code, and not needed.
2) No need to use the node type constants outside the Ast; there is IsSomeNodeType().
3) AsSomeNodeType() != NULL -> IsSomeNodeType().
R=rossberg@chromium.org
BUG=
Review URL: https://codereview.chromium.org/298143004
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21621 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-03 07:40:43 +00:00
ulan@chromium.org
3fcda0e576
Make let variables fresh in each iteration of a for-loop.
...
BUG=v8:2198
LOG=N
TEST=mjsunit/harmony/block-for
R=rossberg@chromium.org
Review URL: https://codereview.chromium.org/292743009
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21480 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-26 08:07:02 +00:00
rossberg@chromium.org
06f746a576
Consistently say 'own' property
...
R=yangguo@chromium.org
BUG=
Review URL: https://codereview.chromium.org/291153005
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21441 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-22 15:27:57 +00:00
marja@chromium.org
2fee5a16ee
Parser: delay throwing errors.
...
This makes Parser a bit more independent of Isolate during the recursive descent
phase. That is necessary for making it possible to run Parser on a non-main
thread in the future.
Proof of concept CL for the the "Parser independent of Isolate" work is here:
https://codereview.chromium.org/231073002/
BUG=
R=rossberg@chromium.org
Review URL: https://codereview.chromium.org/289373005
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21385 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-20 12:22:04 +00:00
marja@chromium.org
11b8551f60
Parser / PreParser: Simplify error message arguments.
...
In some places, we pretended that there can be multiple arguments, though in
practice there was only one. In other places (most importantly, PreParser), we
only handled one argument. (This means that we were not able to produce a
multi-argument error inside a lazy function anyway.)
This CL makes it clear that there is ever only one argument.
R=ulan@chromium.org
BUG=
Review URL: https://codereview.chromium.org/273653002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21324 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-15 09:44:57 +00:00
marja@chromium.org
43f9c67842
Produce cached data only for scripts which compile without errors.
...
ScriptCompiler::CompileUnbound handles cached data only when there was no
compilation error, so, if we produce the data for erroneous scripts, the
ScriptData object is leaked.
In addition, producing cached data for erroneous scripts makes little sense.
R=ulan@chromium.org
BUG=370327
LOG=N
Review URL: https://codereview.chromium.org/266423003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21164 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-06 11:22:54 +00:00
marja@chromium.org
98cd283399
Remove symbol preparse data altogether.
...
Removing it seems to be a clear win on mobile: producing symbol data makes cold
parsing 20-30% slower, and having symbol data doesn't make warm parsing any
faster.
Notes:
- V8 used to produce symbol data, but because of a bug, it was never used until
recently. (See fix https://codereview.chromium.org/172753002 which takes the
symbol data into use again.)
- On desktop, warm parsing is faster if we have symbol data, and producing it
during cold parsing doesn't make parsing substantially slower. However, this
doesn't seem to be the case on mobile.
- The preparse data (cached data) will now contain only the positions of the
lazy functions.
BUG=
R=dcarney@chromium.org
Review URL: https://codereview.chromium.org/261273003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@21146 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-05 14:55:13 +00:00
mvstanton@chromium.org
15dc39a86f
Simplify feedback vector creation and store in SharedFunctionInfo.
...
LOG=N
BUG=v8:3212
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/254623002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@21085 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-30 10:51:01 +00:00
bmeurer@chromium.org
d4b533d41b
Bulk update of Google copyright headers in source files.
...
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/259183002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@21035 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-29 06:42:26 +00:00
ishell@chromium.org
4591771820
StringTable::LookupKey() and all callers handlified.
...
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/249103002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20915 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-23 15:43:39 +00:00
ishell@chromium.org
313844d842
Heap::AllocateStringFromOneByte() and major part of its callers handlified.
...
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/239243018
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20846 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-17 13:27:02 +00:00
marja@chromium.org
a43a63b110
Refactor ParseFunctionLiteral.
...
It was a pretty monstrous 500 line function.
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/237243003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20752 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-15 08:29:24 +00:00
marja@chromium.org
ed1d232d5d
Parser cleanup: PreParser doesn't need to produce symbol data any more.
...
State of the art:
- Chromium doesn't do a separate preparsing phase any more.
- We start parsing with Parser, and when it sees a lazy function, it falls back
to PreParser for that function.
- The symbol data should contain symbols which are *outside* lazy functions.
- So Parser should always produce symbol data, and PreParser should never.
- Because it's this simple now, we don't need to keep track of "should
produce symbol data" (i.e., whether we're inside a lazy func or not).
R=ulan@chromium.org
BUG=
Review URL: https://codereview.chromium.org/222123003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20707 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-14 08:49:23 +00:00
marja@chromium.org
d70f78827e
Fail the compilation if the cached data is invalid.
...
R=svenpanne@chromium.org
BUG=
Review URL: https://codereview.chromium.org/234953002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20703 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-14 07:35:46 +00:00
marja@chromium.org
069d783a91
Remove the PreCompile API and ScriptData.
...
The new compilation API (ScriptCompiler::Compile) can produce the same data, so
the separate precompilation phase is not needed. ScriptData is replaced by
ScriptCompiler::CachedData.
R=svenpanne@chromium.org
BUG=
Review URL: https://codereview.chromium.org/225753004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20683 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-11 11:44:49 +00:00
yangguo@chromium.org
a640707213
Implement handlified String::Equals and Name::Equals.
...
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/225823003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20669 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-11 07:27:25 +00:00
yangguo@chromium.org
ed9f1af2fc
Implement handlified String::Flatten.
...
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/228093004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20572 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-08 09:49:49 +00:00
yangguo@chromium.org
164e5b580c
Reland "Return MaybeHandle from NewConsString."
...
R=ishell@chromium.org
Review URL: https://codereview.chromium.org/223813002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20480 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-03 12:30:37 +00:00
yangguo@chromium.org
87dd16e3cd
Revert "Return MaybeHandle from NewConsString."
...
This reverts r20473.
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/223593004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20475 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-03 12:09:14 +00:00
yangguo@chromium.org
be0d2f5d15
Return MaybeHandle from NewConsString.
...
R=ishell@chromium.org
Review URL: https://codereview.chromium.org/223383002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20473 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-03 11:38:01 +00:00
rossberg@chromium.org
2fda95eb80
Make stray 'return' an early error
...
As required by the spec, and implemented by other browsers.
(Plus minor clean-up for redeclaration TypeErrors.)
R=marja@chromium.org
BUG=
LOG=Y
Review URL: https://codereview.chromium.org/220473014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20434 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-02 12:38:01 +00:00
rossberg@chromium.org
45118bfdfb
Make invalid LHSs that are calls late errors
...
Necessary for web legacy compatibility.
Also fold in additional strict mode checks into LHS checks.
Minor constness clean-ups on the way.
R=marja@chromium.org
BUG=chromium:358346
LOG=Y
Review URL: https://codereview.chromium.org/217823003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20428 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-02 11:03:05 +00:00
marja@chromium.org
eecaef41d9
PreParser fix: propagate reference erros properly.
...
For example, invalid left hand sides are reference errors. PreParser didn't use
to produce this error ever, so the code for propagating reference errors
properly was missing, and reference errors turned into syntax errors.
R=rossberg@chromium.org
BUG=
Review URL: https://codereview.chromium.org/220233006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20408 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-01 14:17:43 +00:00
yangguo@chromium.org
9be61ddb8a
Hide some runtime functions.
...
R=dslomov@chromium.org
Review URL: https://codereview.chromium.org/212163004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20285 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-26 15:51:48 +00:00
yangguo@chromium.org
82f630a9f7
Reland "No longer OOM on invalid string length."
...
R=ishell@chromium.org
Review URL: https://codereview.chromium.org/210683003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20225 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-25 09:09:24 +00:00
yangguo@chromium.org
72932ae417
Revert "No longer OOM on invalid string length."
...
This reverts r20202.
TBR=machenbach@chromium.org
Review URL: https://codereview.chromium.org/210143002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20203 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-24 15:36:15 +00:00
yangguo@chromium.org
531217502c
No longer OOM on invalid string length.
...
R=ishell@chromium.org
BUG=v8:3060
LOG=Y
Review URL: https://codereview.chromium.org/207613005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20202 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-24 15:01:17 +00:00
marja@chromium.org
b4d617e48d
Parser fix: check allow_harmony_scoping() instead of FLAG_harmony_scoping.
...
Without this fix, ParserBase::set_allow_harmony_scoping() and the
kAllowHarmonyScoping in test-parsing.cc don't have any effect, and we end up not
running the tests with harmony scoping allowed.
R=rossberg@chromium.org
BUG=
Review URL: https://codereview.chromium.org/209993002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20200 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-24 14:41:55 +00:00
marja@chromium.org
e79ff8275c
Move new expression parsing funcs to ParserBase.
...
Functions moved: ParseMemberWithNewPrefixesExpression, ParseMemberExpression,
ParseMemberExpressionContinuation.
Now all Parse*Expression functions are in ParserBase.
R=mstarzinger@chromium.org
BUG=
Review URL: https://codereview.chromium.org/207633003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20153 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-21 10:34:51 +00:00
marja@chromium.org
7708d4a22d
Move ParseLeftHandSideExpression to ParserBase.
...
Includes cleanups:
- Reorganized functions in PreParserFactory to be in the logical order.
- De-hackified things PreParser doesn't need to track, such as IsCall & IsCallNew.
R=mstarzinger@chromium.org
BUG=
Review URL: https://codereview.chromium.org/206433003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20150 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-21 09:51:33 +00:00
marja@chromium.org
8452030817
Move ParsePostfixExpression into ParserBase.
...
+ enable a test which checks that Parser and PreParser produce the "invalid left
hand side" errors consistently.
R=mstarzinger@chromium.org
BUG=
Review URL: https://codereview.chromium.org/202333004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20149 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-21 09:46:18 +00:00
yangguo@chromium.org
000be4d033
Reland "Throw exception on invalid string length instead of OOM."
...
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/199583007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20119 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-20 12:27:36 +00:00
yangguo@chromium.org
a5a82ef123
Revert "Throw exception on invalid string length instead of OOM."
...
This reverts r20112.
TBR=yangguo@chromium.org
Review URL: https://codereview.chromium.org/206383002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20114 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-20 11:11:28 +00:00
yangguo@chromium.org
9ba80269ee
Throw exception on invalid string length instead of OOM.
...
R=bmeurer@chromium.org
BUG=349329
LOG=Y
Review URL: https://codereview.chromium.org/199853004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20112 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-20 10:49:33 +00:00
marja@chromium.org
e9717833f9
Move ParseUnaryExpression into ParserBase and add tests.
...
This also makes PreParser produce the strict_delete error the same way as
Parser (see test).
R=rossberg@chromium.org
BUG=
Review URL: https://codereview.chromium.org/203193004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20079 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-19 14:08:47 +00:00
marja@chromium.org
c04dd3fb7f
Revert "Move ParseUnaryExpression into ParserBase and add tests."
...
This reverts revision 20077.
Reason: build fail on some compilers.
BUG=
TBR=marja@chromium.org ,rossberg@chromium.org
Review URL: https://codereview.chromium.org/203413009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20078 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-19 13:58:15 +00:00
marja@chromium.org
f4ef82309a
Move ParseUnaryExpression into ParserBase and add tests.
...
This also makes PreParser produce the strict_delete error the same way as
Parser (see test).
R=rossberg@chromium.org
BUG=
Review URL: https://codereview.chromium.org/203193004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20077 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-19 13:42:41 +00:00
marja@chromium.org
932a29a66a
New compilation API, part 2.
...
This CL makes the Parser produce the data PreParser used to produce. This
enables us to get rid of the unnecessary preparsing phase.
The first part is here: https://codereview.chromium.org/199063003/
BUG=
R=dcarney@chromium.org , svenpanne@chromium.org
Review URL: https://codereview.chromium.org/203353002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20075 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-19 13:24:13 +00:00
marja@chromium.org
9b94d12fd7
Move ParseBinaryExpression to ParserBase.
...
R=mstarzinger@chromium.org
BUG=v8:3126
LOG=N
Review URL: https://codereview.chromium.org/196933005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19997 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-17 13:54:42 +00:00
marja@chromium.org
6cf32b134a
Move ParseConditionalExpression to ParserBase.
...
R=mstarzinger@chromium.org
BUG=v8:3126
LOG=N
Review URL: https://codereview.chromium.org/198053002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19994 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-17 13:36:39 +00:00
rossberg@chromium.org
c3c185c173
Make invalid LHSs a parse-time (reference) error
...
This is required by the spec. It also prevents crashes resulting from the attempt to read type feedback for the RHS of an invalid assignment which full codegen never actually allocated info for.
To do: check properly in preparser already.
R=marja@chromium.org , mstarzinger@chromium.org
BUG=351658
LOG=Y
Review URL: https://codereview.chromium.org/200473003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19976 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-17 10:21:01 +00:00
marja@chromium.org
ee46e648ec
Move ParseYieldExpression to ParserBase.
...
R=mstarzinger@chromium.org
BUG=v8:3126
LOG=N
Review URL: https://codereview.chromium.org/197353003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19921 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-14 09:51:22 +00:00
marja@chromium.org
a89f68c6cd
Move ParseAssignmentExpression to ParserBase.
...
R=mstarzinger@chromium.org , mstarzinger
BUG=v8:3126
LOG=N
Committed: https://code.google.com/p/v8/source/detail?r=19908
Review URL: https://codereview.chromium.org/197653002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19920 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-14 09:43:04 +00:00
marja@chromium.org
7c66ec9319
Revert "Move ParseAssignmentExpression to ParserBase."
...
This reverts revision 19908.
Reason: clang doesn't like it.
BUG=
Review URL: https://codereview.chromium.org/199233003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19909 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-13 16:11:26 +00:00
marja@chromium.org
9cc39f5a66
Move ParseAssignmentExpression to ParserBase.
...
R=mstarzinger@chromium.org , mstarzinger
BUG=v8:3126
LOG=N
Review URL: https://codereview.chromium.org/197653002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19908 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-13 16:06:08 +00:00
dcarney@chromium.org
869db33cbb
Only call to LogSymbol when needed.
...
R=marja@chromium.org
BUG=
Review URL: https://codereview.chromium.org/198903002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19892 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-13 11:56:13 +00:00
dcarney@chromium.org
619d812a02
Convert scanner buffers to use standard character types.
...
R=marja@chromium.org
BUG=
Review URL: https://codereview.chromium.org/198583003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19883 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-13 09:15:14 +00:00
dcarney@chromium.org
87e77085a6
Move most scanner buffer accesses into scanner.
...
R=marja@chromium.org
BUG=
Review URL: https://codereview.chromium.org/197103002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19849 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-12 14:03:25 +00:00