Commit Graph

6985 Commits

Author SHA1 Message Date
Jaroslav Sevcik
c3af691e72 [turbofan] Remove int32 narrowing during typed lowering.
With Int32Add we lose the int/uint distinction, so later, in simplified lowering we can make a wrong decision. E.g., see the attached test case, where we lower NumberAdd -> Int32Add because inputs are Uint32, but during simplified lowering we change the inputs to Int32, so we get a wrong result.

Simplified lowering will lower the NumberAdd operations anyway, so we should lose performance.

BUG=
R=bmeurer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25368}
2014-11-17 09:04:52 +00:00
arv
ef41de10db Classes: Add support for stepping through default constructors
If a class extends another class and it doesn't provide a constructor,
one is created for them. We therefore need to ensure that stepping into
the constructor steps into the super class constructor.

BUG=v8:3674
LOG=Y
R=dslomov@chromium.org, aandrey , yurys

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

Cr-Commit-Position: refs/heads/master@{#25366}
2014-11-15 19:48:39 +00:00
adamk
4a4158f363 Throw as per spec when modifying an Array with builtin methods
BUG=v8:3684
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#25364}
2014-11-14 19:42:15 +00:00
adamk
b17eaaa575 Fix desugaring of let bindings in for loops to handle continue properly
This requires putting the original loop's body inside an inner for loop (with
the same labels as the original loop) and re-binding the temp variables in its
"next" expression. A second flag is added to the desugared code to ensure the
loop body executes at most once per loop.

BUG=v8:3683
LOG=y

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

