Commit Graph

15386 Commits

Author SHA1 Message Date
ulan@chromium.org
81a5cfb0e0 Revert r19897, r19898 for breaking mac-64 debug.
TBR=dslomov@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19901 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-13 15:10:35 +00:00
baptiste.afsa@arm.com
89e36cbd18 A64: Relax the register constraints for LSeqStringGetChar.
R=ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19900 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-13 14:56:57 +00:00
plind44@gmail.com
16a4129e72 MIPS: Fix uses of range analysis results in HChange.
Port r19872 (6d8679b)

BUG=v8:3204
LOG=y
R=plind44@gmail.com

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

Patch from Balazs Kilvady <kilvadyb@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19899 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-13 14:56:25 +00:00
ulan@chromium.org
645392891f Fix windows build after r19897.
TBR=dslomov@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19898 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-13 14:24:00 +00:00
ulan@chromium.org
2f26700885 Fix memory leak caused by treating Code::next_code_link as strong in marker.
BUG=
TEST=test/cctest/NextCodeLinkIsWeak
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19897 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-13 14:09:18 +00:00
yangguo@chromium.org
0f71a24f3a Correctly retain argument value when deopting from Math.round on x64.
R=jkummerow@chromium.org
BUG=351624
LOG=N

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19896 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-13 13:57:21 +00:00
m.m.capewell@googlemail.com
df529fb05f A64: Implement and use FillFields
BUG=
R=ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19895 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-13 13:18:48 +00:00
ulan@chromium.org
66c8130b8a Simplify GetEnumPropertyKeys and avoid trimming fixed arrays in large object space.
BUG=352070
LOG=N
R=verwaest@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19894 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-13 12:45:12 +00:00
mvstanton@chromium.org
f1e18135fa Perf regression: changes in KeyedStoreIC introduced polymorphism.
When fixing bug 350884, I introduced an error that meant we went
polymorphic in KeyedStoreIC where we stayed monomorphic before. This
CL addresses the error, while preserving the bug fix for 350884.

R=verwaest@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19893 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-13 12:17:43 +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
yangguo@chromium.org
6f6356a248 Handlify PropertyAttribute lookups.
R=ishell@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19891 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-13 11:55:31 +00:00
ulan@chromium.org
c64b78f6da Check that constant is an integer before getting its value in HGraphBuilder::MatchRotateRight.
BUG=351263
LOG=N
TEST=mjsunit/regress/regress-351263
R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19890 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-13 11:50:50 +00:00
verwaest@chromium.org
c2af96ba7b Turn StringLengthStub (used by string wrappers only) into a hydrogen stub.
BUG=
R=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19889 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-13 10:57:07 +00:00
machenbach@chromium.org
717c4d3bb5 Add ASAN option to stand-alone gyp config.
BUG=
R=jkummerow@chromium.org, jochen@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19888 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-13 10:36:55 +00:00
alexandre.rames@arm.com
66774e2dc5 A64: Remove an invalid assertion about the position of the reloc_info_writer.
Review URL: https://codereview.chromium.org/196413007

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19887 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-13 10:28:53 +00:00
yangguo@chromium.org
4e390c64f1 Harmony: move math features to es-staging.
R=rossberg@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19886 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-13 09:51:59 +00:00
jacob.bramley@arm.com
f6de983e4d A64: Fix Fmov with signalling NaN literals.
BUG=
R=ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19885 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-13 09:45:02 +00:00
svenpanne@chromium.org
390d3a0b15 Make translation of modulus operation '--stress-opt'-proof.
Note that we unconditionally deopt later, anyway, but our compilation
pipeline has to survive long enough to reach that place. :-/

LOG=y
BUG=352059
R=bmeurer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19884 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-13 09:37:16 +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
marja@chromium.org
ee6b885d25 Revert "New Compilation API, part 1"
This reverts revision 19881.

Reason: WebKit build failure (will commit a fixed version shortly).

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19882 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-13 09:14:16 +00:00
marja@chromium.org
52c0098f0d New Compilation API, part 1
- Distinguish between context bound scripts (Script) and context unbound scripts
(UnboundScript).
- Add ScriptCompiler (which will later contain functions for async compilation).

This is a breaking change, in particular, Script::New no longer exists (it is
replaced by ScriptCompiler::CompileUnbound). Script::Compile remains as a
backwards-compatible shorthand for ScriptCompiler::Compile.

Passing CompilerOptions with produce_data_to_cache = true doesn't do anything
yet; the only way to generate the data to cache is the old preparsing API. (To
be fixed in the next version.)

BUG=
R=dcarney@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19881 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-13 08:54:11 +00:00
dcarney@chromium.org
750ab88341 move remaining uses of scanner literals into scanner
R=marja@chromium.org

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19880 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-13 08:29:31 +00:00
bmeurer@chromium.org
4da15df008 Remove uses of CanBeNegative() in HMod.
BUG=v8:3204
LOG=y
R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19878 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-13 08:17:44 +00:00
bmeurer@chromium.org
929313bd6b Remove uses of RangeCanInclude() in flooring division by power of 2.
Drive-By-Fix: Improve ARM code generation for flooring division by
power of 2.

