Commit Graph

21447 Commits

Author SHA1 Message Date
ben
726eb0582b Add v8::Object::GetRealNamedPropertyAttributes()
Add v8::Object::GetRealNamedPropertyAttributes() and
v8::Object::GetRealNamedPropertyAttributesInPrototypeChain().

See https://github.com/iojs/io.js/issues/864 for background.

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

Cr-Commit-Position: refs/heads/master@{#26855}
2015-02-25 15:09:20 +00:00
rossberg
c094da9233 [strong] Make functions and generators non-extensible non-constructors
R=dslomov@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#26854}
2015-02-25 14:52:51 +00:00
marja
238ad54d0f Move compilation error handling into a separate class.
In addition to Parser, other phases (such as scope analysis) need to handle
compilation errors in the future. PendingCompilationErrorHandled takes care of
error handling in a unified way.

Split from https://codereview.chromium.org/943543002/ .

R=rossberg@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#26853}
2015-02-25 14:18:34 +00:00
machenbach
b00ff50d52 Clobber output directory on linux and mac after landmine.
Xcode uses a different naming scheme for directories within
the xcodebuild directory. But it is safe to just delete
everything withing xcodebuild or out. Keep the soft clobber
for windows' build directory only, where subdirectories
follow the *release* and *debug* naming scheme.

BUG=chromium:403263
LOG=n
TBR=jochen@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26852}
2015-02-25 14:16:40 +00:00
yangguo
30a6e46a39 Use easier method to determine allocation space when serializing.
R=hpayer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26851}
2015-02-25 14:05:44 +00:00
yangguo
f9fd33c10f Fix assertion when creating custom startup snapshots.
R=vogelheim@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26850}
2015-02-25 13:56:13 +00:00
bmeurer
9da259fb1f [x86] Use better left operand heuristic for Float64Add and Float64Mul.
R=dcarney@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26849}
2015-02-25 12:10:09 +00:00
bmeurer
49b112e117 Revert of Rebase GDBJIT interface solely on JITCodeEvent (patchset #2 id:20001 of https://codereview.chromium.org/957673004/)
Reason for revert:
Doesn't compile

Original issue's description:
> Rebase GDBJIT interface solely on JITCodeEvent
>
> R=mstarzinger@chromium.org
> BUG=
>
> Committed: 8989d828e8

TBR=mstarzinger@chromium.org,wingo@igalia.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=

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

Cr-Commit-Position: refs/heads/master@{#26848}
2015-02-25 12:03:04 +00:00
Andy Wingo
8989d828e8 Rebase GDBJIT interface solely on JITCodeEvent
R=mstarzinger@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#26847}
2015-02-25 11:49:47 +00:00
bmeurer
e1c08bafdd [x64] Improve materialization of certain double constants (i.e. -0.0).
R=dcarney@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26846}
2015-02-25 11:28:52 +00:00
yangguo
4b5ff0c5e2 Attach snapshot data blob to the isolate.
R=vogelheim@chromium.org
BUG=chromium:461259
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#26845}
2015-02-25 11:14:56 +00:00
hpayer
fd35be4065 Just add slots that point to to-space objects back to the store buffer.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#26844}
2015-02-25 10:29:50 +00:00
bmeurer
6a42682975 [turbofan] Fix simplified lowering of Int32Div.
Optimize for the common case and get rid of the unreadable Diamond
helper code there.

R=dcarney@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26843}
2015-02-25 09:46:12 +00:00
machenbach
0fff64da8b Trigger a landmine on first-time landmine deployment.
Without this change, it is non-trivial to know during
runhooks, if a landmine was just triggered in a checkout
that doesn't have the initial landmines script CL yet, i.e.
that didn't create a .landmines file yet.

BUG=chromium:403263
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#26842}
2015-02-25 09:20:04 +00:00
bmeurer
b1c2a34956 [turbofan] Don't introduce additional computation when hoisting out of loops.
Review URL: https://codereview.chromium.org/958533002