Cr-Commit-Position: refs/heads/master@{#25363}
2014-11-14 19:33:23 +00:00
caitpotter88
353b696467 Implement ES6 Template Literals
BUG=v8:3230

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

Cr-Commit-Position: refs/heads/master@{#25362}
2014-11-14 18:53:52 +00:00
dcarney
c97a7acf65 [turbofan] refactor pipeline to use hydrogen like Run calls
BUG=

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

Cr-Commit-Position: refs/heads/master@{#25361}
2014-11-14 16:44:45 +00:00
arv
f3d5b13e04 Classes: Implement correct name binding
Named class declarations and class expression have a const binding for
the name that is in TDZ for the extends expression.

BUG=v8:3330
LOG=Y
R=dslomov@chromium.org, adamk

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

Cr-Commit-Position: refs/heads/master@{#25360}
2014-11-14 15:05:20 +00:00
Michael Starzinger
a210f36846 Extend typed lowering to cover JSStrictEqual on differing types.
R=rossberg@chromium.org, titzer@chromium.org
TEST=unittests/JSTypedLoweringTest.JSStrictEqualWithTheHole

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

Cr-Commit-Position: refs/heads/master@{#25359}
2014-11-14 14:25:19 +00:00
Dmitry Lomov
7e69b2f996 Implement 'setVariableValue' for debugger block scopes.
R=aandrey@chromium.org, rossberg@chromium.org, yurys@chromium.org
BUG=v8:3690
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#25358}
2014-11-14 13:39:20 +00:00
Andy Wingo
4faa0ae88a Remove AstConstructionVisitor/AstNullVisitor
R=svenpanne@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#25357}
2014-11-14 13:13:33 +00:00
Benedikt Meurer
27cc3c685c Revert "[turbofan] Smartify the GraphReducer."
This reverts commit 6e148989a4 for
breaking Massive/Embenchen.

TBR=machenbach@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25356}
2014-11-14 11:48:50 +00:00
Ben L. Titzer
cf85209035 Do not do field type tracking with GC stress.
R=verwaest@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#25355}
2014-11-14 11:36:44 +00:00
Ben L. Titzer
3bcea483a7 Remove arguments arity check in mjsunit because it vastly slows down the tests.
R=mstarzinger@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#25353}
2014-11-14 10:30:25 +00:00
Andy Wingo
1503d0e78c Move feedback slot allocation to post-pass
R=mvstanton@chromium.org, svenpanne@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25348}
2014-11-14 08:21:33 +00:00
Benedikt Meurer
45ff9d53c5 [turbofan] Optimize remainder of integer division by unknown power of two.
Drive-by-Fix: minint % 0 was broken on ARM, but we didn't notice because
there was no test covering that case...

TEST=msjunit
R=svenpanne@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25347}
2014-11-14 08:21:18 +00:00
Benedikt Meurer
6e148989a4 [turbofan] Smartify the GraphReducer.
Don't use the generic algorithm, but instead start going into the
direction of ControlReducer, using a stack plus a revisit queue to
not miss any more possibilities for reductions anymore.

TEST=cctest,unittests
R=dcarney@chromium.org

Committed: f047507370

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

Cr-Commit-Position: refs/heads/master@{#25345}
2014-11-14 08:00:36 +00:00
Daniel Vogelheim
f83f10973e Revert "Soft fail for invalid cache data."
This reverts commit eafce666f4.

Original commit failed some tests w/ memory leaks.

TBR=yangguo@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#25336}
2014-11-13 16:47:05 +00:00
Yang Guo
eafce666f4 Soft fail for invalid cache data.
API=ScriptCompiler::CachedData::rejected
LOG=Y
R=vogelheim@google.com, vogelheim@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25335}
2014-11-13 15:42:47 +00:00
ishell@chromium.org
2e38f33911 Revert "TransitionArray now uses <is_data_property, name, attributes> tuple as a key, which allows to have several entries for the same property name."
Revert "Fix for an assertion failure in Map::FindTransitionToField(...). Appeared after r25136."

This revert is made in order to revert r25099 which potentially causes renderer hangs.

R=verwaest@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25332}
2014-11-13 15:31:04 +00:00
Michael Starzinger
78332973e2 Revert "[turbofan] Smartify the GraphReducer."
This reverts commit f047507370 due to mjsunit/numops-fuzz-part2 hitting an
assertion in the ARM assembler.

TBR=bmeurer@chromium.org
TEST=mjsunit/numops-fuzz-part2

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

Cr-Commit-Position: refs/heads/master@{#25327}
2014-11-13 14:07:04 +00:00
Benedikt Meurer
f047507370 [turbofan] Smartify the GraphReducer.
Don't use the generic algorithm, but instead start going into the
direction of ControlReducer, using a stack plus a revisit queue to
not miss any more possibilities for reductions anymore.

TEST=cctest,unittests
R=dcarney@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25326}
2014-11-13 11:34:15 +00:00
Adrian Perez
ddcd08b1d1 Implement .of() on typed arrays
BUG=v8:3578
LOG=Y
R=dslomov@chromium.org, wingo@igalia.com

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

Patch from Adrian Perez <aperez@igalia.com>.

Cr-Commit-Position: refs/heads/master@{#25325}
2014-11-13 11:20:13 +00:00
ishell@chromium.org
bc8c41c08d Avoid fast short-cut in Map::GeneralizeRepresentation() for literals with non-simple transitions.
It started showing after r25253.

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

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

Cr-Commit-Position: refs/heads/master@{#25324}
2014-11-13 10:56:31 +00:00
Michael Starzinger
d7169a7311 Enable breakpoint tests that now pass in TurboFan.
R=jarin@chromium.org
TEST=cctest/test-debug

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

Cr-Commit-Position: refs/heads/master@{#25323}
2014-11-13 10:54:53 +00:00
Michael Starzinger
2f09dcbd20 Enable harmony tests for TurboFan that now pass.
R=jarin@chromium.org
TEST=mjsunit/harmony

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

Cr-Commit-Position: refs/heads/master@{#25320}
2014-11-13 09:44:00 +00:00
Dan Carney
0042363714 [turbofan] add some registerallocator unittests
BUG=
R=bmeurer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25319}
2014-11-13 09:42:09 +00:00
Jaroslav Sevcik
2d075e2298 Reland "[turbofan] Weakening of types must weaken ranges inside unions."
This relands commit 4c1f4b796d.

R=rossberg@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25317}
2014-11-13 09:02:14 +00:00
Yang Guo
b96309b776 Move public symbols to the root set.
This allows serializing public symbols that are embedded in code.

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

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

Cr-Commit-Position: refs/heads/master@{#25315}
2014-11-13 08:48:08 +00:00
Benedikt Meurer
7205f6ee9b [turbofan] Avoid useless bit masking in typed lowering.
There's no need to apply the 0x1f mask to right hand sides of shifts if
the input is already in range [0,31].

TEST=cctest,unittests
R=jarin@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25313}
2014-11-13 07:40:56 +00:00
Jaroslav Sevcik
c513297f9f Revert "[turbofan] Weakening of types must weaken ranges inside unions."
This reverts commit 4c1f4b796d.

TBR=rossberg@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25312}
2014-11-13 06:10:42 +00:00
Jaroslav Sevcik
4c1f4b796d [turbofan] Weakening of types must weaken ranges inside unions.
BUG=
R=rossberg@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25311}
2014-11-13 05:31:47 +00:00
dslomov@chromium.org
8970ade1cf Fix Context::declaration_context to account for script contexts.
R=rossberg@chromium.org
BUG=v8:3690
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#25303}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25303 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-11-12 16:46:24 +00:00
jkummerow@chromium.org
fd9a4df561 Skip regress-crbug-137689.js when running with GC stress
It depends on maps not disappearing prematurely.

R=verwaest@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25302}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25302 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-11-12 16:06:24 +00:00
dcarney@chromium.org
fdab306aa2 [turbofan] add gap move verifier
R=jarin@chromium.org

