platform/upstream/v8.git
10 years agoMerge polymorphic load/store handling
verwaest@chromium.org [Wed, 5 Feb 2014 15:28:57 +0000 (15:28 +0000)]
Merge polymorphic load/store handling

R=dcarney@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19106 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoFix for buildbot failure after r19102.
ishell@chromium.org [Wed, 5 Feb 2014 15:22:54 +0000 (15:22 +0000)]
Fix for buildbot failure after r19102.

R=verwaest@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19105 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoCheck elimination improvement: propagation of state through phis is supported, CheckM...
ishell@chromium.org [Wed, 5 Feb 2014 13:39:55 +0000 (13:39 +0000)]
Check elimination improvement: propagation of state through phis is supported, CheckMap narrowing implemented.

R=titzer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19102 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoFix %OptimizeFunctionOnNextCall wrt concurrent compilation.
yangguo@chromium.org [Wed, 5 Feb 2014 12:19:29 +0000 (12:19 +0000)]
Fix %OptimizeFunctionOnNextCall wrt concurrent compilation.

If a function is marked or queued for concurrent compilation,
%OptimizeFunctionOnNextCall becomes a no-op. That can be wrong
if concurrent recompilation does not complete at the time we
expect the function to have been optimized.

R=hpayer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19100 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoUse mutex in PostponeInterruptScope.
yangguo@chromium.org [Wed, 5 Feb 2014 11:28:55 +0000 (11:28 +0000)]
Use mutex in PostponeInterruptScope.

To avoid race with e.g. StackGuard::RequestInstallCode called from another
thread when both access postpone_interrupts_nesting_.

R=mvstanton@chromium.org
BUG=290964
LOG=N

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19099 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoMove failing ASSERT on ARM to a more sane place.
verwaest@chromium.org [Wed, 5 Feb 2014 10:12:14 +0000 (10:12 +0000)]
Move failing ASSERT on ARM to a more sane place.
Objects can actually be stored into themselves. This fails when no write
barrier is needed (eg, the object was just allocated).

R=bmeurer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19095 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoOptimize redundant HCompareMap instructions with known successors.
bmeurer@chromium.org [Wed, 5 Feb 2014 09:30:53 +0000 (09:30 +0000)]
Optimize redundant HCompareMap instructions with known successors.

R=ishell@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19094 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoAllow externalizing strings in old pointer space.
yangguo@chromium.org [Wed, 5 Feb 2014 09:29:04 +0000 (09:29 +0000)]
Allow externalizing strings in old pointer space.

This is what I think is a better solution to the "external strings in
old pointer space" problem. Basically, it is an issue because GC scans
all fields of objects in old pointer space and if the cached address
of the backing store is unaligned, it looks like a heap object, boom.

The solution here is to use short external strings when we externalize
a string in old pointer space, and when the address is unaligned.
Short external strings don't cache the address, so GC has no issues.

BUG=268686
LOG=Y
R=dcarney@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19093 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoTest for miscellaneous (pre)parse errors.
marja@chromium.org [Wed, 5 Feb 2014 08:38:26 +0000 (08:38 +0000)]
Test for miscellaneous (pre)parse errors.

BUG=3126
LOG=N
R=ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19092 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoPrepare push to trunk. Now working on version 3.24.33.
machenbach@chromium.org [Wed, 5 Feb 2014 03:04:35 +0000 (03:04 +0000)]
Prepare push to trunk.  Now working on version 3.24.33.

R=jkummerow@chromium.org
TBR=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19087 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoExplicitly disallow stores to JSObjectAccessors (for now).
verwaest@chromium.org [Tue, 4 Feb 2014 22:46:53 +0000 (22:46 +0000)]
Explicitly disallow stores to JSObjectAccessors (for now).
TBR=dcarney@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19086 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoUse PropertyAccessInfo to compute stores in crankshaft.
verwaest@chromium.org [Tue, 4 Feb 2014 22:23:26 +0000 (22:23 +0000)]
Use PropertyAccessInfo to compute stores in crankshaft.
BUG=
R=dcarney@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19085 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoImplement Microtask Delivery Queue
rafaelw@chromium.org [Tue, 4 Feb 2014 19:58:49 +0000 (19:58 +0000)]
Implement Microtask Delivery Queue

R=rossberg@chromium.org, rossberg
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19084 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoTests for (pre)parse errors when "yield" is found in inappropriate places.
marja@chromium.org [Tue, 4 Feb 2014 18:16:45 +0000 (18:16 +0000)]
Tests for (pre)parse errors when "yield" is found in inappropriate places.