Cr-Commit-Position: refs/heads/master@{#26841}
2015-02-25 08:11:48 +00:00
bmeurer
1d56742a8e [turbofan] Don't switchify branches with hints.
R=svenpanne@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26840}
2015-02-25 07:53:13 +00:00
yangguo
c18de60248 Use a hashmap to lookup items in the partial snapshot cache when serializing.
R=vogelheim@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26839}
2015-02-25 07:49:33 +00:00
mstarzinger
bc483ddac4 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}
2015-02-25 07:35:47 +00:00
akos.palfi
ee908a2b6a MIPS: Move Maps' back pointers from "transitions" to "constructor" field
Port affcfaf428

BUG=

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

Cr-Commit-Position: refs/heads/master@{#26837}
2015-02-25 03:25:02 +00:00
adamk
1a8dc98cbf 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}
2015-02-24 22:39:35 +00:00
jkummerow
affcfaf428 Move Maps' back pointers from "transitions" to "constructor" field
Review URL: https://codereview.chromium.org/950283002

Cr-Commit-Position: refs/heads/master@{#26835}
2015-02-24 20:50:24 +00:00
arv
8ad35cb288 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}
2015-02-24 19:12:41 +00:00
michael_dawson
bf3691ae88 Contribution of PowerPC port (continuation of 422063005) - PPC opt 2
Contribution of PowerPC port (continuation of 422063005, 817143002,
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}
2015-02-24 19:05:29 +00:00
titzer
fbb26b21c8 [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}
2015-02-24 18:26:15 +00:00
machenbach
89731cfbf8 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}
2015-02-24 16:57:47 +00:00
machenbach
7fdcd4f705 Add linux dbg coverage to CQ.
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#26830}
2015-02-24 16:39:23 +00:00
jochen
3735a0851a 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}
2015-02-24 16:37:36 +00:00
jochen
e093f3ba39 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}
2015-02-24 16:32:12 +00:00
jochen
35cc692aec 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}
2015-02-24 15:50:12 +00:00
jochen
4ae82f64b0 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}
2015-02-24 15:20:33 +00:00
machenbach
c61fceca68 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}
2015-02-24 14:07:30 +00:00
jochen
09e0f6e21f 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}
2015-02-24 13:42:15 +00:00
jochen
3a98175469 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}
2015-02-24 13:35:27 +00:00
dslomov
675f7d2d5a 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}
2015-02-24 13:05:13 +00:00
machenbach
42dcc6f4b7 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}
2015-02-24 13:03:58 +00:00
rossberg
943dc63126 [strong] Deprecate ellisions
R=marja@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#26820}
2015-02-24 12:51:08 +00:00
dcarney
95df1bc266 [turbofan] optimize moves into merges
BUG=

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

Cr-Commit-Position: refs/heads/master@{#26819}
2015-02-24 12:49:33 +00:00
yangguo
c42b0e8257 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}
2015-02-24 12:30:44 +00:00
bmeurer
dcf193f18c [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}
2015-02-24 12:26:29 +00:00
mstarzinger
b33f552f34 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}
2015-02-24 11:44:57 +00:00
yangguo
abf122cc97 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}
2015-02-24 11:31:20 +00:00
dcarney
43c7345b35 [turbofan] only use two gaps
BUG=

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

Cr-Commit-Position: refs/heads/master@{#26814}
2015-02-24 11:09:20 +00:00
jkummerow
32bac2df49 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}
2015-02-24 10:50:31 +00:00
jochen
2f7c192676 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}
2015-02-24 10:41:41 +00:00
yangguo
c5d55550d8 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}
2015-02-24 09:01:45 +00:00
yangguo
dafd73016c 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}
2015-02-24 08:30:30 +00:00
dcarney
92ccbefe11 [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}
2015-02-24 08:06:54 +00:00
bmeurer
0882d3ff81 [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}
2015-02-24 07:41:36 +00:00
Erik Arvidsson
592756682a Revert extra commit
"for-of should throw if result object is not an object"

The CQ committed the CL twice

This reverts commit ab2591ed93.

BUG=None
TBR=adamk

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

Cr-Commit-Position: refs/heads/master@{#26807}
2015-02-24 00:21:13 +00:00
arv
ab2591ed93 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}
2015-02-23 23:34:54 +00:00