Commit Graph

27321 Commits

Author SHA1 Message Date
mstarzinger
6422994f90 Remove bogus include from v8.h header.
This was introduced due to a false positive by the linter script. We
have blacklisted the "build/include_what_you_use" linter bucket in our
presubmit.py wrapper for that reason.

R=jochen@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#32679}
2015-12-08 18:59:45 +00:00
jochen
0fd63f123d Remove deprecated API usage from cpu profilers test
BUG=v8:4134
R=vogelheim@chromium.org
LOG=n
NOTRY=true
NOPRESUBMIT=true

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

Cr-Commit-Position: refs/heads/master@{#32678}
2015-12-08 18:45:08 +00:00
jochen
2ad3697510 Remove usage of deprecated APIs from heap profiler tests
BUG=v8:4134
R=vogelheim@chromium.org
LOG=n
NOTRY=true
NOPRESUBMIT=true

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

Cr-Commit-Position: refs/heads/master@{#32677}
2015-12-08 18:42:40 +00:00
jochen
4b3239107a Remove usage of deprecated APIs from api interceptor tests
BUG=v8:4341
R=vogelheim@chromium.org
LOG=y
NOTRY=true
NOPRESUBMIT=true

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

Cr-Commit-Position: refs/heads/master@{#32676}
2015-12-08 18:39:24 +00:00
cbruni
7299412473 [runtime] [proxy] Implementing [[Call]]
BUG=v8:1543
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#32675}
2015-12-08 16:05:09 +00:00
machenbach
cd96d74124 [CQ] Temporarily switch off pure swarming bots.
NOTRY=true
NOTREECHECKS=true
NOPRESUBMIT=true

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

Cr-Commit-Position: refs/heads/master@{#32674}
2015-12-08 15:55:15 +00:00
jkummerow
afcfee836d Delete "Delete" JS builtin
Use %DeleteProperty_Strict instead.

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

Cr-Commit-Position: refs/heads/master@{#32673}
2015-12-08 08:52:13 +00:00
v8-autoroll
bb38318d50 Update V8 DEPS.
Rolling v8/build/gyp to 70ee80e82bacf2d7816a56f792bb33587b04c338

Rolling v8/tools/clang to 247bb6833987bc73051243230a1f3c949a9c9b92

TBR=machenbach@chromium.org,vogelheim@chromium.org,hablich@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#32672}
2015-12-08 07:12:31 +00:00
yangguo
a607ec84d5 [debugger] add test case for stepping into proxy traps.
R=jkummerow@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#32671}
2015-12-08 07:10:49 +00:00
littledan
91e1b9f67b Deprecate Promise::Chain from V8 APIs
The Promise::Chain logic is moved to a helper function to avoid
a violation of deprecated function usage.

R=rossberg,jochen
BUG=v8:3237
LOG=Y

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

Cr-Commit-Position: refs/heads/master@{#32670}
2015-12-08 02:29:33 +00:00
littledan
d67756a775 Set the Gregorian changeover date to the beginning of time in Intl
ECMAScript dates act as if the Gregorian changeover happened at the
beginning of time. This patch fixes up internationalized date
formatting to set that changeover properly, as opposed to the ICU
default which is in the 16th century.

BUG=chromium:537382
R=adamk,cira
LOG=Y

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

Cr-Commit-Position: refs/heads/master@{#32669}
2015-12-08 02:13:54 +00:00
dusan.m.milosavljevic
0d4f8a913d MIPS: [turbofan] Combine ChangeFloat64ToInt32 with Float64Round ops.
TEST=unittests/InstructionSlectorTest.CombineChangeFloat64ToInt32WithRoundFloat64
BUG=

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

Cr-Commit-Position: refs/heads/master@{#32668}
2015-12-07 23:36:30 +00:00
littledan
425983190a Improve style of V8 API code
Fix some minor issues that the linter is complaining about

R=jochen

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

Cr-Commit-Position: refs/heads/master@{#32667}
2015-12-07 23:34:48 +00:00
mtrofin
6dc8eb67f4 [turbofan] context and function deopt inputs are on the stack.
Deoptimization expects the context and function marker on the stack.
To let the register allocator control spilling of the live ranges
corresponding to these 2 operands, we need their use to be represented
accurately.

BUG= v8:4533
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#32666}
2015-12-07 23:03:33 +00:00
mbrandy
873fcd1450 PPC: [ic] Change CompareIC to handle JSReceiver instead of JSObject.
Port 0ed0878041

Original commit message:
    There's no reason to limit the CompareIC to (known) JSObject instances,
    as all JSReceivers behave the same wrt. abstract and strict equality.
    So remove this historical limitation and track JSReceivers instead.

R=bmeurer@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com
BUG=

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

Cr-Commit-Position: refs/heads/master@{#32665}
2015-12-07 22:31:50 +00:00
ivica.bogosavljevic
80f2a6390c MIPS64: [turbofan] Changed TruncateFloat64ToInt64 to TryTruncateFloat64ToInt64
Port 95844d94f3

Original commit message:
The new operator provides a second output which indicates whether the
conversion from float64 to int64 was successful or not. The second
output returns 0 if the conversion fails. If the conversion succeeds,
then the second output is differs from 0.

The second output can be ignored, which means that the operator can be
used the same way as the original operator.

I implemented the new operator on x64 and arm64. @v8-mips-ports and
@v8-ppc-ports, can you please take care of the mips64 and ppc64
implementation of the second output?

BUG=
TEST=cctest/test-run-machops/RunTryTruncateFloat64ToInt64WithCheck

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

Cr-Commit-Position: refs/heads/master@{#32664}
2015-12-07 20:30:44 +00:00
caitpotter88
a4634fd357 [cleanup] remove unused Destructuring Assignment bailout reason
BUG=v8:811
LOG=N
R=adamk@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#32663}
2015-12-07 20:06:16 +00:00
verwaest
e8adbe7821 Reflect.construct / Proxies: Fall back to intrinsicDefaultProto for non-instance prototypes
Error still to be done, since that's not yet available in the bootstrapper.

BUG=v8:3900, v8:3931, v8:1543, v8:3330
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#32662}
2015-12-07 16:35:17 +00:00
rmcilroy
931f99b135 Fix Arm64 code size multiplier.
Fixes code size multiplier of Arm64 based on generated code size of Octane.

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

Cr-Commit-Position: refs/heads/master@{#32661}
2015-12-07 16:12:02 +00:00
neis
ef1ac72901 [proxies] Make Object.{isFrozen,isSealed} behave correctly for proxies.
R=rossberg
BUG=

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

Cr-Commit-Position: refs/heads/master@{#32660}
2015-12-07 15:36:14 +00:00
jochen
6150662d89 Remove deprecate API usage from more cctests
BUG=v8:4134
R=vogelheim@chromium.org
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#32659}
2015-12-07 15:28:25 +00:00
rossberg
b6a2ff8ede Split ParserBase into separate file
Reviving/redoing littledan's previous CL.

R=nikolaos@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#32658}
2015-12-07 14:26:49 +00:00
titzer
a29f81f603 Add an --expose-wasm flag.
This adds a runtime flag that controls whether the WASM object is
exposed to JavaScript. While currently guarded by the V8_WASM build-time
flag, after landing in V8 the build-time flag will be removed, leaving
only this new runtime flag.

R=mstarzinger@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#32657}
2015-12-07 13:40:03 +00:00
sigurds
5b5821142b [turbofan] Improve escape analysis
This patch improves escape analysis and fixes bugs
triggered by clusterfuzz. Impovements include:
* Handling of LoadElement/StoreElement if index is a
  constant
* Handling of JSStoreProperty: invalidate all information,
  as the store could have altered any field.
* Treat phis that use an allocation as escaping
* Improve resolution of replacements

R=mstarzinger@chromium.org
BUG=v8:4586
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#32656}
2015-12-07 13:29:06 +00:00
rossberg
063920e2e4 Add more OWNER files
R=adamk@chromium.org, mstarzinger@chromium.org, yangguo@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#32655}
2015-12-07 12:52:12 +00:00
mstarzinger
0738f53dd6 [heap] Make link from optimized code to inlined code explicit.
This makes the strong link from optimized code to code objects for all
inlined functions explicit. It adds direct references to code objects
into deoptimization data as literals. Note that this is not necessarily
the code that will be deoptimized to, because the code on the shared
function info might be replaced by other components (e.g. debugger).
Those replacement code objects however are all non-flushable, marking
explicit strong links for reachability unnecessary.

R=hpayer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#32654}
2015-12-07 12:26:23 +00:00
ahaas
95844d94f3 [turbofan] Changed TruncateFloat64ToInt64 to TryTruncateFloat64ToInt64.
The new operator provides a second output which indicates whether the
conversion from float64 to int64 was successful or not. The second
output returns 0 if the conversion fails. If the conversion succeeds,
then the second output is differs from 0.

The second output can be ignored, which means that the operator can be
used the same way as the original operator.

I implemented the new operator on x64 and arm64. @v8-mips-ports and
@v8-ppc-ports, can you please take care of the mips64 and ppc64
implementation of the second output?

R=titzer@chromium.org, v8-arm-ports@googlegroups.com

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

Cr-Commit-Position: refs/heads/master@{#32653}
2015-12-07 12:13:05 +00:00
bmeurer
1c44aa0e8d [turbofan] Don't try to inling dead nodes.
The JSInliningHeuristic keeps a list of nodes, which might have been
killed by other reducers before the JSInliningHeuristic looks at it
again, so it has to check whether nodes are dead before trying to
expand them later (this is similar to what the ValueNumberingReducer
needs to do with its internal table).

R=mstarzinger@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#32652}
2015-12-07 11:27:48 +00:00
neis
4e2c0dd7a9 [proxies] Make Object.{freeze,seal} behave correctly for proxies.
- Add JSReceiver::SetIntegrityLevel, with a fast path for regular objects.
- Make Object.{freeze,seal} call this via %Object{Freeze,Seal}, thus no longer
  using broken or deprecated functions from v8natives.js.
- Add JSReceiver::OwnPropertyKeys convenience function.
- Reenable harmony/proxies-hash.js test.

R=rossberg
BUG=v8:1543
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#32651}
2015-12-07 11:01:35 +00:00
jkummerow
ec37add662 [API] GetOwnPropertyDescriptor: use C++ implementation
Also delete a bunch of dead code from src/js/.

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

Cr-Commit-Position: refs/heads/master@{#32650}
2015-12-07 11:00:33 +00:00
yangguo
18a3ddcfb9 [debugger] add test case for stepping into default parameter.
R=jkummerow@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#32649}
2015-12-07 10:08:29 +00:00
zhengxing.li
5837db4171 X87: [crankshaft] Loads and stores to typed arrays have to reference the backing store holder.
port 086d459847 (r32644)

  original commit message:
  The backing store is only held alive indirectly via the array buffer
  referenced by the holder (typed array), so it's not enough to keep the
  elements alive (or even just the external pointer loaded from the
  elements).

BUG=

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

Cr-Commit-Position: refs/heads/master@{#32648}
2015-12-07 09:45:11 +00:00
yangguo
4ff9bb070b [debugger] add test case for stepping into string template.
R=jkummerow@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#32647}
2015-12-07 09:41:01 +00:00
mstarzinger
35b47d89f6 Unify InvokeBuiltin implementations across architectures.
This makes the implementations of MacroAssembler::InvokeBuiltin go
through the InvokeFunctionCode helper on all architectures. This helper
knows how to correctly set up all registers (i.e. argument count and the
new target value).

R=bmeurer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#32646}
2015-12-07 09:27:03 +00:00
zhengxing.li
1ecb225477 X87: [ic] Change CompareIC to handle JSReceiver instead of JSObject.
port 0ed0878041 (r32642)

  original commit message:
  There's no reason to limit the CompareIC to (known) JSObject instances,
  as all JSReceivers behave the same wrt. abstract and strict equality.
  So remove this historical limitation and track JSReceivers instead.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#32645}
2015-12-07 08:41:56 +00:00
jochen
086d459847 [crankshaft] Loads and stores to typed arrays have to reference the backing store holder
The backing store is only held alive indirectly via the array buffer
referenced by the holder (typed array), so it's not enough to keep the
elements alive (or even just the external pointer loaded from the
elements).

R=mstarzinger@chromium.org,bmeurer@chromium.org
LOG=n
BUG=v8:1827

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

Cr-Commit-Position: refs/heads/master@{#32644}
2015-12-07 08:37:42 +00:00
mtrofin
da8fd00e4c In addition to blocks making calls, blocks making the deopt call also
need to be marked as such.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#32643}
2015-12-07 07:26:58 +00:00
bmeurer
0ed0878041 [ic] Change CompareIC to handle JSReceiver instead of JSObject.
There's no reason to limit the CompareIC to (known) JSObject instances,
as all JSReceivers behave the same wrt. abstract and strict equality.
So remove this historical limitation and track JSReceivers instead.

R=yangguo@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#32642}
2015-12-07 07:25:18 +00:00
zhengxing.li
55f78b4371 X87: [debugger] do not predict step in target for liveedit.
port 1e671030b9 (r32614)

  original commit message:

BUG=

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

Cr-Commit-Position: refs/heads/master@{#32641}
2015-12-07 06:48:27 +00:00
bmeurer
277091ba90 [turbofan] Always load context from target when lowering to direct call.
There's no benefit in embedding the context as a constant for direct
calls. In fact it seems to be cheaper both size and execution wise to
just always load the context from the target.

R=jarin@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#32640}
2015-12-07 06:21:53 +00:00
bmeurer
fc0a1a709c [test] Test expectations in cctest should use CHECK and not DCHECK.
The test expectations should fail consistently in both release and debug
builds. DCHECK is only meant for debug-only checks in production code.

R=yangguo@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#32639}
2015-12-07 05:37:15 +00:00
zhengxing.li
df57698cd4 X87: Revert of Provide call counts for constructor calls, surface them as a vector IC. (patchset #4 id:60001 of https://codereview.chromium.org/1476413003/ )
port e89e08ca14 (r32599)

  original commit message:
  Reason for revert:
  Seems to be (mostly) responsible for the most recent Speedometer regression, not 100% sure. Let's see what the bots have to say.

  Original issue's description:
  > Provide call counts for constructor calls, surface them as a vector IC.
  >
  > CallIC and CallConstructStub look so alike, at least in the feedback they gather even if the implementation differs...and CallIC has such a nice way of surfacing the feedback (CallICNexus), that ther
  >
  > BUG=
  >
  > Committed: https://crrev.com/66d5a9df62da458a51e8c7ed1811dc9660f4f418
  > Cr-Commit-Position: refs/heads/master@{#32452}

  additional description:
  Revert "X87: Provide call counts for constructor calls, surface them as a vector IC." as r32599 does

  This reverts commit 54a9d349db.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#32638}
2015-12-07 04:09:25 +00:00
zhengxing.li
1dda6ac253 X87: Reland of [debugger] do not restart frames that reference new.target for liveedit. (patchset #1 id:1 of https://codereview.chromium.org/1493863004/ )
port 15cb3fde7d (r32587)

  original commit message:
  Reason for revert:
  Didn't help...

  Original issue's description:
  > Revert of [debugger] do not restart frames that reference new.target for liveedit. (patchset #1 id:1 of https://codereview.chromium.org/1493363002/ )
  >
  > Reason for revert:
  > [Sheriff] Speculative revert for https://build.chromium.org/p/client.v8.fyi/builders/V8-Blink%20Linux%2064/builds/3225
  >
  > Original issue's description:
  > > [debugger] do not restart frames that reference new.target for liveedit.
  > >
  > > R=mstarzinger@chromium.org
  > >
  > > Committed: https://crrev.com/6fca870240bdbb07a365189b5eb0c98fa65b3682
  > > Cr-Commit-Position: refs/heads/master@{#32572}
  >
  > TBR=mstarzinger@chromium.org,yangguo@chromium.org
  > NOPRESUBMIT=true
  > NOTREECHECKS=true
  > NOTRY=true
  >
  > Committed: https://crrev.com/1a61dab34b9849f3f70a42ce69317e22758c53a1
  > Cr-Commit-Position: refs/heads/master@{#32582}

BUG=

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

Cr-Commit-Position: refs/heads/master@{#32637}
2015-12-07 04:08:20 +00:00
zhengxing.li
3d40bd941e X87: Remove new.target value from construct stub frames.
port eaa0e59611 (r32550)

  original commit message:
  This drops the specific slot containing the new.target value from our
  construct stub frames. This side-channel has been deprecated and will
  no longer be accessed by any consumers.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#32636}
2015-12-07 03:46:32 +00:00
zhengxing.li
e3b1cf1726 X87: [fullcode] Switch passing of new.target to register.
port 440a42b741 (r32548)

  original commit message:
  This passes the new.target value in a register instead of through a
  side-channel via the construct stub. Note that this marks the last
  consumer of said side-channel and the special slot in the construct
  stub frame can be removed as a follow-up.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#32635}
2015-12-07 03:24:47 +00:00
zhengxing.li
d5a52b6636 X87: [proxies] InstanceOfStub should bailout to %HasInPrototypeChain for proxies.
port 0e95683376 (r32549)

  original commit message:
  Whenever the InstanceOfStub finds a proxy (either passed as object or
  somewhere on the prototype chain), it should bailout to the
  %HasInPrototypeChain runtime function, which will do the right thing
  (soonish).

BUG=

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

Cr-Commit-Position: refs/heads/master@{#32634}
2015-12-07 03:17:05 +00:00
zhengxing.li
fa1b0fceca X87: Fix inobject slack tracking for both subclassing and non-subclassing cases.
port 5d38d6819c (r32547)

  original commit message:
  It didn't support subclassing case at all and in non-subclassing case the runtime
  allocation didn't do the slack tracking step.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#32633}
2015-12-07 03:10:41 +00:00
bmeurer
552437c08e [deoptimizer] Also print the actual literal when printing translations.
R=jarin@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#32632}
2015-12-06 15:45:02 +00:00
v8-autoroll
b720ece886 Update V8 DEPS.
Rolling v8/tools/clang to 5b7bd8a08ae5ee5262c38e01f5b703cc193074d4

TBR=machenbach@chromium.org,vogelheim@chromium.org,hablich@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#32631}
2015-12-06 04:37:23 +00:00
balazs.kilvady
21b331e3ff MIPS: Use BOVC/BNVC for overflow checking on r6.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#32630}
2015-12-05 12:18:53 +00:00