Commit Graph

3821 Commits

Author SHA1 Message Date
Johnni Winther 0a2ed86935 Infer general flow through && and ||
Closes #34993

Change-Id: Ifb849e4525ba9e5518932b8fba2ae556fb49acb3
Reviewed-on: https://dart-review.googlesource.com/c/85502
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
2018-11-30 08:32:11 +00:00
Kevin Moore 440f190a34 Cleanup CompilerTask
make a number of fields private

Change-Id: Ib44aa3459e5d286004de7cb08e07039dc115894a
Reviewed-on: https://dart-review.googlesource.com/c/85645
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Commit-Queue: Kevin Moore <kevmoo@google.com>
2018-11-29 22:43:09 +00:00
Sigmund Cherem d9c6bc0316 Improvements to verbose timing data printing.
- format is padded and includes  %
- measure explicitly subtasks of deferred load
- use shorter names for other tasks


Sample output on swarm:

Info: Timings:
    kernel loader:                                 1.407s (17.1%)
    Front end:                                     0.736s  (8.9%)
    Front end > closures:                          0.102s  (1.2%)
    Front end > worldImpact:                       0.586s  (7.1%)
    Type inference:                                1.143s (13.9%)
    Deferred Loading:                              0.002s  (0.0%)
    Deferred Loading > prepare:                    0.002s  (0.0%)
    Enqueue:                                       0.455s  (5.5%)
    self:                                          0.914s (11.1%)
   *self > impl.run:                               0.034s  (0.4%)
    self > run:                                    0.206s  (2.5%)
    self > compileFromKernel:                      0.012s  (0.1%)
    self > computeClosedWorld:                     0.364s  (4.4%)
    self > processQueue:                           0.033s  (0.4%)
    self > emptyQueue:                             0.040s  (0.5%)
    self > applyImpact:                            0.146s  (1.8%)
    self > work.run:                               0.076s  (0.9%)
    SSA builder:                                   1.002s (12.2%)
    SSA optimizer:                                 1.302s (15.8%)
    SSA optimizer > SsaInstructionSimplifier:      0.421s  (5.1%)
    SSA optimizer > SsaTypeconversionInserter:     0.036s  (0.4%)
    SSA optimizer > SsaRedundantPhiEliminator:     0.012s  (0.1%)
    SSA optimizer > SsaDeadPhiEliminator:          0.010s  (0.1%)
    SSA optimizer > SsaTypePropagator:             0.261s  (3.2%)
    SSA optimizer > SsaCheckInserter:              0.030s  (0.4%)
    SSA optimizer > SsaDeadCodeEliminator:         0.067s  (0.8%)
    SSA optimizer > SsaGlobalValueNumberer:        0.071s  (0.9%)
    SSA optimizer > SsaCodeMotion:                 0.024s  (0.3%)
    SSA optimizer > SsaLoadElimination:            0.083s  (1.0%)
    SSA optimizer > SSA value range builder:       0.099s  (1.2%)
    SSA optimizer > SsaSimplifyInterceptors:       0.048s  (0.6%)
    SSA code generator:                            0.623s  (7.6%)
    Code emitter:                                  0.586s  (7.1%)
    Diagnostic handler:                            0.001s  (0.0%)
Change-Id: I4af3ff04954b28ee12354bc79eae517169a3b96e
Reviewed-on: https://dart-review.googlesource.com/c/85550
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Sigmund Cherem <sigmund@google.com>
2018-11-29 18:09:20 +00:00
Johnni Winther b52182ee14 Add LocalState to KernelTypeGraphBuilder
Move LocalsHandler.seenBreakOrContinue/seenReturnOrThrow/_tryBlock to LocalState
Move KernelTypeGraphBuilder._locals and KernelTypeGraphBuilder._fieldScope from visitor to LocalState

