Commit Graph

169 Commits

Author SHA1 Message Date
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
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 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 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
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 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 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
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 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
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
Lasse Reichstein Holst Nielsen 9412b54f1f Fix DoubleLinkedListQueue misbehavior on concurrent modification.
Documented forEachEntry, firstEntry and lastEntry.
Made forEachEntry more useful by making it compatible with removing and adding
around the current entry, and documented how it interacts.

BUG= http://dartbug.com/27920
R=floitsch@google.com

Review URL: https://codereview.chromium.org/2540993002 .
2016-12-06 09:27:04 +01: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
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
Vijay Menon de9e3a3005 Set auto breakpoint at various errors
Any reason not to do this?  I generally find when framework code wraps these errors, it just complicates finding the original bug.  Better to just trap.

Perhaps should just inline the call to debugger though.  I put in dart.debugger with the thought of making it configurable.

R=jacobr@google.com, jmesserly@google.com

Review URL: https://codereview.chromium.org/2519873004 .
2016-11-21 14:40:46 -08:00
Jennifer Messerly 37029a22de fix #27336, ddc with recursive generic class type args
R=vsm@google.com

Review URL: https://codereview.chromium.org/2516483002 .
2016-11-17 15:38:33 -08:00
Jennifer Messerly 3995146b55 fix #27775, enum declaration where "name" is a property
R=vsm@google.com

Review URL: https://codereview.chromium.org/2488543002 .
2016-11-08 10:18:55 -08:00
Bob Nystrom 8daf4cfb73 Get the basics of deferred libraries working.
References to loadLibrary on a library prefix are compiled to a
helper function that returns a Future that always completes
successfully.

The deferred libraries aren't actually deferred, but code that uses
loadLibrary() now doesn't barf.

BUG=#27343
R=vsm@google.com

Review URL: https://codereview.chromium.org/2477673006 .
2016-11-07 10:41:23 -08:00
Vijay Menon 2d15b4ae74 Type-related fixes
R=jmesserly@google.com

Review URL: https://codereview.chromium.org/2468493003 .
2016-10-31 15:01:29 -07:00
Jan-Hendrik Dolling 89560c68a0 change "the the" to the 2016-10-28 21:47:50 +02:00
Jennifer Messerly cc1ad8cdde fix #27532, implementing a native type with fields
R=vsm@google.com

Review URL: https://codereview.chromium.org/2430953006 .
2016-10-20 15:59:18 -07:00
Jennifer Messerly 5111675810 fix #27631, get/set methods no longer shadow index operator
R=rnystrom@google.com

Review URL: https://codereview.chromium.org/2435163002 .
2016-10-20 15:45:29 -07:00
Alan Knight 47150f50d5 Use dart:html prefixes (e.g. webkitAudioNode) on other browsers
BUG=
R=vsm@google.com

Review URL: https://codereview.chromium.org/2431443002 .
2016-10-19 16:43:41 -07:00
Jacob Richman 4f6ce11bc8 Emulate compiling a source file in the context of an existing library. Add --debugger-compile flag that performs permissive dynamic calls on private members. Polish web_command.dart adding the ability to evaluate code in the context of an existing library.
BUG=
R=brianwilkerson@google.com, jmesserly@google.com

Review URL: https://codereview.chromium.org/2423313002 .
2016-10-18 16:34:48 -07:00
Vijay Menon 852ef37f71 Some mirrors fixes
R=leafp@google.com

Review URL: https://codereview.chromium.org/2415053004 .
2016-10-14 12:19:24 -07:00
Vijay Menon 2495f6a060 Handle private members in dart:mirrors
R=rnystrom@google.com

Review URL: https://codereview.chromium.org/2410453002 .
2016-10-10 15:55:20 -07:00
Bob Nystrom 20e402c43d Fix type errors in math.min() and math.max().
Really, this works around them, but the workaround is all round better
code.

Remove the Dart implementations of min() and max() and just forward to
the JS ones. In DDC, all numbers are double, so the type checks to
handle them specifically aren't meaningful. Also, we don't need the
other special case checks in there to help dart2js optimize them.

R=vsm@google.com