In addition:
- Fix: PreParser used to report an unexpected token one token too late when
ParsePrimaryExpression failed.
- Unified identifier handling (PreParser::GetIdentifier is now like Parser::GetIdentifier).
- Fix: PreParser used to produce "unexpected_token YIELD" errors when Parser
produced "unexpected_token_identifier"; fixed PreParser to match Parser.

BUG=3126
LOG=N
R=ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19082 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoTests and fixes for (pre)parse errors related to future reserved words.
marja@chromium.org [Tue, 4 Feb 2014 16:38:47 +0000 (16:38 +0000)]
Tests and fixes for (pre)parse errors related to future reserved words.

This contains the following fixes:
- PreParser was using an error "reserved_word" which doesn't exist in
messages.js. Changed it to "unexpected_reserved".

BUG=3126
LOG=N
R=ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19076 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoMIPS: Fix test-assembler-mips/MIPS10 test.
palfia@homejinni.com [Tue, 4 Feb 2014 14:05:46 +0000 (14:05 +0000)]
MIPS: Fix test-assembler-mips/MIPS10 test.

cvt_l_d() and cvt_d_l() instructions are replaced to cvt_w_d() and ctv_d_w() because kernel FPU emulator generates illegal instruction for double <-> long conversions.

BUG=
R=jkummerow@chromium.org, plind44@gmail.com

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

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19073 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoCleanup: Unify CodeGenerator class across platforms
jkummerow@chromium.org [Tue, 4 Feb 2014 13:53:41 +0000 (13:53 +0000)]
Cleanup: Unify CodeGenerator class across platforms

R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19072 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoTemporarily mark reserved-words-as-property as possibly failing.
marja@chromium.org [Tue, 4 Feb 2014 13:37:34 +0000 (13:37 +0000)]
Temporarily mark reserved-words-as-property as possibly failing.

V8 is changing an error message and Blink will disable this test temporarily,
too. This CL will keep the tree green until Blink is rolled into V8.

BUG=3126
LOG=N
R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19071 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoUse Type* in crankshaft rather than HeapType.
verwaest@chromium.org [Tue, 4 Feb 2014 12:44:15 +0000 (12:44 +0000)]
Use Type* in crankshaft rather than HeapType.

R=rossberg@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19069 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoDon't access stack-allocated variable when it is out of scope. Enable Isolate cleanup...
svenpanne@chromium.org [Tue, 4 Feb 2014 12:23:30 +0000 (12:23 +0000)]
Don't access stack-allocated variable when it is out of scope. Enable Isolate cleanup in cctests again.

R=ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19068 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoTests and fixes for (pre)parse errors related to strict reserved words.
marja@chromium.org [Tue, 4 Feb 2014 12:19:53 +0000 (12:19 +0000)]
Tests and fixes for (pre)parse errors related to strict reserved words.

This contains the following fixes:

- We had strict_reserved_word and unexpected_strict_reserved, which one to use
was totally mixed in Parser and PreParser. Removed strict_reserved_word.
- When we saw a strict future reserved word when expecting something completely
different (such as "(" in "function foo interface"), Parser reports unexpected
identifier, whereas PreParser used to report unexpected strict reserved
word. Fixed PreParser to report unexpected identifier too.
- Unified parser and preparser error locations when the name of a function is a
strict reserved word. Now both point to the name.

BUG=3126
LOG=N
R=ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19067 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoAdded a test which installs a poisonous memento right after the new space top pointer.
hpayer@chromium.org [Tue, 4 Feb 2014 12:10:30 +0000 (12:10 +0000)]
Added a test which installs a poisonous memento right after the new space top pointer.

BUG=
R=bmeurer@chromium.org, mvstanton@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19066 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoAdd Box object to heap profiler.
alph@chromium.org [Tue, 4 Feb 2014 11:43:19 +0000 (11:43 +0000)]
Add Box object to heap profiler.

LOG=Y
R=ulan@chromium.org, yurys@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19063 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoTests for (pre)parse errors when "eval" and "arguments" are found in inappropriate...
marja@chromium.org [Tue, 4 Feb 2014 11:26:19 +0000 (11:26 +0000)]
Tests for (pre)parse errors when "eval" and "arguments" are found in inappropriate places.

