Commit Graph

3815 Commits

Author SHA1 Message Date
Adam Klein
f7dc15febe Implement ParseExportDeclaration per latest ES6 spec draft
One missing feature: anonymous function & class declarations
in "export default".

BUG=v8:1569
LOG=n
R=arv@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26313}
2015-01-28 19:18:48 +00:00
jarin
3c9f98516c [turbofan] Use unboxed doubles in range types.
BUG=
R=bmeurer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26307}
2015-01-28 13:55:45 +00:00
jarin
5bd8407f8c Reland of "Steps towards unification of number bitset and range types."
This reverts commit 7619374979.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#26301}
2015-01-28 08:42:32 +00:00
adamk
aeb3a71740 Begin modernization of --harmony-modules
The approach taken in this CL is to incrementally move toward the
currently-specced version of modules in ES6. The biggest change in this
patch is separating the parsing of modules from the parsing of scripts,
getting rid of the 'module' keyword and thus disallowing modules-in-scripts
as well as modules-in-modules.

The syntax supported by import/export declarations has not yet been significantly
changed, with the major exception being that import declarations require a string
as the 'from' part.

Most of the existing tests have been disabled, with a first new test added
in cctest/test-parsing.

BUG=v8:1569
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#26299}
2015-01-27 21:06:46 +00:00
yangguo
e5a082f0c4 Reland "Only use FreeSpace objects in the free list"
Review URL: https://codereview.chromium.org/882633002

Cr-Commit-Position: refs/heads/master@{#26296}
2015-01-27 14:57:00 +00:00
yangguo
22421bbe9f Rescale histogram timers.
R=vogelheim@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26295}
2015-01-27 14:08:27 +00:00
bmeurer
59a02ebdbe [turbofan] Ensure that NTLs are always properly connected to the end.
Up until now we used a special Terminate node to artifically connect non
terminating loops to the End node, but this was kind of adhoc and didn't
work for the CFG. So without all kinds of weird hacks, the end block in
the CFG will not be connected to NTLs, which makes it impossible to
compute post dominance / control dependence in the current setting.

So instead of Terminate, we add a special Branch to NTLs, whose
condition is the special Always node, which corresponds to True, except
that it cannot be folded away. This way we don't need any special
machinery in the scheduler, since it's just a regular Branch.

R=titzer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26294}
2015-01-27 14:02:28 +00:00
yangguo
cc79418b59 Revert of Only use FreeSpace objects in the free list. (patchset #3 id:40001 of https://codereview.chromium.org/876613002/)
Reason for revert:
Test failures

Original issue's description:
> Only use FreeSpace objects in the free list.
>
> This solves an issue with the custom startup snapshot, in cases where
> deserializing the isolate requires more than one page per space.
>
> R=hpayer@chromium.org
>
> Committed: https://crrev.com/66964395108f03220cb6f45ddc73c5965e2c76a9
> Cr-Commit-Position: refs/heads/master@{#26285}

TBR=hpayer@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#26287}
2015-01-27 09:41:21 +00:00
yangguo
6696439510 Only use FreeSpace objects in the free list.
This solves an issue with the custom startup snapshot, in cases where
deserializing the isolate requires more than one page per space.

R=hpayer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26285}
2015-01-27 09:20:31 +00:00
titzer
7c81161b97 [turbofan] Simplify reduction if IfTrue and IfFalse and fix bugs.
R=mstarzinger@chromium.org
BUG=chromium:451958
LOG=Y

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

Cr-Commit-Position: refs/heads/master@{#26276}
2015-01-26 16:11:24 +00:00
danno
c6ae373335 Convert compiler cctest to unittests: SchedulerTest
R=mstarzinger@chromium.org
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#26267}
2015-01-26 11:21:24 +00:00
bmeurer
4f1597a92d [turbofan] Add new JSIntrinsicsLowering reducer.
The lowering of intrinsics is therefore now decoupled from the general
inlining logic.

TEST=cctest,unittests
R=svenpanne@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26263}
2015-01-26 09:06:03 +00:00
yangguo
8eb58b85a6 Fix regexp=interpreted build wrt zone related changes.
Broke after c7b09aac31

TBR=danno@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26262}
2015-01-26 08:44:40 +00:00
danno
c7b09aac31 Remove the dependency of Zone on Isolate
Along the way:
- Thread isolate parameter explicitly through code that used to
  rely on getting it from the zone.