Review URL: https://codereview.chromium.org/2386493003 .
2016-09-30 13:18:07 -07:00
Bob Nystrom 2c313a43ac Fix some errors around []= in core types.
- Get rid of JSMutableIndexable since it isn't useful.
- Make JSIndexable generic. (I think dart2js already did.)
- Add .length to NativeTypedArray since it no longer inherits it from
  JavaScriptIndexingBehavior.

R=jmesserly@google.com

Review URL: https://codereview.chromium.org/2378423003 .
2016-09-30 13:03:10 -07:00
Vijay Menon 9732138317 Testing support for FF and Safari
Also travis support for testing FF.  See:

https://travis-ci.org/dart-lang/sdk/builds/159331789

On FF 48, 1965 out of 1979 tests are passing.  Run locally:
DDC_BROWSERS=Firefox npm test

On Safari 10 (tech preview), it fails immediately due to a static method named "caller".  We disallow it as a field, but not a method right now.  If I hack that out, 1972 out of 1979 tests appear to pass.

Run locally by installing tech preview and running:
DDC_BROWSERS=Safari SAFARI_BIN=/Applications/Safari\ Technology\ Preview.app/Contents/MacOS/Safari\ Technology\ Preview npm test
R=jmesserly@google.com, rnystrom@google.com

Review URL: https://codereview.chromium.org/2334763002 .
2016-09-14 08:41:43 -07:00
Bob Nystrom 33ff9a3d4f Fix type errors in sort().
If a comparer isn't provided, it was silently assuming the element type
implements Comparable, even though that isn't required. Fixed to add a
manual cast at each comparison.

A stricter faster approach might be to check that the type argument
itself is a type that implements Comparable, but I don't know if that's
too pessimistic, or even possible to do.

R=vsm@google.com

Review URL: https://codereview.chromium.org/2311513002 .
2016-09-08 17:14:36 -07:00
Bob Nystrom 8c7dd5cd04 Cast InternalMap to Map.
It's a tag interface that doesn't declare that it implements Map but all
classes that implement it also implement Map, so just do a cast.

R=vsm@google.com

Review URL: https://codereview.chromium.org/2304323002 .
2016-09-08 16:23:45 -07:00
Jacob Richman 38724f0626 Update web_command code so that it continues to use the legacy module loader. Drive by removal of misleading comments.
BUG=
R=jmesserly@google.com

Review URL: https://codereview.chromium.org/2303163002 .
2016-09-06 09:57:05 -07:00
Vijay Menon 9af2fb0115 More DDC mirrors support
(Note, this is a straight migration of the old DDC repo CL. :-))

R=jmesserly@google.com

Review URL: https://codereview.chromium.org/2301973002 .
2016-09-01 10:13:31 -07:00
John Messerly c1139934a7 fix #626, add AMD module format and make it default
R=nweiz@google.com, vsm@google.com

Review URL: https://codereview.chromium.org/2249233002 .
2016-08-25 09:39:36 -07:00
Brenna Milligan 8b0b57844b Get rid of library proto information for debugger libraries
BUG=
R=jacobr@google.com

Review URL: https://codereview.chromium.org/2208533003 .
2016-08-02 17:08:27 -07:00
Brenna Milligan a7dc32f424 Deprecation of ClassMetadata wrapper for Class formatters so a stand-alone class is recognizable.
BUG=
R=jacobr@google.com

Review URL: https://codereview.chromium.org/2205733002 .
2016-08-02 09:43:02 -07:00
John Messerly e51f9de339 fixes #616, statics on callable functions
also fixes `this` for them

R=vsm@google.com

Review URL: https://codereview.chromium.org/2200913002 .
2016-08-01 17:12:37 -07:00
John Messerly 344124e4a1 fix optional params to mock methods, allow all signatures
switches to use the same technique as `dsend`

R=vsm@google.com

Review URL: https://codereview.chromium.org/2201973002 .
2016-08-01 16:21:59 -07:00
Brenna Milligan d18ab46592 Addition of StackTrace formatters
R=alanknight@google.com, jacobr@google.com

Review URL: https://codereview.chromium.org/2189673002 .
2016-07-27 15:14:55 -07:00
Brenna Milligan d7c7c19c54 Library children object fix
R=alanknight@google.com, jacobr@google.com

Review URL: https://codereview.chromium.org/2176233002 .
2016-07-25 17:44:59 -07:00