Commit Graph

1019 Commits

Author SHA1 Message Date
Vijay Menon a693930830 Roll analyzer to 0.27.2-alpha.1
R=jmesserly@google.com

Review URL: https://codereview.chromium.org/1641643004 .
2016-01-28 15:35:59 -08:00
Vijay Menon c274b6f9e9 Regen tests
Forgot to do this after changing the flatten tests.  pkg:collection also updated with some file moves.

R=jmesserly@google.com

Review URL: https://codereview.chromium.org/1642903004 .
2016-01-28 14:39:15 -08:00
Vijay Menon bd34d574be Skip flatten tests
R=jmesserly@google.com

Review URL: https://codereview.chromium.org/1643003003 .
2016-01-28 14:24:05 -08:00
Olivier Chafik 04d4be0982 Less dart.notNull checks for local vars using flow-insensitive nullability inference.
Within some AST context (at library granularity, for convenience), we
collect all the assignments to local vars:
- Declaration with no initializer amounts to `null` assignment
- Assignment ops are expanded naively: `x++` yield an assigned value of
`x + 1`, etc

We detect "trivially nullable" variables (e.g. `var x;`, `x =
breaking.out;`) by spotting assigned values that are nullable under the
optimistic assumption that all known variables are non-nullable.

Then we build a nullability dependency graph in linear time: whenever
we see `x = y;`, we know that "y is nullable" implies "x is nullable".

Finally, we propagate "trivial nullabilities" through that graph: any
variable that wasn't reached is deemed not-nullable.

(this is similar to mark and sweep garbage collection, where the roots
are the "trivially nullable" variables; credits to leafpetersen@ for
linear solution)
2016-01-28 15:47:49 +00:00
Vijay Menon 731dc0633b Handle local files better in server mode
We're already serving sources from the original directory (for source
maps).  This lets us serve other resources as well.  Makes it simpler
to run angular todo and other apps with xhr'ed data.

R=jmesserly@google.com

Review URL: https://codereview.chromium.org/1644673002 .
2016-01-27 14:03:52 -08:00
John Messerly 0b646eb520 fixes #427, static fields emitted outside the scope of their class
mainly, this backs off of some readability optimizations around static and top-level fields that were too aggressive. On their own, they were okay, but they collide with the library-cycle issues. Once we can remove that issue, we could consider restoring some of this. In the meantime, simplicity is good.

The new operation in the declaration loader is to allow us to see if an initializer has all its dependencies satisfied, but without changing any ordering if they are not.

R=vsm@google.com

Review URL: https://codereview.chromium.org/1636233002 .
2016-01-27 09:35:40 -08:00
Vijay Menon d043d05544 Rebase on latest package:collection
pub get now pulls in a new one

TBR=jmesserly@google.com

Review URL: https://codereview.chromium.org/1645633002 .
2016-01-27 08:49:43 -08:00
Vijay Menon a2ced17c9a Run format
Looks like a recent commit missed a format / presubmit.

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

Review URL: https://codereview.chromium.org/1631303003 .
2016-01-26 09:54:26 -08:00
Olivier Chafik 4eec9f5ff4 Resolve local paths in es6 modules (+ refactor ModuleBuilder) 2016-01-26 14:00:46 +00:00
Olivier Chafik adf6842f6c Initial --modules=es6 support
Known issues:
- Import syntax: using 'dart/core' right now, but should be
'./dart/core' or something else?
- _jsModuleValue not supported in es6 output yet (how is it meant to be
used?)

BUG=
R=jmesserly@google.com

Review URL: https://codereview.chromium.org/1612083002 .
2016-01-24 18:09:59 +00:00
John Messerly 8f83c969d2 rebase expectations
no changes here, just rebases against latest analyzer

R=ochafik@google.com, vsm@google.com

Review URL: https://codereview.chromium.org/1619483003 .
2016-01-22 13:16:09 -08:00
Olivier Chafik fc81df2f43 Rehab test dropped by mistake in c9d909ced98dea2aefe20322a59d18fbab2d93b2 2016-01-22 14:51:33 +00: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
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
Leaf Petersen 44f2cf3424 Bump the version number and re-baseline codegen/expect
BUG=
R=vsm@google.com

Review URL: https://codereview.chromium.org/1569783006 .
2016-01-08 13:29:08 -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
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 15a98b5bbe Fix a regression (var decls with rhs), support computed props in class defs + add basic tests.
BUG=

Review URL: https://codereview.chromium.org/1522793002 .
2015-12-14 01:10:15 +00:00
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 7b3c4c2cdd Initial support for f-bound quantification patterns
This doesn't fix all issues (see remaining broken test), but it unblocks angular.

R=jmesserly@google.com

Review URL: https://codereview.chromium.org/1431403002 .
2015-11-10 15:41:57 -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 ab19094dc8 Remove the checker and corresponding dead code
This is all logic now in the analyzer.

R=jmesserly@google.com

Review URL: https://codereview.chromium.org/1406983003 .
2015-10-19 14:38:17 -07: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
John Messerly 211531fd97 remove most of the StrongOptions
R=vsm@google.com

Review URL: https://codereview.chromium.org/1395643004 .
2015-10-09 13:24:36 -07:00
John Messerly 16c2c4681b housecleaning: remove nonnullableTypes
the non-nullable by default DEP seems a better way to go here

R=vsm@google.com

Review URL: https://codereview.chromium.org/1396993002 .
2015-10-09 13:14:17 -07:00
John Messerly 1147d8a5b9 remove "infer from overrides" option which is now obsolete
R=vsm@google.com

Review URL: https://codereview.chromium.org/1398873002 .
2015-10-09 10:56:21 -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 bd3f24456b Fix build - create output dir if needed
TBR=jmesserly@google.com

Review URL: https://codereview.chromium.org/1378763006 .
2015-10-02 14:23:38 -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