platform/upstream/v8.git
9 years agoRevert of [turbofan] Ship TF for try-catch statements. (patchset #1 id:1 of https...
adamk [Thu, 16 Jul 2015 19:42:00 +0000 (12:42 -0700)]
Revert of [turbofan] Ship TF for try-catch statements. (patchset #1 id:1 of https://codereview.chromium.org/1216373002/)

Reason for revert:
Causes gbemu-part1 to time out on Linux dbg builders

http://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20debug/builds/3867/
http://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20debug%20-%20code%20serializer/builds/3386/
http://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20debug%20-%20greedy%20allocator/builds/828/

Original issue's description:
> [turbofan] Ship TF for try-catch statements.
>
> R=hablich@chromium.org
> BUG=v8:4131
> LOG=N
>
> Committed: https://crrev.com/1251d02e7bb2a13ae5cf6fda5d3403730d2ae12f
> Cr-Commit-Position: refs/heads/master@{#29708}

TBR=hablich@chromium.org,mstarzinger@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=v8:4131

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

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

9 years ago[parser] use-strict directives in function body affect init block
caitpotter88 [Thu, 16 Jul 2015 16:44:58 +0000 (09:44 -0700)]
[parser] use-strict directives in function body affect init block

BUG=
LOG=N
R=rossberg@chromium.org

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

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

9 years agod8: Leak context_mutex_ so it will never be destroyed while locked
binji [Thu, 16 Jul 2015 16:40:37 +0000 (09:40 -0700)]
d8: Leak context_mutex_ so it will never be destroyed while locked

Calling quit() from d8 will call exit(), which will run static destructors. If
context_mutex_ is statically allocated, pthread_mutex_destroy will be called.

When running d8 in "isolates" mode, another thread may be running. If it calls
CreateEvaluationContext, it will lock the context_mutex_. If the mutex is
destroyed while it is locked, it will return an error.

This CL changes the Mutex to a LazyMutex, which will leak instead of being
destroyed.

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

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

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

9 years ago[turbofan] Ship TF for try-catch statements.
mstarzinger [Thu, 16 Jul 2015 15:39:29 +0000 (08:39 -0700)]
[turbofan] Ship TF for try-catch statements.

R=hablich@chromium.org
BUG=v8:4131
LOG=N

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

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

9 years ago[turbofan] Disable one failing debugger test.
mstarzinger [Thu, 16 Jul 2015 15:12:31 +0000 (08:12 -0700)]
[turbofan] Disable one failing debugger test.

TBR=yangguo@chromium.org

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

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

9 years agoRemove obsolete %CallSuperWithSpread intrinsic.
mstarzinger [Thu, 16 Jul 2015 15:07:47 +0000 (08:07 -0700)]
Remove obsolete %CallSuperWithSpread intrinsic.

The aforementioned intrinsic is no longer needed and can be fully
desugared now that binding assignments to 'this' are explicit.

R=rossberg@chromium.org

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

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

9 years agoRepresent implicit 'this' binding by 'super' in AST.
mstarzinger [Thu, 16 Jul 2015 14:26:20 +0000 (07:26 -0700)]
Represent implicit 'this' binding by 'super' in AST.

This makes the implicit initializing assignment to 'this' performed
after a super constructor call explicit in the AST. It removes the
need to handle the special case where a CallExpression behaves like a
AssignmentExpression from various AstVisitor implementations.

R=rossberg@chromium.org

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

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

9 years agoPPC: Reland Update V8 DEPS.
mbrandy [Thu, 16 Jul 2015 14:20:06 +0000 (07:20 -0700)]
PPC: Reland Update V8 DEPS.

Port c63e50edc93f0f37b98008fe4012ec3c9479352b

Original commit message:
    Rolling v8/tools/clang to 58128abd44c22255def1163d30bc9bb2cc85e15c

    Reland after https://codereview.chromium.org/1241643002/

R=machenbach@chromium.org, dstence@us.ibm.com, michael_dawson@ca.ibm.com
BUG=

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

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

9 years agoPPC: Debugger: use debug break slots to break at function exit.
mbrandy [Thu, 16 Jul 2015 14:11:50 +0000 (07:11 -0700)]
PPC: Debugger: use debug break slots to break at function exit.

Port fc9c5275c3a747caca709b7d5745579f70e61301

Original commit message:
    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=yangguo@chromium.org, dstence@us.ibm.com, michael_dawson@ca.ibm.com
BUG=

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

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

9 years agoPPC: Switch CallConstructStub to take new.target in register.
mbrandy [Thu, 16 Jul 2015 12:59:42 +0000 (05:59 -0700)]
PPC: Switch CallConstructStub to take new.target in register.

Port 1d9d895754e1d1cf824c11a9cce5e495fa47d5e2

Original commit message:
    This changes the calling convention of the CallConstructStub to take
    the original constructor (i.e. new.target in JS-speak) in a register
    instead of magically via the operand stack. For optimizing compilers
    the operand stack doesn't exist, hence cannot be peeked into.

R=mstarzinger@chromium.org, dstence@us.ibm.com, michael_dawson@ca.ibm.com
BUG=

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

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

9 years agoRevert of Expose SIMD.Float32x4 type to Javascript. (patchset #14 id:450001 of https...
hablich [Thu, 16 Jul 2015 12:35:54 +0000 (05:35 -0700)]
Revert of Expose SIMD.Float32x4 type to Javascript. (patchset #14 id:450001 of https://codereview.chromium.org/1219943002/)

Reason for revert:
Seems to brake the latest roll into Chromium: http://build.chromium.org/p/tryserver.chromium.win/builders/win_chromium_compile_dbg_ng/builds/59796/steps/compile%20%28with%20patch%29/logs/stdio

Original issue's description:
> Expose SIMD.Float32x4 type to Javascript.
> This CL exposes the constructor function, defines type related
> information, and implements value type semantics.
> It also refactors test/mjsunit/samevalue.js to test SameValue and SameValueZero.
>
> TEST=test/mjsunit/harmony/simd.js, test/cctest/test-simd.cc
>
> LOG=Y
> BUG=v8:4124
>
> Committed: https://crrev.com/e5ed3bee99807c502fa7d7a367ec401e16d3f773
> Cr-Commit-Position: refs/heads/master@{#29689}

TBR=rossberg@chromium.org,littledan@chromium.org,martyn.capewell@arm.com,bbudge@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=v8:4124

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

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

9 years agoTake the ScriptOrigin into account for CompileFunctionInContext
epertoso [Thu, 16 Jul 2015 12:08:01 +0000 (05:08 -0700)]
Take the ScriptOrigin into account for CompileFunctionInContext

R=jochen@chromium.org,yangguo@chromium.org
LOG=n
BUG=

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

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

9 years agoUpdate OWNERS file.
yangguo [Thu, 16 Jul 2015 11:37:35 +0000 (04:37 -0700)]
Update OWNERS file.

R=jochen@chromium.org

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

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

9 years agoDebugger: ensure that functions with debug info have code with break slots.
yangguo [Thu, 16 Jul 2015 09:38:21 +0000 (02:38 -0700)]
Debugger: ensure that functions with debug info have code with break slots.

This helps reasoning about setting break points. Functions that
have debug info is also guaranteed to be able to set break points.

R=ulan@chromium.org
BUG=v8:4132
LOG=N

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

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

9 years agoDebugger: use FrameInspector in ScopeIterator to find context.
yangguo [Thu, 16 Jul 2015 09:28:12 +0000 (02:28 -0700)]
Debugger: use FrameInspector in ScopeIterator to find context.

In optimized code, it's not guaranteed that the current context
is stored in its frame slot.

R=bmeurer@chromium.org
BUG=v8:4309
LOG=N

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

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

9 years ago[turbofan] Implement super call support in TurboFan.
mstarzinger [Thu, 16 Jul 2015 08:53:56 +0000 (01:53 -0700)]
[turbofan] Implement super call support in TurboFan.

R=rossberg@chromium.org

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

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

9 years agoX87: Switch CallConstructStub to take new.target in register.
chunyang.dai [Thu, 16 Jul 2015 08:52:51 +0000 (01:52 -0700)]
X87: Switch CallConstructStub to take new.target in register.

original commit message:

    This changes the calling convention of the CallConstructStub to take
    the original constructor (i.e. new.target in JS-speak) in a register
    instead of magically via the operand stack. For optimizing compilers
    the operand stack doesn't exist, hence cannot be peeked into.

BUG=

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

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

9 years agoX87: Debugger: use debug break slots to break at function exit.
chunyang.dai [Thu, 16 Jul 2015 08:49:34 +0000 (01:49 -0700)]
X87: Debugger: use debug break slots to break at function exit.

port fc9c5275c3a747caca709b7d5745579f70e61301 (r29672).

original commit message:

    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.

BUG=

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

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

9 years agoMIPS:
Ilija.Pavlovic [Thu, 16 Jul 2015 08:13:52 +0000 (01:13 -0700)]
MIPS:
Improved checking target ranges for J and JAL instructions.
Adapted disassembler test for J and JAL instructions.

TEST=cctest/test-disasm-mips[64]
BUG=

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

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

9 years agoUpdate V8 DEPS.
v8-autoroll [Thu, 16 Jul 2015 03:28:17 +0000 (20:28 -0700)]
Update V8 DEPS.

Rolling v8/buildtools to 5215ee866bc3e8eb4a7f124212845abf4029e60b

Rolling v8/tools/clang to 4e7f85d6bc00cb296e34126c822cf57e5e6cf814

TBR=machenbach@chromium.org

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

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

9 years ago[cleanup] remove --harmony-classes flag from mjsunit/harmony/new-target
caitpotter88 [Wed, 15 Jul 2015 22:16:32 +0000 (15:16 -0700)]
[cleanup] remove --harmony-classes flag from mjsunit/harmony/new-target

Unknown flag warning is adding unnecessary noise to terminal during
test runs

BUG=
LOG=N
R=adamk@chromium.org

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

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

9 years ago[api] Deprecate unused Map/Set FromArray factory methods
adamk [Wed, 15 Jul 2015 20:17:51 +0000 (13:17 -0700)]
[api] Deprecate unused Map/Set FromArray factory methods

These were added when I thought they would be useful in Blink, but as
it turned out they were not. They could likely be deleted immediately,
but to play it safe I'll go through the usual deprecation process.

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

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

9 years agoExpose SIMD.Float32x4 type to Javascript.
bbudge [Wed, 15 Jul 2015 19:16:52 +0000 (12:16 -0700)]
Expose SIMD.Float32x4 type to Javascript.
This CL exposes the constructor function, defines type related
information, and implements value type semantics.
It also refactors test/mjsunit/samevalue.js to test SameValue and SameValueZero.

TEST=test/mjsunit/harmony/simd.js, test/cctest/test-simd.cc

LOG=Y
BUG=v8:4124

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

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

9 years agoMIPS: Fix 'Reland Update V8 DEPS.'
balazs.kilvady [Wed, 15 Jul 2015 18:59:05 +0000 (11:59 -0700)]
MIPS: Fix 'Reland Update V8 DEPS.'

Port c63e50edc93f0f37b98008fe4012ec3c9479352b

BUG=
TEST=test-disasm-mips/Type

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

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

9 years agoFix runtime-atomics for Win 10 SDK and remove volatile
brucedawson [Wed, 15 Jul 2015 16:47:37 +0000 (09:47 -0700)]
Fix runtime-atomics for Win 10 SDK and remove volatile

For unclear and probably accidental reasons the Windows 10 SDK
renamed some _Interlocked* functions to _InlineInterlocked. This
leads to these errors:

runtime-atomics.cc(159): error C3861: '_InterlockedExchange64': identifier not found
runtime-atomics.cc(159): error C3861: '_InterlockedExchangeAdd64': identifier not found
runtime-atomics.cc(159): error C3861: '_InterlockedAnd64': identifier not found
runtime-atomics.cc(159): error C3861: '_InterlockedOr64': identifier not found
runtime-atomics.cc(159): error C3861: '_InterlockedXor64': identifier not found

Fixing this requires either adding defines to map these five _Interlocked*
functions to _InlineInterlocked*, or else changing to using the
non-underscore versions. It appears that using the non-underscore versions
is preferable so I went that way. This also requires adding three  new
defines because there is a huge lack of consistency, probably due to these
macros being defined sometimes in <intrin.h> and sometimes in <winnt.h>

All five of the renamed 64-bit functions were manually checked to ensure
that the change to the non-underscore versions would make no differences -
the inline functions that they map to were identical. Other functions were
spot-checked.

Also, the 'volatile' qualifiers were removed. Volatile has no no useful
meaning for multi-threaded programming. It only exists in the Interlocked*
prototypes to *allow* volatile variables to be passed. Since this is a bad
habit to encourage there is no reason for us to permit it, and we can
still call the Microsoft functions (T* converts to volatile T*, just not
vice-versa).

The updated code builds with the Windows 8.1 SDK and with the Windows 10 SDK.

R=jarin@chromium.org
LOG=Y
BUG=440500,491424

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

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

9 years agoCleanup element normalization logic
verwaest [Wed, 15 Jul 2015 15:57:27 +0000 (08:57 -0700)]
Cleanup element normalization logic

BUG=

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

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

9 years agoFix performance regression introduced in r29558
jkummerow [Wed, 15 Jul 2015 15:56:19 +0000 (08:56 -0700)]
Fix performance regression introduced in r29558

where bound functions started overriding the "name" accessor property with a data property. The bootstrapper must be kept in sync to avoid polymorphism.

BUG=chromium:509983
LOG=n
R=verwaest@chromium.org

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

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

9 years agoFix spread array inside array literal
adamk [Wed, 15 Jul 2015 15:16:09 +0000 (08:16 -0700)]
Fix spread array inside array literal

During parsing, we now keep track of the first spread seen in an array
literal (if any), and make use of that information when creating the
FixedArray backing store representing the constant elements for array
literal materialization.

The old code tried to do this by setting the generated JSArray's length
in ArrayLiteral::BuildConstantElements(), but that Array length is never
read by the rest of the literal materialization code (it always uses
the length of the FixedArray backing store).

BUG=v8:4298
LOG=n

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

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

9 years ago[es6] Fix String.prototype.normalize to properly validate argument
adamk [Wed, 15 Jul 2015 15:15:01 +0000 (08:15 -0700)]
[es6] Fix String.prototype.normalize to properly validate argument

BUG=v8:4302
LOG=n

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

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

9 years agoFix broken Variable::IsGlobalObjectProperty() after https://codereview.chromium.org...
ishell [Wed, 15 Jul 2015 14:42:24 +0000 (07:42 -0700)]
Fix broken Variable::IsGlobalObjectProperty() after https://codereview.chromium.org/1218783005

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

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

9 years agoSwitch CallConstructStub to take new.target in register.
mstarzinger [Wed, 15 Jul 2015 14:36:56 +0000 (07:36 -0700)]
Switch CallConstructStub to take new.target in register.

This changes the calling convention of the CallConstructStub to take
the original constructor (i.e. new.target in JS-speak) in a register
instead of magically via the operand stack. For optimizing compilers
the operand stack doesn't exist, hence cannot be peeked into.

R=mvstanton@chromium.org

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

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

9 years agoLet the second pass phantom callbacks run in a separate task on the foreground thread.
epertoso [Wed, 15 Jul 2015 12:26:06 +0000 (05:26 -0700)]
Let the second pass phantom callbacks run in a separate task on the foreground thread.

R=jochen@chromium.org
LOG=y
BUG=

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

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

9 years agoSpecial printing for type feedback vectors.
mvstanton [Wed, 15 Jul 2015 12:21:57 +0000 (05:21 -0700)]
Special printing for type feedback vectors.

Gdb macro jfv on an object will print it as a feedback vector.
Printouts look like this:

DebugPrint: 0x5dc0d2ad: [TypeFeedbackVector]
 - length: 12
 - ics with type info: 3
 - generic ics: 0
 ICSlot 0 CALL_IC MONOMORPHIC
  [4]: 0x5dc0d365 WeakCell for 0x5dc0cd69 <JS Function foo (SharedFunctionInfo 0x5dc0cb0d)>
  [5]: 0x4203c4c1 <Code: HANDLER>
 ICSlot 1 LOAD_IC MONOMORPHIC
  [6]: 0x5dc0d1f5 WeakCell for 0x3a710481 <Map(FAST_HOLEY_SMI_ELEMENTS)>
  [7]: 0x4203a1c1 <Code: HANDLER>
 ICSlot 2 LOAD_IC UNINITIALIZED
  [8]: 0x3060d045 <Symbol: 711234650 <String[20]: uninitialized_symbol>>
  [9]: 0x3060d045 <Symbol: 711234650 <String[20]: uninitialized_symbol>>
 ICSlot 3 LOAD_IC MONOMORPHIC
  [10]: 0x5dc0d3b5 WeakCell for 0x3a710d71 <Map(FAST_HOLEY_ELEMENTS)>
  [11]: 0x4202af01 <Code: HANDLER>

BUG=

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

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

9 years agoSimplify PrepareForDataProperty in the IsElement case
verwaest [Wed, 15 Jul 2015 12:13:04 +0000 (05:13 -0700)]
Simplify PrepareForDataProperty in the IsElement case

BUG=v8:4137
LOG=n

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

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

9 years agoFix non-standard element handling
verwaest [Wed, 15 Jul 2015 12:06:20 +0000 (05:06 -0700)]
Fix non-standard element handling

BUG=

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

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

9 years agoAdd IdleTask API to v8::Platform.
ulan [Wed, 15 Jul 2015 11:50:48 +0000 (04:50 -0700)]
Add IdleTask API to v8::Platform.

BUG=chromium:490559
LOG=NO

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

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

9 years ago[handles] Sanitize Handle and friends.
bmeurer [Wed, 15 Jul 2015 11:05:00 +0000 (04:05 -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}

Committed: https://crrev.com/d940c6d3bcc227b459cb4123d9a8332d9ed0d5f8
Cr-Commit-Position: refs/heads/master@{#29666}

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

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

9 years ago[es6] Implement inner scope for functions with destructuring
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}

9 years agoReland Update V8 DEPS.
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}

9 years agoDebugger: use debug break slots to break at function exit.
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}

9 years agoScoping error caused crash in CallICNexus::StateFromFeedback
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}

9 years agoReland "Enable loads and stores to global vars through property cell shortcuts instal...
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}

9 years agoRevert of [handles] Sanitize Handle and friends. (patchset #5 id:180001 of https...
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}

9 years agoDebugger test updated to avoid setting breakpoints into random scripts.
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}

9 years ago[es6] JSObject::GetOwnElementKeys should collect String wrapper keys first
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}

9 years ago[handles] Sanitize Handle and friends.
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}

