Commit Graph

29209 Commits

Author SHA1 Message Date
vogelheim
de4f3d3eff Fix expression positions for for-loops.
FullCodegen generates 2 statement positions for the loop init block, like so:

  for(var i = 0; i....
      ^   ^

This change removes the first of those, updates unit tests,
and removes text expectations for Ignition.

---
An alternative would be to emulate the existing behaviour in Ignition, but:
- The new behaviour seems more logical,
- Ignition generates no bytecodes for the 'var', meaning there is no code position to attach the break position to.

BUG=v8:4690
LOG=Y

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

Cr-Commit-Position: refs/heads/master@{#34717}
2016-03-11 12:02:51 +00:00
ishell
690c7a854a [turbofan] Avoid dereferencing empty handle when inlining a tail call.
BUG=chromium:593697,v8:4698
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#34716}
2016-03-11 11:41:29 +00:00
mstarzinger
6a629ff7a9 [testing] Convert "non-alphanum" to be a "message" test.
This converts another test case that is expected to throw a TypeError
but no SyntaxError to have better test coverage (exact message is being
checked now).

R=machenbach@chromium.org
TEST=message,preparser

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

Cr-Commit-Position: refs/heads/master@{#34715}
2016-03-11 11:36:40 +00:00
mlippautz
4857110ce6 Revert of [platform] Change default platform max thread pool size 4 -> 8 (patchset #1 id:1 of https://codereview.chromium.org/1782833006/ )
Reason for revert:
Seems to trigger bugs, needs investigation.

Original issue's description:
> [platform] Change default platform max thread pool size 4 -> 8
>
> BUG=
>
> Committed: https://crrev.com/ddc0f9982057e76dd4dc35b6ca80d2322adc9141
> Cr-Commit-Position: refs/heads/master@{#34711}

TBR=hpayer@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=

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

Cr-Commit-Position: refs/heads/master@{#34714}
2016-03-11 11:01:53 +00:00
mstarzinger
57ef4f4f3a [testing] Convert some "preparser" tests into "message".
This converts existing "preparser" tests that expect a certain exception
message to be produced into "message" tests. Thereby we get much better
coverage because the former test suite degraded by now to just check
whether each test case threw or not, the exception message was not being
checked at all.

This also deprecates the ability of "preparser" to specify that single
test cases based on JS files are expected to throw, "messages" is far
superior, use that test suite instead.

R=machenbach@chromium.org
TEST=message,preparser

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

Cr-Commit-Position: refs/heads/master@{#34713}
2016-03-11 11:00:12 +00:00
ulan
7217fcc0bf Enable parallel pointer updates after evacuation.
BUG=chromium:578883
LOG=NO

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

Cr-Commit-Position: refs/heads/master@{#34712}
2016-03-11 10:30:00 +00:00
mlippautz
ddc0f99820 [platform] Change default platform max thread pool size 4 -> 8
BUG=

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

Cr-Commit-Position: refs/heads/master@{#34711}
2016-03-11 10:21:08 +00:00
m0609.shim
c0aa9054ce Fix histogram timer to generate ProfViz compatible log.
After histrogram timer added time recaling functionality,
some events, e.g. parse, histogram timer generates event log ending with 'MicroSeconds'.

Since ProfViz can't recorgnize it, this patch cuts off 'MicroSeconds' postfix.

R=vogelheim@chromium.org, yangguo@chromium.org
BUG=chromium:
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#34710}
2016-03-11 10:05:24 +00:00
danno
33bc6282b0 Small cleanup refactoring of sp-to-fp offset and slot conversions
Review URL: https://codereview.chromium.org/1777013004

Cr-Commit-Position: refs/heads/master@{#34709}
2016-03-11 09:32:24 +00:00
mstarzinger
28634e574e [testing] Extend interpreter testing to message suite.
This also runs the message test suite against Ignition. By now most of
the source positions (and exception messages) are accurate, the failing
ones have been blacklisted.

R=machenbach@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#34708}
2016-03-11 08:46:38 +00:00
cbruni
1b67e9c86e [counters] Put all counter work behind flags
Avoid creating and initializing timer scopes for builtins as well.

BUG=chromium:589679
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#34707}
2016-03-11 08:43:14 +00:00
machenbach
0ca38a6df8 Revert of Replace PushIfAbsent by a Stack object and move StringBuilderJoin to JS (patchset #6 id:100001 of https://codereview.chromium.org/1775403008/ )
Reason for revert:
[Sheriff] This lets a gc stress test time out:
https://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20gc%20stress/builds/2337/steps/Mjsunit%20%28flakes%29/logs/regress-542823

The test ran in <2sec before this. Please fix the test as well on a reland.

Original issue's description:
> Replace PushIfAbsent by a Stack object and move StringBuilderJoin to JS
>
> This significantly speeds up String(array).
> BUG=
>
> Committed: https://crrev.com/c91faa0b39b62025460eb9f8b578e20d88f3549e
> Cr-Commit-Position: refs/heads/master@{#34696}

TBR=cbruni@chromium.org,adamk@chromium.org,bmeurer@chromium.org,verwaest@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=

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

Cr-Commit-Position: refs/heads/master@{#34706}
2016-03-11 08:41:34 +00:00
yangguo
6a7ec6a3bf Allow Math.random to be called when creating a custom startup snapshot.
R=jkummerow@chromium.org
BUG=v8:4810
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#34705}
2016-03-11 08:08:30 +00:00
v8-autoroll
457331fb56 Update V8 DEPS.
Rolling v8/tools/clang to 96f43fa6c1232981bc401c0b6f2e2697a318356b

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

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

Cr-Commit-Position: refs/heads/master@{#34704}
2016-03-11 08:03:40 +00:00
yangguo
efc50493b7 Fix no-i18n builds.
TBR=littledan@chromium.org
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#34703}
2016-03-11 07:26:48 +00:00
yangguo
5be770b59f [regexp] extend property classes by unicode blocks.
R=littledan@chromium.org
BUG=v8:4810
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#34702}
2016-03-11 07:20:09 +00:00
ahaas
0d3c78d118 [wasm] I'm adding the float-to-int64 tests again.
R=binji@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#34701}
2016-03-11 07:10:22 +00:00
zhengxing.li
b8f49a273b X87: Rework CallApi*Stubs.
port 5096492f1b (r34627)

  original commit message:
  - Eliminate stubs with a variable number of arguments.
    (That only worked due to their very limited use. These
     stubs' interface descriptors were basically lying
     about their number of args, which will fail when used
     generically.)
  - Fix all CallApi*Stubs' interface descriptors to no
    longer lie about their arguments.
  - Unify CallApi*Stub, for * in Function, Accessor,
    FunctionWithFixedArgs.
    (Since these are now all doing the same thing.)
  - Rename the unified stub (and interface descriptors) to
    *ApiCallback*, since that's really what they're doing.
  - Refuse inlining an API callback if its number of
    parameters exceeds the supported number of args.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#34700}
2016-03-11 05:07:33 +00:00
adamk
7d0252db44 [cleanup] Remove unnecessary ClassifyAndRewriteReferenceExpression method
Now that the destructuring flags are gone, we always call
CheckAndRewriteReferenceExpression, so unified the two methods again.
Also cleaned up the code within, e.g. removing unnecessary Scanner::Location
construction.

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

Cr-Commit-Position: refs/heads/master@{#34699}
2016-03-11 01:42:41 +00:00
littledan
611add5255 Minor library function fixes for TypedArray spec compliance
- Make separate iterator functions for TypedArrays which do a type check
  (and in the future should check for detached TypedArrays)
- Share the toString method with Arrays

BUG=v8:4785
R=adamk
LOG=Y

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

Cr-Commit-Position: refs/heads/master@{#34698}
2016-03-10 23:38:16 +00:00
littledan
5f5c48da64 Revert removal of TypedArray constructor optimization
When the TypedArray iterator constructor code path was added, a technically
incorrect optimization was added which uses the arraylike code path on array
arguments, even though the %ArrayIterator% could have been monkey-patched
to give different behavior. A previous patch removed this optimization, and
this patch restores it due to the huge performance regression that resulted.

The optimization was previously removed in
https://codereview.chromium.org/1767893002

BUG=chromium:593644
R=adamk
LOG=Y

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

Cr-Commit-Position: refs/heads/master@{#34697}
2016-03-10 23:26:26 +00:00
verwaest
c91faa0b39 Replace PushIfAbsent by a Stack object and move StringBuilderJoin to JS
This significantly speeds up String(array).
BUG=

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

Cr-Commit-Position: refs/heads/master@{#34696}
2016-03-10 23:24:24 +00:00
yangguo
aba76874db [regexp] support \p in character classes.
R=littledan@chromium.org
BUG=v8:4743
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#34695}
2016-03-10 23:24:23 +00:00
mbrandy
7d48fa5e83 PPC: [wasm] Int64Lowering of I64ShrU and I64ShrS.
Port 240b7db9c7

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

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

Cr-Commit-Position: refs/heads/master@{#34694}
2016-03-10 23:22:32 +00:00
littledan
d9c45337a4 Check that Promise subclasses have callable resolve/reject
This check is guaranteed by the Promise spec and tested by test262
tests. It only has to run for subclasses. This patch adds the check
to the Promise code.

BUG=v8:4633
R=adamk
LOG=Y

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

Cr-Commit-Position: refs/heads/master@{#34693}
2016-03-10 23:22:31 +00:00
adamk
dea9559457 Remove destructuring and default arguments runtime flags
These flags have been on by default since version 4.9, which has been
in stable Chrome for over a week now, demonstrating that they're
here to stay.

Also moved the tests out of harmony/ and into es6/.

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

Cr-Commit-Position: refs/heads/master@{#34692}
2016-03-10 23:22:30 +00:00
neis
cd6a5a45ad Fix corner case in iterator finalization for array destructuring.
The comment was correct but the code didn't match :(
Must not close when .value throws.

R=adamk@chromium.org
BUG=v8:3566
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#34691}
2016-03-10 19:13:48 +00:00
neis
57a1897c7d [test262] Remove entry on non-existent test from status file.
R=littledan@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#34690}
2016-03-10 18:58:11 +00:00
ssanfilippo
4cf44f3a65 Add Linux perf profiling wrapper script.
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#34689}
2016-03-10 18:50:48 +00:00
kozyatinskiy
63f35c26d6 [debugger] Removed unused GetStepInPositions method
This method was added as part of DevTools experiment.
Experiment UI was removed in https://codereview.chromium.org/201293007 2 years ago.
Experiment backend was removed in https://codereview.chromium.org/1785533002/.

R=yangguo@chromium.org
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#34688}
2016-03-10 18:12:47 +00:00
mlippautz
4566531c6e [heap] Use PageParallelJob for parallel evacuation
Move evacuation of new and old space pages to the provided framework for
parallelization.

Drive-by-fix: Remove left overs from POPULAR_PAGE flag.

BUG=chromium:524425
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#34687}
2016-03-10 18:11:10 +00:00
jfb
d81c3b4a78 wasm: fix --trace_wasm_decoder flag
Copy-pasta error.

R= titzer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#34686}
2016-03-10 17:05:11 +00:00
Michael Achenbach
29a4856de4 Whitespace change to test infra.
Cr-Commit-Position: refs/heads/master@{#34685}
2016-03-10 16:47:39 +00:00
verwaest
3f027300dc Simplify the interface of PropertyCallbackArguments
Use internal handles as API, and move boilerplate code into the call wrappers.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#34684}
2016-03-10 15:46:16 +00:00
ahaas
d30af81ecf [turbofan] Change the way nodes with multiple outputs are verified.
With the original implementation nodes which were not reachable from end
could cause the verification to fail.

R=titzer@chromium.org, mstarzinger@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#34683}
2016-03-10 15:39:09 +00:00
titzer
a42b24514e [wasm] GC should ignore unboxed stack parameters in WASM frames.
R=mstarzinger@chromium.org,bradnelson@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#34682}
2016-03-10 15:14:56 +00:00
mbrandy
01589fe708 Fix "[turbofan] [deoptimizer] Support inlining of ES6 tail calls" for embedded constant pools.
Correct handling of the bottom frame in DoComputeArgumentsAdaptorFrame.

R=ishell@chromium.org, jarin@chromium.org, michael_dawson@ca.ibm.com
BUG=v8:4698
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#34681}
2016-03-10 15:07:00 +00:00
cbruni
62e9caf718 [flags] adding --trace_for_in_enumerate
With the flag enables we print the keys found on each prototype and
the number of prototypes.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#34680}
2016-03-10 15:03:36 +00:00
zhengxing.li
cf959c4b41 Revert of "X87: Rework CallApi*Stubs."
Reason for revert:
  The original x87 related codes of the CL #34627 (https://codereview.chromium.org/1748123003) had a mistake and caused the x87 debug build fail.
  Need to fix it and add it into the x87 port of the CL #34627

BUG=

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

Cr-Commit-Position: refs/heads/master@{#34679}
2016-03-10 14:48:28 +00:00
machenbach
6e401f2065 [Coverage] Enable merging coverage data from swarming.
This adds a function to the sancov_merger that merges the
output files of one swarming shard in parallel. This will
be called from the infrastructure when collecting/merging
swarming results.

The tool will be called subsequently for each shard. On
the first call, the target dir will be empty and the sancov
files will just be moved.

BUG=chromium:568949
LOG=n
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#34678}
2016-03-10 14:45:08 +00:00
mstarzinger
5bd307fa72 [compiler] Sidestep the interpreter for generator literals.
This is because compiler.cc is awesome. There are cases where we do not
yet have a SharedFunctionInfo that can tell us whether we are compiling
a generator function, we query the FunctionLiteral instead.

R=rmcilroy@chromium.org
BUG=v8:4681
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#34677}
2016-03-10 14:35:40 +00:00
rossberg
62bf607f79 Happify dumb coverage checker
This is old code, and the same pattern appears in other places.
I have no idea what the checker's problem is all of a sudden...

TBR=machenbach@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#34676}
2016-03-10 14:08:50 +00:00
mstarzinger
855176533c [compiler] Sidestep optimizing of generator resumers.
This ensures our optimizing compilers as well as the interpreter are
never tasked with compiling the generator-resuming builtin methods. The
corresponding intrinsics for those methods are not supported and it is
not possible to provide a C++ reference implementation for them. We do
this by assigning builtin function ids to them that we can recognize
during the compiler dispatch.

Note that this also affects the interpreter, because methods having a
builtin function id assigned are not interpreted ({function_data} field
is overlapping). If this ever changes we can still do an early check in
the compiler dispatch (similar to the optimizing compilers) easily.

This applies to the following methods:
- Generator.prototype.next (calls Runtime_GeneratorNext).
- Generator.prototype.return (calls Runtime_GeneratorReturn).
- Generator.prototype.throw (calls Runtime_GeneratorThrow).

R=neis@chromium.org
BUG=v8:4681
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#34675}
2016-03-10 14:07:10 +00:00
joransiu
daea0e7518 S390: Platform specific includes in common files
Add S390 platform specific \#includes across various common files.
Add S390 CPU features to enum.
Add S390 implementation to extract sp/fp/pc from signal context.

R=danno@chromium.org,jkummerow@chromium.org,jochen@chromium.org,jyan@ca.ibm.com,michael_dawson@ca.ibm.com,mbrandy@us.ibm.com
BUG=

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

Cr-Commit-Position: refs/heads/master@{#34674}
2016-03-10 14:03:51 +00:00
balazs.kilvady
04a735c7e7 MIPS: Improve Lsa/Dlsa implementations.
Make the low level assembler implementation exact and protected to disallow explicit usage.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#34673}
2016-03-10 13:41:34 +00:00
mstarzinger
899105c0bc [compiler] Sidestep the interpreter for generator functions.
This ensures the interpreter is not tasked with compiling generator
functions. It currently does not support suspending activations at
yielding points, but we still want to be able to activate it for the
rest of JavaScript in the meantime.

R=rmcilroy@chromium.org
BUG=v8:4681
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#34672}
2016-03-10 13:21:51 +00:00
machenbach
dd7d6382da [Swarming] Isolate sancov_merger.
BUG=chromium:535160, chromium:568949
LOG=n
TBR=tandrii@chromium.org, kjellander@chromium.org
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#34671}
2016-03-10 13:12:26 +00:00
ssanfilippo
8136372a46 Add option in Makefile to preserve frame pointer.
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#34670}
2016-03-10 12:59:50 +00:00
rossberg
4614c7caaf [strong] Remove all remainders of strong mode
R=mstarzinger@chromium.org,bmeurer@chromium.org,adamk@chromium.org
BUG=v8:3956
LOG=Y

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

Cr-Commit-Position: refs/heads/master@{#34669}
2016-03-10 12:45:42 +00:00
jfb
abbdca947f wasm: use strings for section names
This will require an equivalent sexpr-wasm change.

See:
https://github.com/WebAssembly/design/blob/master/BinaryEncoding.md#high-level-structure

R=titzer@chromium.org, binji@chronium.org

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

Cr-Commit-Position: refs/heads/master@{#34668}
2016-03-10 12:37:19 +00:00