Commit Graph

4698 Commits

Author SHA1 Message Date
Johnni Winther 1567a4c21b Handle Native("...") annotations in KernelBehaviorBuilder.
Closes #28157

R=sigmund@google.com

Review-Url: https://codereview.chromium.org/2681123004 .
2017-02-10 10:49:19 +01:00
Johnni Winther cc60ef19f5 Handle Creates and Returns annotations in KernelBehaviorBuilder
R=sigmund@google.com

Review-Url: https://codereview.chromium.org/2685673004 .
2017-02-10 10:43:39 +01:00
Johnni Winther 68b1c1a827 Add KernelNativeBehaviorComputer
- to support NativeBehavior computation from KernelWorldBuilder.

R=sigmund@google.com

Review-Url: https://codereview.chromium.org/2679913006 .
2017-02-10 10:36:35 +01:00
Johnni Winther a2b0a1bc1b Refactor ConstantSystem
- to prepare for kernel based implementation

R=sigmund@google.com

Review-Url: https://codereview.chromium.org/2684783003 .
2017-02-10 10:30:16 +01:00
Johnni Winther eb411556e6 Add NoSourceLocationMarker in old source-info engine.
R=sigmund@google.com

Review-Url: https://codereview.chromium.org/2682813005 .
2017-02-10 10:03:45 +01:00
Johnni Winther a2837b78d5 Refactor computation of NativeBehavior.
- to prepare for kernel based implementation.

R=sigmund@google.com

Review-Url: https://codereview.chromium.org/2686533002 .
2017-02-09 11:20:36 +01:00
Johnni Winther 1498e533e0 Remove LibraryEntity.libraryName
- use libraryName for LibraryElement.name if available.

R=sigmund@google.com

Review-Url: https://codereview.chromium.org/2632643002 .
2017-02-08 11:37:01 +01:00
Johnni Winther af4b2b8e30 Extract InterceptorData from JavaScriptBackend.
R=sigmund@google.com

Review-Url: https://codereview.chromium.org/2680823002 .
2017-02-08 11:04:53 +01:00
Johnni Winther 52efadefc2 Replace Backend with JavaScriptBackend.
R=sigmund@google.com

Review-Url: https://codereview.chromium.org/2685573002 .
2017-02-08 10:50:55 +01:00
Johnni Winther 20e2aa4f0e Fix access to returnTypeOf
- a field does not have a return type.

Review-Url: https://codereview.chromium.org/2685783003 .
2017-02-08 10:08:23 +01:00
Emily Fortuna f8f60f1ec4 Fix the loops break label test with Kernel.
BUG=https://github.com/dart-lang/sdk/issues/28670
R=sigmund@google.com

Review-Url: https://codereview.chromium.org/2682823002 .
2017-02-07 14:49:29 -08:00
Sigmund Cherem ac6bf5926f Temporarily allow to import dart:io in client apps.
Disclaimer: I am not in favor of this approach, but it appears to be the least
worst option at the time.

Reach out to kevmoo@ or dgrove@ for details.

R=lrn@google.com, sra@google.com, dgrove@google.com, kevmoo@google.com

Review-Url: https://codereview.chromium.org/2675023002 .
2017-02-07 14:02:04 -08:00
Emily Fortuna 0eb961850a Fix lingering switch statement test failures.
BUG=
R=sra@google.com

Review-Url: https://codereview.chromium.org/2682553002 .
2017-02-07 10:38:28 -08:00
Johnni Winther fe702abc55 Refactor BackendHelpers to be reusageable with KernelWorldBuilder
- introduces ElementEnvironment and uses it to implement most of CommonElements and BackendHelpers

R=sigmund@google.com

Review-Url: https://codereview.chromium.org/2675103003 .
2017-02-07 10:29:16 +01:00
Stephen Adams 435da5d44b dart2js: Keep refined type for type checks
The generated code for inserted receiver and argument type checks
depends on the input type.  Keeping the type after removing HTypeKnown
refinements give better code.

In a large app, 58% of the 'int' tests are replaced with cheaper 'num'
tests on the basis of the more precise input type.

R=sigmund@google.com