9 years agoOptimize String.prototype.includes
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}

9 years agoDisable d8-worker-sharedarraybuffer test (fails on TSAN)
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}

9 years agoReland of d8 workers: make sure Shell::Quit is only called once (patchset #1 id:1...
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}

9 years agoImprove error message for duplicate parameters
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}

9 years agoImprove parsing errors related to destructuring bind
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}

9 years agoV8: Add utility functions to check SameValue and SameValueZero.
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}

9 years agoPPC: Limit unbound label tracking to branch references.
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}

9 years agod8 workers: Fix transferring SharedArrayBuffer to multiple Workers. (try 2)
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}

9 years agoUnship spread calls and spread arrays
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}

9 years agoRevert of d8 workers: make sure Shell::Quit is only called once (patchset #5 id:80001...
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}

9 years agoAllow setting accessor infos over read-only but configurable properties.
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}

9 years agod8 workers: make sure Shell::Quit is only called once
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}

9 years agoDon't use length property when bounds checking atomics functions
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}

9 years agoAdd -Wshorten-64-to-32 flag to mac builds.
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}

9 years agoFollow-up for "Enable loads and stores to global vars through property cell shortcuts...
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}

9 years agoRemove duplicate flattening. Defining accessors doesn't call out, so don't assert...
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}