Change-Id: I712558ab3d18c6196fb5b96a4f8084d44848b83b
Reviewed-on: https://dart-review.googlesource.com/c/85444
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
2018-11-29 07:33:18 +00:00
Kevin Moore be5d0cca5c Remove sha1 impl from dart2js
pkg:crypto has a fine implementation
Change-Id: Ibefd6c294259c58cd4eb3ac8f5718a078894a39b
Reviewed-on: https://dart-review.googlesource.com/c/85415
Auto-Submit: Kevin Moore <kevmoo@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
2018-11-29 04:28:02 +00:00
Sigmund Cherem e9e70f0922 Reduce dependency on library spec from dart2js
Change-Id: I0d55b380f135d2e45a0dd112336bd87085e38c76
Reviewed-on: https://dart-review.googlesource.com/c/85471
Reviewed-by: Peter von der Ahé <ahe@google.com>
Commit-Queue: Sigmund Cherem <sigmund@google.com>
2018-11-28 17:12:11 +00:00
Johnni Winther b505f0830a Split LocalsHandler.mergeDiamondFlow into mergeFlow and mergeDiamondFlow.
Change-Id: Ic3e512a2abc67bf3c79c4c2f36f5e0b5e298c4aa
Reviewed-on: https://dart-review.googlesource.com/c/85285
Commit-Queue: Johnni Winther <johnniwinther@google.com>
Auto-Submit: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2018-11-27 14:07:01 +00:00
Johnni Winther 56dec98f0b Make LocalsHandler.locals and LocalsHandler.tryBlock private
Change-Id: I5a43ce1d38da666e2707481d59e29b57f8703bd5
Reviewed-on: https://dart-review.googlesource.com/c/85280
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2018-11-27 14:07:01 +00:00
Johnni Winther 418f2583bb Remove FieldInitializerScope from LocalsHandler
Change-Id: I14636228a2bc51f863f73be21913a9cc26b42257
Reviewed-on: https://dart-review.googlesource.com/c/85261
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Auto-Submit: Johnni Winther <johnniwinther@google.com>
2018-11-27 14:07:01 +00:00
Johnni Winther 406d0b3e9c Remove unused code from LocalsHandler
+ add test for issue 34993

Change-Id: Icd73c865e80ac9dca0e126c6b7e2c6c5320aef94
Reviewed-on: https://dart-review.googlesource.com/c/85240
Auto-Submit: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2018-11-27 14:07:01 +00:00
Johnni Winther 82f9884289 Support exact class and this expression relations in StrongModeConstraint
Change-Id: I32e6e5b6f55d4ef4240b6ba87eb26dfc2a699130
Reviewed-on: https://dart-review.googlesource.com/c/85166
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
2018-11-27 13:50:04 +00:00
Johnni Winther 9cfab12d36 Reorganize imports to decouple dart2js_target.dart from dart2js
Change-Id: Ie958dbbf75f5cac20074b2a64a4eefb9de636116
Reviewed-on: https://dart-review.googlesource.com/c/85290
Commit-Queue: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2018-11-27 09:15:34 +00:00
Johnni Winther bb4e2388b8 Use BasicInfo.resetIds
Change-Id: I69770f2d4f2e24b25cbeff644747ef605e14d4b9
Reviewed-on: https://dart-review.googlesource.com/c/85167
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
2018-11-23 08:51:52 +00:00
Sigmund Cherem 02f6395606 Cleanup library-loader: rename as kernel producer, remove some dependencies
Once we remove the frontend strategy object, we might want to remove some additional dependencies on KernelResult

Change-Id: I27ef1fbb12e671748b59a87d2dd249100501e02a
Reviewed-on: https://dart-review.googlesource.com/c/85060
Commit-Queue: Sigmund Cherem <sigmund@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
2018-11-21 17:59:18 +00:00
Johnni Winther 0fded45406 Handle serialization with --dump-info
Change-Id: I626eb8c7dca0b4e92f2aca79429f6e7336215840
Reviewed-on: https://dart-review.googlesource.com/c/84846
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
2018-11-21 09:40:02 +00:00
Johnni Winther e62951fd3d Use assigned variables data to infer static types for effectively final locals.
Change-Id: I3687d28628b0476c6a848f135bbda97e594449c2
Reviewed-on: https://dart-review.googlesource.com/c/84629
Commit-Queue: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2018-11-21 09:16:21 +00:00
Sigmund Cherem 59e17553f9 Upgrade call-instrumentation logic.
This:
 - exposes the feature as an experiment flag
 - cleans up the code to prevent issues with strong-mode checks
 - provides only a single implementation, but lets users use a hook to tailor the feature to their needs.
Change-Id: I3bf277b76b7503235c35bfbf83356c953405ff6f
Reviewed-on: https://dart-review.googlesource.com/c/84880
Commit-Queue: Sigmund Cherem <sigmund@google.com>
Reviewed-by: Stephen Adams <sra@google.com>
2018-11-20 20:10:01 +00:00
Johnni Winther 3bf6a550ea Add static type tests
Change-Id: I4282a1261ad4f4f4641750bd5ca492e5a943b6f0
Reviewed-on: https://dart-review.googlesource.com/c/84628
Commit-Queue: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Stephen Adams <sra@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2018-11-20 14:02:39 +00:00
Johnni Winther d544a5d3b6 Compute variable allocation data during closure scope visitor.
Change-Id: I71814a30ac469cbcfea5bf6804f6762c2e039c64
Reviewed-on: https://dart-review.googlesource.com/c/84625
Reviewed-by: Stephen Adams <sra@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2018-11-20 14:02:39 +00:00
Johnni Winther 601587b305 Make CapturedScopeBuilder child visits explicit
This prepares for computing additional information during traversal.