Review-Url: https://codereview.chromium.org/2674813004 .
2017-02-03 16:33:36 -08:00
Emily Fortuna f5cc947dd7 Implement SuperPropertySet and SuperNoSuchMethod.
BUG=https://github.com/dart-lang/sdk/issues/27394
R=sra@google.com

Review-Url: https://codereview.chromium.org/2672063003 .
2017-02-03 14:17:53 -08:00
Stephen Adams 49c97bc13f Use for-in loop variable name if possible
BUG=
R=efortuna@google.com

Review-Url: https://codereview.chromium.org/2667003005 .
2017-02-03 13:51:30 -08:00
Sigmund Cherem 3b1fdbac79 Only generate coverageIds when needed
R=kevmoo@google.com

Review-Url: https://codereview.chromium.org/2676693003 .
2017-02-03 09:00:53 -08:00
Stephen Adams a2ba9abbcc dart2js: Introduce HGetLength to replace strange use of HFieldGet
Adding the new instruction lets HFieldGet have a [FieldEntity] element.

R=johnniwinther@google.com

Review-Url: https://codereview.chromium.org/2673513003 .
2017-02-02 13:00:12 -08:00
Peter von der Ahé 2cd456fbb0 Improve handling of parser stack overflows.
Fixes https://github.com/dart-lang/sdk/issues/28597

R=johnniwinther@google.com

Review-Url: https://codereview.chromium.org/2671653005 .
2017-02-02 15:55:18 +01:00
Johnni Winther b789a27f05 Refactor ConstantExpression/ConstantConstructor to use entities.
R=sigmund@google.com

Review-Url: https://codereview.chromium.org/2669703003 .
2017-02-02 10:12:24 +01:00
Johnni Winther a78e2e9806 Remove code supporting incremental compilation in dart2js
R=sigmund@google.com

Review-Url: https://codereview.chromium.org/2668233002 .
2017-02-02 09:48:19 +01:00
Peter von der Ahé ce742a1697 Port parser and scanner fixes from rasta branch.
R=johnniwinther@google.com

Review-Url: https://codereview.chromium.org/2664593002 .
2017-02-01 13:59:11 +01:00
Peter von der Ahé d0d27c1c38 Use parser and scanner from package:front_end.
Originally reviewed as:

    Review-Url: https://codereview.chromium.org/2650413002 .
    Review-Url: https://codereview.chromium.org/2652203002 .
    Review-Url: https://codereview.chromium.org/2655843002 .
    Review-Url: https://codereview.chromium.org/2654433009 .
    Review-Url: https://codereview.chromium.org/2647343003 .
    Review-Url: https://codereview.chromium.org/2652663005 .
    Review-Url: https://codereview.chromium.org/2650813002 .
    Review-Url: https://codereview.chromium.org/2650803002 .
    Review-Url: https://codereview.chromium.org/2651843004 .
    Review-Url: https://codereview.chromium.org/2649923002 .
    Review-Url: https://codereview.chromium.org/2651563003 .
    Review-Url: https://codereview.chromium.org/2649123002 .
    Review-Url: https://codereview.chromium.org/2644843006 .
    Review-Url: https://codereview.chromium.org/2647043002 .
    Review-Url: https://codereview.chromium.org/2642903003 .
    Review-Url: https://codereview.chromium.org/2645513002 .
    Review-Url: https://codereview.chromium.org/2642663003 .
    Review-Url: https://codereview.chromium.org/2642713002 .
    Review-Url: https://codereview.chromium.org/2635473002 .
    Review-Url: https://codereview.chromium.org/2624373003 .
    Review-Url: https://codereview.chromium.org/2627723006 .
    Review-Url: https://codereview.chromium.org/2627093007 .
    Review-Url: https://codereview.chromium.org/2629543008 .
    Review-Url: https://codereview.chromium.org/2629543007 .
    Review-Url: https://codereview.chromium.org/2631503002 .
    Review-Url: https://codereview.chromium.org/2621153006 .