BUG=

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

Cr-Commit-Position: refs/heads/master@{#25300}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25300 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-11-12 14:53:51 +00:00
wingo@igalia.com
757f400246 Leaving a generator via an exception causes it to close
R=rossberg@chromium.org
BUG=v8:3096
LOG=Y

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

Cr-Commit-Position: refs/heads/master@{#25297}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25297 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-11-12 14:29:22 +00:00
yangguo@chromium.org
e201eb9a9e Temporarily disable test due to not being compatible with the serializer.
TBR=dslomov@chromium.org
BUG=v8:3689
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#25296}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25296 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-11-12 14:27:08 +00:00
bmeurer@chromium.org
24d288cb8a Fix copyright headers.
R=machenbach@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25295}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25295 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-11-12 13:29:57 +00:00
dslomov@chromium.org
0e2f7e3c35 Re-enable serialization under harmony-scoping.
R=yangguo@chromium.org
BUG=v8:3689
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#25294}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25294 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-11-12 13:12:50 +00:00
dslomov@chromium.org
eacdfa0b7a Various clean-ups after top-level lexical declarations are done.
1. Global{Context,Scope}=>Script{Context,Scope}
2. Enable fixed tests
3. Update comments

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

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

Cr-Commit-Position: refs/heads/master@{#25291}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25291 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-11-12 11:35:18 +00:00
yangguo@chromium.org
1dbd6369b1 Correctly compute line numbers in functions from the function constructor.
R=aandrey@chromium.org
BUG=chromium:109362
LOG=Y

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

Cr-Commit-Position: refs/heads/master@{#25289}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25289 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-11-12 10:06:47 +00:00
baptiste.afsa@arm.com
ad815be7d5 [turbofan] Use cbz/cbnz when possible on arm64.
R=bmeurer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25288}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25288 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-11-12 10:06:46 +00:00
ishell@chromium.org
f0cde2f925 Double unboxing tests fixed.
R=verwaest@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25286}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25286 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-11-12 09:47:47 +00:00
mstarzinger@chromium.org
5712592331 Fix bug in graph copy while inlining loops.
R=titzer@chromium.org
TEST=cctest/test-run-inlining/InlineLoop

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

Cr-Commit-Position: refs/heads/master@{#25285}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25285 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-11-12 09:47:17 +00:00
mstarzinger@chromium.org
434f2ebb5b Fix scheduler for floating non-naked non-empty loops.
R=jarin@chromium.org
TEST=cctest/test-scheduler/NestedFloatingDiamondWithLoop

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

Cr-Commit-Position: refs/heads/master@{#25283}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25283 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-11-12 09:39:13 +00:00
mstarzinger@chromium.org
e1c9e732d3 Scheduler checks that end block doesn't have successors.
R=jarin@chromium.org
TEST=cctest/test-scheduler/RPOLoop

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

Cr-Commit-Position: refs/heads/master@{#25281}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25281 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-11-12 09:20:22 +00:00
yangguo@chromium.org
4fd9ba9042 Reland "Fix stepping in for-loops."
BUG=v8:3634
LOG=N
R=ulan@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25279}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25279 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-11-12 08:26:42 +00:00
aandrey@chromium.org
dc416ef328 Rename v8::Exception::GetMessage to CreateMessage.
This is to avoid renaming to GetMessageW/GetMessageA on Windows.

API=v8::Exception::CreateMessage
R=yangguo@chromium.org, loislo
LOG=Y

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

Cr-Commit-Position: refs/heads/master@{#25273}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25273 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-11-11 21:45:30 +00:00
arv@chromium.org
aa6815c79a Classes: Add support for arguments in default constructor
This is currently done by generating a default constructor that looks
like this:

  constructor() {
    %DefaultConstructorSuperCall();
  }

The a runtime function implements the logic which is pretty similar to
Runtime_Apply except that it uses the [[Prototype]] of the current
function.

This is the second try. The first failed because the test was using a
array that was too large for Function.prototype.apply.

Revert "Revert "Classes: Add support for arguments in default constructor""

This reverts commit 43aa7e541df56a132608b8b4217e9da84575e4f8.

BUG=v8:3672
LOG=Y
TBR=dslomov@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25272}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25272 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-11-11 21:36:16 +00:00
arv@chromium.org
84741e76a3 ES6: Add support for super in object literals
This only available under --harmony-classes

BUG=v8:3571
LOG=Y
R=dslomov@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25271}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25271 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-11-11 19:54:56 +00:00
adamk@chromium.org
1386257c55 Correctly handle Array unshift/splices that move elements past the max length of an Array
BUG=v8:2615
LOG=n
R=verwaest@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25270}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25270 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-11-11 19:08:14 +00:00