Commit Graph

27197 Commits

Author SHA1 Message Date
ahaas
c343f30923 [turbofan] Change TruncateFloat64ToUint64 to TryTruncateFloatToUint64.
This operator now provides a second output which indicates whether the conversion from float64 to uint64 was successful or not. The second output returns 0 if the conversion fails, or something else if the conversion succeeds.

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

I implement 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/1507703002

Cr-Commit-Position: refs/heads/master@{#32705}
2015-12-09 11:16:01 +00:00
mythria
8e771d9b77 Updated the check for unmodfied objects to handle Smi Objects.
The new minorGC pass collects all unmodified objects that are not marked
active by blink. The earlier implementation assumed all new space nodes
to be Heap objects. Updated this code to handle Smi objects as well.

BUG=553287
LOG=Y

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

Cr-Commit-Position: refs/heads/master@{#32704}
2015-12-09 11:01:06 +00:00
machenbach
20e54f0c1d [test] Fix test262 status file.
NOTREECHECKS=true
NOTRY=true
NOPRESUBMIT=true
TBR=verwaest@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#32703}
2015-12-09 11:00:09 +00:00
mythria
c03ac1e153 [Interpreter] Fixes PreviousBytecodeHelper to check if previous bytecode is in the same basic block.
PreviousBytecodeHelper used to return Bytecode::kLast if the previous bytecode was not
in the same basicblock. Changed it to be instantiated only when the previous bytecode
is in the same basic block.

BUG=v8:4280
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#32702}
2015-12-09 10:38:18 +00:00
jochen
6f472db65a Disable soon to be deprecated APIs per default for v8
Embedders still can use those APIs by default

test-api.cc still has an exception to use the old APIs...

BUG=v8:4143
R=vogelheim@chromium.org
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#32701}
2015-12-09 10:35:04 +00:00
machenbach
4c7e0f456f Revert of Make Error.prototype.toString spec compliant; and fix various side-effect-free error printing metho… (patchset #2 id:20001 of https://codereview.chromium.org/1507273002/ )
Reason for revert:
[Sheriff] Breaks layout tests. Please rebase upstream first:
https://build.chromium.org/p/client.v8.fyi/builders/V8-Blink%20Linux%2064/builds/3334

Original issue's description:
> Make Error.prototype.toString spec compliant; and fix various side-effect-free error printing methods
>
> R=yangguo@chromium.org
> LOG=n
>
> Committed: https://crrev.com/5dffa35350d0f57402806e6bd87a914e1d5933e4
> Cr-Commit-Position: refs/heads/master@{#32695}

TBR=yangguo@chromium.org,bmeurer@chromium.org,verwaest@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#32700}
2015-12-09 10:23:04 +00:00
jkummerow
453e1dfa7a [proxies] Fix HasProperty and getOwnPropertySymbols
JSProxy::HasProperty was missing an early "return Nothing<bool>".
KeyAccumulator's FilterProxyKeys() didn't handle SKIP_STRINGS correctly.

BUG=v8:1543
LOG=n
R=cbruni@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#32699}
2015-12-09 09:41:12 +00:00
ishell
c51e4f1be4 Free one bit in Map by removing unused retaining counter.
Review URL: https://codereview.chromium.org/1506683004

Cr-Commit-Position: refs/heads/master@{#32698}
2015-12-09 09:27:47 +00:00
zhengxing.li
598ddd9599 X87: Type Feedback Vector: Calculate profiler counts on the fly.
port 2b63d6b079 (r32693)

  original commit message:
  It's cumbersome to maintain IC profiler statistics all the time.
  Let's just do it as needed.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#32697}
2015-12-09 09:26:53 +00:00
mvstanton
e56fe8460a Use WeakCells in the optimized code map rather than traversing in pause.
It's expensive to walk all shared function infos during the gc atomic
pause. Instead, use WeakCells to implement this structure without
manual clearing.

Reland due to a bug when reusing entries in the optimized code map.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#32696}
2015-12-09 08:55:35 +00:00
verwaest
5dffa35350 Make Error.prototype.toString spec compliant; and fix various side-effect-free error printing methods
R=yangguo@chromium.org
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#32695}
2015-12-09 08:52:25 +00:00
zhengxing.li
e65aa3dca1 X87: [turbofan] Add initial support for SOFT deopts.
port 7a22fdff1ebfebcdd83f2cae488915ae8ea2dc81(r32690)

  original commit message:
  This only introduces the basic support for both SOFT and EAGER deopts in
  TurboFan, but doesn't make use of SOFT deopts anywhere yet (there are
  some other issues blocking that). Basically every Deoptimize operator
  now has a DeoptimizeKind, which can be either kSoft or kEager.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#32694}
2015-12-09 08:42:07 +00:00
mvstanton
2b63d6b079 Type Feedback Vector: Calculate profiler counts on the fly.
It's cumbersome to maintain IC profiler statistics all the time.
Let's just do it as needed.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#32693}
2015-12-09 08:33:21 +00:00
verwaest
175c90f8f2 Support intriscDefaultProto for Error functions
BUG=v8:3900, v8:3931, v8:1543, v8:3330, v8:4002
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#32692}
2015-12-09 07:53:34 +00:00
machenbach
037be14088 Revert of [CQ] Temporarily switch off pure swarming bots. (patchset #1 id:1 of https://codereview.chromium.org/1502143005/ )
Reason for revert:
Switched swarming back on.

Original issue's description:
> [CQ] Temporarily switch off pure swarming bots.
>
> NOTRY=true
> NOTREECHECKS=true
> NOPRESUBMIT=true
>
> Committed: https://crrev.com/cd96d74124d9c4f4c713fd17205becf30d510edb
> Cr-Commit-Position: refs/heads/master@{#32674}

TBR=tandrii@chromium.org,jochen@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#32691}
2015-12-09 07:43:41 +00:00
bmeurer
7a22fdff1e [turbofan] Add initial support for SOFT deopts.
This only introduces the basic support for both SOFT and EAGER deopts in
TurboFan, but doesn't make use of SOFT deopts anywhere yet (there are
some other issues blocking that). Basically every Deoptimize operator
now has a DeoptimizeKind, which can be either kSoft or kEager.

R=jarin@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#32690}
2015-12-09 06:54:15 +00:00
yangguo
adc37e660a [es6] update test expectations for regexp sticky.
R=littledan@chromium.org
BUG=v8:4342
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#32689}
2015-12-09 06:31:36 +00:00
mtrofin
42963f41ba OFStream should have a virtual destructor.
I noticed that using --print-opt-code was producing output unreliably.
Upon investigation, it turns out OFStream's destructor was not marked
virtual. Fixing this fixes the problem, as ostream flushes at destruction.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#32688}
2015-12-09 04:34:14 +00:00
bradnelson
f245717d9b Retain information on which standard objects are used in asm typer.
Reconstructing which stdlib object is used within an asm.js
module seems wasteful, given the typer has already checked this.
Preserving this information in a form that can be queried in
the asm-wasm-builder which generating code.

BUG= https://code.google.com/p/v8/issues/detail?id=4203
TEST=test-asm-validator, test-parsing
R=titzer@chromium.org,marja@chromium.org,aseemgarg@chromium.org
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#32687}
2015-12-09 04:28:34 +00:00
zhengxing.li
6fbd4240fb X87: [runtime] [proxy] Implementing [[Call]].
port 72994124733215c15ff0022616949a2291f3c26c(r32675)

  original commit message:

BUG=

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

Cr-Commit-Position: refs/heads/master@{#32686}
2015-12-09 03:17:04 +00:00
dusan.m.milosavljevic
d7aa94b90b MIPS: [turbofan] Make Int32Div and Uint32Div safe.
TEST=
BUG=

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

Cr-Commit-Position: refs/heads/master@{#32685}
2015-12-08 22:46:43 +00:00
ulan
8c376b4635 Optimize clearing of map transitions.
Instead of iterating the whole map space to find dead transitions,
look in weak cell list and transition array list.

Simple transitions are in the weak cell list.

Full transitions are in the transitions array list.

BUG=chromium:554488
LOG=NO

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

Cr-Commit-Position: refs/heads/master@{#32684}
2015-12-08 20:51:56 +00:00
machenbach
14613c16a2 [Test] Skip tests too slow for ignition on arm.
NOTRY=true
TBR=rmcilroy, Hablich

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

Cr-Commit-Position: refs/heads/master@{#32683}
2015-12-08 20:48:54 +00:00
caitpotter88
cacc6108d9 [tests] add tests for "yield" as function name
BUG=v8:3983
LOG=N
R=wingo@igalia.com, littledan@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#32682}
2015-12-08 20:41:31 +00:00
neis
6246c3ec1c [proxies] Fix an error message.
R=jkummerow@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#32681}
2015-12-08 19:19:18 +00:00
verwaest
e62b24d2f7 Add the entire runtime team to js owners file
BUG=

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

Cr-Commit-Position: refs/heads/master@{#32680}
2015-12-08 19:08:16 +00:00
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