2017-02-01 10:29:25 +01:00
Peter von der Ahé 2a4bc2c7e5 Move parser, scanner, and link to front_end.
Originally reviewed as:

    Review-Url: https://codereview.chromium.org/2650413002 .
    Review-Url: https://codereview.chromium.org/2652203002 .
    Review-Url: https://codereview.chromium.org/2655843002 .
    Review-Url: https://codereview.chromium.org/2654433009 .
    Review-Url: https://codereview.chromium.org/2647343003 .
    Review-Url: https://codereview.chromium.org/2652663005 .
    Review-Url: https://codereview.chromium.org/2650813002 .
    Review-Url: https://codereview.chromium.org/2650803002 .
    Review-Url: https://codereview.chromium.org/2651843004 .
    Review-Url: https://codereview.chromium.org/2649923002 .
    Review-Url: https://codereview.chromium.org/2651563003 .
    Review-Url: https://codereview.chromium.org/2649123002 .
    Review-Url: https://codereview.chromium.org/2644843006 .
    Review-Url: https://codereview.chromium.org/2647043002 .
    Review-Url: https://codereview.chromium.org/2642903003 .
    Review-Url: https://codereview.chromium.org/2645513002 .
    Review-Url: https://codereview.chromium.org/2642663003 .
    Review-Url: https://codereview.chromium.org/2642713002 .
    Review-Url: https://codereview.chromium.org/2635473002 .
    Review-Url: https://codereview.chromium.org/2624373003 .
    Review-Url: https://codereview.chromium.org/2627723006 .
    Review-Url: https://codereview.chromium.org/2627093007 .
    Review-Url: https://codereview.chromium.org/2629543008 .
    Review-Url: https://codereview.chromium.org/2629543007 .
    Review-Url: https://codereview.chromium.org/2631503002 .
    Review-Url: https://codereview.chromium.org/2621153006 .
2017-02-01 10:29:25 +01:00
Johnni Winther 1511bb8647 Handle JS-calls in impact_test.
R=sigmund@google.com

Review-Url: https://codereview.chromium.org/2668723002 .
2017-02-01 10:22:24 +01:00
Johnni Winther 7060fa7209 Handle private dynamic access in impact_test.
R=sigmund@google.com

Review-Url: https://codereview.chromium.org/2662253002 .
2017-02-01 10:15:39 +01:00
Johnni Winther 3dfcafe5be Check equivalence on impact computed with KernelWorldBuilder.
R=sigmund@google.com

Review-Url: https://codereview.chromium.org/2668623003 .
2017-02-01 10:10:13 +01:00
Johnni Winther 26f8509fee Prepare equivalence strategies for testing entities.
R=sigmund@google.com

Review-Url: https://codereview.chromium.org/2663033004 .
2017-02-01 10:05:02 +01:00
Johnni Winther 4358efc0ca Add test for expected source mappings
R=sigmund@google.com

Review-Url: https://codereview.chromium.org/2667983002 .
2017-02-01 10:00:17 +01:00
Stephen Adams 4867cf9adc Redo "dart2js: Redo known-type analysis after load-elimination"
BUG=

Review-Url: https://codereview.chromium.org/2662493004 .
2017-01-31 16:59:24 -08:00
Emily Fortuna 6baace1a2f Add SuperPropertyGet.
BUG=https://github.com/dart-lang/sdk/issues/27394
R=sra@google.com

Review-Url: https://codereview.chromium.org/2666803002 .
2017-01-31 13:53:12 -08:00
Johnni Winther 1672873f45 Add KernelWorldBuilder and KElement model.
R=sigmund@google.com

Review-Url: https://codereview.chromium.org/2666553002 .
2017-01-31 10:33:35 +01:00
Johnni Winther 1275367501 Extract reusable parts of KernelAstAdapter in a mixin.
R=sigmund@google.com

Review-Url: https://codereview.chromium.org/2663793002 .
2017-01-31 10:12:55 +01:00
Johnni Winther 4927afc21f Move Entity and Local to entities.dart
- and use entities in Name, MapLiteralUse and ListLiteralUse.

R=sigmund@google.com

Review-Url: https://codereview.chromium.org/2667473003 .
2017-01-31 10:02:18 +01:00
Johnni Winther d743d2f2bc Introduce ConstructorEntity
R=sigmund@google.com