In addition:
- Fix a bug in parser discovered by the tests (prefix and postfix confused in an
error message); the preparser had it right.
- Unify the parser and preparser error locations when the name of a function is
"eval" or "arguments. Now both point to the name.

BUG=3126
LOG=N
R=ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19062 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoFix in array instance type initialization.
ishell@chromium.org [Tue, 4 Feb 2014 10:59:40 +0000 (10:59 +0000)]
Fix in array instance type initialization.

R=dslomov@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19058 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoRemake of the load elimination fix made earlier (r18884).
ishell@chromium.org [Tue, 4 Feb 2014 10:48:49 +0000 (10:48 +0000)]
Remake of the load elimination fix made earlier (r18884).

R=titzer@chromium.org, verwaest@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19057 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoJust initialize elements pointer in fast literal when pre-tenuring.
hpayer@chromium.org [Tue, 4 Feb 2014 10:41:16 +0000 (10:41 +0000)]
Just initialize elements pointer in fast literal when pre-tenuring.

BUG=
R=ishell@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19056 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoRemove unused AllocationSpace paramenter from CollectGarbage.
hpayer@chromium.org [Tue, 4 Feb 2014 10:30:36 +0000 (10:30 +0000)]
Remove unused AllocationSpace paramenter from CollectGarbage.

BUG=
R=bmeurer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19054 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoRevert "Tests for (pre)parse errors when "eval" and "arguments" are found in inapprop...
marja@chromium.org [Tue, 4 Feb 2014 10:00:36 +0000 (10:00 +0000)]
Revert "Tests for (pre)parse errors when "eval" and "arguments" are found in inappropriate places."

Reason: The fixed error message broke some tests.

This reverts r19050.

BUG=
TBR=ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19053 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoAdd per-file OWNERS for MIPS-specific cctests
jkummerow@chromium.org [Tue, 4 Feb 2014 09:53:26 +0000 (09:53 +0000)]
Add per-file OWNERS for MIPS-specific cctests

R=danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19052 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoCheck the offset argument of TypedArray.set for fitting into Smi.
dslomov@chromium.org [Tue, 4 Feb 2014 09:53:05 +0000 (09:53 +0000)]
Check the offset argument of TypedArray.set for fitting into Smi.

R=jkummerow@chromium.org
BUG=340125
LOG=Y

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19051 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoTests for (pre)parse errors when "eval" and "arguments" are found in inappropriate...
marja@chromium.org [Tue, 4 Feb 2014 09:47:30 +0000 (09:47 +0000)]
Tests for (pre)parse errors when "eval" and "arguments" are found in inappropriate places.

In addition:
- Fix a bug in parser discovered by the tests (prefix and postfix confused in an
  error message); the preparser had it right.
- Unify the parser and preparser error locations when the name of a function is
  "eval" or "arguments. Now both point to the name.

BUG=3126
LOG=N
R=ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19050 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoRevert "Dispose Isolate at end of cctest."
svenpanne@chromium.org [Tue, 4 Feb 2014 09:41:21 +0000 (09:41 +0000)]
Revert "Dispose Isolate at end of cctest."

Things work locally, only the waterfall is unhappy for some arcane reason.
Investigating...

TBR=bmeurer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19049 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoDispose Isolate at end of cctest.
svenpanne@chromium.org [Tue, 4 Feb 2014 08:30:35 +0000 (08:30 +0000)]
Dispose Isolate at end of cctest.

No measurable change in test running time, we clean up only trivial
known things at disposal time and do not walk the heap, run real
finalizers, etc.

R=ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19047 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoPrepare push to trunk. Now working on version 3.24.32.
machenbach@chromium.org [Tue, 4 Feb 2014 07:54:03 +0000 (07:54 +0000)]
Prepare push to trunk.  Now working on version 3.24.32.

R=bmeurer@chromium.org
TBR=bmeurer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19044 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoMIPS: Unroll push loop in r19040 and other push optimizations.
palfia@homejinni.com [Tue, 4 Feb 2014 00:06:44 +0000 (00:06 +0000)]
MIPS: Unroll push loop in r19040 and other push optimizations.

BUG=
R=plind44@gmail.com

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19042 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoMIPS: let load and store api callbacks use global proxy as receiver.
plind44@gmail.com [Mon, 3 Feb 2014 18:44:23 +0000 (18:44 +0000)]
MIPS: let load and store api callbacks use global proxy as receiver.

Port r19033 (c31b3e7)