BUG=v8:3204
LOG=y
R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19877 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-13 07:58:58 +00:00
machenbach@chromium.org
078ecbb9c3 Add file exclusion to trunk patch creation in push-to-trunk.
This is another step towards getting rid of the bleeding edge change log file. Now it can be omitted in a follow up CL.

R=jarin@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19876 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-13 07:57:07 +00:00
yurys@chromium.org
d7ec9ab061 Remove SnapshotFillerInterface
There used to be additional pass in the heap profiler that estimated memory required for the snapshot and it used special implementation of the interface. Now that we dropped that step it doesn't makes sense to keep the interface with single implementation.

BUG=None
LOG=N
R=loislo@chromium.org, mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19875 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-13 07:48:42 +00:00
jarin@chromium.org
713aa33f2a Fix of argument materialization of captured heap numbers.
The escape analysis calculates the number of slots in an object as
no-of-slots = object-size / pointer-size.  This gives 3 slots for
heap numbers on 32-bit architectures (one slot for the map, two for
the double value); however, my argument materialization code assumed
just two slots (map + value). Since Hydrogen allocates heap numbers
quite rarely, it is hard to produce a more meaningful repro than the
one provided by Clusterfuzz. Any suggestions are welcome.

The fix is simple - we just read out all extra slots (beyond the map
and the double) for heap numbers.

R=mstarzinger@chromium.org
BUG=351315
LOG=N

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19874 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-13 07:17:37 +00:00
dcarney@chromium.org
75ad285860 Implement PersistentValueMap, a map that stores UniquePersistent values.
This is preparatory work to get rid of UnsafePersistent in blink.

The previous version had to be reverted due to timeouts in win32/Debug: https://codereview.chromium.org/197173002/

The timeouts happened because the STL version on that platform contains sanity checking code which opens a 'debug window' in the GUI, patiently waiting for the user to click ok/cancel/somethirdoption. It turns out, the cause for that debug window was totally valid and the test had a use-after-free issue.

The 1st patch set is the code as before. The 2nd patch set contains the fix.

Related blink changes are here: https://codereview.chromium.org/180363004/

This patch is largely based on https://codereview.chromium.org/175503003/, with some methods added to support the blink change mentioned above.

BUG=
R=dcarney@chromium.org

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

Patch from Daniel Vogelheim <vogelheim@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19873 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-13 07:10:59 +00:00
bmeurer@chromium.org
750f2d98f8 Fix uses of range analysis results in HChange.
BUG=v8:3204
LOG=y
R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19872 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-13 06:11:52 +00:00
machenbach@chromium.org
98042ac82d Prepare push to trunk. Now working on version 3.25.10.
R=jkummerow@chromium.org
TBR=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19869 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-13 03:04:38 +00:00
adamk@chromium.org
8bd05193c7 Reland "Enable Object.observe by default" again
This re-re-re-lands enabling Object.observe. The Chromium tests that
failed last time this was rolled into Chromium have been disabled in
https://src.chromium.org/viewvc/chrome?view=revision&revision=256706

This patch should be safe to merge once that lands.

BUG=v8:2409
LOG=Y
TBR=rossberg@chromium.org,dslomov@chromium.org,rafaelw@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19868 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-13 00:20:06 +00:00
plind44@gmail.com
eb606948b1 MIPS: Reland "Pass a Code object to Assembler::(set_)target_address_at for use by ool constant pool."
Port r19856 (0546217)

Original commit message:
The ool constant pool will require a pointer to the code's constant pool when
updating or reading target addresses using set_target_address_at()
and target_address_at().

BUG=
R=plind44@gmail.com

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

Patch from Balazs Kilvady <kilvadyb@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19867 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-12 22:09:17 +00:00
jkummerow@chromium.org
f9ee4f19b4 Use intrinsics for builtin ArrayBuffer property accesses
BUG=chromium:351787
LOG=y
R=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19862 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-12 19:25:40 +00:00
marja@chromium.org
df5ac19412 Parser / PreParser unification: Add docs.
R=rossberg@chromium.org, rossberg
BUG=v8:3126
LOG=N

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19861 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-12 19:15:17 +00:00
rmcilroy@chromium.org
2a9df4c822 Ensure that relocinfo's host code object is correctly reset on GC in TypeFeedbackOracle::RelocateRelocInfos
TBR=ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19860 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-12 17:18:49 +00:00
rodolph.perfetta@arm.com
f06216201a A64: removed unused debugger file.
BUG=
R=jochen@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19859 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-12 16:05:20 +00:00
rmcilroy@chromium.org
7f622cffd4 Introduce FrameAndConstantPoolScope and ConstantPoolUnavailableScope.
Adds FrameAndConstantPoolScope and ConstantPoolUnavailableScope to enable
scoped management of constant pool availability.  Also load constant pool
pointer when entering an internal frame scope.

R=rodolph.perfetta@arm.com, ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19858 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-12 15:56:16 +00:00
alexandre.rames@arm.com
6b86401431 A64: Record the size of veneer pools for code offset mapping.
Mapping the code offsets between code with and without debug break slots
requires information about the size of the veneer pools and constant pools.