Review-Url: https://codereview.chromium.org/2661873002 .
2017-01-31 09:56:28 +01:00
Johnni Winther cb6d6c449e Use entities in BackendClasses
R=sigmund@google.com

Review-Url: https://codereview.chromium.org/2659883002 .
2017-01-30 10:28:46 +01:00
Stephen Adams 946a34761b Revert "dart2js: Redo known-type analysis after load-elimination"
TBR=sigmund@google.com

Review-Url: https://codereview.chromium.org/2663583002 .
2017-01-27 16:52:17 -08:00
Emily Fortuna 77a7768163 Add default value to isBreakTarget optional parameter.
<shame cube>
TBR=sigmund@google.com

BUG=

Review-Url: https://codereview.chromium.org/2650853012 .
2017-01-27 13:42:08 -08:00
Emily Fortuna b26135f160 Fix Rasta to correctly identify added break targets in switch statements.
This fixes the empty statement try/catch/switch test Stephen was asking about.

BUG=https://github.com/dart-lang/sdk/issues/28533
R=sigmund@google.com

Review-Url: https://codereview.chromium.org/2664513003 .
2017-01-27 13:27:23 -08:00
Stephen Adams 8b1f285c69 dart2js: Redo known-type analysis after load-elimination
Code like

  if (this.field is X) {
    (this.field as X)...
  }

after GVN and/or load-elimination becomes

  t1 = this.field;
  if (t1 is X) {
    (t1 as X)...
  }

so it is worth redoing the analysis that allows the elimination of
guaranteed-to-succeed 'as' check.  About 5% of the as-checks in a
large app are optimized out with this change.

R=sigmund@google.com

Review-Url: https://codereview.chromium.org/2657453004 .
2017-01-27 10:53:57 -08:00
Johnni Winther c84808cc83 Extract reusable parts of _CompilerCommonElements in a CommonElementsMixin
R=sigmund@google.com

Review-Url: https://codereview.chromium.org/2654293002 .
2017-01-27 09:20:41 +01:00
Johnni Winther cca5fa4114 Rename KernelWorldBuilder to KernelElementAdapter.
R=sigmund@google.com

Review-Url: https://codereview.chromium.org/2655263002 .
2017-01-27 09:13:51 +01:00
Johnni Winther 8c86a3c5db Fix query to isFunctionApplyMethod
Review-Url: https://codereview.chromium.org/2656073002 .
2017-01-26 13:16:47 +01:00
Johnni Winther 6c919f02b4 Add no-info mappings at start of out.js and after mapped functions
R=sigmund@google.com

Review-Url: https://codereview.chromium.org/2654023003 .
2017-01-26 11:46:06 +01:00
Johnni Winther a3d0329735 Use entities in CommonElements interface.
R=sigmund@google.com

Review-Url: https://codereview.chromium.org/2653203002 .
2017-01-26 10:29:13 +01:00
Johnni Winther d2645e2ffd Further decouple KernelImpactBuilder from elements
R=sigmund@google.com

Review-Url: https://codereview.chromium.org/2655843003 .
2017-01-26 10:23:56 +01:00
Johnni Winther c885d809b6 Add inference test functionality based on code point id.
The code point id is meant to be basis for AST/Kernel-IR equivalence and the test framework should thereby be portable to a Kernel based inference.

R=sigmund@google.com

Review-Url: https://codereview.chromium.org/2656583003 .
2017-01-25 14:44:28 +01:00
Johnni Winther fb75d52521 Introduce KernelWorldBuilder
R=sigmund@google.com

Review-Url: https://codereview.chromium.org/2651803003 .
2017-01-25 10:16:32 +01:00
Stephen Adams 12300fa688 Fix crash when using type parameters on custom elements
The fix ensures that the custom element '.created' constructor has 'receiver' as the first argument.

This prevents the crash reported in https://github.com/dart-lang/sdk/issues/28457
The type arguments will be seen as 'dynamic' because there is no way to specify them from document.createElement or HTML.

TBR=sigmund@google.com

BUG= https://github.com/dart-lang/sdk/issues/28457

Review-Url: https://codereview.chromium.org/2645283005 .
2017-01-24 18:25:04 -08:00