Commit Graph

25701 Commits

Author SHA1 Message Date
neis
f113f3c384 [es6] Stage --harmony-completion.
R=rossberg
BUG=

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

Cr-Commit-Position: refs/heads/master@{#31209}
2015-10-12 12:36:47 +00:00
jochen
9a5e2f512c Don't compile functions in a context the caller doesn't have access to
Instead, just return undefined.

A side effect of this is that it's no longer possible to compile
functions in a detached context.

Based on https://codereview.chromium.org/294073002 but taking access
check callbacks into account

BUG=chromium:541703
R=verwaest@chromium.org
LOG=y

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

Cr-Commit-Position: refs/heads/master@{#31208}
2015-10-12 12:23:18 +00:00
machenbach
35833b7139 [swarming] Let v8 test driver use gtest environment variables for shards.
BUG=chromium:535160
LOG=n
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#31207}
2015-10-12 12:08:37 +00:00
littledan
0c2dff2936 Revert of Stage --harmony_sloppy_function (patchset #2 id:20001 of https://codereview.chromium.org/1393423002/ )
Reason for revert:
This still breaks Inbox.

Original issue's description:
> Stage --harmony_sloppy_function
>
> This patch turns on ES2015-style function hoisting semantics in
> staging. --harmony_sloppy_function was previously staged, leading
> to a number of bugs being filed and the staging being reversed;
> important bugs have been fixed, so it is time to try again.
>
> R=adamk
> LOG=Y
> BUG=v8:4285
>
> Committed: https://crrev.com/333e27fd99f8187c97e62b9538529900f0a30668
> Cr-Commit-Position: refs/heads/master@{#31190}

TBR=adamk@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=v8:4285

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

Cr-Commit-Position: refs/heads/master@{#31206}
2015-10-12 11:07:15 +00:00
mythria
aacc18f053 [Interpreter] Adds shift operators to interpreter
Adds support for following operators
 -Shift left
 -Shift right
 -Shift right logical

Adds the above bytecodes, support to BytecodeGenerator and BytecodeArrayBuilder
to enable it's use, it's implementation and tests.

BUG=v8:4280
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#31205}
2015-10-12 10:45:29 +00:00
mvstanton
2d4aeaad2f Vector ICs: Get rid of stack arguments on ia32 transitioning stores.
The stack manipulation was expensive. Two virtual registers are better.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#31204}
2015-10-12 07:34:32 +00:00
ahaas
f7e9094fe2 Give the SupportedMachineOperatorFlags to GraphAndBuilders to allow the use of optional operators in tests.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#31203}
2015-10-11 19:59:34 +00:00
adamk
bef2fbcc69 [cleanup] Use NewVariableProxy() instead of NewUnresolved where possible
Review URL: https://codereview.chromium.org/1386383003

Cr-Commit-Position: refs/heads/master@{#31202}
2015-10-09 21:47:51 +00:00
adamk
a0d119c766 [cleanup] Make Scope implementation private, remove dead friend declaration
Scope has no subclasses, so "protected" should just be "private". And
there is no ParserFactory class, so making it a friend doesn't buy us
anything.

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

Cr-Commit-Position: refs/heads/master@{#31201}
2015-10-09 21:42:00 +00:00
karl
60f831749f Emit better error message if array buffer allocation fails
Now emits `Array buffer allocation failed` instead of
`Invalid array buffer length`.

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

Cr-Commit-Position: refs/heads/master@{#31200}
2015-10-09 20:44:50 +00:00
paul.lind
9d66c8813a Fix another gcc 4.9.2 signed-compare error.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#31199}
2015-10-09 20:04:09 +00:00
ofrobots
30b57dcd42 Revert of improve perf_basic_prof filename reporting (patchset #4 id:60001 of https://codereview.chromium.org/1396843004/ )
Reason for revert:
The test-case has issues on windows. http://build.chromium.org/p/client.v8/builders/V8%20Win32%20-%20debug%20-%203/builds/5011/steps/Check/logs/stdio

Original issue's description:
> improve perf_basic_prof filename reporting
>
> Re-implement https://codereview.chromium.org/1388543002 after fixing the issue
> with SNPrintF crashing on windows when a zero-length buffer is passed in.
>
> R=jkummerow@chromium.org,yangguo@chromium.org,yurys@chromium.org
> BUG=chromium:539892
> LOG=N
>
> Committed: https://crrev.com/701ba0b255f9c34f4b8c43584ef1e35040474e7d
> Cr-Commit-Position: refs/heads/master@{#31197}

TBR=jkummerow@chromium.org,yangguo@chromium.org,yurys@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=chromium:539892

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

Cr-Commit-Position: refs/heads/master@{#31198}
2015-10-09 18:28:21 +00:00
ofrobots
701ba0b255 improve perf_basic_prof filename reporting
Re-implement https://codereview.chromium.org/1388543002 after fixing the issue
with SNPrintF crashing on windows when a zero-length buffer is passed in.

R=jkummerow@chromium.org,yangguo@chromium.org,yurys@chromium.org
BUG=chromium:539892
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#31197}
2015-10-09 17:17:40 +00:00
jochen
5e47350645 Pass the context from which a given receiver is accessed explicitly
This will allow for probing access from any context to any receiver in a
future CL.

BUG=none
R=jkummerow@chromium.org,verwaest@chromium.org
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#31196}
2015-10-09 13:25:56 +00:00
jochen
2e8181acd5 When converting an mjsunit exception to a string, include the stack
Makes debugging failures a bit easier

BUG=none
R=ulan@chromium.org
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#31195}
2015-10-09 13:12:10 +00:00
karl
2daea448d9 [win32] Make sure OS::Abort doesn't return
Fixes clang on windows warning:
..\..\v8\src\base\platform\platform-win32.cc(836,1) :
  error: function declared 'noreturn' should not return
   [-Werror,-Winvalid-noreturn]

CQ_INCLUDE_TRYBOTS=tryserver.chromium.win:win_clang_rel,win_clang_x64_rel

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

Cr-Commit-Position: refs/heads/master@{#31194}
2015-10-09 12:52:30 +00:00
jarin
4f64af2fa6 [turbofan] Fix scheduler test for Loop/Terminate nodes.
The test had an effect phi with one effect input connected to a loop with two control inputs. Also, the Terminate node was used by the effect phi.

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

Cr-Commit-Position: refs/heads/master@{#31193}
2015-10-09 10:52:59 +00:00
cbruni
3ac2973b29 Improving error messages when adding properties to non JSObject receiver in
strict mode.

LOG=N
BUG=chromium:423739

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

Cr-Commit-Position: refs/heads/master@{#31192}
2015-10-09 09:12:47 +00:00
Michael Achenbach
391ac4682a Whitespace change to test adding test262 on windodws.
Cr-Commit-Position: refs/heads/master@{#31191}
2015-10-09 06:55:59 +00:00
littledan
333e27fd99 Stage --harmony_sloppy_function
This patch turns on ES2015-style function hoisting semantics in
staging. --harmony_sloppy_function was previously staged, leading
to a number of bugs being filed and the staging being reversed;
important bugs have been fixed, so it is time to try again.

R=adamk
LOG=Y
BUG=v8:4285

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

Cr-Commit-Position: refs/heads/master@{#31190}
2015-10-09 02:27:45 +00:00
caitpotter88
e2be5ce542 [parser] fix token end position for regexp literals
Make the end position of a regexp literal the first character following the regexp. This matches the behaviour of number literals and string literals, as well as single-character tokens.

This change corrects the lazy-parsing of arrow functions with concise bodies, whose last token is a regular expression literal.

BUG=v8:4474
LOG=N
R=wingo@igalia.com, adamk@chromium.org, rossberg@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#31189}
2015-10-09 01:02:02 +00:00
bradnelson
5bbccc3ea3 Using RegisterConfiguration in test-multiple-return.
Not all register codes are safe for use on all architectures.
Using RegisterConfiguration when picking a calling convention
in test-multiple-return.

BUG=None
TEST=test-multiple-return
R=titzer@chromium.org
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#31188}
2015-10-08 23:13:02 +00:00
littledan
a01ab93f4c Revert of Use simple/fast macro version of MinMax in JS (patchset #2 id:20001 of https://codereview.chromium.org/1390023003/ )
Reason for revert:
This contains bugs, as found by mstarzinger. Reverting until we can find a clean fix (maybe it should be an inline function instead of a macro).

Original issue's description:
> Use simple/fast macro version of MinMax in JS
>
> Use the simple macro version of {Min, Max} where possible to
> improve performance
>
> Follow-up to CR: https://codereview.chromium.org/1331993004
>
> BUG=
>
> Committed: https://crrev.com/27c96c26212a10bb7f19f7bf3ff793b31bbad354
> Cr-Commit-Position: refs/heads/master@{#31162}

TBR=jkummerow@chromium.org,mstarzinger@chromium.org,karl@skomski.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=

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

Cr-Commit-Position: refs/heads/master@{#31187}
2015-10-08 20:37:59 +00:00
akos.palfi
29ba2e04fd Fix gcc 4.9.2 sign-compare error.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#31186}
2015-10-08 19:34:21 +00:00
karl
9a6c8b2455 Reland: Introduce a V8_NORETURN macro and use it to make GCC 4.9.2 happy again.
Without that, it has a few false positives about out-of-bounds array accesses.
Also makes the clang static-analyzer happy.

Original code review from Sven Panne:
https://codereview.chromium.org/790723002/

CQ_INCLUDE_TRYBOTS=tryserver.v8:v8_linux_arm_dbg,v8_linux_arm64_dbg,v8_mac64_dbg,v8_win_compile_dbg,v8_linux_gcc_rel

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

Cr-Commit-Position: refs/heads/master@{#31185}
2015-10-08 19:03:24 +00:00
bradnelson
2e3c36fb1c Adding support for multiple returns in compiled functions.
This will allow exploration of possibilities like passing around buffer base and length.

BUG=None
TEST=test-multiple-return
LOG=N
R=mtrofin@chromium.org,titzer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#31184}
2015-10-08 18:27:46 +00:00
mlippautz
deccbde161 [heap] Free list refactoring of finding nodes.
R=ulan@chromium.org
BUG=chromium:524425
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#31183}
2015-10-08 15:17:22 +00:00
machenbach
2b87016aba [test] Pull test262 as a dependency.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#31182}
2015-10-08 14:40:52 +00:00
neis
cfe7c9c5ce [es6] Support optional "receiver" argument in Reflect.get.
Also add some more tests.

R=rossberg
BUG=

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

Cr-Commit-Position: refs/heads/master@{#31181}
2015-10-08 14:23:12 +00:00
neis
7a0a682083 [es6] Implement completion value reform (--harmony-completion).
This CL depends on #1362363002.

R=rossberg
BUG=

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

Cr-Commit-Position: refs/heads/master@{#31180}
2015-10-08 13:57:04 +00:00
mlippautz
3feba64470 [heap] Fix mark bits for partially compacted pages.
See bug report.

R=ulan@chromium.org
BUG=chromium:538567
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#31179}
2015-10-08 13:49:30 +00:00
bmeurer
9d2e21775c [turbofan] Optimize stores to global properties.
This adds support to also lower stores to global property cells in state
kConstant or kConstantType, where we need to deoptimize eagerly in case
we have a value/type mismatch.

Also fixes bugs in the construction of the frame states in the
AstGraphBuilder.

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

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

Cr-Commit-Position: refs/heads/master@{#31178}
2015-10-08 13:30:00 +00:00
machenbach
9b25041b24 [test] Add intel atom to perf try category.
BUG=chromium:468025
LOG=n
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#31177}
2015-10-08 13:04:37 +00:00
jacob.bramley
29f73ad104 [arm64] Fix some signed/unsigned type inconsistencies.
This fixes several warnings when cross-building using GCC (since r31087,
5cf1c0b).

In particular, CPURegister::code() now returns 'int', matching the other
platforms (and the coding style guide). The rest of the patch consists
of similar changes to make this work.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#31176}
2015-10-08 11:32:48 +00:00
mlippautz
93e939837d [heap] Remove unswept bytes counter
This change removes the unswept free bytes counter.

The new approach
- directly decrements allocated memory and capacity before sweeping (using live
  bytes from the marker), and
- adds back capacity during refilling a free list.

This is another pre-work for moving around free lists while keeping the counters
in a sane state.

The previous approach allowed us to nail down how much memory is to-be-swept.
However, there were no users of this as we only used it do decrement it from
allocated memory (which still accounted for dead objects).  If we want to keep
track of unswept free bytes in a space during compaction we can introduce a
separate new concurrent counter for this purpose.

BUG=chromium:524425
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#31175}
2015-10-08 10:28:11 +00:00
v8-autoroll
bae875cccd Update V8 DEPS.
Rolling v8/tools/clang to ee2cf312005aa4d47268041d36bfc50921afea29

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

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

Cr-Commit-Position: refs/heads/master@{#31174}
2015-10-08 09:55:33 +00:00
mythria
6105581e40 Continuing removing deprecated function from cctest
Removes deprecated functions from the following files:

test/cctest/test-object-observe.cc
test/cctest/test-parsing.cc
test/cctest/test-platform.cc
test/cctest/test-platform-linux.cc
test/cctest/test-platform-win32.cc
test/cctest/test-profile-generator.cc
test/cctest/test-random-number-generator.cc
test/cctest/test-regexp.cc
test/cctest/test-reloc-info.cc
test/cctest/test-representation.cc
test/cctest/test-sampler-api.cc
test/cctest/test-serialize.cc
test/cctest/test-simd.cc
test/cctest/test-slots-buffer.cc
test/cctest/test-spaces.cc
test/cctest/test-strings.cc
test/cctest/test-strtod.cc
test/cctest/test-symbols.cc
test/cctest/test-threads.cc

BUG=v8:4134
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#31173}
2015-10-08 09:48:20 +00:00
bmeurer
519f215137 [builtins] Drop useless ToBoolean JavaScript builtin.
There's no need for a dedicated ToBoolean builtin in JavaScript, since
ToBoolean(x) can easily be expressed in JavaScript as !!x, which has the
additional advantage that the compilers are able to properly optimize
that (out of the box).

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

Cr-Commit-Position: refs/heads/master@{#31172}
2015-10-08 09:19:21 +00:00
bmeurer
fd4e0dc2ce [turbofan] Compute proper type for globals with "constant type".
For property cells with cell type kConstantType, we can compute an
appropriate JavaScript type based on the current value of that cell.
Numbers cannot use Type::Of here, because the type might be too precise,
so we handle smi and heap number specially.

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

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

Cr-Commit-Position: refs/heads/master@{#31171}
2015-10-08 08:59:10 +00:00
bmeurer
948c4b40d9 [turbofan] Fix missing operators for JSGlobalSpecialization::Flags.
R=jarin@chromium.org
BUG=v8:4470
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#31170}
2015-10-08 08:58:06 +00:00
machenbach
fa19a52a97 Update V8 DEPS.
Repository URL changed in chromium.

TBR=tandrii@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#31169}
2015-10-08 08:13:11 +00:00
adamk
d697e7160e In Scope::Print, skip null scope_names_ just like empty ones
R=littledan@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#31168}
2015-10-08 05:00:14 +00:00
bmeurer
9752a5983e Revert of Reland: Introduce a V8_NORETURN macro and use it to make GCC 4.9.2 happy again. (patchset #3 id:40001 of https://codereview.chromium.org/1383053005/ )
Reason for revert:
Breaks Arm debug.

Original issue's description:
> Reland: Introduce a V8_NORETURN macro and use it to make GCC 4.9.2 happy again.
>
> Without that, it has a few false positives about out-of-bounds array accesses.
> Also makes the clang static-analyzer happy.
>
> Original code review from Sven Panne:
> https://codereview.chromium.org/790723002/
>
> CQ_INCLUDE_TRYBOTS=tryserver.v8:v8_linux_arm_dbg,v8_linux_arm64_dbg,v8_mac64_dbg,v8_win_compile_dbg
>
> Committed: https://crrev.com/93ae81101af68d81b7af84ea4046ea849e605116
> Cr-Commit-Position: refs/heads/master@{#31163}

TBR=jochen@chromium.org,karl@skomski.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#31167}
2015-10-08 04:33:41 +00:00
rmcilroy
688eacdae9 [Interpreter] Add support for global declarations and load/store of global variables
Implements support for declaring global variables. Also adds support for loading
from and storing to both global and unallocated global variables.  Adds the
following bytecodes:
 - StoreGlobal
 - LoadContextSlot

BUG=v8:4280
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#31166}
2015-10-07 21:20:02 +00:00
littledan
f29705dbe0 Test262 roll to 2015-10-1 version
This patch brings test262 up to the latest version on GitHub. Some
highlights from new failures are:
- Reflect
- Default parameters
- Case conversion edge cases

R=adamk

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

Cr-Commit-Position: refs/heads/master@{#31165}
2015-10-07 19:13:39 +00:00
rmcilroy
6e64a057e3 [Interpreter] Add ignition-script-filter flag to filter scripts.
Add a flag to explicitly filter scripts in ignition and use it for the test262
variant. The previous approach of overloading ignition-filter meant that only
top-level code was getting compiled through ignition.

BUG=v8:4280
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#31164}
2015-10-07 19:08:37 +00:00
karl
93ae81101a Reland: Introduce a V8_NORETURN macro and use it to make GCC 4.9.2 happy again.
Without that, it has a few false positives about out-of-bounds array accesses.
Also makes the clang static-analyzer happy.

Original code review from Sven Panne:
https://codereview.chromium.org/790723002/

CQ_INCLUDE_TRYBOTS=tryserver.v8:v8_linux_arm_dbg,v8_linux_arm64_dbg,v8_mac64_dbg,v8_win_compile_dbg

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

Cr-Commit-Position: refs/heads/master@{#31163}
2015-10-07 18:58:43 +00:00
karl
27c96c2621 Use simple/fast macro version of MinMax in JS
Use the simple macro version of {Min, Max} where possible to
improve performance

Follow-up to CR: https://codereview.chromium.org/1331993004

BUG=

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

Cr-Commit-Position: refs/heads/master@{#31162}
2015-10-07 18:33:02 +00:00
mstarzinger
68126b52fa Remove unused bailout reasons.
This removes stale strings from the bailout-reason.h file that are no
longer being used and hence only eat up space in the binary.

R=bmeurer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#31161}
2015-10-07 18:27:23 +00:00
littledan
80aa6a5f7f Remove ToObject on elements from Array.prototype.toLocaleString()
In ES5, ToObject was called on elements before invoking the
.toLocaleString() method on them. ES2015 specifies that ToObject is
not called. A test262 test verifies this change. This patch
implements the new ES2015 behavior. It is verified by the test262 test
built-ins/Array/prototype/toLocaleString/primitive_this_value_getter

R=adamk

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

Cr-Commit-Position: refs/heads/master@{#31160}
2015-10-07 18:19:40 +00:00