Change-Id: I90f5eb70dbfe5b41e1bf430ee142eb67ac4f052c
Reviewed-on: https://dart-review.googlesource.com/c/84623
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2018-11-20 14:02:39 +00:00
Johnni Winther b943fa897c Move closure scope classes to ir/
Change-Id: Ib14696e9ab8572e30343e0880c1d028cfc26b377
Reviewed-on: https://dart-review.googlesource.com/c/84621
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2018-11-20 14:02:39 +00:00
Stephen Adams 8422bf1a80 dart2js experiment: force parens around part file function
Apparently V8 will keep the parse tree and this might reduce startup latency in evaluating the deferred parts.

Change-Id: If8662c7efcc855a9e87779baeeb460108283e681
Reviewed-on: https://dart-review.googlesource.com/c/84882
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Commit-Queue: Stephen Adams <sra@google.com>
2018-11-20 02:56:21 +00:00
Stephen Adams bdf8b0bc79 [dart2js] Remove some clumbsy negations in generated JavaScript
This mostly fires on the expansions of

  a?.b = x;
  a?.f();

since these expansions to conditional, e.g.

  a==null ? null : (a.b = x)

have null in the then-branch which is unused in the statement context.

Change-Id: I2a9ab6e3c46e025eedb2040e0a083c29ff7c058e
Reviewed-on: https://dart-review.googlesource.com/c/84436
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Stephen Adams <sra@google.com>
2018-11-16 17:39:54 +00:00
Johnni Winther 2776108a8f Remove LocalsHandler._capturedAndBoxed
Change-Id: I1f91a59d1e64dedad61dec77dd74aa6cd8e360dd
Reviewed-on: https://dart-review.googlesource.com/c/84524
Reviewed-by: Stephen Adams <sra@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
2018-11-16 07:58:56 +00:00
Johnni Winther 4ae585ce86 Remove redundant fields from LocalsHandler
Change-Id: I6ba0db5996e0a6e1b9799cba01a1c5b6f9d81a42
Reviewed-on: https://dart-review.googlesource.com/c/84427
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
2018-11-15 09:30:24 +00:00
Sigmund Cherem 5a14f9e619 Remove unnecessary setupPackages step.
Since we switched to the CFE we no longer use this, the CFE recomputes the package-configuration internally.

Change-Id: Icdc2a3eeff1aa75e560157ecf0d5320208096d21
Reviewed-on: https://dart-review.googlesource.com/c/84362
Reviewed-by: Stephen Adams <sra@google.com>
Commit-Queue: Sigmund Cherem <sigmund@google.com>
2018-11-14 19:28:40 +00:00
Sigmund Cherem 5214afdb25 remove platform_configuration parser
This was a .ini-like format that we used for our old *.platform files. Those
files are now replaced by libraries.json.

Change-Id: Ica00fcdafcecf676195a07873c41622adafdf1e3
Reviewed-on: https://dart-review.googlesource.com/c/84340
Reviewed-by: Stephen Adams <sra@google.com>
Commit-Queue: Sigmund Cherem <sigmund@google.com>
2018-11-14 19:28:31 +00:00
Stephen Adams 9fb16b9669 Use independent name for lazy-initializing static getter
Change-Id: I235d7c2b4e2754b9b317dc1857c1c53692dc81e0
Reviewed-on: https://dart-review.googlesource.com/c/84363
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Commit-Queue: Stephen Adams <sra@google.com>
2018-11-14 04:15:44 +00:00
Stephen Adams 8d5d8342af Short form install-tear-offs for common cases
Change-Id: Ic2f3827ad391ab38b1b3eb1e3460e5f8931d05c3
Reviewed-on: https://dart-review.googlesource.com/c/84053
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Commit-Queue: Stephen Adams <sra@google.com>
2018-11-14 00:22:46 +00:00
teresy c92f9dce23 Faster isNotEmpty on collections
Uses isNotEmpty instead of length (as recommended in Effective Dart docs)