- Canonicalize the parameter position of isolate and zone for
  affected code
- Change Hydrogen New<> instruction templates to automatically
  pass isolate

R=mstarzinger@chromium.org
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#26252}
2015-01-23 15:20:00 +00:00
marja
c421f3de54 Script streaming: Test that streaming <-> harmony scopes interaction is correct.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#26250}
2015-01-23 14:41:18 +00:00
mstarzinger
ace7b8f20f Make TestSetJitCodeEventHandler more resilient.
R=ishell@chromium.org
TEST=cctest/test-api/SetJitCodeEventHandler

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

Cr-Commit-Position: refs/heads/master@{#26249}
2015-01-23 12:12:27 +00:00
hpayer
a18fdd61dc Always adjust amount of external memory when change is reported.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#26247}
2015-01-23 11:37:49 +00:00
erikcorry
8c58ed1a0c Support old and new weak handle API
R=dcarney@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#26246}
2015-01-23 11:28:54 +00:00
mstarzinger
3dc77aac9d Enable inlining test that now works with control reducer.
R=titzer@chromium.org
TEST=cctest/test-run-inlining/InlineLoopGuardedEmpty

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

Cr-Commit-Position: refs/heads/master@{#26228}
2015-01-22 18:49:01 +00:00
danno
87e1426ce5 Convert compiler cctest to unit tests, part 1
R=bmeurer@chromium.org
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#26222}
2015-01-22 14:16:55 +00:00
bmeurer
c9283148d1 [turbofan] Cleanup Schedule and related classes.
- Move unit tests to schedule-unittests.cc.
- Remove pre-C++11 cruft.
- Fix some include weirdness.

R=mstarzinger@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26220}
2015-01-22 13:01:13 +00:00
yangguo
4d65e0c241 Revert of Change test expectations for test-types/Maybe. (patchset #1 id:1 of https://codereview.chromium.org/862353002/)
Reason for revert:
Patch causing the failure has been reverted.

Original issue's description:
> Change test expectations for test-types/Maybe.
>
> TBR=rossberg@chromium.org
> BUG=v8:3840
> LOG=N
>
> Committed: https://crrev.com/ebab2f12e9a4b421d8467bcf28280f8f64700cef
> Cr-Commit-Position: refs/heads/master@{#26212}

TBR=rossberg@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=v8:3840

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

Cr-Commit-Position: refs/heads/master@{#26216}
2015-01-22 09:43:50 +00:00
Yang Guo
ebab2f12e9 Change test expectations for test-types/Maybe.
TBR=rossberg@chromium.org
BUG=v8:3840
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#26212}
2015-01-22 08:23:11 +00:00
paul.lind
3552f87e8f MIPS: Use signaling NaN for holes in fixed double arrays.
Port 9eace97bba
Port 5d641ec969

BUG=

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

Cr-Commit-Position: refs/heads/master@{#26208}
2015-01-22 06:15:02 +00:00
bmeurer
7619374979 Revert of Steps towards unification of number bitset and range types. (patchset #4 id:60001 of https://codereview.chromium.org/837723006/)
Reason for revert:
Breaks test-types/Maybe, i.e.

out/Release/cctest --random-seed=-707413401 test-types/Maybe

started failing afterwards

Original issue's description:
> Steps towards unification of number bitset and range types.
>
> - New invariant on union types: if the union has a range then the number
>   bits in the bitset must be cleared.
>
> - Various tweaks in intersection and union to satisfy the invariant.
>
> - Exposed and used representation bits in range types (and the Limits
>   helper class).
>
> - Implemented Glb for ranges so that the Is predicate handles
>   ranges correctly.
>
> - Change typer weakening so that it does not rely on GetRange.
>   However, the code still seems to be a bit fragile.
>
> - Removed the Smi types from the type system core, instead introduced
>   Signed31, Unsigned30 and created constructors for Small(Un)Signed
>   that point to the right type for the architecture.
>
> - Punched a hole in the config to be able to get to the isolate so
>   that it is possible to allocate heap numbers for newly created
>   ranges.
>
> Patch by jarin@chromium.prg, original review here:
> https://codereview.chromium.org/795713003/
>
> TBR=jarin@chromium.org
> BUG=
>
> Committed: https://crrev.com/2764fd8d1a266a9136c987c2483492113b0c8d80
> Cr-Commit-Position: refs/heads/master@{#26197}

TBR=jkummerow@chromium.org,rossberg@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=

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

Cr-Commit-Position: refs/heads/master@{#26207}
2015-01-22 05:33:39 +00:00
mstarzinger
24a04d648b Add missing FrameState for Runtime_GetPrototype.
R=titzer@chromium.org
TEST=cctest/test-api

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

Cr-Commit-Position: refs/heads/master@{#26200}
2015-01-21 17:17:59 +00:00
mstarzinger
1693e1143a Add missing FrameState for Runtime_DeliverObservationChangeRecords.
R=bmeurer@chromium.org
TEST=cctest,mjsunit/es7/object-observe-debug-event

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

Cr-Commit-Position: refs/heads/master@{#26199}
2015-01-21 16:08:29 +00:00
rossberg
2764fd8d1a Steps towards unification of number bitset and range types.
- New invariant on union types: if the union has a range then the number
  bits in the bitset must be cleared.

- Various tweaks in intersection and union to satisfy the invariant.

- Exposed and used representation bits in range types (and the Limits
  helper class).

- Implemented Glb for ranges so that the Is predicate handles
  ranges correctly.

- Change typer weakening so that it does not rely on GetRange.
  However, the code still seems to be a bit fragile.

- Removed the Smi types from the type system core, instead introduced
  Signed31, Unsigned30 and created constructors for Small(Un)Signed
  that point to the right type for the architecture.

- Punched a hole in the config to be able to get to the isolate so
  that it is possible to allocate heap numbers for newly created
  ranges.

Patch by jarin@chromium.prg, original review here:
https://codereview.chromium.org/795713003/

TBR=jarin@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#26197}
2015-01-21 15:29:22 +00:00
bmeurer
4b31a97da3 Remove deprecated v8::base::OS::nan_value().
Use std::numeric_limits<double>::quiet_NaN() and
std::numeric_limits<float>::quiet_NaN() instead.

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

Cr-Commit-Position: refs/heads/master@{#26195}
2015-01-21 14:38:58 +00:00
mstarzinger
65eb16178d Add missing FrameState to JSTypedLoweringTester.
R=titzer@chromium.org
TEST=cctest/test-js-typed-lowering/JSToNumberOfNumberOrOtherPrimitive

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

Cr-Commit-Position: refs/heads/master@{#26194}
2015-01-21 14:33:56 +00:00
dcarney
8521caba24 add some tests for HandleApiCall builtin
BUG=

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

Cr-Commit-Position: refs/heads/master@{#26190}
2015-01-21 13:43:02 +00:00
verwaest
ac2b1cea97 Add a pretty printer to improve the error message non-function calls
BUG=259443
LOG=y

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

Cr-Commit-Position: refs/heads/master@{#26189}
2015-01-21 13:40:41 +00:00
Benedikt Meurer
9eace97bba Use signaling NaN for holes in fixed double arrays.
TEST=mjsunit,cctest,unittests
R=jkummerow@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26180}
2015-01-21 08:52:25 +00:00
dcarney
cae3a43d5b ensure trace extension works from optimized code when profiler is not enabled
BUG=

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

Cr-Commit-Position: refs/heads/master@{#26160}
2015-01-20 14:14:40 +00:00
verwaest
e99faf93ff Remove ForceDelete
This method circumvented JS semantics, and should not be used.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#26157}
2015-01-20 13:41:31 +00:00
dcarney
3eb589976a fix debug checks for api callbacks returning symbols
BUG=

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

Cr-Commit-Position: refs/heads/master@{#26156}
2015-01-20 13:28:01 +00:00
ishell
33994b4a22 Massive renaming of PropertyType values and other implied stuff.
PropertyKind:
  DATA -> kData
  ACCESSOR -> kAccessor

PropertyType:
  FIELD -> DATA
  CONSTANT -> DATA_CONSTANT
  ACCESSOR_FIELD -> ACCESSOR
  CALLBACKS -> ACCESSOR_CONSTANT

PropertyLocation:
  IN_OBJECT -> kField
  IN_DESCRIPTOR -> kDescriptor

StoreMode:
  FORCE_IN_OBJECT -> FORCE_FIELD

FieldDescriptor -> DataDescriptor
ConstantDescriptor -> DataConstantDescriptor
CallbacksDescriptor -> AccessorConstantDescriptor

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

Cr-Commit-Position: refs/heads/master@{#26146}
2015-01-19 17:49:22 +00:00
titzer
36003d07eb [turbofan] Improve loop analysis to handle more than 32 loops.
R=mstarzinger@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#26140}
2015-01-19 15:19:57 +00:00
marja
af8a0c0d82 Script streaming: don't produce (empty) cached data when debugger forces eagerness.
See CompileTopLevel for similar logic which suppresses producing parser cache
when the debugger is active.

BUG=441130
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#26138}
2015-01-19 14:29:12 +00:00
dcarney
09abbaae85 delete flaky test MultithreadedParallelIsolates
BUG=3215
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#26136}
2015-01-19 14:16:22 +00:00
caitpotter88
02218adb6b Report SyntaxError on Token::ILLEGAL in ParseTemplateLiteral
BUG=v8:3820, v8:3821
LOG=N
R=arv@chromium.org, dslomov@chromium.org, marja@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26132}
2015-01-19 12:38:20 +00:00
mstarzinger
6daecbd5ff Allow --always-opt to go further into the pipeline (2).
R=rossberg@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26131}
2015-01-19 12:35:19 +00:00
yangguo
a4a62c129b Extend and fix tests for custom heap snapshot.
R=vogelheim@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26110}
2015-01-16 22:18:27 +00:00
mstarzinger
9fbe872137 Enable test coverage for --turbo-deoptimization mode.
R=jarin@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26102}
2015-01-16 12:53:30 +00:00
mstarzinger
0f418385d0 First simple implementation of class literals in TurboFan.
R=rossberg@chromium.org,jarin@chromium.org
TEST=cctest/test-run-jsops/ClassLiteral

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

Cr-Commit-Position: refs/heads/master@{#26101}
2015-01-16 12:38:26 +00:00
bmeurer
835cc463a8 [turbofan] Initial attempt to cleanup Node and related classes.
- Make Node::Inputs and Node::Uses mostly STL compliant.
- Get rid of some pre-C++11 crappiness.
- Start moving unit tests from cctest to unittests.
- TrimInputCount() now tries to reserve inputs slots for
  later appending.
- Fix numerous style guide violations.

TEST=cctest,unittests
R=dcarney@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26098}
2015-01-16 11:04:22 +00:00
dcarney
6950ead0b0 split api call stubs into accessor and function call stubs
BUG=

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

Cr-Commit-Position: refs/heads/master@{#26097}
2015-01-16 10:59:16 +00:00
jochen
b54f00fc8e Add checks to the marking queue
Hopefully we'll catch heap corruption earlier where identifying the
object that holds a stale pointer.

Speaking of staleness, also remove old debugging code.

BUG=chromium:128415
R=ulan@chromium.org,hpayer@chromium.org
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#26095}
2015-01-16 10:39:25 +00:00
Sven Panne
e4c5b84652 Contribution of PowerPC port (continuation of 422063005)
Contribution of PowerPC port (continuation of 422063005). The inital patch
covers the core changes to the common files.  Subsequent patches will cover
changes to common files to support AIX and to update the ppc directories so
they are current with the changes in the rest of the project.

This is based off of the GitHub repository
https://github.com/andrewlow/v8ppc

BUG=
R=svenpanne@chromium.org, danno@chromium.org, sevnpanne@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26091}
2015-01-16 07:42:15 +00:00
arv
74e38e34b3 ES6 computed property names
This adds support for computed property names, under the flag
--harmony-computed-property-names, for both object literals and
classes.

This is a revert of the revert, 7d48fd9dc2.

BUG=v8:3754
LOG=Y
R=dslomov@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26084}
2015-01-15 20:02:37 +00:00