BUG=
R=plind44@gmail.com

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

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19040 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agolet load and store api callbacks use global proxy as receiver
dcarney@chromium.org [Mon, 3 Feb 2014 15:19:38 +0000 (15:19 +0000)]
let load and store api callbacks use global proxy as receiver

R=verwaest@chromium.org

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19033 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoFix short-circuiting logical and/or in HOptimizedGraphBuilder.
yangguo@chromium.org [Mon, 3 Feb 2014 14:29:34 +0000 (14:29 +0000)]
Fix short-circuiting logical and/or in HOptimizedGraphBuilder.

R=jkummerow@chromium.org
BUG=336148
LOG=Y

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19031 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoElements field of newly allocated JSArray could be left uninitialized in some cases...
ishell@chromium.org [Mon, 3 Feb 2014 13:33:26 +0000 (13:33 +0000)]
Elements field of newly allocated JSArray could be left uninitialized in some cases (fast literal case).

BUG=340124
LOG=Y
R=hpayer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19026 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoMake memento checks more stable. Add filler at the end of new space and check if...
hpayer@chromium.org [Mon, 3 Feb 2014 12:20:15 +0000 (12:20 +0000)]
Make memento checks more stable. Add filler at the end of new space and check if object and memento are on the same new space page.

BUG=
R=bmeurer@chromium.org, mvstanton@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19024 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoReturn a valid map for PropertyAccessInfos with Boolean type.
verwaest@chromium.org [Mon, 3 Feb 2014 10:20:32 +0000 (10:20 +0000)]
Return a valid map for PropertyAccessInfos with Boolean type.

BUG=340064
LOG=N
R=dcarney@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19023 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years ago[x64] add disasm for two fp instructions
yangguo@chromium.org [Mon, 3 Feb 2014 08:13:12 +0000 (08:13 +0000)]
[x64] add disasm for two fp instructions

BUG=
R=yangguo@chromium.org

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

Patch from Weiliang Lin <weiliang.lin@intel.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19022 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoRe-enable escape analysis.
jarin@chromium.org [Mon, 3 Feb 2014 07:57:07 +0000 (07:57 +0000)]
Re-enable escape analysis.

R=danno@chromium.org, mstarzinger@chromium.org
LOG=Y
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19021 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoMore cctest fixes regarding lifetime/ownership.
svenpanne@chromium.org [Mon, 3 Feb 2014 07:29:23 +0000 (07:29 +0000)]
More cctest fixes regarding lifetime/ownership.

   * Avoid double-free in cctest/test-api/RegExpInterruption.

   * Avoid incorrect zone fiddling in cctest/test-strings.

R=ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19020 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoPrepare push to trunk. Now working on version 3.24.31.
machenbach@chromium.org [Mon, 3 Feb 2014 07:22:59 +0000 (07:22 +0000)]
Prepare push to trunk.  Now working on version 3.24.31.

R=bmeurer@chromium.org
TBR=bmeurer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19017 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoReplace nonexistent a4 by t0 on mips.
verwaest@chromium.org [Sat, 1 Feb 2014 11:30:38 +0000 (11:30 +0000)]
Replace nonexistent a4 by t0 on mips.

BUG=
R=ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19016 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoEnsure we don't clobber the cell on ARM and MIPS
verwaest@chromium.org [Sat, 1 Feb 2014 10:43:57 +0000 (10:43 +0000)]
Ensure we don't clobber the cell on ARM and MIPS

BUG=
R=ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19015 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoEnsure the word after top is cleared in newspace if top < high.
verwaest@chromium.org [Sat, 1 Feb 2014 10:35:36 +0000 (10:35 +0000)]
Ensure the word after top is cleared in newspace if top < high.

BUG=
R=ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19014 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoFix expectations for new regression test.
machenbach@chromium.org [Sat, 1 Feb 2014 09:56:20 +0000 (09:56 +0000)]
Fix expectations for new regression test.

TBR=jarin@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19013 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoPrepare push to trunk. Now working on version 3.24.30.
machenbach@chromium.org [Sat, 1 Feb 2014 08:54:23 +0000 (08:54 +0000)]
Prepare push to trunk.  Now working on version 3.24.30.

R=verwaest@chromium.org
TBR=verwaest@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19010 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoMIPS: Remove CallICs
palfia@homejinni.com [Sat, 1 Feb 2014 02:23:46 +0000 (02:23 +0000)]
MIPS: Remove CallICs

Port r19001 (4b5aa649)