9 years agoReplace Set*Callback with TransitionToAccessorPair
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}

9 years agoProperly handle missing from normalized stores with keys convertible to array indices
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}

9 years ago[turbofan] Build graphs for super constructor calls.
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}

9 years ago[strong] class objects created in strong mode have their prototype frozen
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}

9 years agoUse the LookupIterator to transition to elements accessors
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}

9 years agoX87: Fix keyed element access wrt string wrappers
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}

9 years agoX87: Cleanup Generate_JSConstructStubHelper a bit.
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}

9 years agoX87: Debugger: record reloc info for debug break slot immediate before the slot.
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}

9 years agoX87: [turbofan] Add an InterpreterDispatch linkage type.
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}

9 years agoRemove map-copying for global objects. This was an old (broken) requirement that...
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}

9 years agoRemove temporary hack re deleting hidden properties
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}

9 years agoFix test case for crbug/507070.
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}

9 years ago[Sheriff] Fix gn build.
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}

9 years agoDebugger: make debug code on-stack replacement more robust.
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}

9 years ago[turbofan] Don't use uniform initialization in AccessBuilder.
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}

9 years agoFix big-endian after '[osr] Increase Code::profiler_ticks to 28 bits.'
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}

9 years ago[turbofan] Fix undefined behavior in InstructionSequence::GetInstructionBlock.
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}

