rossberg [Wed, 15 Jul 2015 10:59:52 +0000 (03:59 -0700)]
[es6] Implement inner scope for functions with destructuring
R=adamk@chromium.org, littledan@chromium.org
BUG=v8:811
LOG=N
Review URL: https://codereview.chromium.org/
1240463002
Cr-Commit-Position: refs/heads/master@{#29674}
machenbach [Wed, 15 Jul 2015 10:31:53 +0000 (03:31 -0700)]
Reland Update V8 DEPS.
Rolling v8/tools/clang to
58128abd44c22255def1163d30bc9bb2cc85e15c
Reland after https://codereview.chromium.org/
1241643002/
TBR=jochen@chromium.org, thakis@chromium.org
Review URL: https://codereview.chromium.org/
1237793003
Cr-Commit-Position: refs/heads/master@{#29673}
yangguo [Wed, 15 Jul 2015 09:22:33 +0000 (02:22 -0700)]
Debugger: use debug break slots to break at function exit.
By not having to patch the return sequence (we patch the debug
break slot right before it), we don't overwrite it and therefore
don't have to keep the original copy of the code around.
R=ulan@chromium.org
BUG=v8:4269
LOG=N
Review URL: https://codereview.chromium.org/
1234833003
Cr-Commit-Position: refs/heads/master@{#29672}
mvstanton [Wed, 15 Jul 2015 09:14:49 +0000 (02:14 -0700)]
Scoping error caused crash in CallICNexus::StateFromFeedback
A sloppy mode eval call that establishes strict mode will leak that strictness
into the sloppy surrounding scope on recompile. This changes the structure
of the type feedback vector for the function and crashes follow.
The fix is straightforward.
BUG=491536, 503565
LOG=N
Review URL: https://codereview.chromium.org/
1231343003
Cr-Commit-Position: refs/heads/master@{#29671}
ishell [Wed, 15 Jul 2015 08:53:14 +0000 (01:53 -0700)]
Reland "Enable loads and stores to global vars through property cell shortcuts installed into parent script context."
Review URL: https://codereview.chromium.org/
1237043006
Cr-Commit-Position: refs/heads/master@{#29670}
machenbach [Wed, 15 Jul 2015 08:05:42 +0000 (01:05 -0700)]
Revert of [handles] Sanitize Handle and friends. (patchset #5 id:180001 of https://codereview.chromium.org/
1128533002/)
Reason for revert:
[Sheriff] Still breaks mac asan:
http://build.chromium.org/p/client.v8/builders/V8%20Mac64%20ASAN/builds/2066
Original issue's description:
> [handles] Sanitize Handle and friends.
>
> Bunch of cleanups to allow us to get rid of handles-inl.h at some
> point (in the not so far future); but more importantly to sanitize uses
> of handles and prepare for handle canonicalization support.
>
> R=yangguo@chromium.org
>
> Committed: https://crrev.com/
3283195d0408333cce552cf4087577e6f41054e5
> Cr-Commit-Position: refs/heads/master@{#28222}
>
> Committed: https://crrev.com/
d940c6d3bcc227b459cb4123d9a8332d9ed0d5f8
> Cr-Commit-Position: refs/heads/master@{#29666}
TBR=yangguo@chromium.org,bmeurer@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
Review URL: https://codereview.chromium.org/
1235253007
Cr-Commit-Position: refs/heads/master@{#29669}
ishell [Wed, 15 Jul 2015 07:41:55 +0000 (00:41 -0700)]
Debugger test updated to avoid setting breakpoints into random scripts.
Review URL: https://codereview.chromium.org/
1231893007
Cr-Commit-Position: refs/heads/master@{#29668}
adamk [Wed, 15 Jul 2015 07:31:26 +0000 (00:31 -0700)]
[es6] JSObject::GetOwnElementKeys should collect String wrapper keys first
This makes Object.getOwnPropertyNames() return the integer keys in the
proper order, following the spec:
http://www.ecma-international.org/ecma-262/6.0/#sec-ordinary-object-internal-methods-and-internal-slots-ownpropertykeys
BUG=v8:4118
LOG=n
Review URL: https://codereview.chromium.org/
1228803006
Cr-Commit-Position: refs/heads/master@{#29667}
bmeurer [Wed, 15 Jul 2015 07:13:50 +0000 (00:13 -0700)]
[handles] Sanitize Handle and friends.
Bunch of cleanups to allow us to get rid of handles-inl.h at some
point (in the not so far future); but more importantly to sanitize uses
of handles and prepare for handle canonicalization support.
R=yangguo@chromium.org
Committed: https://crrev.com/
3283195d0408333cce552cf4087577e6f41054e5
Cr-Commit-Position: refs/heads/master@{#28222}
Review URL: https://codereview.chromium.org/
1128533002
Cr-Commit-Position: refs/heads/master@{#29666}
littledan [Wed, 15 Jul 2015 01:01:42 +0000 (18:01 -0700)]
Optimize String.prototype.includes
This patch removes the MathMax call from String.prototype.includes
in order to improve performance. With some quick and dirty benchmarking,
(test case courtesy of the node folks) a sizable performance gain is visible:
d8> function testIndexOf() { var stringArray = [ 'hello', 'world', '123', 'abc' ]; return stringArray.some(function(val, idx, arr) { return val.indexOf('world') !== -1 })}
d8> function testIncludes() { var stringArray = [ 'hello', 'world', '123', 'abc' ]; return stringArray.some(function(val, idx, arr) { return val.includes('world') })}
d8> function testTime(fn) { var before = Date.now(); fn(); return Date.now() - before; }
d8> testTime(function() { for (var i = 0; i <
10000000; i++) { testIncludes() } })
2244
d8> testTime(function() { for (var i = 0; i <
10000000; i++) { testIndexOf() } })
2212
Compare that to before the test, when the performance difference was much larger:
d8> testTime(function() { for (var i = 0; i <
10000000; i++) { testIndexOf() } })
2223
d8> testTime(function() { for (var i = 0; i <
10000000; i++) { testIncludes() } })
2650
In my runs, performance of both functions drifts up and down, but running them in quick
succession back and forth shows a roughly consistent delta of about this magnitude.
String.prototype.includes is still slightly (maybe 5%) slower than String.prototype.indexOf,
but the effect is significantly reduced.
R=adamk
BUG=v8:3807
LOG=Y
Review URL: https://codereview.chromium.org/
1231673008
Cr-Commit-Position: refs/heads/master@{#29665}
binji [Tue, 14 Jul 2015 23:34:17 +0000 (16:34 -0700)]
Disable d8-worker-sharedarraybuffer test (fails on TSAN)
See http://build.chromium.org/p/client.v8/builders/V8%20Linux64%20TSAN/builds/4695/steps/Check%20%28flakes%29/logs/d8-worker-sharedarray..
BUG=v8:4306
R=machenbach@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
LOG=n
Review URL: https://codereview.chromium.org/
1241713003
Cr-Commit-Position: refs/heads/master@{#29664}
binji [Tue, 14 Jul 2015 23:04:18 +0000 (16:04 -0700)]
Reland of d8 workers: make sure Shell::Quit is only called once (patchset #1 id:1 of https://codereview.chromium.org/
1235083004/)
Reason for revert:
Looks like the failure is unrelated to my change (still fails after the revert). See http://build.chromium.org/p/client.v8.fyi/builders/V8-Blink%20Win/builds/856/steps/webkit_unit_tests/logs/stdio
Original issue's description:
> Revert of d8 workers: make sure Shell::Quit is only called once (patchset #5 id:80001 of https://codereview.chromium.org/
1230403003/)
>
> Reason for revert:
> Breaks webkit_unit_tests. See http://build.chromium.org/p/client.v8.fyi/builders/V8-Blink%20Win/builds/853/steps/webkit_unit_tests/logs/stdio
>
> Original issue's description:
> > d8 workers: make sure Shell::Quit is only called once
> >
> > When running with isolates, Quit can be called simultaneously by two threads.
> > If this happens, then both threads try to clean up the Workers, which could
> > crash.
> >
> > BUG=v8:4279
> > R=jarin@chromium.org
> > R=machenbach@chromium.org
> > LOG=n
> >
> > Committed: https://crrev.com/
76184292b392d107609f21662a949b58bb1e258c
> > Cr-Commit-Position: refs/heads/master@{#29654}
>
> TBR=jarin@chromium.org,machenbach@chromium.org
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=v8:4279
>
> Committed: https://crrev.com/
6b2c6eb75678747afca59b4a78ace597e218145d
> Cr-Commit-Position: refs/heads/master@{#29656}
TBR=jarin@chromium.org,machenbach@chromium.org,adamk@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=v8:4279
Review URL: https://codereview.chromium.org/
1224203004
Cr-Commit-Position: refs/heads/master@{#29663}
littledan [Tue, 14 Jul 2015 21:58:49 +0000 (14:58 -0700)]
Improve error message for duplicate parameters
Duplicate parameters are banned both overall in strict mode and also
in arrow functions. Our error message for both cases blamed strict
mode, which is confusing. This patch fixes the message to point to
arrow functions as a possible source as well.
R=wingo, adamk
LOG=N
Review URL: https://codereview.chromium.org/
1236863008
Cr-Commit-Position: refs/heads/master@{#29662}
littledan [Tue, 14 Jul 2015 21:57:40 +0000 (14:57 -0700)]
Improve parsing errors related to destructuring bind
For destructuring bind, the parser needs to complain about things
which are inappropriate to have on the left-hand side.
Previously, regexp literals and template literals were let through
the parser inappropriately. This patch turns those into errors.
This patch also fixes off-by-one errors in reporting the location
of this type of error for strings and numbers. Before the patch,
the error would look like:
d8> var {x: 3} = {x: 4}
(d8):1: SyntaxError: Unexpected number
var {x: 3} = {x: 4}
^
SyntaxError: Unexpected number
And with the patch, the error is
d8> var {x: 3} = {x: 4}
(d8):1: SyntaxError: Unexpected number
var {x: 3} = {x: 4}
^
SyntaxError: Unexpected number
R=rossberg
Review URL: https://codereview.chromium.org/
1236803003
Cr-Commit-Position: refs/heads/master@{#29661}
bbudge [Tue, 14 Jul 2015 21:35:46 +0000 (14:35 -0700)]
V8: Add utility functions to check SameValue and SameValueZero.
Adds SameValue and SameValueZero functions for float and double.
These will be used for HeapNumber and SIMD values.
LOG=N
BUG=v8:4124
Review URL: https://codereview.chromium.org/
1234073003
Cr-Commit-Position: refs/heads/master@{#29660}
mbrandy [Tue, 14 Jul 2015 20:11:45 +0000 (13:11 -0700)]
PPC: Limit unbound label tracking to branch references.
Labels which are not associated with branches (e.g. labels which
record the location of the embedded constant pool or jump tables)
should not be tracked for the purpose of trampoline generation.
This also improves management of the high water mark in the buffer
which triggers trampoline generation such that it is reset whenever
the number of tracked branches drops to zero.
These changes should help minimize unnecessary trampoline and
(subsequent) slow branch generation.
R=dstence@us.ibm.com, michael_dawson@ca.ibm.com
BUG=
Review URL: https://codereview.chromium.org/
1237213002
Cr-Commit-Position: refs/heads/master@{#29659}
binji [Tue, 14 Jul 2015 19:56:47 +0000 (12:56 -0700)]
d8 workers: Fix transferring SharedArrayBuffer to multiple Workers. (try 2)
Note: the previous try was reverted for occasional flaky tests. This continued
after the revert, and should be fixed by
https://codereview.chromium.org/
1226143003.
Previously, the serialization code would call Externalize for every transferred
ArrayBuffer or SharedArrayBuffer, but that function can only be called once. If
the buffer is already externalized, we should call GetContents instead.
Also fix use-after-free bug when transferring ArrayBuffers. The transferred
ArrayBuffer must be internalized in the new isolate, or be managed by the
Shell. The current code gives it to the isolate externalized and frees it
immediately afterward when the SerializationData object is destroyed.
BUG=chromium:497295
R=jarin@chromium.org
LOG=n
Review URL: https://codereview.chromium.org/
1223813008
Cr-Commit-Position: refs/heads/master@{#29658}
adamk [Tue, 14 Jul 2015 18:40:16 +0000 (11:40 -0700)]
Unship spread calls and spread arrays
Return both --harmony-spreadcalls and --harmony-spread-arrays
to staging, in preparation for disabling those features on
the M45 branch.
There are no known bugs in spread calls, but without rest and spread
arrays it seems appropriate to leave all of them out rather than
only supporting a singular use of the '...' operator.
BUG=v8:4298
LOG=y
Review URL: https://codereview.chromium.org/
1230773005
Cr-Commit-Position: refs/heads/master@{#29657}
binji [Tue, 14 Jul 2015 18:13:46 +0000 (11:13 -0700)]
Revert of d8 workers: make sure Shell::Quit is only called once (patchset #5 id:80001 of https://codereview.chromium.org/
1230403003/)
Reason for revert:
Breaks webkit_unit_tests. See http://build.chromium.org/p/client.v8.fyi/builders/V8-Blink%20Win/builds/853/steps/webkit_unit_tests/logs/stdio
Original issue's description:
> d8 workers: make sure Shell::Quit is only called once
>
> When running with isolates, Quit can be called simultaneously by two threads.
> If this happens, then both threads try to clean up the Workers, which could
> crash.
>
> BUG=v8:4279
> R=jarin@chromium.org
> R=machenbach@chromium.org
> LOG=n
>
> Committed: https://crrev.com/
76184292b392d107609f21662a949b58bb1e258c
> Cr-Commit-Position: refs/heads/master@{#29654}
TBR=jarin@chromium.org,machenbach@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=v8:4279
Review URL: https://codereview.chromium.org/
1235083004
Cr-Commit-Position: refs/heads/master@{#29656}
verwaest [Tue, 14 Jul 2015 17:43:09 +0000 (10:43 -0700)]
Allow setting accessor infos over read-only but configurable properties.
BUG=
Review URL: https://codereview.chromium.org/
1228373004
Cr-Commit-Position: refs/heads/master@{#29655}
binji [Tue, 14 Jul 2015 17:42:03 +0000 (10:42 -0700)]
d8 workers: make sure Shell::Quit is only called once
When running with isolates, Quit can be called simultaneously by two threads.
If this happens, then both threads try to clean up the Workers, which could
crash.
BUG=v8:4279
R=jarin@chromium.org
R=machenbach@chromium.org
LOG=n
Review URL: https://codereview.chromium.org/
1230403003
Cr-Commit-Position: refs/heads/master@{#29654}
binji [Tue, 14 Jul 2015 16:17:13 +0000 (09:17 -0700)]
Don't use length property when bounds checking atomics functions
The length property can be monkey-patched, so use the native function instead.
R=jarin@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
1227913006
Cr-Commit-Position: refs/heads/master@{#29653}
balazs.kilvady [Tue, 14 Jul 2015 16:05:20 +0000 (09:05 -0700)]
Add -Wshorten-64-to-32 flag to mac builds.
BUG=
Review URL: https://codereview.chromium.org/
1237753004
Cr-Commit-Position: refs/heads/master@{#29652}
ishell [Tue, 14 Jul 2015 15:13:39 +0000 (08:13 -0700)]
Follow-up for "Enable loads and stores to global vars through property cell shortcuts installed into parent script context."
Review URL: https://codereview.chromium.org/
1236523004
Cr-Commit-Position: refs/heads/master@{#29651}
verwaest [Tue, 14 Jul 2015 14:57:23 +0000 (07:57 -0700)]
Remove duplicate flattening. Defining accessors doesn't call out, so don't assert that the context doesn't change.
BUG=v8:4137
LOG=n
Review URL: https://codereview.chromium.org/
1233073003
Cr-Commit-Position: refs/heads/master@{#29650}
verwaest [Tue, 14 Jul 2015 11:58:32 +0000 (04:58 -0700)]
Replace Set*Callback with TransitionToAccessorPair
BUG=v8:4137
LOG=n
Review URL: https://codereview.chromium.org/
1228803005
Cr-Commit-Position: refs/heads/master@{#29649}
verwaest [Tue, 14 Jul 2015 11:44:41 +0000 (04:44 -0700)]
Properly handle missing from normalized stores with keys convertible to array indices
BUG=chromium:509961
LOG=n
Review URL: https://codereview.chromium.org/
1241613003
Cr-Commit-Position: refs/heads/master@{#29648}
mstarzinger [Tue, 14 Jul 2015 11:40:15 +0000 (04:40 -0700)]
[turbofan] Build graphs for super constructor calls.
This adapts JSCallConstruct nodes to represent both, ordinary 'new'
constructor calls as well as 'super' constructor calls. Note that we
still bailout for super calls for now.
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/
1234023003
Cr-Commit-Position: refs/heads/master@{#29647}
conradw [Tue, 14 Jul 2015 11:31:38 +0000 (04:31 -0700)]
[strong] class objects created in strong mode have their prototype frozen
BUG=v8:3956
LOG=N
Review URL: https://codereview.chromium.org/
1235983002
Cr-Commit-Position: refs/heads/master@{#29646}
verwaest [Tue, 14 Jul 2015 10:53:06 +0000 (03:53 -0700)]
Use the LookupIterator to transition to elements accessors
BUG=v8:4137
LOG=n
Review URL: https://codereview.chromium.org/
1238533003
Cr-Commit-Position: refs/heads/master@{#29645}
chunyang.dai [Tue, 14 Jul 2015 10:12:57 +0000 (03:12 -0700)]
X87: Fix keyed element access wrt string wrappers
port
01f40e6ad6c8137708955494987857fbe489616b (r29618).
original commit message:
BUG=
Review URL: https://codereview.chromium.org/
1233033004
Cr-Commit-Position: refs/heads/master@{#29644}
chunyang.dai [Tue, 14 Jul 2015 10:10:54 +0000 (03:10 -0700)]
X87: Cleanup Generate_JSConstructStubHelper a bit.
port
6ddcd32786dfafc968558ea59c0ca7588c45ebed (r29617)
original commit message:
Cleanup Generate_JSConstructStubHelper a bit.
BUG=
Review URL: https://codereview.chromium.org/
1237013002
Cr-Commit-Position: refs/heads/master@{#29643}
chunyang.dai [Tue, 14 Jul 2015 09:59:12 +0000 (02:59 -0700)]
X87: Debugger: record reloc info for debug break slot immediate before the slot.
port
0a19e44925301b9c0a554bbec5e3fb5a6cd09efa (r29568)
original commit message:
If we do it too early, we might get a constant pool between the reloc info
and the actual slot.
Review URL: https://codereview.chromium.org/
1228923003
Cr-Commit-Position: refs/heads/master@{#29642}
chunyang.dai [Tue, 14 Jul 2015 09:58:07 +0000 (02:58 -0700)]
X87: [turbofan] Add an InterpreterDispatch linkage type.
port
a0129a25ba2f4d00138887cb2008d5b76e2b0068 (r29591).
original commit message:
BUG=
Review URL: https://codereview.chromium.org/
1232383003
Cr-Commit-Position: refs/heads/master@{#29641}
verwaest [Tue, 14 Jul 2015 09:54:54 +0000 (02:54 -0700)]
Remove map-copying for global objects. This was an old (broken) requirement that has been fixed for a while.
BUG=
Review URL: https://codereview.chromium.org/
1235113002
Cr-Commit-Position: refs/heads/master@{#29640}
verwaest [Tue, 14 Jul 2015 09:22:02 +0000 (02:22 -0700)]
Remove temporary hack re deleting hidden properties
BUG=
Review URL: https://codereview.chromium.org/
1222223002
Cr-Commit-Position: refs/heads/master@{#29639}
yangguo [Tue, 14 Jul 2015 08:50:11 +0000 (01:50 -0700)]
Fix test case for crbug/507070.
--debug-code causes full-codegen on arm64 to emit different number
of calls, which confuses the debugger when on-stack replacing code
with recompiled debug version on-stack.
BUG=chromium:507070
TBR=mstarzinger@chromium.org
LOG=N
Review URL: https://codereview.chromium.org/
1228353004
Cr-Commit-Position: refs/heads/master@{#29638}
machenbach [Tue, 14 Jul 2015 08:39:49 +0000 (01:39 -0700)]
[Sheriff] Fix gn build.
TBR=jochen@chromium.org, rmcilroy@chromium.org, hablich@chromium.org
NOTRY=true
Review URL: https://codereview.chromium.org/
1234573003
Cr-Commit-Position: refs/heads/master@{#29637}
yangguo [Tue, 14 Jul 2015 06:38:42 +0000 (23:38 -0700)]
Debugger: make debug code on-stack replacement more robust.
The new implemtation counts the number of calls (or continuations)
before the PC to find the corresponding PC in the new code.
R=mstarzinger@chromium.org
BUG=chromium:507070
LOG=N
Review URL: https://codereview.chromium.org/
1235603002
Cr-Commit-Position: refs/heads/master@{#29636}
bmeurer [Tue, 14 Jul 2015 03:36:57 +0000 (20:36 -0700)]
[turbofan] Don't use uniform initialization in AccessBuilder.
BUG=v8:4295
LOG=n
TBR=jochen@chromium.org
Review URL: https://codereview.chromium.org/
1241533003
Cr-Commit-Position: refs/heads/master@{#29635}
paul.lind [Tue, 14 Jul 2015 03:34:36 +0000 (20:34 -0700)]
Fix big-endian after '[osr] Increase Code::profiler_ticks to 28 bits.'
Several users of kKindSpecificFlags1Offset (aliased as kFullCodeFlags) were
reading/writing bytes -- not endian agnostic.
TEST=mjsunit/debug-setexceptionbreak, mjsunit/debug-mirror-cache, mjsunit/regress/regress-94873, others...
BUG=
Review URL: https://codereview.chromium.org/
1236143002
Cr-Commit-Position: refs/heads/master@{#29634}
ulan [Tue, 14 Jul 2015 03:33:20 +0000 (20:33 -0700)]
[turbofan] Fix undefined behavior in InstructionSequence::GetInstructionBlock.
Some implementations of std::lower_bound require weak-strict ordering.
The comparison operator must be assymetric, which doesn't hold for less_equals.
Review URL: https://codereview.chromium.org/
1232613002
Cr-Commit-Position: refs/heads/master@{#29633}
paul.lind [Tue, 14 Jul 2015 03:30:06 +0000 (20:30 -0700)]
[turbofan] Fix a -Wsign-compare error under GCC 4.9.2.
Review URL: https://codereview.chromium.org/
1230063011
Cr-Commit-Position: refs/heads/master@{#29632}
chunyang.dai [Tue, 14 Jul 2015 02:45:31 +0000 (19:45 -0700)]
X87: Remove separate construct stub for new.target users.
port
e50c861b099b3bd3e1174b5f2843567620cc6842 (r29562)
original commit message:
BUG=
Review URL: https://codereview.chromium.org/
1232833002
Cr-Commit-Position: refs/heads/master@{#29631}
chunyang.dai [Tue, 14 Jul 2015 02:34:35 +0000 (19:34 -0700)]
X87: Debugger: use debug break slot to break on call.
port
8965b683ce39bc3c24ed2466d189323d81a70852 (r29561)
original commit message:
Break point at calls are currently set via IC. To change this, we
need to set debug break slots instead. We also need to distinguish
those debug break slots as calls to support step-in.
To implement this, we add a data field to debug break reloc info to
indicate non-call debug breaks or in case of call debug breaks, the
number of arguments. We can later use this to find the callee on the
evaluation stack in Debug::PrepareStep.
BUG=
Review URL: https://codereview.chromium.org/
1233823002
Cr-Commit-Position: refs/heads/master@{#29630}
chunyang.dai [Tue, 14 Jul 2015 02:29:46 +0000 (19:29 -0700)]
X87: [turbofan] Add TruncationMode for TruncateFloat64ToInt32.
port
4b38c15817033ccd9a65efbb3d038ae2423293c2 (r29527).
original commit message:
We actually need round to zero truncation to implement the counterpart
of LDoubleToI in TurboFan, which tries to convert a double to an integer
as required for keyed load/store optimizations.
Drive-by-cleanup: Reduce some code duplication in the InstructionSelector
implementations.
BUG=
Review URL: https://codereview.chromium.org/
1227923003
Cr-Commit-Position: refs/heads/master@{#29629}
chunyang.dai [Tue, 14 Jul 2015 02:28:39 +0000 (19:28 -0700)]
X87: Reland: Add unoptimized/optimized variants of MathFloor TF code stub
port
737b8573f80deaa1cbaec98f42ecd3e3b56ba901 (r29539)
original commit message:
- Add a TurboFanIC class, derived from TurboFanCodeStub, that
automatically distinguishes between versions of the IC called from
optimized and unoptimized code.
- Add appropriate InterfaceDescriptors for both the versions of the
stub called from unoptimized and optimized code
- Change the MathFloor TF stub generator to output either the
for-optimized or for-unoptimized version based on the minor_key
parameter.
BUG=
Review URL: https://codereview.chromium.org/
1235823002
Cr-Commit-Position: refs/heads/master@{#29628}
mbrandy [Mon, 13 Jul 2015 21:58:23 +0000 (14:58 -0700)]
PPC: protect against malformed branch and memory access instructions.
R=dstence@us.ibm.com, michael_dawson@ca.ibm.com
Review URL: https://codereview.chromium.org/
1239583002
Cr-Commit-Position: refs/heads/master@{#29627}
binji [Mon, 13 Jul 2015 21:04:55 +0000 (14:04 -0700)]
d8: Fix some TSAN bugs
* Fix embarrassing bug in DeserializeValue, using a static buffer in
multithreaded code.
* Fix thread leak when Worker.terminate() is not called.
R=jarin@chromium.org
Review URL: https://codereview.chromium.org/
1226143003
Cr-Commit-Position: refs/heads/master@{#29626}
binji [Mon, 13 Jul 2015 20:36:21 +0000 (13:36 -0700)]
In Atomics API, convert operands to numbers before calling runtime.
R=jarin@chromium.org
Review URL: https://codereview.chromium.org/
1232243002
Cr-Commit-Position: refs/heads/master@{#29625}
balazs.kilvady [Mon, 13 Jul 2015 19:42:19 +0000 (12:42 -0700)]
MIPS64: Fix 'Fix keyed element access wrt string wrappers'.
Port
01f40e6ad6c8137708955494987857fbe489616b
BUG=v8:4296
LOG=n
Review URL: https://codereview.chromium.org/
1233923002
Cr-Commit-Position: refs/heads/master@{#29624}
mbrandy [Mon, 13 Jul 2015 18:54:23 +0000 (11:54 -0700)]
PPC: Cleanup Generate_JSConstructStubHelper a bit.
Port
6ddcd32786dfafc968558ea59c0ca7588c45ebed
R=mstarzinger@chromium.org, dstence@us.ibm.com, michael_dawson@ca.ibm.com
BUG=
Review URL: https://codereview.chromium.org/
1234953002
Cr-Commit-Position: refs/heads/master@{#29623}
mbrandy [Mon, 13 Jul 2015 18:51:12 +0000 (11:51 -0700)]
PPC: Fix keyed element access wrt string wrappers
Port
01f40e6ad6c8137708955494987857fbe489616b
R=verwaest@chromium.org, dstence@us.ibm.com, michael_dawson@ca.ibm.com
BUG=
Review URL: https://codereview.chromium.org/
1231633006
Cr-Commit-Position: refs/heads/master@{#29622}
balazs.kilvady [Mon, 13 Jul 2015 18:26:17 +0000 (11:26 -0700)]
MIPS64: Fix BlockTrampolinePoolFor() to emit trampoline before blocking, if needed.
Port
f0d1106a3fa1ffaa822efc90d61e2aca315cbe15
Fixes possible failure in AssembleArchTableSwitch().
BUG=v8:4294
LOG=y
Review URL: https://codereview.chromium.org/
1235883004
Cr-Commit-Position: refs/heads/master@{#29621}
mbrandy [Mon, 13 Jul 2015 17:21:39 +0000 (10:21 -0700)]
PPC: [turbofan] Add an InterpreterDispatch linkage type.
Port
a0129a25ba2f4d00138887cb2008d5b76e2b0068
R=rmcilroy@chromium.org, dstence@us.ibm.com, michael_dawson@ca.ibm.com
BUG=
Review URL: https://codereview.chromium.org/
1232803004
Cr-Commit-Position: refs/heads/master@{#29620}
mbrandy [Mon, 13 Jul 2015 17:16:07 +0000 (10:16 -0700)]
PPC: This CL also adds hydrogen stubs for global loads and global stores, full-codegen and TurboFan now uses this machinery.
Fix
f87286e2db5b302ecd8331ccd13b1d3859b8bef5
R=ishell@chromium.org, dstence@us.ibm.com, michael_dawson@ca.ibm.com
Original commit message:
Loads and stores to global vars are now made via property cell shortcuts installed into parent script context.
BUG=
Review URL: https://codereview.chromium.org/
1228393005
Cr-Commit-Position: refs/heads/master@{#29619}
verwaest [Mon, 13 Jul 2015 15:38:55 +0000 (08:38 -0700)]
Fix keyed element access wrt string wrappers
BUG=v8:4296
LOG=n
Review URL: https://codereview.chromium.org/
1228063004
Cr-Commit-Position: refs/heads/master@{#29618}
mstarzinger [Mon, 13 Jul 2015 15:13:00 +0000 (08:13 -0700)]
Cleanup Generate_JSConstructStubHelper a bit.
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/
1227163011
Cr-Commit-Position: refs/heads/master@{#29617}
yurys [Mon, 13 Jul 2015 15:02:21 +0000 (08:02 -0700)]
Add convenience method for converting v8::PersistentBase to v8::Local
The CL addes convenienve method that allows to write code like the following
v8::Local<v8::Object> local = v8::Local<v8::Object>::New(global, isolate);
in a more readable way:
v8::Local<v8::Object> local = global.Get(isolate);
There is already v8::Eternal::Get that does similar thing.
BUG=None
LOG=Y
Review URL: https://codereview.chromium.org/
1237603003
Cr-Commit-Position: refs/heads/master@{#29616}
conradw [Mon, 13 Jul 2015 15:00:55 +0000 (08:00 -0700)]
[strong] class objects created in strong mode are frozen
BUG=v8:3956
LOG=N
Review URL: https://codereview.chromium.org/
1225303005
Cr-Commit-Position: refs/heads/master@{#29615}
verwaest [Mon, 13 Jul 2015 14:41:38 +0000 (07:41 -0700)]
Minor cleanup IC keyed access handling.
BUG=
Review URL: https://codereview.chromium.org/
1238463002
Cr-Commit-Position: refs/heads/master@{#29614}
nodir [Mon, 13 Jul 2015 14:40:31 +0000 (07:40 -0700)]
V8 project metadata
Added project.cfg metadata file for chrome-infra
R=machenbach@chromium.org, sergiyb@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=507723
Review URL: https://codereview.chromium.org/
1230823005
Cr-Commit-Position: refs/heads/master@{#29613}
Michael Achenbach [Mon, 13 Jul 2015 14:31:04 +0000 (16:31 +0200)]
Whitespace change to test ninja switch on windows.
Cr-Commit-Position: refs/heads/master@{#29612}
ishell [Mon, 13 Jul 2015 13:39:26 +0000 (06:39 -0700)]
TypeofMode replaces TypeofState and ContextualMode.
NON_CONTEXTUAL ~> INSIDE_TYPEOF
CONTEXTUAL ~> NOT_INSIDE_TYPEOF
Review URL: https://codereview.chromium.org/
1227893005
Cr-Commit-Position: refs/heads/master@{#29611}
balazs.kilvady [Mon, 13 Jul 2015 13:36:03 +0000 (06:36 -0700)]
MIPS64: Refine 'Remove unused byte from Map::instance_sizes field.'
Port
2027335f1ce44b0c6523eb5e55881e2a4e162815
Original commit message:
Note that there are currently no objects that require a pre-allocated
properties backing store, all such slots are in-object properties from
the begining. Hence {unused + pre_allocated - inobject == 0} holds.
BUG=
Review URL: https://codereview.chromium.org/
1226363003
Cr-Commit-Position: refs/heads/master@{#29610}
mstarzinger [Mon, 13 Jul 2015 13:34:01 +0000 (06:34 -0700)]
Remove unused bailout reasons.
This also adds a script to the tools directory that allows to grep for
unused bailout reasons. For now the script needs to be run manually.
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/
1237623003
Cr-Commit-Position: refs/heads/master@{#29609}
dusan.milosavljevic [Mon, 13 Jul 2015 13:32:53 +0000 (06:32 -0700)]
MIPS: Fix missing Float32 case in AssembleArchBoolean.
TEST=mjsunit/asm/embenchen/box2d
BUG=
Review URL: https://codereview.chromium.org/
1234533004
Cr-Commit-Position: refs/heads/master@{#29608}
mstarzinger [Mon, 13 Jul 2015 12:45:19 +0000 (05:45 -0700)]
Our JavaScriptFrame::function_slot_object is arch independent.
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/
1235893002
Cr-Commit-Position: refs/heads/master@{#29607}
conradw [Mon, 13 Jul 2015 12:40:22 +0000 (05:40 -0700)]
[strong] Strong classes can't extend null
BUG=v8:3956
LOG=N
Review URL: https://codereview.chromium.org/
1235883002
Cr-Commit-Position: refs/heads/master@{#29606}
machenbach [Mon, 13 Jul 2015 12:39:15 +0000 (05:39 -0700)]
Prepare for using ninja for win64.
BUG=chromium:508921
LOG=n
Review URL: https://codereview.chromium.org/
1234443003
Cr-Commit-Position: refs/heads/master@{#29605}
rmcilroy [Mon, 13 Jul 2015 12:38:06 +0000 (05:38 -0700)]
Move SmartPointer to base.
Review URL: https://codereview.chromium.org/
1221433021
Cr-Commit-Position: refs/heads/master@{#29604}
yangguo [Mon, 13 Jul 2015 12:32:09 +0000 (05:32 -0700)]
Debugger: refactor reloc info.
- split relocation info for debug break slots for
- calls (with call arguments count as data)
- construct calls
- normal slots
- renamed DEBUG_BREAK into DEBUGGER_STATEMENT
- removed unused IC state for Debug stubs
R=ulan@chromium.org
BUG=v8:4269
LOG=N
Review URL: https://codereview.chromium.org/
1232803002
Cr-Commit-Position: refs/heads/master@{#29603}
bmeurer [Mon, 13 Jul 2015 12:30:51 +0000 (05:30 -0700)]
[turbofan] Context specialization should only specialize loads/stores.
The JSContextSpecialization should only care about loads from the
context and stores to the context, where the context is either a
HeapConstant or the special context Parameter (and a context for the
outer most function is provided). This way we don't eagerly embed
arbitrary context constants for no benefit, but we still specialize the
loads and store which we actually care about.
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/
1227963005
Cr-Commit-Position: refs/heads/master@{#29602}
danno [Mon, 13 Jul 2015 12:29:37 +0000 (05:29 -0700)]
[turbofan] Use context specialization in code stubs
Review URL: https://codereview.chromium.org/
1226503005
Cr-Commit-Position: refs/heads/master@{#29601}
machenbach [Mon, 13 Jul 2015 11:45:17 +0000 (04:45 -0700)]
Revert of Update V8 DEPS. (patchset #3 id:40001 of https://codereview.chromium.org/
1232583002/)
Reason for revert:
[Sheriff] Looks like another clang option got deprecated: http://build.chromium.org/p/client.v8/builders/V8%20Linux%20ASAN%20mipsel%20-%20debug%20builder/builds/326
Original issue's description:
> Update V8 DEPS.
>
> Rolling v8/tools/clang to
58128abd44c22255def1163d30bc9bb2cc85e15c
>
> Original CL: https://codereview.chromium.org/
1232043002/
>
> BUG=
>
> Committed: https://crrev.com/
6211e1660492f653d30ddd1336bce6f9083ede94
> Cr-Commit-Position: refs/heads/master@{#29598}
TBR=jochen@chromium.org,akos.palfi@imgtec.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=
Review URL: https://codereview.chromium.org/
1232803003
Cr-Commit-Position: refs/heads/master@{#29600}
machenbach [Mon, 13 Jul 2015 11:19:26 +0000 (04:19 -0700)]
Revert of Enable loads and stores to global vars through property cell shortcuts installed into parent script… (patchset #1 id:1 of https://codereview.chromium.org/
1237603002/)
Reason for revert:
[Sheriff] This changes lots of layout tests. See comment on CL.
Original issue's description:
> Enable loads and stores to global vars through property cell shortcuts installed into parent script context.
>
> Committed: https://crrev.com/
cd61b047f1ab92c353a629556f9d3ad571ace1b1
> Cr-Commit-Position: refs/heads/master@{#29595}
TBR=verwaest@chromium.org,ishell@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
Review URL: https://codereview.chromium.org/
1236863002
Cr-Commit-Position: refs/heads/master@{#29599}
machenbach [Mon, 13 Jul 2015 10:58:53 +0000 (03:58 -0700)]
Update V8 DEPS.
Rolling v8/tools/clang to
58128abd44c22255def1163d30bc9bb2cc85e15c
Original CL: https://codereview.chromium.org/
1232043002/
BUG=
Review URL: https://codereview.chromium.org/
1232583002
Cr-Commit-Position: refs/heads/master@{#29598}
bmeurer [Mon, 13 Jul 2015 10:57:40 +0000 (03:57 -0700)]
[osr] Increase Code::profiler_ticks to 28 bits.
Up until now we were unable to have profiler ticks beyong 255, which
basically disabled OSR for moderately large functions.
BUG=chromium:508741
LOG=n
R=jarin@chromium.org
Review URL: https://codereview.chromium.org/
1224173003
Cr-Commit-Position: refs/heads/master@{#29597}
verwaest [Mon, 13 Jul 2015 10:46:28 +0000 (03:46 -0700)]
Fix keyed stores to strings convertible to indices
BUG=chromium:509545
LOG=n
Review URL: https://codereview.chromium.org/
1232823002
Cr-Commit-Position: refs/heads/master@{#29596}
ishell [Mon, 13 Jul 2015 10:22:09 +0000 (03:22 -0700)]
Enable loads and stores to global vars through property cell shortcuts installed into parent script context.
Review URL: https://codereview.chromium.org/
1237603002
Cr-Commit-Position: refs/heads/master@{#29595}
ulan [Mon, 13 Jul 2015 10:18:16 +0000 (03:18 -0700)]
Correctly handle the case when TimerTask is destroyed with being run.
This is follow-up for a5616e.
BUG=chromium:508584
LOG=NO
Review URL: https://codereview.chromium.org/
1234513003
Cr-Commit-Position: refs/heads/master@{#29594}
danno [Mon, 13 Jul 2015 09:45:43 +0000 (02:45 -0700)]
Create a internal native context used only for TF-generated code stubs
Until now, TF-generated code stubs piggy-backed off of the builtin
context. Since generation of code stubs is lazy, stubs generated at
different times in different native contexts would contain embedded
pointers different builtin contexts, leading to cross-context references
and memory leaks.
After this CL, all TF-generated code stubs are generated inside a
internal thinned-out, native context that lives solely for the
purpose of hosting generated code stubs.
Review URL: https://codereview.chromium.org/
1213203007
Cr-Commit-Position: refs/heads/master@{#29593}
ishell [Mon, 13 Jul 2015 09:18:44 +0000 (02:18 -0700)]
Loads and stores to global vars are now made via property cell shortcuts installed into parent script context.
This CL also adds hydrogen stubs for global loads and global stores, full-codegen and TurboFan now uses this machinery.
Review URL: https://codereview.chromium.org/
1224793002
Cr-Commit-Position: refs/heads/master@{#29592}
rmcilroy [Mon, 13 Jul 2015 08:27:40 +0000 (01:27 -0700)]
[turbofan] Add an InterpreterDispatch linkage type.
BUG=v8:4280
LOG=N
Review URL: https://codereview.chromium.org/
1234443004
Cr-Commit-Position: refs/heads/master@{#29591}
mstarzinger [Mon, 13 Jul 2015 08:26:21 +0000 (01:26 -0700)]
Remove unused byte from Map::instance_sizes field.
Note that there are currently no objects that require a pre-allocated
properties backing store, all such slots are in-object properties from
the begining. Hence {unused + pre_allocated - inobject == 0} holds.
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/
1226203011
Cr-Commit-Position: refs/heads/master@{#29590}
paul.lind [Mon, 13 Jul 2015 07:28:24 +0000 (00:28 -0700)]
MIPS: Fix BlockTrampolinePoolFor() to emit trampoline before blocking, if needed.
Fixes possible failure in AssembleArchTableSwitch().
BUG=v8:4294
LOG=y
Review URL: https://codereview.chromium.org/
1229863004
Cr-Commit-Position: refs/heads/master@{#29589}
bmeurer [Mon, 13 Jul 2015 06:02:16 +0000 (23:02 -0700)]
[turbofan] Optimize string "length" property access based on types.
Optimize string "length" property access based on static type
information if possible, but also optimistically optimize the access
based on type feedback from the LoadIC.
R=jarin@chromium.org
Committed: https://crrev.com/
17add22ff4b9c5ca638502e7708f0d9d99baca40
Cr-Commit-Position: refs/heads/master@{#29543}
Review URL: https://codereview.chromium.org/
1216593003
Cr-Commit-Position: refs/heads/master@{#29588}
bmeurer [Mon, 13 Jul 2015 05:26:42 +0000 (22:26 -0700)]
[arm] CheckConstPool between TurboFan instructions.
Some TurboFan instructions block the literal pool for their entire
duration. If a long enough sequence of these instructions is
encountered, the literal pool can be blocked until it goes out of range.
Patch from issue
1236603002 at patchset 1 (http://crrev.com/
1236603002#ps1).
BUG=v8:4292
LOG=y
R=jarin@chromium.org
Review URL: https://codereview.chromium.org/
1232343002
Cr-Commit-Position: refs/heads/master@{#29587}
martyn.capewell [Mon, 13 Jul 2015 05:23:40 +0000 (22:23 -0700)]
[turbofan] Reduce Float64 comparison to Float32.
Reduce Float64 comparison to Float32 when both inputs are conversions from
Float32.
Review URL: https://codereview.chromium.org/
1235663002
Cr-Commit-Position: refs/heads/master@{#29586}
mbrandy [Fri, 10 Jul 2015 21:27:36 +0000 (14:27 -0700)]
PPC: Debugger: record reloc info for debug break slot immediate before the slot.
Port
0a19e44925301b9c0a554bbec5e3fb5a6cd09efa
Original commit message:
If we do it too early, we might get a constant pool between the reloc info
and the actual slot.
R=yangguo@chromium.org, dstence@us.ibm.com, michael_dawson@ca.ibm.com
BUG=
Review URL: https://codereview.chromium.org/
1232123006
Cr-Commit-Position: refs/heads/master@{#29585}
mbrandy [Fri, 10 Jul 2015 21:11:39 +0000 (14:11 -0700)]
PPC: Remove unused jump_elimination_allowed parameter to Assembler::branch_offset().
R=dstence@us.ibm.com, michael_dawson@ca.ibm.com
BUG=
Review URL: https://codereview.chromium.org/
1233453007
Cr-Commit-Position: refs/heads/master@{#29584}
mbrandy [Fri, 10 Jul 2015 21:03:30 +0000 (14:03 -0700)]
PPC: Remove separate construct stub for new.target users.
Port
e50c861b099b3bd3e1174b5f2843567620cc6842
R=mstarzinger@chromium.org, dstence@us.ibm.com, michael_dawson@ca.ibm.com
BUG=
Review URL: https://codereview.chromium.org/
1230973006
Cr-Commit-Position: refs/heads/master@{#29583}
mbrandy [Fri, 10 Jul 2015 21:02:20 +0000 (14:02 -0700)]
PPC: Debugger: use debug break slot to break on call.
Port
8965b683ce39bc3c24ed2466d189323d81a70852
Original commit message:
Break point at calls are currently set via IC. To change this, we
need to set debug break slots instead. We also need to distinguish
those debug break slots as calls to support step-in.
To implement this, we add a data field to debug break reloc info to
indicate non-call debug breaks or in case of call debug breaks, the
number of arguments. We can later use this to find the callee on the
evaluation stack in Debug::PrepareStep.
R=yangguo@chromium.org, dstence@us.ibm.com, michael_dawson@ca.ibm.com
BUG=
Review URL: https://codereview.chromium.org/
1231173002
Cr-Commit-Position: refs/heads/master@{#29582}
paul.lind [Fri, 10 Jul 2015 20:55:35 +0000 (13:55 -0700)]
MIPS: Check that branches to trampoline pool do actually reach.
Do the check in release mode, too. Prefer crash over mis-patched
branch instruction.
BUG=v8:4294
LOG=N
Review URL: https://codereview.chromium.org/
1233623004
Cr-Commit-Position: refs/heads/master@{#29581}
arv [Fri, 10 Jul 2015 19:16:30 +0000 (12:16 -0700)]
Remove arv from OWNERS
Goodbyes are not forever.
Goodbyes are not the end.
They simply mean I’ll miss you
Until we meet again!
~Author Unknown
BUG=N
LOG=N
R=adamk@chromium.org, rossberg@chromium.org
Review URL: https://codereview.chromium.org/
1208423016
Cr-Commit-Position: refs/heads/master@{#29580}
verwaest [Fri, 10 Jul 2015 17:11:35 +0000 (10:11 -0700)]
Revert preallocating of descriptors since right now getters and setters cause copying of descriptor arrays
BUG=
Review URL: https://codereview.chromium.org/
1225213008
Cr-Commit-Position: refs/heads/master@{#29579}
arv [Fri, 10 Jul 2015 16:39:47 +0000 (09:39 -0700)]
[es6] Handle conflicts for sloppy let
We have to call CheckConflictingVarDeclarations in case we have enabled
--harmony-sloppy
BUG=v8:4287
LOG=N
R=littledan@chromium.org, rossberg@chromium.org
Review URL: https://codereview.chromium.org/
1226103002
Cr-Commit-Position: refs/heads/master@{#29578}
arv [Fri, 10 Jul 2015 16:20:34 +0000 (09:20 -0700)]
[es6] Enforce TDZ checks for let/const in StoreLookupSlot
With --harmony-sloppy we can get to a runtime store in the presence of
an eval. We therefor need to check that the value is not the hole which
is used to enforce TDZ.
BUG=v8:4284
LOG=N
R=rossberg@chromium.org, littledan@chromium.org
Review URL: https://codereview.chromium.org/
1214733013
Cr-Commit-Position: refs/heads/master@{#29577}
verwaest [Fri, 10 Jul 2015 16:11:00 +0000 (09:11 -0700)]
Fix keyed access of primitive objects in the runtime.
For now it uses a pretty slow path for accessing strings by wrapping it into a new temporary wrapper.
BUG=v8:4042, v8:3088
LOG=y
Review URL: https://codereview.chromium.org/
1221303019
Cr-Commit-Position: refs/heads/master@{#29576}
verwaest [Fri, 10 Jul 2015 15:51:57 +0000 (08:51 -0700)]
Update the context if Set on slow-mode argument targets an aliased arguments entry
BUG=v8:4177
LOG=n
Review URL: https://codereview.chromium.org/
1233493007
Cr-Commit-Position: refs/heads/master@{#29575}