Commit Graph

4698 Commits

Author SHA1 Message Date
Stephen Adams 7b70c720fb dart2js-kernel: Pass non-type arguments to constructor body
R=sigmund@google.com

Review-Url: https://codereview.chromium.org/2651503007 .
2017-01-24 16:32:35 -08:00
Johnni Winther 8ffcfdf662 Further improve precision of the type of node that hold type inference data.
R=sigmund@google.com

Review-Url: https://codereview.chromium.org/2653633002 .
2017-01-24 10:41:23 +01:00
Benjamin Dopplinger bf5597c95a Fix "classs" typos (#28469) 2017-01-23 17:00:24 +01:00
Johnni Winther bb9baa6822 Use entities in some full_emitter sublibraries
R=sigmund@google.com

Review-Url: https://codereview.chromium.org/2647793003 .
2017-01-23 11:26:28 +01:00
Johnni Winther f39cc61489 Make full_emitter parts into libraries
R=sigmund@google.com

Review-Url: https://codereview.chromium.org/2641353002 .
2017-01-23 11:11:18 +01:00
Johnni Winther 58842470d5 Use entities in native_emitter.dart
R=sigmund@google.com

Review-Url: https://codereview.chromium.org/2646733006 .
2017-01-23 11:05:25 +01:00
Johnni Winther 78d85d71b7 Use entities in js_emitter/model.dart
R=sigmund@google.com

Review-Url: https://codereview.chromium.org/2647893002 .
2017-01-23 10:44:57 +01:00
Emily Fortuna 0140674958 Fix labeled break statements.
BUG=
R=sra@google.com

Review-Url: https://codereview.chromium.org/2644293004 .
2017-01-20 16:18:04 -08:00
Stephen Adams 3b2a92c4c7 reformat previous CL
TBR=efortuna@google.com

Review-Url: https://codereview.chromium.org/2641953007 .
2017-01-20 15:04:05 -08:00
Stephen Adams 92d688ceeb dart2js-kernel: handle [TypeLiteral]s that are function types
R=efortuna@google.com

Review-Url: https://codereview.chromium.org/2650493002 .
2017-01-20 13:28:46 -08:00
Johnni Winther 240797ca12 Use entities in code_emitter_task
R=sigmund@google.com

Review-Url: https://codereview.chromium.org/2647613004 .
2017-01-20 09:59:21 +01:00
Johnni Winther c75f2f009b Use entities in main_call_stub_generator
R=sigmund@google.com

Review-Url: https://codereview.chromium.org/2639273004 .
2017-01-20 09:33:19 +01:00
Johnni Winther 564476044f Use entities in interceptor_stub_generator.
R=sigmund@google.com

Review-Url: https://codereview.chromium.org/2643863005 .
2017-01-20 09:28:05 +01:00
Johnni Winther b2fa02328a Use entities in class_stub_generator.
R=sigmund@google.com

Review-Url: https://codereview.chromium.org/2642063003 .
2017-01-20 09:22:25 +01:00
Johnni Winther 7a7d767f6d Change js_emitter parts into libraries
- to make it easier to discover dependencies for refactoring.

R=sigmund@google.com

Review-Url: https://codereview.chromium.org/2641813006 .
2017-01-20 09:14:16 +01:00
Stephen Adams df1bacb60b dart2js-kernel: Call generative constructor body functions
The generative constructor factory now calls the generative constructor body functions for the superclass chain.
The generative constructor body elements are created on demand and compiled via the enqueuer.

The call site is currently broken since it does not pass arguments.
That will done in a separate CL.

R=efortuna@google.com

Review-Url: https://codereview.chromium.org/2637533003 .
2017-01-19 19:49:30 -08:00
Stephen Adams 9a2636f99f dart2js: Move lowering of identical(a, b) from builder to optimizer
R=efortuna@google.com

Review-Url: https://codereview.chromium.org/2645973003 .
2017-01-19 17:30:39 -08:00
Harry Terkelsen 3e557730ac enable --dump-info with the --fast-startup emitter
R=sigmund@google.com

Review-Url: https://codereview.chromium.org/2637383005 .
2017-01-19 15:42:55 -08:00
Emily Fortuna d1027b2605 Implement complex switch statement (switch with continue).
BUG=https://github.com/dart-lang/sdk/issues/27394
R=sra@google.com

Review-Url: https://codereview.chromium.org/2648443004 .
2017-01-19 15:20:11 -08:00
Johnni Winther 31202cd96d Use entities.dart and types.dart in kernel impact computation.
R=sigmund@google.com

Review-Url: https://codereview.chromium.org/2639903004 .
2017-01-19 13:33:16 +01:00
Johnni Winther 916a8855d4 Mostly use entities in use.dart
R=sigmund@google.com

Review-Url: https://codereview.chromium.org/2644533002 .
2017-01-19 13:20:07 +01:00
Stephen Adams fdbc6688f1 dart2js: Make .runtimeType work for tear-off closures
BUG=
R=sigmund@google.com

Review-Url: https://codereview.chromium.org/2639733004 .
2017-01-18 17:41:48 -08:00
Emily Fortuna 0297135019 Propagate variable rename.
BUG=

Review-Url: https://codereview.chromium.org/2643993002 .
2017-01-18 16:44:32 -08:00
Emily Fortuna 67445d409e Implement switch statement, without the "complex switch statement" (aka switch statement with continue to a label).
Breaking this change up into two changes, as there's one last bug I'm tracking down on switch with continue.

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

Review-Url: https://codereview.chromium.org/2637483002 .
2017-01-18 16:22:03 -08:00
Emily Fortuna b7c40cc2e0 Implement async, await, yield and async for-in.
BUG=https://github.com/dart-lang/sdk/issues/27394
R=sra@google.com

Review-Url: https://codereview.chromium.org/2610903004 .
2017-01-18 15:15:34 -08:00
Sigmund Cherem c64c351539 Reverts the following two commits:
"Add support for the new function-type syntax." # e4999a6310.
"In function-type test: remove unused variables, make type stronger." # 02ffb3b140.

Reason to revert:
We found user code breaks because of ambiguous cases like this:

   ```
   class Function extends Foo {
      Function() : super();
   }
   ```

Today this fails when trying to parse the constructor.

We need to:
 * indicate this is not allowed anymore (probably at the class declaration)
 * allow it until we are ready to make it a breaking change (by maybe
 adding a special exception to allow this ambiguity in the syntax).
 * consider the language change to see whether we can prevent the breaking
 change if we use a different keyword.

BUG=
R=floitsch@google.com

Review-Url: https://codereview.chromium.org/2638063003 .
2017-01-18 10:13:38 -08:00
Johnni Winther 7713e62409 Remove use of FunctionSignature et al from call_structure.dart
R=sigmund@google.com

Review-Url: https://codereview.chromium.org/2630743002 .
2017-01-18 12:01:58 +01:00
Stephen Adams d47c12da31 dart2js-kernel: special-case InvalidType in 'is' and 'as'
BUG=
R=sigmund@google.com

Review-Url: https://codereview.chromium.org/2630633002 .
2017-01-13 12:08:19 -08:00
Florian Loitsch e4999a6310 Add support for the new function-type syntax.
Fixes #27967
BUG= http://dartbug.com/27967
R=sigmund@google.com

Committed: https://github.com/dart-lang/sdk/commit/85227ba8a60332a18ae92cb1b87bf15d52a909bd

Reverted: https://github.com/dart-lang/sdk/commit/f5fc210f4f79f7e6b7ccefc24e7565e810e9dc7d
Review-Url: https://codereview.chromium.org/2567133002 .
2017-01-13 18:45:47 +01:00
Florian Loitsch f5fc210f4f Revert "Add support for the new function-type syntax."
This reverts commit 85227ba8a6.

Review-Url: https://codereview.chromium.org/2627343004 .
2017-01-13 16:50:25 +01:00
Florian Loitsch 85227ba8a6 Add support for the new function-type syntax.
Fixes #27967
BUG= http://dartbug.com/27967
R=sigmund@google.com

Review-Url: https://codereview.chromium.org/2567133002 .
2017-01-13 15:57:08 +01:00
Johnni Winther 949e3884b2 Register JSFixedArray as instantiated.
Closes #27700

R=sigmund@google.com, sra@google.com

Review-Url: https://codereview.chromium.org/2624173002 .
2017-01-12 13:58:21 +01:00
Johnni Winther 9fd9b2fa84 Introduce LibraryEntity
R=sigmund@google.com

Review-Url: https://codereview.chromium.org/2620363002 .
2017-01-12 13:54:54 +01:00
Johnni Winther eac4142d42 Rename Enqueuer.universe to worldBuilder.
R=sigmund@google.com

Review-Url: https://codereview.chromium.org/2625713002 .
2017-01-12 13:26:59 +01:00
Johnni Winther 9fb86fe21d Use entities in various ssa helpers.
R=sigmund@google.com

Review-Url: https://codereview.chromium.org/2619813005 .
2017-01-12 13:08:20 +01:00
Johnni Winther 4d3c9611b6 Fix metadata processing
Review-Url: https://codereview.chromium.org/2625343002 .
2017-01-12 12:59:27 +01:00
Johnni Winther 58048f694e Use elements/types in constants/values
R=sigmund@google.com

Review-Url: https://codereview.chromium.org/2620023002 .
2017-01-12 12:22:15 +01:00
Johnni Winther f30bb5ce43 Use generic methods in DebugIterable
- to shut up the analyzer

R=sigmund@google.com

Review-Url: https://codereview.chromium.org/2624743002 .
2017-01-12 12:14:30 +01:00
Johnni Winther e39ce97819 Use entities in all masks.
R=sigmund@google.com

Review-Url: https://codereview.chromium.org/2622583004 .
2017-01-12 11:38:32 +01:00
Johnni Winther 9f4774cc81 Make .enclosingClass always return the declaration
This aligns the semantics of the Element model with the Entity model.

R=sigmund@google.com

Review-Url: https://codereview.chromium.org/2619243002 .
2017-01-12 10:56:12 +01:00
Johnni Winther 3964a9e0dd Rename inference files and classes post refactor
R=sigmund@google.com

Review-Url: https://codereview.chromium.org/2619723003 .
2017-01-12 10:39:59 +01:00
Stephen Adams a608c592fd Mark some string operations as GVN-able.
There are not many GVN optimizations, but knowing the calls are effect-free allows some fields to be load-eliminated, leading to the loaded value having a refined type. In a big app, about 20 calls to String.substring no longer need an interceptor.

R=sigmund@google.com

Review-Url: https://codereview.chromium.org/2518553003 .
2017-01-11 19:51:46 -08:00
Stephen Adams 82648dbef0 Compute sourceElement for closures
R=sigmund@google.com

Review-Url: https://codereview.chromium.org/2623303002 .
2017-01-11 17:15:50 -08:00
Florian Loitsch 9007ee6a2a Fix missing parenthesis.
Review-Url: https://codereview.chromium.org/2623283003 .
2017-01-11 22:27:51 +01:00
Florian Loitsch 71ec2f0297 Implement 'covariant' modifier for dart2js.
Also adds some tests.

Fixes #28165

BUG= http://dartbug.com/28165
R=sigmund@google.com

Review-Url: https://codereview.chromium.org/2626843003 .
2017-01-11 19:12:48 +01:00
Stephen Adams 499248e4e4 Fix for 27467 - dart2js error with re-entrant static initializer
BUG=
R=lrn@google.com

Review-Url: https://codereview.chromium.org/2620123002 .
2017-01-10 14:57:26 -08:00
Florian Loitsch 2547caab25 Reapply "reflectType() dynamic type arguments support (#26012)"
This was a pull request: 8a8033a417

MirrorsUsed doesn't transitively include reflective information. However, it must still be able to create TypeMirrors for types that are used as return- or parameter types.

Initially, the patch checked that TypeMirrors had the correct number of arguments for generic types. This is now disabled.

A better approach would be to know if a class has full reflective information, or not. But this would require much bigger changes to the system.

R=sigmund@google.com

Review-Url: https://codereview.chromium.org/2615943004 .
2017-01-10 15:53:21 +01:00
Stephen Adams b7dc78a844 dart2js-kernel: handle 'dynamic' as an expression
BUG=
R=efortuna@google.com

Review-Url: https://codereview.chromium.org/2620593002 .
2017-01-09 15:20:57 -08:00
Stephen Adams e9ea8e4d87 dart2js-kernel: handle top-level / static unresolved methods / getters / setters
R=efortuna@google.com

Review-Url: https://codereview.chromium.org/2621433002 .
2017-01-09 14:23:44 -08:00
Stephen Adams 0b00989fc4 dart2js-kernel: implement rethrow
R=efortuna@google.com

Review-Url: https://codereview.chromium.org/2616263002 .
2017-01-09 13:13:33 -08:00