9 years ago[turbofan] Fix a -Wsign-compare error under GCC 4.9.2.
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}

9 years agoX87: Remove separate construct stub for new.target users.
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}

9 years agoX87: Debugger: use debug break slot to break on call.
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}

9 years agoX87: [turbofan] Add TruncationMode for TruncateFloat64ToInt32.
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}

9 years agoX87: Reland: Add unoptimized/optimized variants of MathFloor TF code stub
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}

9 years agoPPC: protect against malformed branch and memory access instructions.
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}

9 years agod8: Fix some TSAN bugs
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}

9 years agoIn Atomics API, convert operands to numbers before calling runtime.
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}

9 years agoMIPS64: Fix 'Fix keyed element access wrt string wrappers'.
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}

9 years agoPPC: Cleanup Generate_JSConstructStubHelper a bit.
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}

9 years agoPPC: Fix keyed element access wrt string wrappers
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}

9 years agoMIPS64: Fix BlockTrampolinePoolFor() to emit trampoline before blocking, if needed.
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}

9 years agoPPC: [turbofan] Add an InterpreterDispatch linkage type.
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}

9 years agoPPC: This CL also adds hydrogen stubs for global loads and global stores, full-codege...
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}

9 years agoFix keyed element access wrt string wrappers
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}

9 years agoCleanup Generate_JSConstructStubHelper a bit.
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}

9 years agoAdd convenience method for converting v8::PersistentBase to v8::Local
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}

9 years ago[strong] class objects created in strong mode are frozen
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}

9 years agoMinor cleanup IC keyed access handling.
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}

9 years agoV8 project metadata
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}

9 years agoWhitespace change to test ninja switch on windows.
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}