Closes #34751
https://github.com/dart-lang/sdk/pull/34751

GitOrigin-RevId: aa3a3c0f8f620987525d85823aad3e04015c115a
Change-Id: I8db647382a8e161ce2e74c7a2ce69459dfd7edd3
Reviewed-on: https://dart-review.googlesource.com/c/79160
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Alexander Thomas <athom@google.com>
2018-11-13 19:25:08 +00:00
Stephen Adams 74974952b9 Pass through method.requiredParameterCount
Pass through method.requiredParameterCount even when not needed for
Function.apply.

1. Decreases entropy (smaller gzip for same sized file)
2. We want the count for making decisions on using specialized tear-offs.

Change-Id: Ib45660b8a90425f003fc2fa1f670baf549fc6154
Reviewed-on: https://dart-review.googlesource.com/c/84022
Commit-Queue: Stephen Adams <sra@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2018-11-10 00:54:48 +00:00
Johnni Winther d062a41404 Make resolution/codegen_world_builder into libraries
Change-Id: Ic8c00b2b3cf13a21e165486c1c825df75edd7d7b
Reviewed-on: https://dart-review.googlesource.com/c/84021
Commit-Queue: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Sigmund Cherem <sigmund@google.com>
Auto-Submit: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2018-11-09 23:05:58 +00:00
Sigmund Cherem b484aada21 Remove library-root option - replace it with a libraries-spec option instead
Change-Id: Ie1df52cdaa7ab4381a4c1b94c61a1210f0f31b5f
Reviewed-on: https://dart-review.googlesource.com/c/83641
Commit-Queue: Sigmund Cherem <sigmund@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
2018-11-09 22:40:28 +00:00
Johnni Winther 9f9d7cdc7b Collapse JsKernelToElementMap hierarchy
Change-Id: I47df1a7f3af3d3741293ee43cd1d205842138f3b
Reviewed-on: https://dart-review.googlesource.com/c/84002
Auto-Submit: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
2018-11-09 20:20:41 +00:00
Johnni Winther 5cb37ff5b8 Collapse KernelToElementMapImpl hierarchy
Change-Id: Ia6e14e0890709448443c97561c8641d0379a3536
Reviewed-on: https://dart-review.googlesource.com/c/84001
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2018-11-09 20:20:41 +00:00
Johnni Winther 49a4a177ab Support explicit data files in --read-data and --write-data options
Change-Id: I7324efc8c0f0a86643b753e903fbb261168d77d6
Reviewed-on: https://dart-review.googlesource.com/c/84000
Commit-Queue: Johnni Winther <johnniwinther@google.com>
Auto-Submit: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2018-11-09 19:44:07 +00:00
Sigmund Cherem 1c1e013177 Introduce an interactive progress that uses a single line per phase
Change-Id: Ib8537192511dce32adfacbbaea31e7ae7184f617
Reviewed-on: https://dart-review.googlesource.com/c/83960
Commit-Queue: Sigmund Cherem <sigmund@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
2018-11-09 18:52:54 +00:00
Sigmund Cherem c44421dbba less verbose: remove progress form verbose mode, add a separate flag for it
Change-Id: Ieadc001316713e3434a22420956cd7d0bf6bc77d
Reviewed-on: https://dart-review.googlesource.com/c/83920
Commit-Queue: Sigmund Cherem <sigmund@google.com>
Reviewed-by: Stephen Adams <sra@google.com>
2018-11-09 18:06:41 +00:00
Stephen Adams 849ece596a [dart2js] Use properties on Closure class for one common case
We can share the properties for single-argument closures by putting
the properties on class Closure. (It is worthwhile to do this for zero
and two argument closures, but we will need to add subclasses. That
will be another CL).

Change-Id: I30027965150f64200396df3d82140fb112b0899f
Reviewed-on: https://dart-review.googlesource.com/c/83640
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Commit-Queue: Stephen Adams <sra@google.com>
2018-11-08 20:54:03 +00:00
Johnni Winther a9e2af657f Refactor static type computation
This decouples the computation of static types from the kernel impact
visitor and prepares for flow sensitive static types (i.e. guarded type
promotion).

Change-Id: Ic8b6283bd64d535ff49b1d6fee2e5ae38d48a2d9
Reviewed-on: https://dart-review.googlesource.com/c/83381
Commit-Queue: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2018-11-08 13:16:42 +00:00
Stephen Adams ff433daa03 Access more code via hunkHelpers
Change-Id: I0c43ea0903ee05b3c130e38f73bba9ce30b3506b
Reviewed-on: https://dart-review.googlesource.com/c/83540
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Commit-Queue: Stephen Adams <sra@google.com>
2018-11-07 22:02:31 +00:00
Stephen Adams 3be0d61793 Split installTearOff into static and instance versions
We will move other methods into `hunkHelpers` at a later stage.