BUG=
R=plind44@gmail.com

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19009 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoMIPS: Fix zlib critical performance regression.
plind44@gmail.com [Fri, 31 Jan 2014 18:59:32 +0000 (18:59 +0000)]
MIPS: Fix zlib critical performance regression.

The very low score on zlib benchmark is caused by
huge number of deoptimizations inside BinaryOpIC stubs
when arguments are boolean.

TEST=
BUG=
R=plind44@gmail.com

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

Patch from Dusan Milosavljevic <Dusan.Milosavljevic@rt-rk.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19006 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoAdjust test expectations to new error on method not found
verwaest@chromium.org [Fri, 31 Jan 2014 17:39:59 +0000 (17:39 +0000)]
Adjust test expectations to new error on method not found

BUG=
R=machenbach@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19005 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoRemove CallICs
verwaest@chromium.org [Fri, 31 Jan 2014 16:52:17 +0000 (16:52 +0000)]
Remove CallICs

BUG=
R=dcarney@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19001 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years ago[Sheriff] Mark new regression test flaky on linux 32.
machenbach@chromium.org [Fri, 31 Jan 2014 16:47:52 +0000 (16:47 +0000)]
[Sheriff] Mark new regression test flaky on linux 32.

BUG=
TBR=jarin@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19000 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoSimpler repro for bug 2989.
jarin@chromium.org [Fri, 31 Jan 2014 16:12:58 +0000 (16:12 +0000)]
Simpler repro for bug 2989.

We do not correctly handle accesses to f.arguments after one
of the argument has changed (where f is crankshafted).

R=machenbach@chromium.org
BUG=v8:2989
LOG=n

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18999 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoMigrate crashing tests from blink repository.
machenbach@chromium.org [Fri, 31 Jan 2014 14:31:43 +0000 (14:31 +0000)]
Migrate crashing tests from blink repository.

TBR=bmeurer@chromium.org
BUG=237872
LOG=n

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18996 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoRemove IsRegExpEquivalent.
jochen@chromium.org [Fri, 31 Jan 2014 14:17:02 +0000 (14:17 +0000)]
Remove IsRegExpEquivalent.

It's not used anywhere.

BUG=none
R=ulan@chromium.org
LOG=n

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18995 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoPrepare push to trunk. Now working on version 3.24.29.
machenbach@chromium.org [Fri, 31 Jan 2014 14:01:29 +0000 (14:01 +0000)]
Prepare push to trunk.  Now working on version 3.24.29.

R=jkummerow@chromium.org
TBR=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18991 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years ago[Sheriff] Mark new regression test as flaky.
machenbach@chromium.org [Fri, 31 Jan 2014 13:56:00 +0000 (13:56 +0000)]
[Sheriff] Mark new regression test as flaky.

BUG=336820
LOG=n
R=bmeurer@chromium.org
TBR=bmeurer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18990 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoDon't crash in Array.join() if the resulting string exceeds the max string length.
bmeurer@chromium.org [Fri, 31 Jan 2014 12:21:17 +0000 (12:21 +0000)]
Don't crash in Array.join() if the resulting string exceeds the max string length.

LOG=y
BUG=336820
R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18986 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoLoad elimination fix: load should not be replaced with another load if the former...
ishell@chromium.org [Fri, 31 Jan 2014 12:03:32 +0000 (12:03 +0000)]
Load elimination fix: load should not be replaced with another load if the former is not dominated by the latter.

R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18985 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agogrokdump: Compute correct call destinations and display them in-place
jkummerow@chromium.org [Fri, 31 Jan 2014 11:49:07 +0000 (11:49 +0000)]
grokdump: Compute correct call destinations and display them in-place

R=verwaest@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18984 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoDon't unmark dictionary mode maps as unstable.
verwaest@chromium.org [Fri, 31 Jan 2014 11:38:43 +0000 (11:38 +0000)]
Don't unmark dictionary mode maps as unstable.
R=ulan@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18983 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoDisable concurrent sweeping.
hpayer@chromium.org [Fri, 31 Jan 2014 10:31:55 +0000 (10:31 +0000)]
Disable concurrent sweeping.

BUG=
R=bmeurer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18981 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoUse `CHECK_OBJECT_COERCIBLE` macro where possible
bmeurer@chromium.org [Fri, 31 Jan 2014 10:05:58 +0000 (10:05 +0000)]
Use `CHECK_OBJECT_COERCIBLE` macro where possible

