platform/upstream/v8.git
9 years agoUse iostream formatting when printing code.
mstarzinger [Wed, 25 Feb 2015 07:35:32 +0000 (23:35 -0800)]
Use iostream formatting when printing code.

R=svenpanne@chromium.org
TEST=manual

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

Cr-Commit-Position: refs/heads/master@{#26838}

9 years agoMIPS: Move Maps' back pointers from "transitions" to "constructor" field
akos.palfi [Wed, 25 Feb 2015 03:24:48 +0000 (19:24 -0800)]
MIPS: Move Maps' back pointers from "transitions" to "constructor" field

Port affcfaf42801414d25b3e57271a9803a026f40ed

BUG=

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

Cr-Commit-Position: refs/heads/master@{#26837}

9 years agoFix up ParseProgram and ParseModule to do something sane with module scopes
adamk [Tue, 24 Feb 2015 22:39:26 +0000 (14:39 -0800)]
Fix up ParseProgram and ParseModule to do something sane with module scopes

The FunctionLiteral returned from the parser for modules now has a MODULE_SCOPE,
instead of associating the module scope with a Block inside it. This makes
it easy to get at the ModuleDescriptor from the caller of Parse(), so I've added
a basic test that pokes at the scope and the descriptor. Expect more tests
in this vein.

BUG=v8:1569
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#26836}

9 years agoMove Maps' back pointers from "transitions" to "constructor" field
jkummerow [Tue, 24 Feb 2015 20:50:06 +0000 (12:50 -0800)]
Move Maps' back pointers from "transitions" to "constructor" field

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

Cr-Commit-Position: refs/heads/master@{#26835}

9 years agoUse for-of loops in collection constructors
arv [Tue, 24 Feb 2015 19:12:35 +0000 (11:12 -0800)]
Use for-of loops in collection constructors

This is to reduce code duplication but also to get the correct
behavior when we make for-of handle abrupt completion correctly.

BUG=None
LOG=N
R=adamk

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

Cr-Commit-Position: refs/heads/master@{#26834}

9 years agoContribution of PowerPC port (continuation of 422063005) - PPC opt 2
michael_dawson [Tue, 24 Feb 2015 19:05:21 +0000 (11:05 -0800)]
Contribution of PowerPC port (continuation of 422063005) - PPC opt 2

Contribution of PowerPC port (continuation of 422063005817143002,
866843003, and 901083004. The bulk of the changes are to remove some
hard coded assumptions about heap page size within existing tests.
The remaining change is to use a larger heap page size for PPC linux
as this provides a performance benefit due to the larger memory page size.

modified:   src/base/build_config.h
modified:   src/heap/heap.cc
modified:   test/cctest/test-alloc.cc
modified:   test/cctest/test-constantpool.cc
modified:   test/cctest/test-heap.cc
modified:   test/cctest/test-spaces.cc
modified:   test/cctest/test-weakmaps.cc
modified:   test/cctest/test-weaksets.cc

R=danno@chromium.org, svenpanne@chromium.org

BUG=

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

Cr-Commit-Position: refs/heads/master@{#26833}

9 years ago[turbofan] Only compile hot asm functions with TurboFan if --turbo-osr flag is turned on.
titzer [Tue, 24 Feb 2015 18:25:47 +0000 (10:25 -0800)]
[turbofan] Only compile hot asm functions with TurboFan if --turbo-osr flag is turned on.

R=bmeurer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26832}

9 years agoPort chromium landmines script.
machenbach [Tue, 24 Feb 2015 16:57:37 +0000 (08:57 -0800)]
Port chromium landmines script.

This runs the landmines script as a gclient hook. It can
as such be used to clobber local checkouts when hooks are
run locally.

It is a softer version than chromium's landmines script, as
it only deletes directories in the output directory due
to compatibility with MSVS which has "build" hardcoded as
output directory in several places.

BUG=chromium:403263
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#26831}

9 years agoAdd linux dbg coverage to CQ.
machenbach [Tue, 24 Feb 2015 16:39:07 +0000 (08:39 -0800)]
Add linux dbg coverage to CQ.

NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#26830}

9 years agoRevert of Revert of Turn on job based recompilation (patchset #1 id:1 of https:/...
jochen [Tue, 24 Feb 2015 16:37:18 +0000 (08:37 -0800)]
Revert of Revert of Turn on job based recompilation (patchset #1 id:1 of https://codereview.chromium.org/937263004/)

Reason for revert:
reland

Original issue's description:
> Revert of Turn on job based recompilation (patchset #1 id:1 of https://codereview.chromium.org/935243003/)
>
> Reason for revert:
> waterfall disagrees
>
> Original issue's description:
> > Turn on job based recompilation
> >
> > BUG=v8:3608
> > R=yangguo@chromium.org
> > LOG=y
> >
> > Committed: https://crrev.com/4ae82f64b09cdc0182cee3a5cc619a9117ac5fbc
> > Cr-Commit-Position: refs/heads/master@{#26826}
>
> TBR=yangguo@chromium.org
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=v8:3608
>
> Committed: https://crrev.com/35cc692aecdea54fb07479b8d7b71059851e07e8
> Cr-Commit-Position: refs/heads/master@{#26827}

TBR=yangguo@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=v8:3608

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

Cr-Commit-Position: refs/heads/master@{#26829}

9 years agoAdd back missing allow handle deref scope
jochen [Tue, 24 Feb 2015 16:32:05 +0000 (08:32 -0800)]
Add back missing allow handle deref scope

BUG=v8:3608
R=svenpanne@chromium.org
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#26828}

9 years agoRevert of Turn on job based recompilation (patchset #1 id:1 of https://codereview...
jochen [Tue, 24 Feb 2015 15:50:06 +0000 (07:50 -0800)]
Revert of Turn on job based recompilation (patchset #1 id:1 of https://codereview.chromium.org/935243003/)

Reason for revert:
waterfall disagrees

Original issue's description:
> Turn on job based recompilation
>
> BUG=v8:3608
> R=yangguo@chromium.org
> LOG=y
>
> Committed: https://crrev.com/4ae82f64b09cdc0182cee3a5cc619a9117ac5fbc
> Cr-Commit-Position: refs/heads/master@{#26826}

TBR=yangguo@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=v8:3608

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

Cr-Commit-Position: refs/heads/master@{#26827}

9 years agoTurn on job based recompilation
jochen [Tue, 24 Feb 2015 15:20:16 +0000 (07:20 -0800)]
Turn on job based recompilation

BUG=v8:3608
R=yangguo@chromium.org
LOG=y

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

Cr-Commit-Position: refs/heads/master@{#26826}

9 years agoPrepare v8 android perf runner for external startup data.
machenbach [Tue, 24 Feb 2015 14:07:15 +0000 (06:07 -0800)]
Prepare v8 android perf runner for external startup data.

NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#26825}

9 years agoWe don't need a lock for the output queue on the main thread
jochen [Tue, 24 Feb 2015 13:42:05 +0000 (05:42 -0800)]
We don't need a lock for the output queue on the main thread

The output queue is supposed to be a lock-free anyways, we're just
temporarily abusing it by having multiple producers. For those, we need
the lock when enqueuing jobs.

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

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

Cr-Commit-Position: refs/heads/master@{#26824}

9 years agoUse mutex/condition variables to synchronize threads
jochen [Tue, 24 Feb 2015 13:35:13 +0000 (05:35 -0800)]
Use mutex/condition variables to synchronize threads

Instead of semaphore and atomics

BUG=v8:3608
R=yangguo@chromium.org
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#26823}

9 years agoInvalidate property cells for non-existent properties properly.
dslomov [Tue, 24 Feb 2015 13:04:59 +0000 (05:04 -0800)]
Invalidate property cells for non-existent properties properly.

R=verwaest@chromium.org
BUG=v8:3914
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#26822}

9 years agoSwitch to new branching model in auto-push script.
machenbach [Tue, 24 Feb 2015 13:03:53 +0000 (05:03 -0800)]
Switch to new branching model in auto-push script.

BUG=chromium:391261
LOG=n
TBR=tandrii@chromium.org
NOTRY=true

TEST=./script_test.py

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

Cr-Commit-Position: refs/heads/master@{#26821}

9 years ago[strong] Deprecate ellisions
rossberg [Tue, 24 Feb 2015 12:50:56 +0000 (04:50 -0800)]
[strong] Deprecate ellisions

R=marja@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#26820}

9 years ago[turbofan] optimize moves into merges
dcarney [Tue, 24 Feb 2015 12:49:28 +0000 (04:49 -0800)]
[turbofan] optimize moves into merges

BUG=

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

Cr-Commit-Position: refs/heads/master@{#26819}

9 years agoFix bogus assertion in Debug::PrepareStep.
yangguo [Tue, 24 Feb 2015 12:30:34 +0000 (04:30 -0800)]
Fix bogus assertion in Debug::PrepareStep.

R=svenpanne@chromium.org
BUG=chromium:461042
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#26818}

9 years ago[turbofan] Strength reduction for inline comparisons.
bmeurer [Tue, 24 Feb 2015 12:26:16 +0000 (04:26 -0800)]
[turbofan] Strength reduction for inline comparisons.

Perform strength reduction on machine operators with inline comparisons:

  CMP & 1 => CMP
  1 & CMP => CMP
  CMP << 31 >> 31 => CMP

Also strength reduce the following constructs:

  x + (0 - y) => x - y
  (0 - y) + x => x - y

R=dcarney@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26817}

9 years agoMake sure exception handlers are deferred.
mstarzinger [Tue, 24 Feb 2015 11:44:45 +0000 (03:44 -0800)]
Make sure exception handlers are deferred.

R=bmeurer@chromium.org
TEST=unittests/SchedulerTest.CallException

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

Cr-Commit-Position: refs/heads/master@{#26816}

9 years agoRemove reinvented wheel for partial snapshot cache.
yangguo [Tue, 24 Feb 2015 11:31:12 +0000 (03:31 -0800)]
Remove reinvented wheel for partial snapshot cache.

R=jkummerow@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26815}

9 years ago[turbofan] only use two gaps
dcarney [Tue, 24 Feb 2015 11:09:03 +0000 (03:09 -0800)]
[turbofan] only use two gaps

BUG=

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

Cr-Commit-Position: refs/heads/master@{#26814}

9 years agoDrop Intrusive*TransitionIterators, use recursion instead.
jkummerow [Tue, 24 Feb 2015 10:50:23 +0000 (02:50 -0800)]
Drop Intrusive*TransitionIterators, use recursion instead.

We already use recursion to iterate over transition trees elsewhere, so this should be safe wrt. call stack height.

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

Cr-Commit-Position: refs/heads/master@{#26813}

9 years agoGet rid of recursive locks for job based recompilation
jochen [Tue, 24 Feb 2015 10:41:24 +0000 (02:41 -0800)]
Get rid of recursive locks for job based recompilation

For flushing the input queue, use the input queue lock. Introduce an
explicit refcount to make sure we don't delete the thread object before
all jobs are finished.

BUG=v8:3608
R=yangguo@chromium.org
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#26812}

9 years agoNewError no longer returns a MaybeObject.
yangguo [Tue, 24 Feb 2015 09:01:33 +0000 (01:01 -0800)]
NewError no longer returns a MaybeObject.

We no longer expect NewError to return an empty handle to signal termination
exception, since TryCall simply requests a new terminate exception interrupt.

BUG=chromium:403509
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#26811}

9 years agoReland "Correctly propagate terminate exception in TryCall."
yangguo [Tue, 24 Feb 2015 08:30:22 +0000 (00:30 -0800)]
Reland "Correctly propagate terminate exception in TryCall."

BUG=v8:3892
LOG=Y

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

Cr-Commit-Position: refs/heads/master@{#26810}

9 years ago[turbofan] encode instruction operand as uint64_t
dcarney [Tue, 24 Feb 2015 08:06:43 +0000 (00:06 -0800)]
[turbofan] encode instruction operand as uint64_t

R=bmeurer@chromium.org

BUG=

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

Cr-Commit-Position: refs/heads/master@{#26809}

9 years ago[turbofan] Initial version of branch cloning.
bmeurer [Tue, 24 Feb 2015 07:41:25 +0000 (23:41 -0800)]
[turbofan] Initial version of branch cloning.

This implements a special case of block cloning to recognize constructs like

 if (a ? b : c) { ... }

that happen to be generated by Emscripten quite often.

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

Cr-Commit-Position: refs/heads/master@{#26808}

9 years agoRevert extra commit
Erik Arvidsson [Tue, 24 Feb 2015 00:20:52 +0000 (19:20 -0500)]
Revert extra commit

"for-of should throw if result object is not an object"

The CQ committed the CL twice

This reverts commit ab2591ed9332086581ee25ef735cd1b3bbd7e2f0.

BUG=None
TBR=adamk

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

Cr-Commit-Position: refs/heads/master@{#26807}

9 years agofor-of should throw if result object is not an object
arv [Mon, 23 Feb 2015 23:34:34 +0000 (15:34 -0800)]
for-of should throw if result object is not an object

This is done using desugaring. Before this we had:

  result = iterator.next()

with this we instead do:

  !%_IsSpecObject(result = iterator.next()) &&
      %ThrowIteratorResultNotAnObject(result)

BUG=v8:3916
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#26806}

9 years agofor-of should throw if result object is not an object
arv [Mon, 23 Feb 2015 23:34:26 +0000 (15:34 -0800)]
for-of should throw if result object is not an object

This is done using desugaring. Before this we had:

  result = iterator.next()

with this we instead do:

  !%_IsSpecObject(result = iterator.next()) &&
      %ThrowIteratorResultNotAnObject(result)

BUG=v8:3916
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#26805}

9 years agoUpdate GN build files with the cpu_arch -> current_cpu change.
dpranke [Mon, 23 Feb 2015 21:01:30 +0000 (13:01 -0800)]
Update GN build files with the cpu_arch -> current_cpu change.

R=machenbach@chromium.org, jochen@chromium.org
BUG=crbug.com/344767
LOG=Y

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

Cr-Commit-Position: refs/heads/master@{#26804}

9 years agoES6 collections: Fix order of constructor logic
arv [Mon, 23 Feb 2015 18:55:38 +0000 (10:55 -0800)]
ES6 collections: Fix order of constructor logic

The adder should be gotten before the iterator.

Motivation: Once this is done we should be able to use a for-of loop
instead which leads to cleaner code and correct behavior once the
for-of loop correctly supports abrupt completion.

BUG=None
LOG=N
R=adamk

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

Cr-Commit-Position: refs/heads/master@{#26803}

9 years agoPrototype objects never share their map, and hence cannot be in deprecated state.
verwaest [Mon, 23 Feb 2015 18:25:38 +0000 (10:25 -0800)]
Prototype objects never share their map, and hence cannot be in deprecated state.

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

Cr-Commit-Position: refs/heads/master@{#26802}

9 years agoPromise.all and race should work with iterables
arv [Mon, 23 Feb 2015 18:10:07 +0000 (10:10 -0800)]
Promise.all and race should work with iterables

BUG=v8:3705
LOG=N
R=rossberg@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26801}

9 years agoMerge LookupResult into PropertyAccessInfo
verwaest [Mon, 23 Feb 2015 18:05:08 +0000 (10:05 -0800)]
Merge LookupResult into PropertyAccessInfo

BUG=

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

Cr-Commit-Position: refs/heads/master@{#26800}

9 years agoRevert "The expected key is a valid identifier, which is already free of \\, <0x20...
verwaest [Mon, 23 Feb 2015 17:57:04 +0000 (09:57 -0800)]
Revert "The expected key is a valid identifier, which is already free of \\, <0x20, "."
The optimization is invalid as indicated by the test.

BUG=
TBR=yangguo@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26799}

9 years agoBump up version for 4.3 candidate.
machenbach [Mon, 23 Feb 2015 14:44:24 +0000 (06:44 -0800)]
Bump up version for 4.3 candidate.

NOTRY=true
TBR=jkummerow@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26798}

9 years agoMIPS: [turbofan] Fix several int vs size_t issues.
balazs.kilvady [Mon, 23 Feb 2015 13:59:14 +0000 (05:59 -0800)]
MIPS: [turbofan] Fix several int vs size_t issues.

Port 9c1407da781b38d66b6465118d41f61c66cba12b

BUG=

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

Cr-Commit-Position: refs/heads/master@{#26797}

9 years agoemit premonomorphic ics for loads/stores in optimized code
dcarney [Mon, 23 Feb 2015 12:34:07 +0000 (04:34 -0800)]
emit premonomorphic ics for loads/stores in optimized code

R=verwaest@chromium.org

BUG=

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

Cr-Commit-Position: refs/heads/master@{#26796}

9 years agoMore tests added to cctest/tests/test-migrations.cc.
ishell [Mon, 23 Feb 2015 11:59:44 +0000 (03:59 -0800)]
More tests added to cctest/tests/test-migrations.cc.

This also includes a regression test for crbug/459512.

BUG=chromium:459512
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#26795}

9 years agodisable some harmony scoping tests
dcarney [Mon, 23 Feb 2015 11:58:45 +0000 (03:58 -0800)]
disable some harmony scoping tests

R=verwaest@chromium.org

BUG=v8:3914
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#26794}

9 years agoMIPS64: Implement optimization utilizing signaling NaN for holes in double arrays.
dusan.milosavljevic [Mon, 23 Feb 2015 10:27:17 +0000 (02:27 -0800)]
MIPS64: Implement optimization utilizing signaling NaN for holes in double arrays.

TEST=
BUG=

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

Cr-Commit-Position: refs/heads/master@{#26793}

9 years agoRevert of Correctly propagate terminate exception in TryCall. (patchset #2 id:20001...
machenbach [Mon, 23 Feb 2015 07:17:16 +0000 (23:17 -0800)]
Revert of Correctly propagate terminate exception in TryCall. (patchset #2 id:20001 of https://codereview.chromium.org/928193002/)

Reason for revert:
See crbug.com/460412 and crbug.com/460356. Reverting on master in order to roll from master again soon.

Original issue's description:
> Correctly propagate terminate exception in TryCall.
>
> BUG=v8:3892
> LOG=Y
>
> Committed: https://crrev.com/a49b55b78844557b65a98e7a77dd26078157ed7f
> Cr-Commit-Position: refs/heads/master@{#26685}

TBR=ishell@chromium.org,yangguo@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=v8:3892

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

Cr-Commit-Position: refs/heads/master@{#26792}

9 years agoRevert of [x64] Improve instruction selection for TruncateInt64ToInt32. (patchset...
bmeurer [Mon, 23 Feb 2015 07:09:13 +0000 (23:09 -0800)]
Revert of [x64] Improve instruction selection for TruncateInt64ToInt32. (patchset #1 id:1 of https://codereview.chromium.org/936323004/)

Reason for revert:
Breaks SQLite

Original issue's description:
> [x64] Improve instruction selection for TruncateInt64ToInt32.
>
> R=svenpanne@chromium.org
>
> Committed: https://crrev.com/64a2717529e2197f3a789adabf86ca36f5eb764c
> Cr-Commit-Position: refs/heads/master@{#26739}

TBR=svenpanne@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#26791}

9 years ago[linux] Use _GLIBCXX_DEBUG in Debug builds by default for better checking.
bmeurer [Mon, 23 Feb 2015 06:13:43 +0000 (22:13 -0800)]
[linux] Use _GLIBCXX_DEBUG in Debug builds by default for better checking.

The _GLIBCXX_DEBUG macro is now set by default for Linux Debug builds
and can be disabled using the disable_glibcxx_debug=1 setting
(compatible with Chrome).  This will help us catch problems earlier.

BUG=v8:3638
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#26790}

9 years ago[turbofan] Fix several int vs size_t issues.
bmeurer [Mon, 23 Feb 2015 05:42:57 +0000 (21:42 -0800)]
[turbofan] Fix several int vs size_t issues.

R=svenpanne@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26789}

9 years agoReplace is_reference_error bool argument with ParseErrorType enum
adamk [Fri, 20 Feb 2015 21:19:43 +0000 (13:19 -0800)]
Replace is_reference_error bool argument with ParseErrorType enum

This avoids accidental coercion-to-bool when calling ReportMessage()
in the parser (e.g., from pointer types), and as a bonus makes callsites
easier to read.

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

Cr-Commit-Position: refs/heads/master@{#26788}

9 years agoFix issue with -0 in Maps
arv [Fri, 20 Feb 2015 21:02:40 +0000 (13:02 -0800)]
Fix issue with -0 in Maps

Because we generated a different hash code for 0 and -0 we ended up
not even getting to the SameValueZero check.

BUG=v8:3906
LOG=N
R=adamk

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

Cr-Commit-Position: refs/heads/master@{#26787}

9 years agoES6: Fix GetIterator
arv [Fri, 20 Feb 2015 20:07:08 +0000 (12:07 -0800)]
ES6: Fix GetIterator

After further spec reading it turns out that we should not do ToObject
on the iterable.

BUG=None
LOG=N
R=adamk

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

Cr-Commit-Position: refs/heads/master@{#26786}

9 years agoMIPS: Fix label position types in binding code.
balazs.kilvady [Fri, 20 Feb 2015 19:29:28 +0000 (11:29 -0800)]
MIPS: Fix label position types in binding code.

Also some target_at and target_at_put uniformed on mips and mips64.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#26785}

9 years agoChange bit pattern of hole nan to reflect different sNan encoding on mips HW.
dusan.milosavljevic [Fri, 20 Feb 2015 19:09:18 +0000 (11:09 -0800)]
Change bit pattern of hole nan to reflect different sNan encoding on mips HW.

TEST=
BUG=

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

Cr-Commit-Position: refs/heads/master@{#26784}

9 years agoEmit exception handler table in TurboFan.
mstarzinger [Fri, 20 Feb 2015 16:22:41 +0000 (08:22 -0800)]
Emit exception handler table in TurboFan.

R=bmeurer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26783}

9 years agoConstant-fold strings in HGraphBuilder::BuildBinaryOperation.
yangguo [Fri, 20 Feb 2015 16:16:58 +0000 (08:16 -0800)]
Constant-fold strings in HGraphBuilder::BuildBinaryOperation.

R=vegorov@chromium.org
BUG=v8:3325
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#26782}

9 years agoOnly normalize prototypes in OptimizeAsPrototype if it would benefit.
verwaest [Fri, 20 Feb 2015 15:29:49 +0000 (07:29 -0800)]
Only normalize prototypes in OptimizeAsPrototype if it would benefit.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#26781}

9 years agoCpuProfiler: move StringsStorage class to separate source and header files.
loislo [Fri, 20 Feb 2015 15:15:49 +0000 (07:15 -0800)]
CpuProfiler: move StringsStorage class to separate source and header files.

Mechanical change.

This will break dependency between profiler-generator and heap-profiler-generator.
Later this will help us to reuse SourcePosition in cpu-profiler.

BUG=452067
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#26780}

9 years agoFix GC-unsafe use of BreakLocationIterator.
yangguo [Fri, 20 Feb 2015 14:47:20 +0000 (06:47 -0800)]
Fix GC-unsafe use of BreakLocationIterator.

R=svenpanne@chromium.org
BUG=v8:3776
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#26779}

9 years agoCleanup scheduler unit test a bit.
mstarzinger [Fri, 20 Feb 2015 14:20:09 +0000 (06:20 -0800)]
Cleanup scheduler unit test a bit.

R=bmeurer@chromium.org
TEST=unittests/SchedulerTest,unittests/SchedulerRPOTest

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

Cr-Commit-Position: refs/heads/master@{#26778}

9 years agoAdd missing test for CollectControlProjections on calls.
mstarzinger [Fri, 20 Feb 2015 14:05:10 +0000 (06:05 -0800)]
Add missing test for CollectControlProjections on calls.

R=bmeurer@chromium.org
TEST=unittests/NodePropertiesTest.CollectControlProjections_Call

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

Cr-Commit-Position: refs/heads/master@{#26777}

9 years agoWhitespace change to test new CQ config.
machenbach [Fri, 20 Feb 2015 13:47:31 +0000 (05:47 -0800)]
Whitespace change to test new CQ config.

TBR=tandrii@chromium.org,

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

Cr-Commit-Position: refs/heads/master@{#26776}

9 years agoCpuProfiler: eliminate cpu-profiler dependency from heap-inl.h
loislo [Fri, 20 Feb 2015 13:28:42 +0000 (05:28 -0800)]
CpuProfiler: eliminate cpu-profiler dependency from heap-inl.h

We accessed to cpu_profiler for tracking SharedFunctionInfo objects movements and used their addresses for generating function_id. Actually we could replace the manually generated shared_id by the pair script_id + position. In this case we can drop SharedFunctionInfo events support from cpu_profiler and remove the dependency.

BTW GetCallUid was used as an unique identifier of the function on the front-end side. Actually it is a hash which might not be unique. So I renamed GetCallUid with GetHash and implemented GetFunctionId method.

BUG=452067
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#26775}

9 years agoFix CQ config.
Michael Achenbach [Fri, 20 Feb 2015 12:57:22 +0000 (13:57 +0100)]
Fix CQ config.

R=tandrii@chromium.org
TBR=tandrii@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26774}

9 years ago[turbofan] Don't compute unneeded gray set in AllNodes.
bmeurer [Fri, 20 Feb 2015 12:30:23 +0000 (04:30 -0800)]
[turbofan] Don't compute unneeded gray set in AllNodes.

R=titzer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26773}

9 years agoImmediately "optimize as prototype" when setting as prototype of a function.
verwaest [Fri, 20 Feb 2015 12:23:54 +0000 (04:23 -0800)]
Immediately "optimize as prototype" when setting as prototype of a function.

This saves space since OptimizeAsPrototype detaches from the transition tree, reclaiming intermediate maps. On gmail this corresponds to roughly 20% of all maps.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#26772}

9 years agoMigrate CQ trybot config to v8 repo.
machenbach [Fri, 20 Feb 2015 12:12:35 +0000 (04:12 -0800)]
Migrate CQ trybot config to v8 repo.

TBR=tandrii@chromium.org
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#26771}

9 years agoThere are no evacuation candidates and slot buffers when marking is started.
hpayer [Fri, 20 Feb 2015 11:35:36 +0000 (03:35 -0800)]
There are no evacuation candidates and slot buffers when marking is started.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#26770}

9 years agoDisable failing debug tests in gc-stress.
Yang Guo [Fri, 20 Feb 2015 11:15:17 +0000 (12:15 +0100)]
Disable failing debug tests in gc-stress.

TBR=machenbach@chromium.org
BUG=v8:3776
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#26769}

9 years agoSimplify computation of environment stack delta.
mstarzinger [Fri, 20 Feb 2015 10:48:05 +0000 (02:48 -0800)]
Simplify computation of environment stack delta.

R=titzer@chromium.org
TEST=cctest/test-run-jsexceptions/CatchCall

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

Cr-Commit-Position: refs/heads/master@{#26768}

9 years ago[turbofan] Finally get rid of the generic algorithm.
Benedikt Meurer [Fri, 20 Feb 2015 10:11:45 +0000 (11:11 +0100)]
[turbofan] Finally get rid of the generic algorithm.

R=svenpanne@chromium.org

Committed: https://crrev.com/5bbe693e4817011b6a496c638c9f09026fd3dac9
Cr-Commit-Position: refs/heads/master@{#26760}

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

Cr-Commit-Position: refs/heads/master@{#26767}

9 years agoModel exceptional edges from call nodes in TurboFan.
mstarzinger [Fri, 20 Feb 2015 09:54:49 +0000 (01:54 -0800)]
Model exceptional edges from call nodes in TurboFan.

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

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

Cr-Commit-Position: refs/heads/master@{#26766}

9 years agoPass Isolate* more explicitly in Parser, with less reliance on info->isolate().
titzer [Fri, 20 Feb 2015 09:39:32 +0000 (01:39 -0800)]
Pass Isolate* more explicitly in Parser, with less reliance on info->isolate().

R=marja@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#26765}

9 years agoLimit size of first page based on serialized data.
yangguo [Fri, 20 Feb 2015 09:34:00 +0000 (01:34 -0800)]
Limit size of first page based on serialized data.

R=hpayer@chromium.org
BUG=chromium:453111
LOG=Y

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

Cr-Commit-Position: refs/heads/master@{#26764}

9 years agoRevert of [turbofan] Finally get rid of the generic algorithm. (patchset #2 id:20001...
machenbach [Fri, 20 Feb 2015 09:14:37 +0000 (01:14 -0800)]
Revert of [turbofan] Finally get rid of the generic algorithm. (patchset #2 id:20001 of https://codereview.chromium.org/944803002/)

Reason for revert:
Breaks dbg builds.

Original issue's description:
> [turbofan] Finally get rid of the generic algorithm.
>
> R=svenpanne@chromium.org
>
> Committed: https://crrev.com/5bbe693e4817011b6a496c638c9f09026fd3dac9
> Cr-Commit-Position: refs/heads/master@{#26760}

TBR=svenpanne@chromium.org,bmeurer@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#26763}

9 years agoContribution of PowerPC port (continuation of 422063005) - PPC dir update 2 - mark2
michael_dawson [Fri, 20 Feb 2015 09:00:36 +0000 (01:00 -0800)]
Contribution of PowerPC port (continuation of 422063005) - PPC dir update 2 - mark2

Rebase to latest and use branch created by git new-branch to get a patch that
only has the required changes.  Created new branch, reset to HEAD and then
cherry picked across the changes

modified:   src/compiler/ppc/code-generator-ppc.cc
modified:   src/compiler/ppc/instruction-selector-ppc.cc
modified:   src/disassembler.cc
modified:   src/ic/ppc/handler-compiler-ppc.cc
modified:   src/ic/ppc/ic-compiler-ppc.cc
modified:   src/ppc/assembler-ppc-inl.h
modified:   src/ppc/assembler-ppc.cc
modified:   src/ppc/assembler-ppc.h
modified:   src/ppc/builtins-ppc.cc
modified:   src/ppc/code-stubs-ppc.cc
modified:   src/ppc/deoptimizer-ppc.cc
modified:   src/ppc/disasm-ppc.cc
modified:   src/ppc/full-codegen-ppc.cc
modified:   src/ppc/macro-assembler-ppc.cc
modified:   src/serialize.cc

R=danno@chromium.org, svenpanne@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26762}

9 years agoAdd sheriff details to roll commit message.
machenbach [Fri, 20 Feb 2015 08:50:39 +0000 (00:50 -0800)]
Add sheriff details to roll commit message.

Add a link with instructions about how to assign v8
issues to the chromium roll commit message.

Remove googler mapping feature as it doesn't apply anymore
to any generalist sheriff.

NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#26761}

9 years ago[turbofan] Finally get rid of the generic algorithm.
Benedikt Meurer [Fri, 20 Feb 2015 08:42:29 +0000 (09:42 +0100)]
[turbofan] Finally get rid of the generic algorithm.

R=svenpanne@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26760}

9 years agoAlign GetIterator with ES6 spec
arv [Thu, 19 Feb 2015 21:38:04 +0000 (13:38 -0800)]
Align GetIterator with ES6 spec

BUG=None
LOG=N
R=adamk

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

Cr-Commit-Position: refs/heads/master@{#26759}

9 years agoTeach ModuleDescriptor about basic local exports
adamk [Thu, 19 Feb 2015 20:14:55 +0000 (12:14 -0800)]
Teach ModuleDescriptor about basic local exports

Add() becomes AddLocalExport, which takes an export_name and a local_name.
New parsing tests exercise this.

Also start generating exports for default exports (though this doesn't yet
handle anonymous default exports).

BUG=v8:1569
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#26758}

9 years agoPut more information to the stack when crbug/454297 happens.
ishell [Thu, 19 Feb 2015 18:51:12 +0000 (10:51 -0800)]
Put more information to the stack when crbug/454297 happens.

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

Cr-Commit-Position: refs/heads/master@{#26757}

9 years agoMIPS: Silence warnings and unbreak optdebug build for target.
svetozar.janjic [Thu, 19 Feb 2015 18:25:41 +0000 (10:25 -0800)]
MIPS: Silence warnings and unbreak optdebug build for target.

This is a temporary workaround for bogus array-bounds warning, due to bug in MIPS toolchain versions 4.8.2 and 4.9.2.

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=56273

TEST=
BUG=

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

Cr-Commit-Position: refs/heads/master@{#26756}

9 years ago[strong] make function and class declarations lexical & immutable
rossberg [Thu, 19 Feb 2015 16:49:11 +0000 (08:49 -0800)]
[strong] make function and class declarations lexical & immutable

R=arv@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#26755}

9 years agoSuper store
arv [Thu, 19 Feb 2015 16:15:25 +0000 (08:15 -0800)]
Super store

When the property is not found on the [[HomeObject]] prototype chain
then we should do a [[DefineOwnProperty]] on the instance.

BUG=v8:3330
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#26754}

9 years ago[strong] Deprecate arguments
rossberg [Thu, 19 Feb 2015 14:58:32 +0000 (06:58 -0800)]
[strong] Deprecate arguments

R=marja@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#26753}

9 years agoMinor tools/grokdump improvements: avoid some None dereferences and add some line...
ishell [Thu, 19 Feb 2015 14:36:12 +0000 (06:36 -0800)]
Minor tools/grokdump improvements: avoid some None dereferences and add some line breaks to generated html pages.

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

Cr-Commit-Position: refs/heads/master@{#26752}

9 years ago[strong] Deprecate for-in
rossberg [Thu, 19 Feb 2015 13:50:33 +0000 (05:50 -0800)]
[strong] Deprecate for-in

R=marja@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#26751}

9 years agoKeep cl trybots in sync with cq.
machenbach [Thu, 19 Feb 2015 13:48:21 +0000 (05:48 -0800)]
Keep cl trybots in sync with cq.

TBR=bmeurer@chromium.org
BUG=chromium:353487
LOG=n
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#26750}

9 years agoReflect debug mode build in flags hash.
yangguo [Thu, 19 Feb 2015 13:11:23 +0000 (05:11 -0800)]
Reflect debug mode build in flags hash.

R=vogelheim@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26749}

9 years agoEmbed store callback in handler via weak cell.
ulan [Thu, 19 Feb 2015 13:10:06 +0000 (05:10 -0800)]
Embed store callback in handler via weak cell.

BUG=chromium:454619
LOG=NO

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

Cr-Commit-Position: refs/heads/master@{#26748}

9 years agoClear Map::constructor to object_function from the same context for prototype maps...
verwaest [Thu, 19 Feb 2015 13:01:52 +0000 (05:01 -0800)]
Clear Map::constructor to object_function from the same context for prototype maps. This avoids keeping small pockets of memory alive for the common pattern where prototypes are used to emulate classes:

function inherit(parent, child) {
  function p() {}
  p.prototype = parent.prototype;
  child.prototype = new p();
}

Otherwise child.prototype[constructor] keeps alive p, p's context, the
initial map attached to p, and the (now empty) transition array of the
initial map.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#26747}

9 years ago[turbofan] Transfer types from loop phis to OSR values.
titzer [Thu, 19 Feb 2015 12:38:44 +0000 (04:38 -0800)]
[turbofan] Transfer types from loop phis to OSR values.

R=jarin@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#26746}

9 years ago[turbofan] Simplify context specialization and fix for OSR.
titzer [Thu, 19 Feb 2015 11:36:38 +0000 (03:36 -0800)]
[turbofan] Simplify context specialization and fix for OSR.

AstGraphBuilder puts a constant context in from the beginning.
Also fix bug in merging contexts in environment.

R=mstarzinger@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#26745}

9 years agoMake generator constructors configurable
rossberg [Thu, 19 Feb 2015 11:30:25 +0000 (03:30 -0800)]
Make generator constructors configurable

R=mstarzinger@chromium.org
BUG=v8:3902
LOG=Y

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

Cr-Commit-Position: refs/heads/master@{#26744}

9 years ago[turbofan] Fix typing of comparisons.
jarin [Thu, 19 Feb 2015 10:56:18 +0000 (02:56 -0800)]
[turbofan] Fix typing of comparisons.

BUG=chromium:459955
LOG=n
R=bmeurer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26743}

9 years agoRevert of [x64] Generate test reg,reg instead of cmp reg,0. (patchset #2 id:20001...
bmeurer [Thu, 19 Feb 2015 10:38:24 +0000 (02:38 -0800)]
Revert of [x64] Generate test reg,reg instead of cmp reg,0. (patchset #2 id:20001 of https://codereview.chromium.org/916543004/)

Reason for revert:
Tanks some benchmarks (for no obvious reason)

Original issue's description:
> [x64] Generate test reg,reg instead of cmp reg,0.
>
> The instruction sequence is shorter and saves decoding bandwidth.
>
> R=svenpanne@chromium.org
>
> Committed: https://crrev.com/a7fb5ed400701b22c455d0ad410bc98b211e5730
> Cr-Commit-Position: refs/heads/master@{#26734}

TBR=svenpanne@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#26742}

9 years agoA few tests fails when I run them with --hydrogen-track-positions
loislo [Thu, 19 Feb 2015 10:07:46 +0000 (02:07 -0800)]
A few tests fails when I run them with --hydrogen-track-positions

The root of problem is the fact that we don't track the position of 'this' statement but use them when visit compare statement.
As a result we have -1 as the position of left expression and the resulting relative position is negative and doesn't fit into BitField.

BUG=452067
TEST=test-cpu-profiler/SourceLocation
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#26741}

9 years agoRevert "Remove IC age from Code."
ulan [Thu, 19 Feb 2015 09:56:06 +0000 (01:56 -0800)]
Revert "Remove IC age from Code."

This reverts commit 3cd889 for regressing Kraken benchmark

BUG=chromium:457174
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#26740}

9 years ago[x64] Improve instruction selection for TruncateInt64ToInt32.
Benedikt Meurer [Thu, 19 Feb 2015 09:41:39 +0000 (10:41 +0100)]
[x64] Improve instruction selection for TruncateInt64ToInt32.

R=svenpanne@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26739}