Jacob Richman
a6a206062d
Custom formatter cleanup Fix case where displaying a class constructor generated unreadable huge output. Fix case where exceptions were throw. Correct display of statics, fix indentation bugs. Add improved custom formatter test to main repro. As a drive by fix, switch hashCode to use a symbol instead of the name $identityHash as $identityHash was making custom formatter test output unstable.
...
BUG=
R=vsm@google.com
Review-Url: https://codereview.chromium.org/2703263002 .
2017-02-28 17:47:53 -08:00
Jennifer Messerly
fe294f3753
unfork DDC's copy of most SDK libraries
...
There's some changes in strong mode errors we may want to follow up on.
Unforks the following: async, collection, convert, core, developer, internal, io, isolate, math, mirrors.
Does not unfork: html, indexed_db, js, js_util, svg, typed_data, web_audio, web_gl, web_sql.
R=vsm@google.com
Review-Url: https://codereview.chromium.org/2698353003 .
2017-02-28 17:10:52 -08:00
Vijay Menon
53971cb67e
Fix Function.apply
...
Fixes #27257 .
R=alanknight@google.com , jmesserly@google.com
Review-Url: https://codereview.chromium.org/2716583006 .
2017-02-24 19:24:48 -08:00
Leaf Petersen
ef120f105f
When metadata is not requested, elide signature information that is
...
not needed for dynamic checks (static fields/getters/setters and constructors).
BUG=
R=jmesserly@google.com
Review-Url: https://codereview.chromium.org/2711253004 .
2017-02-24 12:59:09 -08:00
Vijay Menon
4021fecb1a
Streamline field symbol names
...
Original CL from Kasper. :-)
R=jmesserly@google.com
Review-Url: https://codereview.chromium.org/2703373003 .
2017-02-23 14:11:21 -08:00
Jacob Richman
a1b8c1c6d5
Extend the API exposed to JS to include a method that resolves urls against the summaryDataStore finding the closest match to a file with a summary or returning null if no urls match the path.
...
Update dev_compiler web project to work with latest analyzer changes.
Tweak API to work better with new summary paths and small polish items.
BUG=
R=jmesserly@google.com
Review-Url: https://codereview.chromium.org/2713773004 .
2017-02-23 11:29:10 -08:00
Vijay Menon
0c8704e1c7
Rerun format
...
Looks like I forgot to do this on my last cl.
TBR=jmesserly@google.com
Review-Url: https://codereview.chromium.org/2709613003 .
2017-02-21 06:50:22 -08:00
Vijay Menon
1ec614fd7b
Enable DDC output to run on v8/d8 using ES6 modules
...
Fixes #27309
V8 / D8 tip supports ES6 modules natively. It's a little cumbersome
to set up, but hello world runs. :-)
> ln -s $DDC_PATH/lib/js/es6/ddc_sdk.js ddc_sdk
> dart $DDC_PATH/bin/dartdevc.dart --dart-sdk-summary $DDC_PATH/lib/sdk/ddc_sdk.sum --modules es6 -o hello hello.dart
> cat > run.js
import { hello } from 'hello';
hello.main();
> d8 --module run.js
R=jmesserly@google.com
Review-Url: https://codereview.chromium.org/2701963002 .
2017-02-17 16:54:21 -08:00
Vijay Menon
5601a604f0
Cleanup proxy/defer code
...
This cleans up some issues I found when merging this internally.
R=jacobr@google.com
Review-Url: https://codereview.chromium.org/2699943003 .
2017-02-17 08:12:03 -08:00
Vijay Menon
e011ac789e
Deferred parsing for legacy modules
...
This is a nice win for large, internal apps. Module code is not parsed until accesses via proxy.
R=jmesserly@google.com
Review-Url: https://codereview.chromium.org/2697093002 .
2017-02-15 16:30:20 -08:00
Leaf Petersen
fd6f2cc4cc
Add generic types to Future.forEach in DDC sdk
...
BUG=
R=vsm@google.com
Review-Url: https://codereview.chromium.org/2696133005 .
2017-02-15 11:17:25 -08:00
Paul Berry
02ff6326d7
Remove unused TokenType.IS.
...
TokenType is used for symbols, not keywords.
R=brianwilkerson@google.com
Review-Url: https://codereview.chromium.org/2691043003 .
2017-02-13 11:17:02 -08:00
Vijay Menon
986a1c2775
keep null check on virtual field
...
We weren't correctly blocking the opt if the field was marked virtual
R=leafp@google.com
Review-Url: https://codereview.chromium.org/2693593002 .
2017-02-10 16:00:13 -08:00
Vijay Menon
30c8ca6616
Use computeConstantValue instead of constantValue
...
Paul, you recommended that we switch to this a while back, but it got
lost in the shuffle. I noticed we seem to drop some unneeded null
checks in generated code with this change. :-)
R=paulberry@google.com
Review-Url: https://codereview.chromium.org/2684303002 .
2017-02-09 12:35:31 -08:00
Vijay Menon
b27e65d5d1
Unwrap type if needed on dcall
...
R=leafp@google.com
Review-Url: https://codereview.chromium.org/2672273004 .
2017-02-06 20:51:53 -08:00
Jennifer Messerly
5817ba47e2
fix #28642 , handling of top and bottom types in DDC
...
in particular: void, Null, and combinations with FutureOr<T>
R=leafp@google.com
Review-Url: https://codereview.chromium.org/2671113002 .
2017-02-06 14:56:10 -08:00
Leaf Petersen
a3b4366f11
Infer Null for return type of functions with empty returns.
...
This allows inference to infer Null as the return type of functions
which have no return statements, or which return with no value.
Also allows inference to propagate Null.
Fixes https://github.com/dart-lang/sdk/issues/28602
Fixes https://github.com/dart-lang/sdk/issues/28630
BUG=
R=brianwilkerson@google.com , jmesserly@google.com
Review-Url: https://codereview.chromium.org/2667343005 .
2017-02-06 12:24:39 -08:00
Jacob Richman
a8c7e74424
Remove dynamic call from _LinkedHashSet. Remove some dcalls from the dart:html util library.
...
BUG=
R=alanknight@google.com , vsm@google.com
Review-Url: https://codereview.chromium.org/2666053004 .
2017-02-01 13:26:41 -08:00
Jacob Richman
f6151f902e
Fix dynamic calls on JS interop classes.
...
BUG=
Review-Url: https://codereview.chromium.org/2668543002 .
2017-01-30 14:19:07 -08:00
Jacob Richman
f3c33b047d
Remove spurious call to captureStackTrace.
...
Just creating an Error object is sufficient on FF,
Chrome, Safari, and Edge. Note that captureStackTrace
was not supported by other browsers so those browsers
were going down the even slower path of throwing an
exception.
BUG=
R=vsm@google.com
Review-Url: https://codereview.chromium.org/2668503002 .
2017-01-30 13:30:31 -08:00
Jacob Richman
c3870fc93f
Fix mocking native classes and add a regression test.
...
BUG=
R=vsm@google.com
Review-Url: https://codereview.chromium.org/2656363003 .
2017-01-27 14:34:19 -08:00
Jacob Richman
959a375541
Fix getFieldType to handle metadata and workaround bad types for setters called via mirrors.
...
BUG=
R=vsm@google.com
Review-Url: https://codereview.chromium.org/2664493005 .
2017-01-27 14:23:34 -08:00
Vijay Menon
50ccf6d9b5
Fix DOM constructors in inline JS
...
R=jacobr@google.com
Review-Url: https://codereview.chromium.org/2659063002 .
2017-01-27 09:47:13 -08:00
Vijay Menon
fd94337b42
Fix for Animation and other polyfills
...
The polyfill code needs to run before dart_sdk is loaded. Otherwise, the registerExtension step on these types does not work.
Also fixes #27605
R=jacobr@google.com
Review-Url: https://codereview.chromium.org/2649613003 .
2017-01-25 16:18:49 -08:00
Vijay Menon
a91cc9cc9e
Use microtasks in dart.async
...
Not quite sure about this, but it makes ordering match for the example in #28509
R=jmesserly@google.com
Review-Url: https://codereview.chromium.org/2653253002 .
2017-01-25 16:14:01 -08:00
Jennifer Messerly
0e00b3e5c8
fix #28008 , fix #28009 implement FutureOr<T>
...
This implements FutureOr<T> in strong mode, otherwise it's ignored (treated as `dynamic`.
Also fixes strong mode's inference subtype function incorrectly treating `void` as a malformed type. This had the consequence of allowing `void` to be inferred as a type argument.
R=leafp@google.com , paulberry@google.com
Review-Url: https://codereview.chromium.org/2647833002 .
2017-01-25 15:32:57 -08:00
Jacob Richman
d90ed8c295
Fix noSuchMethod handling of methods that are also extension methods. Fix noSuchMethod handling of methods with names that are rewritten in DDC e.g. "_get" instead of "[]" Fix some mirror system handling of symbols with names that are rewritten in DDC
...
BUG=
R=jmesserly@google.com
Review-Url: https://codereview.chromium.org/2623053004 .
2017-01-24 11:16:21 -08:00
Konstantin Shcheglov
b206c84210
Reland c9e1b88 and 56726fc with a DDC fix.
...
Revert "Revert "Use single InputPackagesResultProvider, without SdkSummaryResultProvider.""
This reverts commit b701ad6453 .
R=brianwilkerson@google.com , vsm@google.com
BUG=
Review-Url: https://codereview.chromium.org/2647323006 .
2017-01-24 09:13:26 -08:00
Jacob Richman
d6063ca391
Closes https://github.com/dart-lang/sdk/issues/28291
...
Fix extending a JS class and add a test to ensure it
continues to work from DDC. Note this behavior will never
be supported in Dartium and is not yet supported by Dart2JS.
BUG=
R=vsm@google.com
Review-Url: https://codereview.chromium.org/2654583002 .
2017-01-24 07:20:31 -08:00
Vijay Menon
b701ad6453
Revert "Use single InputPackagesResultProvider, without SdkSummaryResultProvider."
...
This reverts commit c9e1b888a3 .
Revert "Remove parent from SummaryResynthesizer."
This reverts commit 56726fcce0 .
TBR=scheglov@google.com
Review-Url: https://codereview.chromium.org/2648213007 .
2017-01-24 06:21:38 -08:00
Konstantin Shcheglov
c9e1b888a3
Use single InputPackagesResultProvider, without SdkSummaryResultProvider.
...
Each SummaryResynthesizer is now responsible for creating its TypeProvider.
And with the new AnalysisDriver we stop using SDK CachePartition.
For now we add SDK's summary bundle into SummaryDataStore.
Eventually we will get rid of it and add individual SDK libraries.
R=brianwilkerson@google.com , paulberry@google.com , vsm@google.com
BUG=
Review-Url: https://codereview.chromium.org/2652823002 .
2017-01-23 16:54:17 -08:00
Vijay Menon
a7f7a311c0
Fix for covariant
...
We've been silently failing to rebuild the SDK since covariant was added.
Looking at making SDK build break fail the presubmit!
TBR=leafp@google.com ,jacobr@google.com
Review-Url: https://codereview.chromium.org/2648863002 .
2017-01-20 15:20:44 -08:00
Leaf Petersen
8ae2f82dce
Eliminate redundant signatures.
...
The check to see that a method signature was redundant was not
handling generics correctly. This CL fixes it, so that we no
longer emit redundant signatures for methods on generic
classes. This should help with startup and code size a bit.
Fixes https://github.com/dart-lang/sdk/issues/28432
BUG=
R=rnystrom@google.com
Review-Url: https://codereview.chromium.org/2640793007 .
2017-01-19 12:44:39 -08:00
Bob Nystrom
590a188066
Use "Object" as the reified type of covariant override parameters.
...
This ensures the runtime type is of the tear-off expression's static
type, even when accessed through a superclass.
I also moved the two tests into a subdirectory so they are easier to
find. (It is inscrutable to me why we would have a single directory
with 1,868 test files in it.) That involved enabling recursive
directory listing in codegen_test, which exposed a couple of things.
Fix #27484 .
R=leafp@google.com
Review-Url: https://codereview.chromium.org/2641543003 .
2017-01-18 14:48:42 -08:00
Vijay Menon
5b34e47f40
Fix subtyping check on number
...
language_strong/null_is_test started failing on Konstantin's recent change. Another test started passing.
Does this fix make sense to you guys?
TBR=leafp@google.com ,scheglov@google.com
Review-Url: https://codereview.chromium.org/2638393004 .
2017-01-18 13:27:27 -08:00
Vijay Menon
c83dac537f
Throw TypeError on arg mismatch
...
Improvement on #28286 - this is still not quite right as we'll throw a
TypeError instead of a NSM in certain cases depending on the order.
The spec will only throw a TypeError if NSM doesn't apply.
R=leafp@google.com
Review-Url: https://codereview.chromium.org/2636313002 .
2017-01-17 16:26:22 -08:00
Vijay Menon
f710e7209a
Make ddc legacy loader more defensive
...
This should match what we need internally.
R=alanknight@google.com , jacobr@google.com
Review-Url: https://codereview.chromium.org/2634463002 .
2017-01-13 08:01:56 -08:00
Brian Wilkerson
22f561e914
Reapply "Add support for generic function type syntax, part 1"
...
R=scheglov@google.com
Review-Url: https://codereview.chromium.org/2622303006 .
2017-01-11 14:10:05 -08:00
Brian Wilkerson
85b1e7abbe
Revert "Add support for generic function type syntax, part 1"
...
Review-Url: https://codereview.chromium.org/2624283003 .
2017-01-11 13:30:52 -08:00
Brian Wilkerson
1cd918533d
Add support for generic function type syntax, part 1
...
R=scheglov@google.com
Review-Url: https://codereview.chromium.org/2613383003 .
2017-01-11 13:12:10 -08:00
Vijay Menon
df45dacb88
Fixes #28338
...
Fix await/cascade bug and corresponding test.
R=jmesserly@google.com
Review-Url: https://codereview.chromium.org/2628053002 .
2017-01-11 12:37:18 -08:00
Vijay Menon
46b7f79fd5
Defer all recursive mixins
...
This defers mixins along with the supertype. It passes Leaf's example on the bug. Will add that as a proper test.
Fixes #28334
R=jmesserly@google.com
Review-Url: https://codereview.chromium.org/2625913003 .
2017-01-11 10:32:23 -08:00
Vijay Menon
be95523221
Cleanup references to the old DDC repo
...
Reachable issues migrated over.
R=jmesserly@google.com
Review-Url: https://codereview.chromium.org/2621543004 .
2017-01-10 12:56:29 -08:00
Vijay Menon
33c8f425b6
Disable auto "debugger" call for tests
...
R=jacobr@google.com
Review-Url: https://codereview.chromium.org/2621823002 .
2017-01-09 15:42:42 -08:00
Jacob Richman
badfd146d2
Fix type error in js_dart2js.dart caught by DDC.
...
BUG=
R=vsm@google.com
Review-Url: https://codereview.chromium.org/2611423002 .
2017-01-09 07:42:49 -08:00
Leaf Petersen
7ab0daeedf
Make EventStreamSubscription DDC safe.
...
EventStreamSubscription.listen does a cast which is only working in
DDC because we're ignoring the failure. This wraps the listener to
check the argument rather than casting the function. Also picks up a
few misc changes to the main SDK that hadn't been merged into DDC.
BUG=
R=jacobr@google.com
Review-Url: https://codereview.chromium.org/2609633002 .
2017-01-09 04:13:36 -08:00
Leaf Petersen
83fc4b6b46
Put a TypeProvider on the TypeSystem implementations.
...
Adding a TypeProvider instance to TypeSystem to avoid needing to
thread it through the various APIs, and to avoid having to change
the API every time a method which previously did not need to
access the TypeSystem suddenly does.
BUG=
R=jmesserly@google.com
Review-Url: https://codereview.chromium.org/2590883004 .
2017-01-09 02:40:10 -08:00
Jennifer Messerly
95d5bf471c
fix analyzer failing resolve loop variable nodes
...
for example: `var item; for (item in list) { ... }`
this happens anytime ResolutionCopier is used on these, because it drops the staticElement reference for `item` in the above example.
R=vsm@google.com
Review-Url: https://codereview.chromium.org/2612983002 .
2017-01-05 10:47:43 -08:00
Dan Rubel
55ef6e193c
support --options flag and other analysis options flags in DDC
...
This updates DDC options processing to support:
* --options /path/to/analysis/options/file.yaml
* --enable-strict-call-checks
* --supermixin
* --no-implicit-casts
* --no-implicit-dynamic
As well as general refactoring and cleanup of DDC options processing
R=vsm@google.com
Review-Url: https://codereview.chromium.org/2598593003 .
2017-01-04 18:15:21 -05:00
Jacob Richman
93fb5d8119
Fix cross-window JS interop on FireFox.
...
BUG=
R=vsm@google.com
Review-Url: https://codereview.chromium.org/2610813003 .
2017-01-04 14:15:20 -08:00