Commit Graph

225 Commits

Author SHA1 Message Date
Jacob Richman 2dfc37b9ed Use the great new Devtools API for custom formatters. Now Dart objects are now generally as easy to view in the debugger in Chrome using dev_compiler as they are using Dartium. There are still some edge cases that need to be polished but most of the general property display and type information is done.
Checkpoint in devtools debugger support.

BUG=
R=jmesserly@google.com

Review URL: https://codereview.chromium.org/1625563002 .
2016-01-22 13:28:28 -08:00
Olivier Chafik 3886194414 Generate _runtime.js from dart (https://github.com/dart-lang/dev_compiler/issues/310)
The following part files were ported from the original .js (lib/runtime/dart/_foo.js -> input_sdk/private/foo.dart):
- input_sdk/private/rtti.dart
- input_sdk/private/types.dart
- input_sdk/private/classes.dart
- input_sdk/private/errors.dart
- input_sdk/private/generators.dart
- input_sdk/private/operations.dart
- input_sdk/private/runtime.dart

Notes:
- Introduced genericTypeConstructor intrinsic: `JS('', '#(type)', genericTypeConstructor(List))` generates `core.List$(type)`
- Used new JS quasiquotes everywhere
- Depends on new internal `@JSExportName` annotation to alias symbols like dart.{as, is, const, assert, export, implements, throw, async, dynamic, void} (see https://codereview.chromium.org/1580413002/)

BUG=
R=jmesserly@google.com

Review URL: https://codereview.chromium.org/1530563003 .
2016-01-21 00:45:31 +00:00
John Messerly cc2f706ded partial fix for #414, nSM message for dcall should show correct target
R=vsm@google.com

Review URL: https://codereview.chromium.org/1601353002 .
2016-01-19 13:33:54 -08:00
Vijay Menon 077465ddc8 Fixes #412
Adds Screen, Navigator.language, and HTMLHtmlElement to dart:html

R=jacobr@google.com

Review URL: https://codereview.chromium.org/1607073002 .
2016-01-19 13:31:12 -08:00
John Messerly 5b45c6ef87 partial fix for #414, avoid dcall in _convertToDart
this doesn't fix the root call, but still, it's nice to clean up this dead code

R=vsm@google.com

Review URL: https://codereview.chromium.org/1609843002 .
2016-01-19 12:02:06 -08:00
Olivier Chafik 51c3bcbe14 Add a @JSExportName annotation for internal use in the runtime (use it to export dart.assert instead of assert_)
BUG=
R=jmesserly@google.com

Review URL: https://codereview.chromium.org/1580413002 .
2016-01-19 17:51:18 +00:00
Jacob Richman 2a1cbc829c Fix for html_common
BUG=
R=leafp@google.com

Review URL: https://codereview.chromium.org/1583943002 .
2016-01-13 11:13:59 -08:00
Vijay Menon e907ebb106 Fixes #408
This is a bug on JSON.decode.  This should match the hand fix in #404.

R=jmesserly@google.com

Review URL: https://codereview.chromium.org/1579223002 .
2016-01-12 14:17:40 -08:00
Vijay Menon 6e8375ed0d Added Comment to dart:html
R=jacobr@google.com

Review URL: https://codereview.chromium.org/1577423002 .
2016-01-12 14:16:32 -08:00
Vijay Menon 2a3549a8f5 Fixes #410
This generates calls to methods on may-be-native types property in generic methods.

R=jmesserly@google.com

Review URL: https://codereview.chromium.org/1580803002 .
2016-01-12 09:47:44 -08:00
Vijay Menon 3006795312 Support source maps in server mode
R=jmesserly@google.com

Review URL: https://codereview.chromium.org/1530133003 .
2016-01-07 13:22:03 -08:00
Leaf Petersen 1c119bebb2 Update to latest analyzer
Fixes https://github.com/dart-lang/dev_compiler/issues/393

BUG=
R=jmesserly@google.com

Review URL: https://codereview.chromium.org/1554683002 .
2016-01-05 15:58:50 -08:00
Devon Carew ac183ca086 Update _operations.js 2015-12-17 17:11:59 -08:00
Olivier Chafik 3307317454 JS: Format if statements with no else on a single line
To match Dart style:
https://www.dartlang.org/effective-dart/style/#do-use-curly-braces-for-all-flow-control-structures

(also, that's the style we use in our .js runtime files, so that will help with diffs of the js->dart runtime migration from https://github.com/dart-lang/dev_compiler/issues/310)

BUG=
R=jmesserly@google.com

Review URL: https://codereview.chromium.org/1524843002 .
2015-12-16 19:45:19 +00:00
Vijay Menon e29437a374 First cut of mini dart:html.
This gets us going on Angular.

Note, this is auto-generated from my hacked up versions of the dom scripts.  Still tackling the long tail of sdk errors.

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

Review URL: https://codereview.chromium.org/1528613004 .
2015-12-15 13:08:17 -08:00
Vijay Menon 86ef3092a1 Run browser tests on Atom/Electron
Tested on travis here: https://travis-ci.org/dart-lang/dev_compiler/builds/96609818

Note, electron shows up in the log as: Chrome 47.0.2526

This fixes #395

R=ochafik@google.com

Review URL: https://codereview.chromium.org/1521283003 .
2015-12-14 06:25:12 -08:00
Olivier Chafik ee793284ae Compile the sdk with --no-destructure-named-params (#396)
This is so the Atom plugin doesn't need to regenerate the SDK (it still
needs to be compiled with --no-destructure-named-params, though, until
Atom is updated to more ES6-compliant node/Chrome).
2015-12-11 17:56:41 +00:00
John Messerly 53842c06ab Merge pull request #394 from dart-lang/fix-analyzer-version
Pin analyzer version to 0.26.2+1 to unbreak the build.
2015-12-09 08:35:58 -08:00
Olivier Chafik 7bc83534aa Special-case top-level final JS fields to make them non-lazy
(follow-up to John's suggestion in https://codereview.chromium.org/1486473002/)

BUG=
R=jmesserly@google.com

Review URL: https://codereview.chromium.org/1487213002 .
2015-12-09 15:10:33 +00:00
Olivier Chafik c64b7bbe9e Pin analyzer version to 0.26.2+1 (newer versions break the build, see issue #393) 2015-12-09 13:29:58 +00:00
Olivier Chafik 07d3998cdc Before (for f(a, {b, c: c_default})):
function f(a, opts) {
    let b = opts && 'b' in opts ? opts.b : null;
    let c = opts && 'c' in opts ? opts.c : c_default;
    ...

After:
  function f(a, {b = null, c = c_default} = {}) {
    ...

Note:
- Still reverting to old code when any parameter clashes with reserved JS names (see discussion in https://github.com/dart-lang/dev_compiler/issues/392)
- When a parameter clashes with a Object.prototype property, using a clean default opts value (Object.create(null)).
- Passing opts through in aliased constructors, both for speed/concision and correctness (since default param value semantic is weird there)

BUG=
R=jmesserly@google.com

Review URL: https://codereview.chromium.org/1484263002 .
2015-12-02 21:56:35 +00:00
Vijay Menon 43760b2956 Expand generic type whitelist for function application checks
Hitting this in Angular - reusing the cast whitelist.

R=leafp@google.com

Review URL: https://codereview.chromium.org/1485353002 .
2015-12-01 16:05:50 -08:00
Vijay Menon 8fb3eb3362 Fixes for exports
BUG=
R=jmesserly@google.com

Review URL: https://codereview.chromium.org/1488273002 .
2015-12-01 15:54:54 -08:00
Olivier Chafik 6410051fd0 Convert dart_utils.js to input_sdk/lib/_internal/utils.dart (#310)
BUG=
R=jmesserly@google.com, vsm@google.com

Review URL: https://codereview.chromium.org/1486473002 .
2015-12-01 19:02:43 +00:00
Vijay Menon 7f8505512e More mirrors
A little more implementation and workarounds for Angular.  See #199.

R=jmesserly@google.com

Review URL: https://codereview.chromium.org/1489043002 .
2015-12-01 11:01:28 -08:00
Olivier Chafik 82f50549cb Use const for const/final top-levels, types, symbols.
BUG=
R=jmesserly@google.com, vsm@google.com

Review URL: https://codereview.chromium.org/1483813002 .
2015-12-01 01:06:13 +00:00
Vijay Menon a8c8bdeb58 Remove unnecessary/incorrect bind
Fixes #381

R=jmesserly@google.com

Review URL: https://codereview.chromium.org/1484003004 .
2015-11-30 14:29:11 -08:00
Vijay Menon 5b2e5f8e30 Regen DDC files
These are due to the upgrade to analyzer 0.26.3

TBR=jmesserly@google.com,leafp@google.com

Review URL: https://codereview.chromium.org/1486753003 .
2015-11-30 13:39:16 -08:00
John Messerly 2ede0ed01f Merge pull request #388 from jonaskello/babel-workarounds
Babel workarounds
2015-11-18 16:04:09 -08:00
Jonas Kello 958b5698a6 Babel workaround 2015-11-19 01:03:15 +01:00
Jacob Richman d0cec4ac47 Switch ddc to use @JS instead of @JSName. Also update dart:js to support new public methods added for 1.13
BUG=
R=jmesserly@google.com

Review URL: https://codereview.chromium.org/1448993002 .
2015-11-16 12:55:30 -08:00
Vijay Menon bceee1d180 Fix field override error
This fixes the following error reported by https://codereview.chromium.org/1430953004/ (not landed yet):

severe: [InvalidFieldOverride] Field declaration _ControllerSubscription<T>._controller cannot be overridden in _BroadcastSubscription. (dart:async/broadcast_stream_controller.dart, line 40, col 3)

Devon: this should address https://github.com/flutter/atom-flutter-dev/issues/2

R=leafp@google.com

Review URL: https://codereview.chromium.org/1413303005 .
2015-11-06 14:13:20 -08:00
John Messerly 749d820ce6 fix escape of $ in template strings
https://github.com/dart-lang/dev_compiler/issues/379

R=vsm@google.com

Review URL: https://codereview.chromium.org/1426243002 .
2015-11-02 10:32:49 -08:00
Olivier Chafik 7add882a7a Move runtime js files down to lib/runtime/dart
Prepare for writing all the runtime in Dart:
- Move js runtime files to lib/runtime/dart (dart_runtime.js ->
dart/_runtime.js),
- Use rest params instead of arguments slicing in a couple of places.

BUG=https://github.com/dart-lang/dev_compiler/issues/310
R=jmesserly@google.com

Review URL: https://codereview.chromium.org/1413683006 .
2015-10-29 16:44:49 +00:00
Vijay Menon 734aeb29e4 Fix the error message widget
This had bit-rotted away.

R=jmesserly@google.com

Review URL: https://codereview.chromium.org/1419953002 .
2015-10-27 11:31:23 -07:00
Vijay Menon 2358366f56 Rewire DDC to use the analyzer task model
This is WIP - not quite ready for review.

Not all tests are passing yet.  Most checker and inference tests are passing, but about a quarter are failing - need to look.

The non-runtime changes under lib along with test/testing.dart are the only real changes.

We seem to be losing some type info - lots of new casts - but I see at least one removed.

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

Review URL: https://codereview.chromium.org/1355893003 .
2015-10-08 13:42:53 -07:00
John Messerly 0cdc8c28fb Revert "Qualified exports and inheritance for Closure" 2015-09-25 11:31:25 -07:00
John Messerly 2d5525fc4a Merge pull request #319 from dart-lang/closure-qualify
Qualified exports and inheritance for Closure
2015-09-25 10:53:37 -07:00
John Messerly 9383237f36 additional SDK fixes. This gets all of them, once we upgrade to new analyzer
there's still a lot of warnings, those are next up

R=leafp@google.com

Review URL: https://codereview.chromium.org/1347153005 .
2015-09-18 17:11:21 -07:00
John Messerly 28f1e80cd6 fix some errors in our SDK, mostly around numbers, see issue #103
also improved codegen of JSNumber's methods

R=leafp@google.com

Review URL: https://codereview.chromium.org/1348453004 .
2015-09-18 17:10:02 -07:00
Devon Carew 5baea1b7e7 make dev_compiler slightly happier with dartdoc 2015-09-16 18:03:52 -07:00
John Messerly ff1b78ca42 fix a few more codegen issues:
* don't generate script tag
* handle U+2028 and U+2029
* handle name conflict with constructor

R=vsm@google.com

Review URL: https://codereview.chromium.org/1347453002 .
2015-09-14 17:06:28 -07:00
Olivier Chafik 58f1ca9259 Qualified exports and inheritance for Closure (fixes core.Object issue) 2015-09-14 14:07:02 +01:00
John Messerly 637c2c83de fixes #314, super method tear offs
R=leafp@google.com

Review URL: https://codereview.chromium.org/1310513013 .
2015-09-10 17:18:21 -07:00
Vijay Menon 2ef54c946b Fixes for Angular
R=leafp@google.com

Review URL: https://codereview.chromium.org/1324693004 .
2015-09-02 13:39:53 -07:00
Olivier Chafik 8ebe4c8a09 Merge pull request #286 from dart-lang/closure-annotations
Output Closure annotations when --closure (very experimental feature)
2015-09-02 18:34:54 +01:00
Vijay Menon b0abb3b302 Some preliminary support for quasi-generics
This just expands John's earlier hack on min/max.  No downward
inference, etc, but it captures some simple cases.  Worthwhile?

Testing whether this makes much of a difference on our larger code bases.

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

Review URL: https://codereview.chromium.org/1317933005 .
2015-08-31 09:56:41 -07:00
Olivier Chafik 59cf5dd893 Output some basic type annotations for the Closure Compiler when --closure is set. 2015-08-27 16:30:20 +01:00
John Messerly 74c760066b implement null aware ops, fixes #249
this also implements multitest support, which fixes #280

Fixes some other preexisting bugs:
* MetaLets did not simplify themselves correctly in some nested cases
* Library prefixed identifiers did not work as lvalues in opassign
* dsetindex/dput/[]= methods did not return a value
* checker did not correctly handle invalid constructor field initializers
* cascades did not correctly work with method invocations(?)
* postfix ++/-- did not correctly generate lvalues in some cases

The good news: because this reuses on our existing lvalue/metalet helpers, it managed to flush out a lot of bugs in other features that use them.

R=vsm@google.com

Review URL: https://codereview.chromium.org/1316723003 .
2015-08-25 15:13:18 -07:00
Vijay Menon 50eb282f87 Infer parameter types on overrides
Fixes #105

This overlaps with brian's recent CL moving override inference logic.  If this looks good, we'll need to move it over as well.

R=brianwilkerson@google.com, leafp@google.com

Review URL: https://codereview.chromium.org/1311863005 .
2015-08-25 10:45:08 -07:00