Contributed by Mathias Bynens <mathiasb@opera.com>.

TEST=
BUG=v8:3122
LOG=N
R=arv@chromium.org

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

Patch from Mathias Bynens <mathiasb@opera.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18979 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoOnce again: Fixed some lifetime/ownership issues in cctest
svenpanne@chromium.org [Fri, 31 Jan 2014 09:59:50 +0000 (09:59 +0000)]
Once again: Fixed some lifetime/ownership issues in cctest

   * Fixed lifetime issue in cctest/test-heap-profiler/HeapSnapshotJSONSerialization.

   * Fixed ownership issue in cctest/test-api/ContainsOnlyOneByte.

R=ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18978 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoRevert "[Sheriff] Mark profviz flaky on GC stress."
hpayer@chromium.org [Fri, 31 Jan 2014 09:59:22 +0000 (09:59 +0000)]
Revert "[Sheriff] Mark profviz flaky on GC stress."

This reverts commit f70687c1e5ef15254887e0619939e25a834e936e.

BUG=
R=machenbach@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18977 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoAdd Opera Software ASA to AUTHORS
bmeurer@chromium.org [Fri, 31 Jan 2014 09:18:43 +0000 (09:18 +0000)]
Add Opera Software ASA to AUTHORS

Contributed by Mathias Bynens <mathiasb@opera.com>.

BUG=
LOG=N
R=bmeurer@chromium.org, jarin@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18976 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoFix deopt fuzzer variable set up.
machenbach@chromium.org [Fri, 31 Jan 2014 09:10:56 +0000 (09:10 +0000)]
Fix deopt fuzzer variable set up.

Adds the simulator variable configuration from r18959 to the deopt fuzzer.

BUG=
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18975 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoFix python path for gyp.
machenbach@chromium.org [Fri, 31 Jan 2014 09:09:43 +0000 (09:09 +0000)]
Fix python path for gyp.

BUG=
R=jochen@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18974 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoCheck forwarding pointer when marking objects for deoptimization.
hpayer@chromium.org [Fri, 31 Jan 2014 09:07:30 +0000 (09:07 +0000)]
Check forwarding pointer when marking objects for deoptimization.

BUG=
R=bmeurer@chromium.org, mvstanton@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18973 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoImplements ES6 String.prototype.normalize method.
svenpanne@chromium.org [Fri, 31 Jan 2014 08:09:17 +0000 (08:09 +0000)]
Implements ES6 String.prototype.normalize method.

BUG=v8:2943
LOG=Y
TEST=Unit tests for "real life" use cases, edge cases, various types of normalization.

==========================

This is identical to the previous CL
   https://codereview.chromium.org/40133004/
with two differences:
 * Added a dummy implementation of String.prototype.normalize to be used when v8 is compiled without intl support
 * Rebased the the test files for webkit. That was the only reason for the previous failure (and revert).

Thank you,
Mihai

R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18972 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoFixed a few lifetime/ownership issues in cctest/test-api.
svenpanne@chromium.org [Fri, 31 Jan 2014 07:29:25 +0000 (07:29 +0000)]
Fixed a few lifetime/ownership issues in cctest/test-api.

   * Fixed CompileExternalTwoByteSource: Registered resources should
     better still be alive when they are accessed.

   * Fixed ownership in cctest/test-api/VisitExternalStrings.

R=ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18971 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoImprove HConstant::ImmortalImmovable() to check for all immortal immovable roots.
bmeurer@chromium.org [Fri, 31 Jan 2014 07:28:46 +0000 (07:28 +0000)]
Improve HConstant::ImmortalImmovable() to check for all immortal immovable roots.

Move the list to IMMORTAL_IMMOVABLE_ROOT_LIST in heap.h, and
automatically include INTERNALIZED_STRING_LIST and STRING_TYPE_LIST.

R=hpayer@chromium.org, mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18970 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoFix compiler error on MacOS, remove unused ParameterCount member in CallInterceptorCo...
hpayer@chromium.org [Fri, 31 Jan 2014 07:02:33 +0000 (07:02 +0000)]
Fix compiler error on MacOS, remove unused ParameterCount member in CallInterceptorCompiler.

BUG=
R=bmeurer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18969 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoMIPS: Fix the context check in LoadGlobalFunctionPrototype
palfia@homejinni.com [Fri, 31 Jan 2014 00:49:07 +0000 (00:49 +0000)]
MIPS: Fix the context check in LoadGlobalFunctionPrototype

