Commit Graph

29458 Commits

Author SHA1 Message Date
caitpotter88
e6f4b7491c [parser] implement error reporting for Scanner
Enables the Scanner to provide a better error message when errors occur
in escape sequences, numbers, strings, etc.

BUG=v8:4829, v8:3230
LOG=N
R=adamk@chromium.org, littledan@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#34966}
2016-03-21 20:27:44 +00:00
mlippautz
34fe5ee929 [heap] Optimize migration of objects
* Better inlining
* Avoid vtable lookup for visitor

BUG=chromium:524425
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#34965}
2016-03-21 19:43:33 +00:00
adamk
249bf75e0c Remove runtime flags for Proxy and Reflect
Both of them shipped in Chrome 49 without incident.

Also move relevant tests from harmony/ to es6/.

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

Cr-Commit-Position: refs/heads/master@{#34964}
2016-03-21 19:40:02 +00:00
caitpotter88
609d7958ba [cleanup] add missing #undef SCANNER_ACCESSORS to parser-base.h
BUG=

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

Cr-Commit-Position: refs/heads/master@{#34963}
2016-03-21 19:24:29 +00:00
ishell
e6dca379b6 [crankshaft] Check if the function is callable before generating a tail call via Call builtin.
This is necessary to ensure that "Called non callable" exception will get a proper message and stack trace even for calls at tail position.

BUG=chromium:595615, v8:4698
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#34962}
2016-03-21 19:24:28 +00:00
yangguo
5dedb164eb [regexp] require exact match for unicode property names.
R=littledan@chromium.org
BUG=v8:4810
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#34961}
2016-03-21 19:22:24 +00:00
ulan
5ff7901e24 Fix JSInliningHeuristic::CandidateCompare predicate.
STL requires comparison to be a strict weak ordering.

In particular the predicate should be antisymmetric:
f(x, y) implies !f(y, x).

BUG=v8:4848
LOG=NO

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

Cr-Commit-Position: refs/heads/master@{#34960}
2016-03-21 18:26:39 +00:00
mstarzinger
b6419fa229 [es6] Faster implementation of OrdinaryHasInstance.
Now implemented as a builtin that delegates to the InstanceOfStub. That
stub was parameterized to fallback to either Runtime_InstanceOf or to
Runtime_OrdinaryHasInstance depending on the --harmony-instanceof flag.
Once the feature stabilizes and the flag is no longer needed, we can get
rid of this parameterization again.

R=bmeurer@chromium.org
BUG=v8:4447
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#34959}
2016-03-21 18:05:53 +00:00
vogelheim
09ac4f295c Revert of Parser: Make skipping HTML comments optional. (patchset #6 id:140001 of https://codereview.chromium.org/1801203002/ )
Reason for revert:
Violates ES6 spec (crbug.com/4850), and implementation was over-eager. Will revert for now.

Original issue's description:
> Parser: Make skipping HTML comments optional.
>
> API change: This adds a new flag skip_html_comments to v8::ScriptOriginOptions. This flag controls whether V8 will attempt to honour HTML-style comments in JS sources.
>
> (That is: Gracefully ignore <!-- ... ---> in JS sources, which was a popular technique in the early days of JavaScript, to prevent non-JS-enabled browsers from displaying script sources to uses.)
>
> The flag defaults to 'true' when using v8::ScriptOrigin constructor, which preserves the existing behaviour. Embedders which are happy with the existing behaviour will thus not need any changes.
>
> BUG=chromium:573887
> LOG=Y
>
> Committed: https://crrev.com/91d344288aa51ed03eaaa1cb3e368ac1e82f0173
> Cr-Commit-Position: refs/heads/master@{#34904}

TBR=jochen@chromium.org,rossberg@chromium.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=chromium:573887, v8:4850
LOG=Y

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

Cr-Commit-Position: refs/heads/master@{#34958}
2016-03-21 17:50:22 +00:00
ishell
35a14c75e3 Disable ES6 tail call elimination for native functions.
We don't want them to disappear from the stack traces.

BUG=v8:4698
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#34957}
2016-03-21 17:44:57 +00:00
verwaest
f7bac43d4a Simplify JSArray::HasReadOnlyLength
BUG=

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

Cr-Commit-Position: refs/heads/master@{#34956}
2016-03-21 17:13:29 +00:00
oth
48d082af38 [interpreter] Add support for scalable operands.
This change introduces wide prefix bytecodes to support wide (16-bit)
and extra-wide (32-bit) operands. It retires the previous
wide-bytecodes and reduces the number of operand types.

Operands are now either scalable or fixed size. Scalable operands
increase in width when a bytecode is prefixed with wide or extra-wide.

The bytecode handler table is extended to 256*3 entries. The
first 256 entries are used for bytecodes with 8-bit operands,
the second 256 entries are used for bytecodes with operands that
scale to 16-bits, and the third group of 256 entries are used for
bytecodes with operands that scale to 32-bits.

LOG=N
BUG=v8:4747,v8:4280

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

Cr-Commit-Position: refs/heads/master@{#34955}
2016-03-21 17:09:49 +00:00
mstarzinger
d50d7e1851 [interpreter] Drop overprotective --harmony-instanceof check.
The check in question will trigger because one of our unit tests still
emits the bytecode (i.e. unittests/BytecodeArrayBuilderTest) even when
the flag is turned on by default.

R=rmcilroy@chromium.org
TEST=unittests/BytecodeArrayBuilderTest.AllBytecodesGenerated

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

Cr-Commit-Position: refs/heads/master@{#34954}
2016-03-21 16:48:50 +00:00
jyan
faaf8512bf S390: Disable gcc generation of mul-add in cctests
Generated code performs distinct floating multiply and add/subtract
operations. Tests fail when GCC uses mul-add to calculate the
expected result since these instructions provide higher accuracy due
to the lack of an intermediate round.

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

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

Cr-Commit-Position: refs/heads/master@{#34953}
2016-03-21 16:43:35 +00:00
mlippautz
fdb0784d0a [heap] Remove LocalStoreBuffer and add slots in parallel
Now that we have page-local remembered sets (due to refilling in page
granularity) we can perform all updates on the sets during compaction in
parallel without caching slots locally.

BUG=chromium:524425
LOG=N
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#34952}
2016-03-21 16:01:01 +00:00
bbudge
7ec8eccef4 Add Simd128Value code stubs.
LOG=N
BUG=v8:4124

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

Cr-Commit-Position: refs/heads/master@{#34951}
2016-03-21 15:47:02 +00:00
ssanfilippo
a4afba532a [Interpreter] Fix incorrect tail call code generated when using Abort.
Previous to this change, the dummy Return inside
InterpreterAssembler::Abort caused TurboFan to emit incorrect code for
handlers that made use of this call. The stack pointer would not be
incremented before tail calling into the next handler, causing it to
push on top on the caller's frame instead of overwriting it.

BUG=v8:4280
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#34950}
2016-03-21 15:17:39 +00:00
mlippautz
731ebc0e99 [tools] Default to stdin for processing in eval_gc_time.sh
NOTRY=true
BUG=

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

Cr-Commit-Position: refs/heads/master@{#34949}
2016-03-21 15:08:57 +00:00
jkummerow
6703cce1b7 [crankshaft] Delete unused Hydrogen-BCH code
Bounds check hoisting was known to be buggy and has never been turned on.
Since Crankshaft is deprecated, nobody is going to spend time fixing it,
so let's just get rid of it.

BUG=v8:4155,v8:4849
LOG=n
R=bmeurer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#34948}
2016-03-21 15:07:06 +00:00
mstarzinger
3360ba08e8 [crankshaft] Enable ES6 instanceof optimization.
Note that this optimization only kicks in with --harmony-instanceof
being enabled as well. By itself this optimization itself does not
trigger.

R=bmeurer@chromium.org
BUG=v8:4447
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#34947}
2016-03-21 14:49:30 +00:00
machenbach
76f677fc6d [CQ] Reduce code-coverage experiment factor.
BUG=chromium:568949
LOG=n
TBR=kjellander@chromium.org, tandrii@chromium.org
NOTRY=true
NOPRESUBMIT=true

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

Cr-Commit-Position: refs/heads/master@{#34946}
2016-03-21 14:40:51 +00:00
yangguo
18cdb9cd48 [serializer] tweak startup serializer for warming up.
Code that we want to keep after warming up may have context-dependent
inline caches. Clear these to avoid running into IC misses after
deserialization.

R=vogelheim@chromium.org
BUG=v8:4836
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#34945}
2016-03-21 14:30:14 +00:00
verwaest
47f64a76c5 Inline fast-path interceptor access in the IC utilities
BUG=

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

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

Cr-Commit-Position: refs/heads/master@{#34944}
2016-03-21 14:21:25 +00:00
machenbach
6734df936a [test] Skip some flaky cpu profiler tests on windows.
BUG=v8:2999,v8:4751
LOG=n
NOTRY=true
TBR=hablich@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#34943}
2016-03-21 14:17:56 +00:00
verwaest
536d8cbbad Speed up PrototypeHasNoElements and drop the "fast" path before, it's now slower.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#34942}
2016-03-21 14:16:07 +00:00
hlopko
e3680e9c68 [heap] Move mark-compact specific code to MarkCompactEpilogue
BUG=
LOG=no

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

Cr-Commit-Position: refs/heads/master@{#34941}
2016-03-21 14:03:55 +00:00
mstarzinger
02a015b1c1 [es6] Rebaseline tests of 'instanceof' error messages.
This rebaselines all our internal tests for error messages thrown by the
implementation of 'instanceof' to the new ES6 semantics. It also applies
a minor rephrasing to the messages in question.

R=rossberg@chromium.org
BUG=v8:4447
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#34940}
2016-03-21 14:01:50 +00:00
rmcilroy
e2b3d0534d [Interpreter] Remove unecessary store of BytecodeArray in CallPrologue.
The BytecodeArray shouldn't have changed since it was last loaded from the stack
frame, so this store is unecessary.

BUG=v8:4280
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#34939}
2016-03-21 13:39:07 +00:00
yangguo
25d33be76a [regexp] Fix issues with character range limit.
R=jochen@chromium.org
BUG=chromium:595634
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#34938}
2016-03-21 13:39:06 +00:00
verwaest
9536c3886b Turn LoadIndexedInterceptor into a Turbofan stub
BUG=

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

Cr-Commit-Position: refs/heads/master@{#34937}
2016-03-21 13:33:51 +00:00
ulan
6479d4264a Record slots in the string table to avoid iterating it twice.
Currently we iterate the string table to clear non-live references and
to update pointers. We can skip the second iteration if we record slots.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#34936}
2016-03-21 13:28:21 +00:00
ishell
1c34e5f822 Run some slow tail call tests only for fast configurations.
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#34935}
2016-03-21 13:06:03 +00:00
hpayer
08edc78b5a Perform RegisterReservationsForBlackAllocation atomically with deserialization of code.
BUG=596057
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#34934}
2016-03-21 12:29:10 +00:00
mstarzinger
f1d04af52f [interpreter] Prepare for shipping --harmony-instanceof.
R=rmcilroy@chromium.org
TEST=cctest/test-interpreter/InterpreterInstanceOf
BUG=v8:4447
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#34933}
2016-03-21 12:09:05 +00:00
jarin
1646d14d65 [turbofan] Representation inference: fail on operators with untested truncation mode.
Review URL: https://codereview.chromium.org/1820703003

Cr-Commit-Position: refs/heads/master@{#34932}
2016-03-21 12:07:15 +00:00
epertoso
06832bdcd2 Introduces a BranchIf helper in the CodeStubAssembler.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#34931}
2016-03-21 12:03:51 +00:00
mvstanton
f19ec92600 ES6: improve performance of ES6 instanceof
This CL restores special crankshaft optimizations for instance of when
--harmony-instanceof is true. Similar work has to happen for TurboFan.

I've added a flag to pile-up the optimizations to be done elsewhere, which
will follow over several CLs.

R=verwaest@chromium.org, mstarzinger@chromium.org
BUG=v8:4447
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#34930}
2016-03-21 11:35:18 +00:00
ishell
ac83355748 [interpreter] Disable some slow tail call tests.
TBR=machenbach@chromium.org
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#34929}
2016-03-21 11:20:14 +00:00
machenbach
dc84f46f44 [test] Fix catching infra problems in test-runner.
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#34928}
2016-03-21 11:03:04 +00:00
verwaest
75ed4a6071 Turn StoreWithInterceptor into a turbofan stub
BUG=

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

Cr-Commit-Position: refs/heads/master@{#34927}
2016-03-21 10:26:45 +00:00
Benedikt Meurer
369a6ac018 [x64] Fix typo in MacroAssembler::AssertNotNumber.
TBR=machenbach@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#34926}
2016-03-21 10:16:24 +00:00
epertoso
22523f25b1 Extends testb and cmpb/cmpw instruction support in the ia32 assembler.
This is in preparation for a CL that does the equivalent of http://crrev.com/1780193003 for ia32.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#34925}
2016-03-21 10:09:26 +00:00
ulan
2a077a1a7c Allocate semaphore of page parallel job on heap.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#34924}
2016-03-21 10:04:15 +00:00
machenbach
b954b18719 [Coverage] Add sancov_formatter unittest for split.
Unittest for feature added in:
https://codereview.chromium.org/1808663002/

BUG=chromium:568949
LOG=n
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#34923}
2016-03-21 09:24:36 +00:00
bmeurer
b7aa4c3ab3 [stubs] Split ToNumberStub into reusable subparts.
Split ToNumberStub into the entry ToNumberStub, and two new stubs,
StringToNumberStub and NonNumberToNumberStub, which can be used when we
already know something about the input (i.e. in various branches of the
code stubs, or in TurboFan graphs).

Also introduce an appropriate StringToNumber simplified operator for
TurboFan, that is pure and is lowered to an invocation of the newly
added StringToNumberStub.

R=jarin@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#34922}
2016-03-21 09:05:49 +00:00
machenbach
741ec01107 Update V8 DEPS.
Rolling v8/build/gyp to 133eaf70b3720b7413017ef3f9c42f6811ef9347

Rolling v8/third_party/icu to 0d572d65aae621e13d6863fe470c9c8cee71043d

This is the same as the auto-generated version, but with a
landmine: https://codereview.chromium.org/1824563002/

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

Committed: https://crrev.com/1d6dba43c2b61900be68777297634e05d479a25a
Cr-Commit-Position: refs/heads/master@{#34914}

patch from issue 1824563002 at patchset 1 (http://crrev.com/1824563002#ps1)

BUG=

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

Cr-Commit-Position: refs/heads/master@{#34921}
2016-03-21 08:57:06 +00:00
ishell
acbb968ded [crankshaft] Fixing ES6 tail call elimination.
In case when F inlined normal call to G which tail calls H we should not write translation for G for the tail call site.
Otherwise we will see G in a stack trace inside H.

This CL also enables all existing tests related to ES6 tail call elimination and adds more combinations.

TBR=bmeurer@chromium.org
BUG=v8:4698
LOG=N

Committed: https://crrev.com/689980f7d4dfd4c29492f616d7b616b86ec9af91
Cr-Commit-Position: refs/heads/master@{#34830}

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

Cr-Commit-Position: refs/heads/master@{#34920}
2016-03-21 08:48:37 +00:00
jochen
2a1570ef1a Temporarily undeprecate ForceSet
I first need to figure out what to do about window.document before we
can deprecate this: window.document is a regular accessor, however, once
the window navigated from about:blank, its value will never change.
Blink uses ForceSet to then replace the accessor with a data constant
which has way better performance than invoking the accessor all the
time.

Since the accessor, however, is installed as read only &
non-configurable, there is no spec compliant way to pull this off right
now

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

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

Cr-Commit-Position: refs/heads/master@{#34919}
2016-03-21 07:53:23 +00:00
jarin
8872ec5eab [Crankshaft] Check that both sides of test context are connected.
R=bmeurer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#34918}
2016-03-21 06:31:35 +00:00
jarin
811137ffe5 [turbofan] Use the type from the typer instead of computing new type in representation inference.
Review URL: https://codereview.chromium.org/1799023003

Cr-Commit-Position: refs/heads/master@{#34917}
2016-03-21 06:29:43 +00:00