BUG=v8:3173
LOG=N
R=ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19857 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-12 15:40:41 +00:00
rmcilroy@chromium.org
e57d0296da Reland "Pass a Code object to Assembler::(set_)target_address_at for use by ool constant pool."
The ool constant pool will require a pointer to the code's constant pool when
updating or reading target addresses using set_target_address_at()
and target_address_at().

Original Review URL: https://codereview.chromium.org/183803022

R=ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19856 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-12 15:23:54 +00:00
alexandre.rames@arm.com
dafba1207d A64: Rename k<Y>RegSize to k<Y>RegSizeInBits, and k<Y>RegSizeInBytes to k<Y>RegSize.
R=ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19855 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-12 15:18:40 +00:00
mvstanton@chromium.org
021d9e778c Fix for bug 351257: type feedback vector initialization issue.
The feedback vector is stored in the shared function info, and there
is an effort to reuse it when re-running full code generation as a
prelude to creating optimized code. However we shouldn't reuse the
vector for lazily compiled methods on first compile, as scoping analysis
can change the allocation of vector slots.

BUG=351257
LOG=N
R=danno@chromium.org, bmeuer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19854 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-12 15:18:17 +00:00
machenbach@chromium.org
8bcd43b8cf Refactoring: Use explicit mock expectations for testing push and merge scripts.
- Up to now, mock expectations were simple lists of arguments + return value
- These expectations are now modeled explicitly including the name of the mock (e.g. git or readline)
- The optional test callback function is now explicitly named
- This will allow merging all mock expectation types (e.g. git and readline) into a single list per test case (follow up CL)

TEST=tools/push-to-trunk/script_test.py
R=jarin@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19853 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-12 14:39:04 +00:00
svenpanne@chromium.org
be328fd4ce Disable special handling of flooring division by constant until it is fixed for real.
Added a test to check the various division-like operations more exhaustively.

R=bmeurer@chromium.org, ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19852 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-12 14:28:59 +00:00
marja@chromium.org
0ba0330269 Follow-up to r19845 which suppresses syntax errors in presence of a stack overflow.
ReportUnexpectedToken already calls Traits::ReportMessageAt. If we're in Parser,
that already suppresses the syntax error. If we're in PreParser, we don't need
to suppress the syntax error (preparser errors don't go through Isolate, and
having both stack overflow and a syntax error present is handled correctly by
PreParserApi::PreParse).

R=mstarzinger@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19851 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-12 14:15:13 +00:00
svenpanne@chromium.org
d6f639bcb0 Handle flooring division in LCodeGen::DoDivByConstI on ARM, too.
We should really split up the Lithium instruction, but this will be
done in some future cleanup CL.

Removed some "const"s for local variables on the way, they don't really
help us much and just clutter up the code.

R=ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19850 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-12 14:06:26 +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
verwaest@chromium.org
8735adb2c4 Don't fast RemoveArrayHoles in case of arguments arrays.
BUG=351645
LOG=n
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19848 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-12 13:42:18 +00:00
mvstanton@chromium.org
7477bc39ca 350884: KeyedStoreIC miss didn't handle a transitioning case.
It's possible to get a transitioned map with no links to the origin
map if it's a shared map. Code in KeyedStoreIC::StoreElementStub
assumes it can check if two maps are in the same family by
traversing the transition array. Long term, the "family" relationship
should be recognized with the Normalized Map Cache. For now, allow
the IC to remain monomorphic in this case if the receiver map and
the previous receiver map are the same.

Filed V8 issue 3210 (https://code.google.com/p/v8/issues/detail?id=3210)
to track the issue with the Normalized Map Cache.

BUG=350884
LOG=N
R=verwaest@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19847 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-12 13:35:40 +00:00
mvstanton@chromium.org
f8648911af FastNewClosureStub failed to load the cached literals array.
Also, less efficient code was generated because of negative keyed load
offsets. I changed this to benefit from HLoadKeyed dehoisting.

BUG=v8:3185
LOG=N
R=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19846 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-12 13:29:42 +00:00
marja@chromium.org
b69960070c Parser: fix confusion when there are multiple errors to report.
(For more details, see bug.)

The problem occurs when a parsing function hits a stack overflow, but still
manages to return something meaningful. This happens because the call to
ParserBase::Next() which hits the stack overflow will still return a valid token
(the last token which we had already read), and only the next call after the
stack overflow will return INVALID. So for example ParseIdentifier will still
return a valid identifier even if we've hit a stack overflow.

In this case, some upper recursion level might detect and report a valid syntax
error, and then we bail out of the recursive descent because of the syntax
error. So we end up having both stack overflow and a syntax error present. When
we try to report the stack overflow after parsing (e.g., end of ParseLazy), the
isolate already has the syntax error as a pending exception, and a CHECK fails.

This fix suppresses the syntax errors in when a stack overflow has been
detected.

BUG=351335
LOG=N
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19845 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-12 13:27:32 +00:00