Port r18958 (5cd635d0)

BUG=
R=verwaest@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18968 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoMIPS: crankshaft support for api method calls
palfia@homejinni.com [Fri, 31 Jan 2014 00:36:19 +0000 (00:36 +0000)]
MIPS: crankshaft support for api method calls

Port r18946 (a152f5ae)

BUG=
R=plind44@gmail.com

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18967 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoFix regression caused by supporting inlining accesses to non-JSObjects
verwaest@chromium.org [Fri, 31 Jan 2014 00:29:04 +0000 (00:29 +0000)]
Fix regression caused by supporting inlining accesses to non-JSObjects

TBR=dcarney@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18966 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoMIPS: Specialize FixedTypedArray<> set and get functions to solve unaligned double...
plind44@gmail.com [Thu, 30 Jan 2014 20:05:11 +0000 (20:05 +0000)]
MIPS: Specialize FixedTypedArray<> set and get functions to solve unaligned double access.

BUG=
TEST=test-api/FixedFloat64Array
R=dslomov@chromium.org

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

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18965 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoMIPS: stub api getters.
plind44@gmail.com [Thu, 30 Jan 2014 18:22:28 +0000 (18:22 +0000)]
MIPS: stub api getters.

Port r18941 (517adbf)

BUG=
R=plind44@gmail.com

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

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18962 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoMIPS: Optimize HWrapReceiver.
plind44@gmail.com [Thu, 30 Jan 2014 18:13:38 +0000 (18:13 +0000)]
MIPS: Optimize HWrapReceiver.

Port r18945 (699b03e)

BUG=
R=verwaest@chromium.org

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

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18960 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoSkip webkit/function-apply-aliased.js when running on simulators.
plind44@gmail.com [Thu, 30 Jan 2014 18:04:33 +0000 (18:04 +0000)]
Skip webkit/function-apply-aliased.js when running on simulators.

The webkit/function-apply-aliased.js test fails on simulators (both MIPS
and ARM) as the printed output does not match to the expected. The
failing test forces a stack overflow exception and the ToString()
operation of the exception object fails because of an other stack
overflow and returns an empty string.

The problem is that on hardware a common JS and C stack is used so the
stack overflow can be caught in C functions also while on simulator
separated JS and C stacks are used.

This patch adds a "sim" condition to test .status files to skip tests
only on simulator.

LOG=N
BUG=v8:3124
R=jkummerow@chromium.org, plind44@gmail.com

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

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18959 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoFix the context check in LoadGlobalFunctionPrototype
verwaest@chromium.org [Thu, 30 Jan 2014 17:45:09 +0000 (17:45 +0000)]
Fix the context check in LoadGlobalFunctionPrototype

R=dcarney@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18958 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoFix polymorphic load handling.
verwaest@chromium.org [Thu, 30 Jan 2014 16:44:32 +0000 (16:44 +0000)]
Fix polymorphic load handling.

BUG=
R=dcarney@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18954 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoRevert "Use HType::NonPrimitive() for non primitive HConstants."
bmeurer@chromium.org [Thu, 30 Jan 2014 13:54:01 +0000 (13:54 +0000)]
Revert "Use HType::NonPrimitive() for non primitive HConstants."

This reverts commit r18947.

TBR=hpayer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18948 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoUse HType::NonPrimitive() for non primitive HConstants.
bmeurer@chromium.org [Thu, 30 Jan 2014 13:32:05 +0000 (13:32 +0000)]
Use HType::NonPrimitive() for non primitive HConstants.

This allows us to use the faster write barrier, omitting the
smi check when storing constant heap objects.

R=hpayer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18947 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agocrankshaft support for api method calls
dcarney@chromium.org [Thu, 30 Jan 2014 13:18:41 +0000 (13:18 +0000)]
crankshaft support for api method calls

R=verwaest@chromium.org

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18946 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoOptimize HWrapReceiver
verwaest@chromium.org [Thu, 30 Jan 2014 12:52:49 +0000 (12:52 +0000)]
Optimize HWrapReceiver

R=dcarney@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18945 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoDisable unsuitable tests in ASAN mode.
machenbach@chromium.org [Thu, 30 Jan 2014 12:52:22 +0000 (12:52 +0000)]
Disable unsuitable tests in ASAN mode.

BUG=
R=verwaest@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18944 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoAdd global_context field to GlobalObject in heap profiler.
alph@chromium.org [Thu, 30 Jan 2014 12:17:21 +0000 (12:17 +0000)]
Add global_context field to GlobalObject in heap profiler.

