ulan@chromium.org [Fri, 14 Feb 2014 15:52:24 +0000 (15:52 +0000)]
Fix dictionary element load to pass correct elements kind.
Using FAST_SMI_ELEMENTS triggers optimization on 64-bit architectures that load
only the higher 32 bits of the element. If the element is a pointer to undefined
that has 0 in the higher half than it is erroneously treated as SMI 0.
BUG=v8:3158
LOG=N
TEST=mjsunit/sparse-array-reverse,mjsunit/regress/regress-3158.js
R=danno@chromium.org, ishell@chromium.org
Review URL: https://codereview.chromium.org/
166653005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19387
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
marja@chromium.org [Fri, 14 Feb 2014 15:33:10 +0000 (15:33 +0000)]
(Pre)Parser: Simplify NewExpression handling.
Notes:
- We use simple recursion to keep track of how many "new" operators we have seen
and where.
- This makes the self-baked stack class PositionStack in parser.cc unnecessary.
- Now the logic is also unified between Parser and PreParser.
- It might have been a copy-paste artifact (ParseLeftHandSideExpression ->
ParseMemberWithNewPrefixesExpression) that the logic was so complicated
before.
R=ulan@chromium.org
BUG=v8:3126
LOG=N
Review URL: https://codereview.chromium.org/
166943002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19386
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Fri, 14 Feb 2014 15:17:26 +0000 (15:17 +0000)]
Remove HandlerKindField and just encode the handlerkind as the only extra-ic-state.
R=ishell@chromium.org
Review URL: https://codereview.chromium.org/
166883002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19385
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Fri, 14 Feb 2014 15:15:08 +0000 (15:15 +0000)]
Don't mix handler flags into regular flag computation.
BUG=
R=ishell@chromium.org
Review URL: https://codereview.chromium.org/
163363003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19384
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Fri, 14 Feb 2014 15:14:34 +0000 (15:14 +0000)]
Pass in the handler kind to IC computation rather than extracting it from the handler.
R=ishell@chromium.org
Review URL: https://codereview.chromium.org/
163463002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19383
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Fri, 14 Feb 2014 14:58:05 +0000 (14:58 +0000)]
Add flags for write barrier elimination and local allocation folding.
R=hpayer@chromium.org
Review URL: https://codereview.chromium.org/
166163003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19382
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
dcarney@chromium.org [Fri, 14 Feb 2014 14:48:20 +0000 (14:48 +0000)]
build fix for r19380
R=mstarzinger@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
166483004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19381
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
dcarney@chromium.org [Fri, 14 Feb 2014 14:13:06 +0000 (14:13 +0000)]
api accessor store ics should return passed value
R=verwaest@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
166653003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19380
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Fri, 14 Feb 2014 12:40:47 +0000 (12:40 +0000)]
Fix assignment of function name constant.
If it's shadowed by a variable of the same name and both are forcibly
context-allocated, the function is assigned to the wrong context slot.
R=rossberg@chromium.org
BUG=v8:3138
LOG=Y
Review URL: https://codereview.chromium.org/
159903008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19379
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
bmeurer@chromium.org [Fri, 14 Feb 2014 12:34:28 +0000 (12:34 +0000)]
Handle the uninitialized oddball in Type::LubBitset().
R=rossberg@chromium.org
Review URL: https://codereview.chromium.org/
166203002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19378
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
hpayer@chromium.org [Fri, 14 Feb 2014 12:33:35 +0000 (12:33 +0000)]
The sweeper thread should not write the page flags. Added a sweeping complete phase, where the main thread writes the given page flags.
BUG=
R=jarin@chromium.org, jochen@chromium.org
Review URL: https://codereview.chromium.org/
163683003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19377
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
marja@chromium.org [Fri, 14 Feb 2014 12:13:33 +0000 (12:13 +0000)]
Remove Parser::scanner(). There is already ParserBase::scanner().
R=ulan@chromium.org
BUG=v8:3126
LOG=N
Review URL: https://codereview.chromium.org/
166513003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19376
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jarin@chromium.org [Fri, 14 Feb 2014 12:02:39 +0000 (12:02 +0000)]
Test and fix for polymorphic named call deoptimization.
The fix removes wrong simulates from the number branch of polymorphic
call/field access handling.
The change also fixes the same thing for polymorphic named field
access even thourgh the field access is probably safe in practice
(because it cannot deoptimize). It is better to keep all our simulates
in sync with full codegen.
R=jkummerow@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
166503002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19375
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
marja@chromium.org [Fri, 14 Feb 2014 11:24:26 +0000 (11:24 +0000)]
(Pre)Parser: Move ParsePrimaryExpression to ParserBase.
Notes:
- To be able to move the recursive descent functions to ParserBase one at a
time, we temporarily need routing functions from traits to Parser/PreParser,
since the recursive descent functions form a cyclic structure.
- PreParser used to always allow intrinsic syntax. After this CL, it depends on
allow_natives_syntax() which was already in ParserBase.
- This CL also decouples (Pre)ParserTraits better from (Pre)Parser, passing more
information as parameters, so that the Traits don't need to get it from
(Pre)Parser.
R=ulan@chromium.org
BUG=v8:3126
LOG=N
Review URL: https://codereview.chromium.org/
163333003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19374
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jkummerow@chromium.org [Fri, 14 Feb 2014 10:03:17 +0000 (10:03 +0000)]
Valgrind fix: always initialize HCheckTableEntry->is_stable_
BUG=chromium:343621
LOG=N
R=ishell@chromium.org
Review URL: https://codereview.chromium.org/
166413002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19371
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Fri, 14 Feb 2014 09:33:03 +0000 (09:33 +0000)]
Fix typed array error message.
R=dslomov@chromium.org
BUG=v8:3159
LOG=N
Review URL: https://codereview.chromium.org/
163293002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19369
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
m.m.capewell@googlemail.com [Fri, 14 Feb 2014 09:12:39 +0000 (09:12 +0000)]
A64: Prevent repeated restoring of root in gap resolver
BUG=
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/
164353002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19368
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
machenbach@chromium.org [Fri, 14 Feb 2014 01:05:20 +0000 (01:05 +0000)]
Prepare push to trunk. Now working on version 3.24.40.
R=jkummerow@chromium.org
TBR=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/
163183007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19365
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
palfia@homejinni.com [Thu, 13 Feb 2014 18:11:49 +0000 (18:11 +0000)]
MIPS: Fix r19360 "Improve positions tracking inside the HGraphBuilder."
BUG=
R=vegorov@chromium.org
Review URL: https://codereview.chromium.org/
164033002
Patch from Balazs Kilvady <kilvadyb@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19364
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Thu, 13 Feb 2014 16:55:38 +0000 (16:55 +0000)]
Fix polymorphic inlining of accessors in a test-context.
R=ishell@chromium.org
Review URL: https://codereview.chromium.org/
164003002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19363
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vegorov@chromium.org [Thu, 13 Feb 2014 16:53:18 +0000 (16:53 +0000)]
Fix A64 build: unwrap HSourcePosition into int before recording.
Remove unused position_ field in the LChunkBuilder.
R=ulan@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
163913003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19362
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
marja@chromium.org [Thu, 13 Feb 2014 16:17:55 +0000 (16:17 +0000)]
(Pre)Parser: Move FunctionState, BlockState and Scope handling to ParserBase.
Notes:
- This removes Parser::FunctionState and PreParser::FunctionState and adds
ParserBase::FunctionState etc.
- Also the scope stacks and function state stacks are moved to ParserBase.
- PreParser::FunctionState didn't add and subtract
JSFunction::kLiteralsPrefixSize (unlike Parser::FunctionState). Since the
actual value of NextMaterializedLiteralIndex is not used in the Preparser,
this change is valid.
- Traits no longer need functions like is_classic_mode(), since now there is a
unified way of getting the information from the FunctionState / Scope.
R=ulan@chromium.org
BUG=v8:3126
LOG=N
Review URL: https://codereview.chromium.org/
135213007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19361
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vegorov@chromium.org [Thu, 13 Feb 2014 16:09:28 +0000 (16:09 +0000)]
Improve positions tracking inside the HGraphBuilder.
Instead of tracking simple absolute offset from the start of the script like other places do, track a pair of (inlining id, offset from the start of inlined function).
This enables us to pinpoint with inlining path an instruction came from. Previously in multi-script environments we emitted positions that made very little sense because inside a single optimized function they would point to different scripts without a way to distinguish them.
Start dumping the source of every inlined function to make possible IR viewing tools with integrated source views as there was previously no way to acquire this information from IR dumps. We also dump source position at which each inlining occured.
Tracked positions are written into hydrogen.cfg as pos:<inlining-id>_<offset>.
Flag --emit-opt-code-positions is renamed by this change into --hydrogen-track-positions to better convey it's meaning.
In addition this change assigned global unique identifier to each optimization performed inside isolate. This allows to precisely match compilation artifacts (e.g. IR and disassembly) and deoptimizations.
BUG=
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/
140683011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19360
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Thu, 13 Feb 2014 15:54:19 +0000 (15:54 +0000)]
Return on the polymorphic hard deopt case to ensure we don't polute phis with fake type information.
R=ishell@chromium.org
Review URL: https://codereview.chromium.org/
163403003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19359
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
m.m.capewell@googlemail.com [Thu, 13 Feb 2014 15:49:01 +0000 (15:49 +0000)]
A64: Fix some int32 accesses in lithium
This fixes mjsunit/sin-cos. There are further int32 accesses being investigated.
BUG=
R=jochen@chromium.org
Review URL: https://codereview.chromium.org/
163553005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19358
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jochen@chromium.org [Thu, 13 Feb 2014 15:36:17 +0000 (15:36 +0000)]
Introduce --job-based-sweeping flag and use individual jobs for sweeping if set
BUG=v8:3104
R=hpayer@chromium.org
LOG=y
Review URL: https://codereview.chromium.org/
143803007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19357
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
alph@chromium.org [Thu, 13 Feb 2014 15:31:39 +0000 (15:31 +0000)]
Count ArrayBuffer's backing_store memory in heap snapshot.
BUG=341741
LOG=N
R=dslomov@chromium.org, loislo@chromium.org
Review URL: https://codereview.chromium.org/
163593002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19356
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
hpayer@chromium.org [Thu, 13 Feb 2014 15:01:10 +0000 (15:01 +0000)]
Use NoBarrier_Load and NoBarrier_Store in FreeListCategory::Concatenate.
BUG=
R=jarin@chromium.org
Review URL: https://codereview.chromium.org/
138953018
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19355
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ishell@chromium.org [Thu, 13 Feb 2014 12:22:24 +0000 (12:22 +0000)]
Restore of compare-objeq-elim test accidentally removed in r19229.
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/
162903005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19354
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Thu, 13 Feb 2014 12:02:57 +0000 (12:02 +0000)]
Removed unused field, making clang happy again.
R=marja@chromium.org
Review URL: https://codereview.chromium.org/
163233003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19353
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ulan@chromium.org [Thu, 13 Feb 2014 10:56:10 +0000 (10:56 +0000)]
Enable test-api/SetFunctionEntryHook for a64. It was fixed in r19297.
BUG=v8:3153
LOG=N
R=jochen@chromium.org
Review URL: https://codereview.chromium.org/
163243003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19352
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
bmeurer@chromium.org [Thu, 13 Feb 2014 10:47:00 +0000 (10:47 +0000)]
Allow map check hoisting in GVN for stable maps.
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/
163263002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19351
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
alexandre.rames@arm.com [Thu, 13 Feb 2014 10:27:42 +0000 (10:27 +0000)]
A64: Indicate the correct size for constant pools.
This fixes potential issues that would appear when trying to insert a breakpoint
from JavaScript.
Without this, computing the mapping of addresses between versions of the code with
and without debug slots could be off by an instruction, trigerring nasty bugs.
R=jochen@chromium.org
Review URL: https://codereview.chromium.org/
139983007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19350
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Thu, 13 Feb 2014 10:16:13 +0000 (10:16 +0000)]
Prepare push to trunk. Now working on version 3.24.39.
R=machenbach@chromium.org
TBR=machenbach@chromium.org
Review URL: https://codereview.chromium.org/
162853003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19347
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Thu, 13 Feb 2014 09:36:20 +0000 (09:36 +0000)]
Do not internalize in TryConvertKey.
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/
163213002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19346
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Thu, 13 Feb 2014 08:43:53 +0000 (08:43 +0000)]
Internalize string keys in Keyed{Store,Load}IC.
R=jkummerow@chromium.org
BUG=v8:3144
LOG=N
Review URL: https://codereview.chromium.org/
162983003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19345
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
rafaelw@chromium.org [Wed, 12 Feb 2014 22:04:19 +0000 (22:04 +0000)]
V8 Microtask Queue & API
This patch generalizes Object.observe callbacks and promise resolution into a FIFO queue called a "microtask queue".
It also exposes new V8 API which exposes the microtask queue to the embedder. In particular, it allows the embedder to
-schedule a microtask (EnqueueExternalMicrotask)
-run the microtask queue (RunMicrotasks)
-control whether the microtask queue is run automatically within V8 when the last script exits (SetAutorunMicrotasks).
R=dcarney@chromium.org, rossberg@chromium.org, dcarney, rossberg, svenpanne
BUG=
Review URL: https://codereview.chromium.org/
154283002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19344
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
plind44@gmail.com [Wed, 12 Feb 2014 18:55:33 +0000 (18:55 +0000)]
MIPS: Omit redundant smi checks in write barriers.
Port r19323 (
929c047)
BUG=
R=plind44@gmail.com
Review URL: https://codereview.chromium.org/
160713002
Patch from Balazs Kilvady <kilvadyb@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19343
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Wed, 12 Feb 2014 18:48:12 +0000 (18:48 +0000)]
Reland: "Use stability to only conditionally flush information from the CheckMaps table."
BUG=
R=ishell@chromium.org
Original CL: https://codereview.chromium.org/
153823003
Review URL: https://codereview.chromium.org/
153653007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19342
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Wed, 12 Feb 2014 18:30:41 +0000 (18:30 +0000)]
Don't propagate information through phis in loop headers.
To properly do this, we'd have to iterate over CompareMaps (and their bodies) handling phis, until we have learned enough to decide which paths can be taken. For now, just disable learning from phis in loop headers.
BUG=
R=ishell@chromium.org
Review URL: https://codereview.chromium.org/
147023005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19341
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
rmcilroy@chromium.org [Wed, 12 Feb 2014 18:22:28 +0000 (18:22 +0000)]
[a64]: Disable failing sparse-array-reverse on a64 debug builds.
BUG=v8:3158
LOG=N
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/
160633002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19340
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ishell@chromium.org [Wed, 12 Feb 2014 17:31:29 +0000 (17:31 +0000)]
KeyedLoadIC::GenerateGeneric() fix for MIPS.
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/
160353003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19339
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Wed, 12 Feb 2014 16:18:18 +0000 (16:18 +0000)]
Fix test-heap/OptimizedPretenuringAllocationFolding wrt concurrent recompilation delay.
R=hpayer@chromium.org
Review URL: https://codereview.chromium.org/
148063008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19338
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
alph@chromium.org [Wed, 12 Feb 2014 15:50:23 +0000 (15:50 +0000)]
Stack trace string should use dynamic script sourceURL if present.
BUG=v8:2342
R=dcarney@chromium.org, yurys@chromium.org, yurys
LOG=N
Review URL: https://codereview.chromium.org/
143283015
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19333
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
hpayer@chromium.org [Wed, 12 Feb 2014 15:40:23 +0000 (15:40 +0000)]
Make prev and next pointer in pages list AtomicWords and access them using acquire/release semantics.
BUG=
R=jarin@chromium.org
Review URL: https://codereview.chromium.org/
150413009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19332
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Wed, 12 Feb 2014 15:38:42 +0000 (15:38 +0000)]
Revert "Use stability to only conditionally flush information from the CheckMaps table."
R=ishell@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
137863005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19331
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Wed, 12 Feb 2014 15:07:41 +0000 (15:07 +0000)]
Use stability to only conditionally flush information from the CheckMaps table.
BUG=
R=ishell@chromium.org
Review URL: https://codereview.chromium.org/
153823003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19330
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ishell@chromium.org [Wed, 12 Feb 2014 13:54:55 +0000 (13:54 +0000)]
Port of r19288 to a64: Fix for smi stores optimization.
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/
159513004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19329
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
rmcilroy@chromium.org [Wed, 12 Feb 2014 13:34:40 +0000 (13:34 +0000)]
Avoid doing explicit cast in simulator-a64::get_sp().
R=rodolph.perfetta@arm.com
Review URL: https://codereview.chromium.org/
153823012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19328
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
rmcilroy@chromium.org [Wed, 12 Feb 2014 13:33:54 +0000 (13:33 +0000)]
Add to OWNERS for arm and a64
R=danno@chromium.org
Review URL: https://codereview.chromium.org/
138953017
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19327
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jarin@chromium.org [Wed, 12 Feb 2014 13:31:24 +0000 (13:31 +0000)]
Fix for (One|Two)ByteSeqStringSetChar evaluation order/deopt.
This makes the evaluation order consistent between full codegen
and Hydrogen (so that deopt does not screw up stack).
R=jkummerow@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
159983008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19326
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
rmcilroy@chromium.org [Wed, 12 Feb 2014 13:27:13 +0000 (13:27 +0000)]
Clean up some A64 specific code in common code that was introduced by A64 merge
- Remove arch specific check macros
- Remove duplicate code in code-stubs.h
- Remove flag check in bootstrap.cc which was introduced for A64 bringup
- Remove A64 specific test message expectations
R=rodolph.perfetta@arm.com, ulan@chromium.org
Review URL: https://codereview.chromium.org/
134333011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19325
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
bmeurer@chromium.org [Wed, 12 Feb 2014 12:44:01 +0000 (12:44 +0000)]
[a64] Omit redundant smi checks in write barriers.
R=rmcilroy@chromium.org
Review URL: https://codereview.chromium.org/
156603007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19324
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
bmeurer@chromium.org [Wed, 12 Feb 2014 12:36:53 +0000 (12:36 +0000)]
Omit redundant smi checks in write barriers.
R=hpayer@chromium.org
Review URL: https://codereview.chromium.org/
155843006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19323
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
bmeurer@chromium.org [Wed, 12 Feb 2014 12:34:14 +0000 (12:34 +0000)]
Improve computation of effects for load elimination.
R=ishell@chromium.org
Review URL: https://codereview.chromium.org/
152953004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19322
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jochen@chromium.org [Wed, 12 Feb 2014 12:18:36 +0000 (12:18 +0000)]
A64: Skip tests failing on gc stress bots
BUG=none
TBR=ulan@chromium.org
LOG=n
Review URL: https://codereview.chromium.org/
160353002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19321
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Wed, 12 Feb 2014 12:06:11 +0000 (12:06 +0000)]
Improved variable-related assembler comments in fullcode.
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/
157033012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19320
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
marja@chromium.org [Wed, 12 Feb 2014 12:02:07 +0000 (12:02 +0000)]
Refactor scope and function state tracking in (Pre)Parser.
Notes:
- PreParser::Scope was a weird combination of Parser::FunctionState and
Scope. Split it into two (PreParser::FunctionState and PreParser::Scope). This
is necessary for unifying the Parser and the PreParser.
- Scopes take care of language mode and tracking "with".
- FunctionStates take care of counting material literal indexes, properties
etc. and tracking generators.
- PreParser::Scope::InsideWith was a hack to make a FunctionState-like object
take care of tracking "with". It's now the responsibility fo PreParser::Scope
and Scope.
- PreParser::ScopeType is unnecessarly, there is already a ScopeType enum in
v8globals.h.
- Renamed scope stack variables so that they're consistent in Parser and PreParser.
- Parser::FunctionState and Parser::BlockState had an unnecessary dependency to
the Parser; they only need a couple of things from Parser. Broke the
dependency.
R=ulan@chromium.org
BUG=v8:3126
LOG=N
Review URL: https://codereview.chromium.org/
148293011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19319
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jochen@chromium.org [Wed, 12 Feb 2014 11:57:50 +0000 (11:57 +0000)]
A64: Skip more known failures
TBR=ulan@chromium.org
BUG=none
LOG=n
Review URL: https://codereview.chromium.org/
160073007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19318
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
marja@chromium.org [Wed, 12 Feb 2014 11:56:07 +0000 (11:56 +0000)]
Move parenthesized_function_ to ParserBase.
This change is trivial (was probably overlooked when ParserBase was created).
R=yangguo@chromium.org
BUG=v8:3126
LOG=N
Review URL: https://codereview.chromium.org/
150943008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19317
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
alexandre.rames@arm.com [Wed, 12 Feb 2014 11:55:52 +0000 (11:55 +0000)]
A64: Remove two TODOs that will not be done.
- For the LDP/STP TODO: The arguments need dereferencing, so using LDP/STP would
require some additional checks.
- For the constant pools TODO: Unless we need to, there is no benefit from
trying to generate constant pools more often, as it would likely only pollute
the I-cache.
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/
151363004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19316
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jacob.bramley@arm.com [Wed, 12 Feb 2014 11:54:34 +0000 (11:54 +0000)]
Add ARM contributors to AUTHORS.
BUG=
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/
134083011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19315
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jochen@chromium.org [Wed, 12 Feb 2014 10:29:18 +0000 (10:29 +0000)]
A64: Skip cctests failing in debug mode
TBR=ulan@chromium.org
BUG=none
LOG=n
Review URL: https://codereview.chromium.org/
160303003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19314
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ulan@chromium.org [Wed, 12 Feb 2014 09:19:30 +0000 (09:19 +0000)]
Merge experimental/a64 to bleeding_edge.
BUG=v8:3113
LOG=Y
R=jochen@chromium.org, rmcilroy@chromium.org, rodolph.perfetta@arm.com
Review URL: https://codereview.chromium.org/
148293020
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19311
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
marja@chromium.org [Wed, 12 Feb 2014 08:20:07 +0000 (08:20 +0000)]
Disable test-api/PreCompileInvalidPreparseDataError for NaCl.
More information: https://code.google.com/p/v8/issues/detail?id=3150
R=machenbach@chromium.org
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19306
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
machenbach@chromium.org [Wed, 12 Feb 2014 08:12:48 +0000 (08:12 +0000)]
Prepare push to trunk. Now working on version 3.24.38.
R=jkummerow@chromium.org
TBR=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/
156853008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19303
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ishell@chromium.org [Tue, 11 Feb 2014 19:18:06 +0000 (19:18 +0000)]
More check elimination improvements including partial learning on false branches of CompareMap and better handling of unreachable blocks.
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/
159963002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19300
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
hpayer@chromium.org [Tue, 11 Feb 2014 16:22:26 +0000 (16:22 +0000)]
Mark faster when executing write barriers.
BUG=
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/
159833002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19290
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jarin@chromium.org [Tue, 11 Feb 2014 16:11:53 +0000 (16:11 +0000)]
Fix environment of the optimized version of the _SetValueOf intrinsic.
R=jkummerow@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
158723006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19289
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ishell@chromium.org [Tue, 11 Feb 2014 16:02:18 +0000 (16:02 +0000)]
Fix for a smi stores optimization on x64 with a test case.
BUG=338425
LOG=N
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/
152923006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19288
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Tue, 11 Feb 2014 15:01:44 +0000 (15:01 +0000)]
Remove extended_extra_ic_state and extend extra_ic_state instead.
BUG=
R=ishell@chromium.org
Review URL: https://codereview.chromium.org/
159013003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19287
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Tue, 11 Feb 2014 14:03:31 +0000 (14:03 +0000)]
Clean up accessors in the Isolate.
R=jarin@chromium.org
Review URL: https://codereview.chromium.org/
137213009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19285
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
dcarney@chromium.org [Tue, 11 Feb 2014 12:49:15 +0000 (12:49 +0000)]
Add more test cases for api function inlining
R=verwaest@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
154283003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19278
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mvstanton@chromium.org [Tue, 11 Feb 2014 12:41:58 +0000 (12:41 +0000)]
Cleanup: ContextualMode doesn't need to be passed to ICs.
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/
154113010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19277
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
marja@chromium.org [Tue, 11 Feb 2014 11:51:01 +0000 (11:51 +0000)]
Move ParseRegexpLiteral to ParserBase.
R=ulan@chromium.org
BUG=v8:3126
LOG=N
Review URL: https://codereview.chromium.org/
156423005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19273
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Tue, 11 Feb 2014 11:48:32 +0000 (11:48 +0000)]
Harmony: fix spec violation in Math.cosh.
R=jarin@chromium.org
BUG=v8:3141
LOG=N
Review URL: https://codereview.chromium.org/
159353003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19272
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Tue, 11 Feb 2014 11:47:38 +0000 (11:47 +0000)]
Disable concurrent osr for test-mark-compact/BootUpMemoryUse.
If --concurrent-osr is on, it will imply --concurrent-recompilation, even
though it's expected to be disabled.
R=machenbach@chromium.org
Review URL: https://codereview.chromium.org/
143183006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19271
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
hpayer@chromium.org [Tue, 11 Feb 2014 11:27:22 +0000 (11:27 +0000)]
Move allocation site pretenuring decision making to GC epilog.
BUG=
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/
149913005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19270
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
hpayer@chromium.org [Tue, 11 Feb 2014 10:52:30 +0000 (10:52 +0000)]
Make sure that allocation site scratchpad entries get recorded.
BUG=
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/
153173008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19268
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
bmeurer@chromium.org [Tue, 11 Feb 2014 10:48:37 +0000 (10:48 +0000)]
Get rid of the function sorting in for polymorphic calls.
The idea of this code was to sort functions according to
ticks spend executing them, but now these ticks are always
zero and therefore we fall back to sorting by AST length (or
even worse by source length) all the time, which is a bad,
arbitrary measure.
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/
159653003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19267
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Tue, 11 Feb 2014 10:45:39 +0000 (10:45 +0000)]
Fix spec violations in JSON.stringify wrt replacer array.
R=verwaest@chromium.org
BUG=v8:3135
LOG=Y
Review URL: https://codereview.chromium.org/
146623009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19266
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
marja@chromium.org [Tue, 11 Feb 2014 09:35:32 +0000 (09:35 +0000)]
Traitify ParserBase and move functions there.
(Second try, with fixes. First try: https://codereview.chromium.org/
149913006/ )
The long-term goal is to move all recursive descent functions from Parser and
PreParser into ParserBase, but first they need to be unified.
Notes:
- The functions moved in this CL: ParseIdentifier, ParseIdentifierName,
ParseIdentifierNameOrGetOrSet, ParseIdentifierOrStrictReservedWord.
- IOW, this CL removes Parser::ParseIdentifier and PreParser::ParseIdentifier
and adds ParserBase::ParseIdentifier, etc.
- Error reporting used to require virtual funcs; now error reporting is moved to
the Traits too, and ParserBase no longer needs to be virtual.
- I had to move PreParser::Identifier out of the PreParser class, because
otherwise PreParserTraits cannot use it in a typedef.
BUG=v8:3126
LOG=N
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/
158913003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19265
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Tue, 11 Feb 2014 09:29:51 +0000 (09:29 +0000)]
Remove obsolete stack trace string in a message object.
The stack trace string is an ancient relic that is no longer being used.
We use the structured stack trace object instead.
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/
159013002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19264
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
palfia@homejinni.com [Tue, 11 Feb 2014 09:27:01 +0000 (09:27 +0000)]
MIPS: Add kExpectedFixedArrayInRegisterA2 message.
Port r19244 (
08e0afd9)
BUG=
R=mvstanton@chromium.org, plind44@gmail.com
Review URL: https://codereview.chromium.org/
159423003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19263
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mvstanton@chromium.org [Tue, 11 Feb 2014 09:06:13 +0000 (09:06 +0000)]
Fix gcstress test failure
Map collection complicates a test that wants to assert on code opt/deopt
because of prototype-chain changes. It can happen that a gc occurs
in the stack guard at the start of optimized function foo that deopts
function foo because of a map being collected and deoptimizing it's
dependent code.
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/
159653002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19258
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
machenbach@chromium.org [Tue, 11 Feb 2014 08:13:29 +0000 (08:13 +0000)]
Prepare push to trunk. Now working on version 3.24.37.
R=bmeurer@chromium.org
TBR=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/
159633002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19254
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
bmeurer@chromium.org [Tue, 11 Feb 2014 07:44:25 +0000 (07:44 +0000)]
Remove unneccessary assert.
This assert fails when dumping native counters on x64.
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/
151033003
Patch from Weiliang Lin <weiliang.lin@intel.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19253
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Tue, 11 Feb 2014 07:29:23 +0000 (07:29 +0000)]
Remove unused --stack-trace-on-abort flag.
R=dcarney@chromium.org
Review URL: https://codereview.chromium.org/
156783004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19252
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Tue, 11 Feb 2014 07:28:05 +0000 (07:28 +0000)]
Add flag to print stack trace on illegal exception.
This would help a lot with native Javascript code.
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/
156373003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19251
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
bmeurer@chromium.org [Tue, 11 Feb 2014 07:05:47 +0000 (07:05 +0000)]
Fix Windows build.
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/
152813006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19250
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
bmeurer@chromium.org [Tue, 11 Feb 2014 06:53:14 +0000 (06:53 +0000)]
Improve inobject field tracking during GVN.
Now stores to inobject fields do no longer prevent hoisting
and combining of loads from other inobject fields.
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/
144423010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19249
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
bmeurer@chromium.org [Tue, 11 Feb 2014 06:46:14 +0000 (06:46 +0000)]
Revert "Improve inobject field tracking during GVN."
This reverts commit r19427 for breaking the build. Will reland with
fix.
TBR=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/
143203005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19248
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
bmeurer@chromium.org [Tue, 11 Feb 2014 06:41:06 +0000 (06:41 +0000)]
Improve inobject field tracking during GVN.
Now stores to inobject fields do no longer prevent hoisting
and combining of loads from other inobject fields.
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/
144423010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19247
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
palfia@homejinni.com [Tue, 11 Feb 2014 02:48:57 +0000 (02:48 +0000)]
MIPS: Adding a type vector to replace type cells.
Port r19244 (
08e0afd9)
BUG=
R=plind44@gmail.com
Review URL: https://codereview.chromium.org/
159393002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19246
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
haitao.feng@intel.com [Tue, 11 Feb 2014 01:28:08 +0000 (01:28 +0000)]
Introduce Jump and Call operand macro assembler instructions for x64
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/
157303002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19245
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mvstanton@chromium.org [Mon, 10 Feb 2014 21:38:17 +0000 (21:38 +0000)]
Adding a type vector to replace type cells.
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/
137403009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19244
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
plind44@gmail.com [Mon, 10 Feb 2014 19:46:34 +0000 (19:46 +0000)]
MIPS: Add NaN test to cctest/test-macro-assembler-mips.
NaN value is different on MIPS and x86 architectures, and TEST(NaNx)
tests checks the case where a x86 NaN value is serialized into the snapshot
on the simulator during cross compilation.
BUG=
R=plind44@gmail.com
Review URL: https://codereview.chromium.org/
144473008
Patch from Balazs Kilvady <kilvadyb@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19241
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
marja@chromium.org [Mon, 10 Feb 2014 16:21:11 +0000 (16:21 +0000)]
Revert "Traitify ParserBase and move functions there."
This reverts commit r19230.
Reason: Build failures on NaCl.
BUG=
TBR=marja@chromium.org,mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/
158873006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19234
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
plind44@gmail.com [Mon, 10 Feb 2014 15:49:28 +0000 (15:49 +0000)]
MIPS: Fix r19175 "Avoid embedding x86 NaN constant in MacroAssembler code when snapshot is created."
BUG=
R=plind44@gmail.com
Review URL: https://codereview.chromium.org/
148523015
Patch from Balazs Kilvady <kilvadyb@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19232
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
marja@chromium.org [Mon, 10 Feb 2014 15:35:39 +0000 (15:35 +0000)]
Traitify ParserBase and move functions there.
The long-term goal is to move all recursive descent functions from Parser and
PreParser into ParserBase, but first they need to be unified.
Notes:
- The functions moved in this CL: ParseIdentifier, ParseIdentifierName,
ParseIdentifierNameOrGetOrSet, ParseIdentifierOrStrictReservedWord.
- IOW, this CL removes Parser::ParseIdentifier and PreParser::ParseIdentifier
and adds ParserBase::ParseIdentifier, etc.
- Error reporting used to require virtual funcs; now error reporting is moved to
the Traits too, and ParserBase no longer needs to be virtual.
- I had to move PreParser::Identifier out of the PreParser class, because
otherwise PreParserTraits cannot use it in a typedef.
BUG=v8:3126
LOG=N
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/
149913006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19230
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00