Commit Graph

224 Commits

Author SHA1 Message Date
Vijay Menon 6ecadc8c19 Run tests on Chrome stable by default
This also disables destructuring by default as Chrome 47 (current
stable) does not support.

R=jmesserly@google.com

Review URL: https://codereview.chromium.org/1507343013 .
2015-12-11 12:18:20 -08: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 a6f4d9b1c5 Fixes #378
Handles fields on "extension" types

See patch #1 for the test without the fix.

R=jmesserly@google.com

Review URL: https://codereview.chromium.org/1492523004 .
2015-12-01 15:57:56 -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
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 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
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 275d280985 Re-enable source maps
This appears to have bit-rotted.

Fixes #384

R=jmesserly@google.com

Review URL: https://codereview.chromium.org/1425313003 .
2015-11-10 06:35:59 -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 5337fc001e Compile package:js.{rest, spread} helpers.
Note: need new package:js release before merging this in (https://github.com/dart-lang/sdk/issues/24623). Maybe it's time to think again about sneaking JsName + JsPeerInterface into it? (https://github.com/dart-lang/dev_compiler/issues/135)

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

Review URL: https://codereview.chromium.org/1424133007 .
2015-10-29 18:44:11 +00: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 8a48c2f726 Remove uses of DartObjectImpl
Note: the changes to .txt files are due to unrelated analyzer strong mode fixes.

R=brianwilkerson@google.com

Review URL: https://codereview.chromium.org/1413923003 .
2015-10-19 12:59:48 -07:00
John Messerly 5e0c2bbaf8 Move DDC to analyzer-based checker
this fully moves DDC over to analyzer for checking

NOTE: there's one test failure in a .lib file, it may not be getting correctly analyzed.

R=leafp@google.com

Review URL: https://codereview.chromium.org/1401273002 .
2015-10-14 17:13:03 -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
Vijay Menon c623db6821 Batch the batch compiler for tests
This:
- Ensures that a given AST is processed once per context, avoiding AST caching issues and redundant work
- Associates file errors with their library instead of the entry point - we now only generate these once across different entry points

R=jmesserly@google.com

Review URL: https://codereview.chromium.org/1376123004 .
2015-10-02 14:11:27 -07:00
Vijay Menon d30fafee6f These files are no longer generated 2015-09-30 16:37:21 -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 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
John Messerly bea9ae786a add language tests & run them in karma 2015-09-16 16:00:46 -07:00
John Messerly bcec623909 fixes #315, order of libraries in the HTML file
the lesson here is never use .importedLibraries ... we might want to change it in analyzer to use LinkedHashSet ...

R=vsm@google.com

Review URL: https://codereview.chromium.org/1337993004 .
2015-09-15 09:13:18 -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
John Messerly dc560e572c fix readability regressions from previous block-scope CL
also reverts the simple incremental compile code, it wasn't aware of our own compiler's version.

also fixes a warning from analyzer

R=leafp@google.com

Review URL: https://codereview.chromium.org/1305413006 .
2015-09-09 15:52:17 -07:00
John Messerly 99bdee4f8d fix implicit_scope_test and builtin_identifier_test
these were generating invalid JS code

R=vsm@google.com

Review URL: https://codereview.chromium.org/1328303002 .
2015-09-08 16:56:50 -07:00
John Messerly 7263daed54 fix dynamic type literal
it doesn't have a library

R=leafp@google.com

Review URL: https://codereview.chromium.org/1310943005 .
2015-09-04 15:57:32 -07:00
John Messerly badedeaf16 fix cascade on ThisExpression
R=leafp@google.com

Review URL: https://codereview.chromium.org/1309383003 .
2015-09-04 15:28:38 -07:00
Vijay Menon 33ad4d9600 Reformat
Olivier: running presubmit locally (for me) reformats a few files.  May be a pub upgrade issue to get on the latest formatter.

TBR=ochafik@google.com

Review URL: https://codereview.chromium.org/1322673004 .
2015-09-02 12:53:05 -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
John Messerly 707b9cc09c triage remaining async tests
one fix, two rejected statically

R=leafp@google.com

Review URL: https://codereview.chromium.org/1319523007 .
2015-08-31 17:49:41 -07: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
John Messerly 9c832d6a6b makes tests faster, see #304
this doesn't completely address the issue, but it knocks off some of the time.
also attempt to stabilize error message order.

R=vsm@google.com

Review URL: https://codereview.chromium.org/1321103002 .
2015-08-28 10:14:16 -07:00
John Messerly c4b754b041 use the real matchers for running language tests
R=vsm@google.com

Review URL: https://codereview.chromium.org/1321683004 .
2015-08-28 09:27:36 -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
Vijay Menon 604b199ed3 Make implicit casts hints
This appears to cut out about 1/3 of the strong mode errors reported
in angular2.  The actual cases removed that I looked at seem fine - e.g., we may inject an implicit cast, but it'll work fine at runtime.

Fixes #302

R=leafp@google.com

Review URL: https://codereview.chromium.org/1310053005 .
2015-08-26 15:01:59 -07: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
John Messerly e420033f7c sort errors so they appear in stable order
should be the same order analyzer_cli uses

R=vsm@google.com

Review URL: https://codereview.chromium.org/1299993004 .
2015-08-20 08:59:48 -07:00
Vijay Menon 136396c107 Regen js_test.txt
I'm seeing this diff locally on presubmit.

R=jmesserly@google.com

Review URL: https://codereview.chromium.org/1300203002 .
2015-08-19 13:09:37 -07:00
Leaf Petersen 8d36859187 Attach type info to extension method and object method tear-offs
Fixes #189.

BUG=
R=jmesserly@google.com

Review URL: https://codereview.chromium.org/1293293002 .
2015-08-19 10:01:12 -07:00
John Messerly 38065257a2 fixes #292, report async_helper test failures
R=vsm@google.com

Review URL: https://codereview.chromium.org/1289673007 .
2015-08-19 08:35:41 -07:00
Vijay Menon c0100939c2 Implement more of dart:mirrors
This unblocks angular.

See #199

R=jmesserly@google.com

Review URL: https://codereview.chromium.org/1252953003 .
2015-08-07 12:40:34 -07:00
John Messerly cbe23ee268 implement exports, fixes #141
R=vsm@google.com

Review URL: https://codereview.chromium.org/1263583005 .
2015-08-04 17:23:13 -07:00
John Messerly b393e12c6b fixes #197, don't generate casts that always pass
R=vsm@google.com

Review URL: https://codereview.chromium.org/1261783005 .
2015-08-04 15:42:13 -07:00
John Messerly 8422d7ab48 fix language_tests.js to use strict mode
we weren't running a bunch of tests on the bots :|
amazingly, none were broken yet
this also fixes karma.conf log level, and disables some spammy prints from one of the tests

R=vsm@google.com

Review URL: https://codereview.chromium.org/1257233008 .
2015-08-03 14:08:28 -07:00
Olivier Chafik 8426fa9e17 Added bin/devrun.dart, which runs DDC's output with iojs or d8 (issue #225) 2015-07-29 14:17:56 +01:00
John Messerly 9137a4538c fixes #221, initial sync*, async, async* implementation
also fixes #270

R=vsm@google.com

Review URL: https://codereview.chromium.org/1243503007 .
2015-07-28 16:52:23 -07:00
John Messerly 7252228557 fix truncate call to use extension method
R=vsm@google.com

Review URL: https://codereview.chromium.org/1249043006 .
2015-07-22 14:52:40 -07:00
John Messerly 394836eaa2 fixes #259, clone ast before mutation
R=vsm@google.com

Review URL: https://codereview.chromium.org/1245013005 .
2015-07-21 15:36:55 -07:00