Change-Id: Id37a0bddb81cc47af55baa2896dc5716ccacf3e1
Reviewed-on: https://dart-review.googlesource.com/c/83220
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Commit-Queue: Stephen Adams <sra@google.com>
2018-11-07 00:44:34 +00:00
Stephen Adams e9ba30a4b4 [dartjs] Shorten "call*" when minified
We can do this now 'mirrors' is not longer supported.

Change-Id: I469710df4c3d7e7f17b5a6ed9569f9e991f8bba6
Reviewed-on: https://dart-review.googlesource.com/c/82960
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Commit-Queue: Stephen Adams <sra@google.com>
2018-11-07 00:10:22 +00:00
Stephen Adams 36874154b4 [dart2js] Simplify defaulting bool.
The small diamond from `boolOrNull ?? false` can become a fast comparison:

    boolOrNull == null ? false : boolOrNull  -->  boolOrNull == true

The straight-line code is then available for other optimizations, e.g. generate-at-use placement.

Change-Id: I7a14705a82eda4c716ee600ccca44e6658187649
Reviewed-on: https://dart-review.googlesource.com/c/56160
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Commit-Queue: Stephen Adams <sra@google.com>
2018-11-05 21:43:01 +00:00
Stephen Adams 19659b399d Use '==' in more cases.
Change-Id: I06b576e88cb97e819cd238970c03b7908451e010
Reviewed-on: https://dart-review.googlesource.com/c/82100
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Commit-Queue: Stephen Adams <sra@google.com>
2018-11-05 19:43:08 +00:00
Sigmund Cherem 61df5fdec8 Encode dart2js source-map extensions in strings.
This reduce the memory footprint and cost of parsing these extensions.  Another
advantage is a reduction on the size of the .map files.  On a large customer
app, this was a 11% reduction, and the frames section was about 1Mb (excluding
the extra names and uris added on the existing tables).

The encoding works as follows:
 - minified names are written as a list of names and indices, in pairs.

    {'n1': 1, 'n2': 2} => 'n1,1,n2,2'

 - frames are encoded using a sequence of values with markers for the different
   kind of frames. Numbers are encoded using VLQ deltas. We use VLQ because it's
   already available to any parser that deals with the mappings).

This change also uses the dart2js_tools parser implementation for all unit tests.

Change-Id: Iacc2833c6517eb473955cc618adec501c610870f
Reviewed-on: https://dart-review.googlesource.com/c/82780
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Sigmund Cherem <sigmund@google.com>
2018-11-05 18:24:33 +00:00
Johnni Winther 9a1a7763f1 Skip checking of casts in metadata
This avoids assertion failure on js-interop class computation.

Change-Id: I040c6d63dbc427d239eb97c22dc8c3c67a6fb9fd
Reviewed-on: https://dart-review.googlesource.com/c/82722
Commit-Queue: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2018-11-05 10:40:58 +00:00
Matan Lurey c8fd361478 Stop using deprecated package:collection/*.dart
where `*.dart` isn't `collection.dart`.

Closes #32676
https://github.com/dart-lang/sdk/pull/32676

GitOrigin-RevId: 40f025bcf9ef71f6ccef5bc318f9862518aa0692
Change-Id: I95be4e7b31d269921a9ebbb91e5cdb2aa6702ec6
Reviewed-on: https://dart-review.googlesource.com/c/48460
Reviewed-by: Kevin Millikin <kmillikin@google.com>
Commit-Queue: Alexander Thomas <athom@google.com>
2018-11-05 10:13:06 +00:00
Johnni Winther 672a049303 Move KClosedWorldImpl to its own library
+ and merge it with its mixin

Change-Id: Ib0eea07cee0bed602be90cf4a324bd423cba0a86
Reviewed-on: https://dart-review.googlesource.com/c/82720
Commit-Queue: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2018-11-02 21:11:31 +00:00
Johnni Winther b9a67ee27d Merge ClosedWorldBase and JsClosedWorld
Change-Id: Iab026a163a7a63ab0dad2026f43f79e0eaa8da01
Reviewed-on: https://dart-review.googlesource.com/c/82680
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
2018-11-02 20:54:54 +00:00