LOG=N
R=ulan@chromium.org, yurys@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18942 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agostub api getters
dcarney@chromium.org [Thu, 30 Jan 2014 12:15:51 +0000 (12:15 +0000)]
stub api getters

R=verwaest@chromium.org

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18941 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoThe uninitialized value is immortal immovable.
bmeurer@chromium.org [Thu, 30 Jan 2014 12:00:52 +0000 (12:00 +0000)]
The uninitialized value is immortal immovable.

R=hpayer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18939 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoSupport loads from primitive values.
verwaest@chromium.org [Thu, 30 Jan 2014 11:30:38 +0000 (11:30 +0000)]
Support loads from primitive values.
This also changes load computation to use HeapTypes rather than Maps.
TODO: move conversion between maps and heaptypes earlier in the process, already in the oracle.

BUG=
R=dcarney@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18938 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoMake sure we delete[] what we got from new[], not one byte after it.
svenpanne@chromium.org [Thu, 30 Jan 2014 10:53:20 +0000 (10:53 +0000)]
Make sure we delete[] what we got from new[], not one byte after it.

R=ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18937 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoThe current
jarin@chromium.org [Thu, 30 Jan 2014 10:33:53 +0000 (10:33 +0000)]
The current
version is passing all the existing test + a bunch of new tests
(packaged in the change list, too).

The patch extends the SlotRef object to describe captured and duplicated
objects. Since the SlotRefs are not independent of each other anymore,
there is a new SlotRefValueBuilder class that stores the SlotRefs and
later materializes the objects from the SlotRefs.

Note that unlike the previous implementation of SlotRefs, we now build
the SlotRef entries for the entire frame, not just the particular
function.  This is because duplicate objects might refer to previous
captured objects (that might live inside other inlined function's part
of the frame).

We also need to store the materialized objects between other potential
invocations of the same arguments object so that we materialize each
captured object at most once.  The materialized objects of frames live
in the new MaterielizedObjectStore object (contained in Isolate),
indexed by the frame's FP address.  Each argument materialization (and
deoptimization) tries to lookup its captured objects in the store before
building new ones.  Deoptimization also removes the materialized objects
from the store. We also schedule a lazy deopt to be sure that we always
get rid of the materialized objects and that the optmized function
adopts the materialized objects (instead of happily computing with its
captured representations).

Concerns:

- Is the FP address the right key for a frame? (Note that deoptimizer's
representation of frame is different from the argument object
materializer's one - it is not easy to find common ground.)

- Performance is suboptimal in several places, but a quick local run of
benchmarks does not seem to show a perf hit. Examples of possible
improvements: smarter generation of SlotRefs (build other functions'
SlotRefs only for captured objects and only if necessary), smarter
lookup of stored materialized objects.

- Ideally, we would like to share the code for argument materialization
with deoptimizer's materializer.  However, the supporting data structures
(mainly the frame descriptor) are quite different in each case, so it
looks more like a separate project.

Thanks for any feedback.

R=danno@chromium.org, mstarzinger@chromium.org
LOG=N
BUG=

Committed: https://code.google.com/p/v8/source/detail?r=18918

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18936 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoFix test expectations for cctest/test-debug.
machenbach@chromium.org [Thu, 30 Jan 2014 10:16:54 +0000 (10:16 +0000)]
Fix test expectations for cctest/test-debug.

BUG=v8:3125
R=bmeurer@chromium.org
TBR=verwaest@chromium.org
LOG=n

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18935 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoMIPS: Turn RegExpConstructResultStub into a HydrogenCodeStub.
palfia@homejinni.com [Thu, 30 Jan 2014 01:42:03 +0000 (01:42 +0000)]
MIPS: Turn RegExpConstructResultStub into a HydrogenCodeStub.

Port r18902 (ba394fbc)

Original commit message:
This has the additional benefit that it is now possible to
inline the RegExpResult construction code into Hydrogen
builtins.

BUG=
R=plind44@gmail.com

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18934 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoPrepare push to trunk. Now working on version 3.24.28.
machenbach@chromium.org [Thu, 30 Jan 2014 01:05:08 +0000 (01:05 +0000)]
Prepare push to trunk.  Now working on version 3.24.28.

R=jkummerow@chromium.org
TBR=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18931 ce2b1a6d-e550-0410-aec6-3dcde31c8c00