Commit Graph

283 Commits

Author SHA1 Message Date
Vijay Menon 089d9c4afa Fix custom formatter setup
R=jacobr@google.com

Review-Url: https://codereview.chromium.org/2742653002 .
2017-03-08 18:58:07 -08:00
Vijay Menon 402e025c63 Add option to suppress type-check whitelisting
Run most tests without the whitelisting.

See #27223

R=leafp@google.com

Review-Url: https://codereview.chromium.org/2739863003 .
2017-03-08 17:51:32 -08:00
Vijay Menon 01508dd2e2 Fix mocking on native classes
Fixes #28658

R=jacobr@google.com

Review-Url: https://codereview.chromium.org/2732413002 .
2017-03-07 15:32:54 -08:00
Vijay Menon f6e964fca9 Fix dangling ddc references in libraries.dart
Our internal tooling is complaining about this when building / checking the ddc sdk.  It appears to use the analyzer's summary builder tool which seems less forgiving about dangling references / missing files.

R=srawlins@google.com

Review-Url: https://codereview.chromium.org/2740573003 .
2017-03-07 15:27:46 -08:00
Vijay Menon 2acb2eb669 Update for latest tests and sdk
TBR=leafp@google.com

Review-Url: https://codereview.chromium.org/2731333002 .
2017-03-06 09:36:14 -08:00
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
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
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 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
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
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
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
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
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
Jacob Richman 3659aaf181 Fix bug in Blob creation from workers.
Fixes https://github.com/dart-lang/sdk/issues/28155

BUG=

Review-Url: https://codereview.chromium.org/2592813003 .
2016-12-21 08:45:48 -08:00
Jacob Richman 7f26211c26 Correct handling of cross-frame functions in ddc.
Misc fixes of dart:js support on ddc.
Work around issue with Blob constructor on ddc.
Fix incorrect dart:js test on dart2js (fixes https://github.com/dart-lang/sdk/issues/26197)

BUG=
R=alanknight@google.com, leafp@google.com, rnystrom@google.com

Review-Url: https://codereview.chromium.org/2587203002 .
2016-12-19 15:00:55 -08:00
Jennifer Messerly 77f53f609f fixes #27385, implement virtual fields in DDC
If a field is marked @virtual in Analyzer, DDC will allow it to be overridden as well

also fixes #28114, abstract getters/setters broke generation of forwarding getters/setters

R=vsm@google.com

Review-Url: https://codereview.chromium.org/2571363002 .
2016-12-15 11:39:25 -08:00
Vijay Menon 392c242df9 Add dart:io stubs to ddc sdk, define dart.library.html
Fixes #27302

R=brianwilkerson@google.com, jmesserly@google.com, rnystrom@google.com

Review-Url: https://codereview.chromium.org/2578573003 .
2016-12-14 12:34:33 -08:00
Bob Nystrom b900a39620 Implement messages in assert() in dev_compiler.
Fix #27342.

R=jmesserly@google.com

Review-Url: https://codereview.chromium.org/2568313002 .
2016-12-13 13:31:56 -08:00
Vijay Menon dd16c377fb Enable more async code on node
This is primarily for easier testing/repro on node which has "global",
but not "self".

R=jmesserly@google.com

Review URL: https://codereview.chromium.org/2558133002 .
2016-12-07 10:52:04 -08:00
Vijay Menon 201c5b9297 Fix runtime strong mode error in ListMixin
R=jacobr@google.com

Review URL: https://codereview.chromium.org/2544163002 .
2016-12-01 15:41:46 -08:00
Alan Knight 1ff09b431f Keep only a single active stack trace, enables traces for thrown non-exceptions
BUG=
R=jmesserly@google.com

Review URL: https://codereview.chromium.org/2545923002 .
2016-12-01 13:41:08 -08:00
Vijay Menon 106c623a9f Some fixes for lazy JS types
R=jacobr@google.com

Review URL: https://codereview.chromium.org/2542833002 .
2016-12-01 07:44:38 -08:00
Bob Nystrom aa749dbd8d Sprinkle some types on the SDK like the static typing fairy.
When I'm looking at the dynamic call profiles of an internal app test,
I see a bunch coming from the SDK itself. In fact, the top five most
common dynamic call sites are in the SDK.

This fixes four of them. (The fifth is in runUnary() in Zone, and I
don't think can be made typed yet.)

R=vsm@google.com

Review URL: https://codereview.chromium.org/2542723003 .
2016-11-30 17:04:54 -08:00
Alan Knight 667fc8dbe9 Make the dart:developer library available in DDC so debugger statement works
BUG=
R=vsm@google.com

Review URL: https://codereview.chromium.org/2534263002 .
2016-11-29 16:13:45 -08:00
Vijay Menon 88c5dd5745 Better mirrors support for mixins and private fields
This is generally motivated by pageloader usage.

R=rnystrom@google.com

Review URL: https://codereview.chromium.org/2535273002 .
2016-11-29 14:00:01 -08:00
Jacob Richman 1b339deab2 Support lazy JS types.
BUG=
R=jmesserly@google.com

Review URL: https://codereview.chromium.org/2515353003 .
2016-11-22 10:55:35 -08:00