Commit Graph

1367 Commits

Author SHA1 Message Date
Leaf Petersen 2fae28ee43 Resolve obvious deprecation warnings on bleeding edge
BUG=
R=jmesserly@google.com

Review URL: https://codereview.chromium.org/1797063002 .
2016-03-15 10:15:34 -07:00
Vijay Menon 5b4fdead8d Fixes #479
R=jmesserly@google.com

Review URL: https://codereview.chromium.org/1803033002 .
2016-03-15 10:13:25 -07:00
John Messerly 8de2cf84bc simplify function coercions -- DDC can generate function types in place
R=leafp@google.com

Review URL: https://codereview.chromium.org/1783603009 .
2016-03-14 10:37:57 -07:00
Vijay Menon 5007e1a562 Fix internal NSM helper to use a Dart Symbol
Not sure if this entirely handles #470, but it does fix the breaking example.

R=jmesserly@google.com

Review URL: https://codereview.chromium.org/1754773002 .
2016-03-11 09:05:56 -08:00
Vijay Menon d530938a2b Various cleanup
- Allow just analysis given html file
- Checked mode fix for html-report
- Clear pubspec.lock for transformer test
- Format run

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

Review URL: https://codereview.chromium.org/1762283003 .
2016-03-09 12:58:22 -08:00
John Messerly b8ae9f9b77 a few small refactorings to closure workarounds
* factor the class heritage workaround so it's out of the way & easier to remove later.
* always emit type parameters in the AST, and pass the flag to the printer to skip printing them.
* cleanup an unnecessary sync* method for closure field decls.
* also, reformats. I think I forgot to do that in previous CL.

R=vsm@google.com

Review URL: https://codereview.chromium.org/1767803002 .
2016-03-08 15:56:18 -08:00
John Messerly aad19229e2 DDC: remove dumpInfo flag
I was hoping to get rid of SummaryReporter altogether, but it looks like it's still used by server mode.

R=vsm@google.com

Review URL: https://codereview.chromium.org/1778623002 .
2016-03-08 15:47:03 -08:00
Vijay Menon 883972e37a Fix deprecation message
TBR=jmesserly@google.com

Review URL: https://codereview.chromium.org/1775673002 .
2016-03-07 15:33:01 -08:00
John Messerly 93251ee241 upgrade to latest analyzer
fixes https://github.com/dart-lang/dev_compiler/issues/471

Changes here are:
* Analyzer now infers list/map literals
* Analyzer changed how isPotentiallyMutated* APIs work, so we need to track current function
* Another fix to arrow functions. We shouldn't skip generating covariant arg checks. If there were any, we use `=> { block }` form rather than `=> expr` form.

R=vsm@google.com

Review URL: https://codereview.chromium.org/1757343002 .
2016-03-03 11:32:54 -08:00
John Messerly d3932e1c50 Add a few more known non-null cases
Improves handling of identifiers and known elements, the `identical` function, and generative constructors.

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

Review URL: https://codereview.chromium.org/1752193002 .
2016-03-02 13:32:27 -08:00
John Messerly e1c5f6ddcd use Source.isInSystemLibrary
Just a small cleanup to use the property instead of comparing the URI

R=vsm@google.com

Review URL: https://codereview.chromium.org/1749213006 .
2016-03-02 13:07:34 -08:00
John Messerly 67b24939cd refactor/simplify nullable inference code
Some of the high level changes are:
* visit catch body, fixes #463
* handle temps created by the compiler. These were in some cases treated incorrectly as non-null (see tests diff)
* compute nullable in the same pass as visiting assignments
* simplify visiting += and ++, fix ++ (it was dead code, #463)
* simplify _isNullable
* if we fail to see a variable declaration, treat it as nullable
* stack trace in catch is treated as non-null

R=vsm@google.com

Review URL: https://codereview.chromium.org/1751963002 .
2016-03-01 16:44:05 -08:00
Vijay Menon 243a0377db Search html extension types lazily
This speeds up compile of helloworld (non html) by 2x, and tools/test.sh by about 30%.

R=jmesserly@google.com

Review URL: https://codereview.chromium.org/1752133002 .
2016-03-01 15:20:44 -08:00
Vijay Menon 316d1b6695 Fix #465
This preserves the type when cloning an AdjacentStrings node.

R=jmesserly@google.com

Review URL: https://codereview.chromium.org/1756563002 .
2016-03-01 13:08:05 -08:00
Vijay Menon 3c049a8f3d Fix #469
The real issue here is static type errors in dart:html code, which we need to cleanup.  But it doesn't appear to ever make sense to use the static type here.

R=jmesserly@google.com

Review URL: https://codereview.chromium.org/1754783002 .
2016-03-01 13:01:27 -08:00
John Messerly ae404442ca a little refactoring around identifiers/parameters
Main goal here is to isolate some code that was treating parameter declarations differently from other SimpleIdentifiers.

(We're going to need to emit generic method instantiations for SimpleIdentifiers in some cases, so it's going to be important to split out parameters from other expressions)

R=vsm@google.com

Review URL: https://codereview.chromium.org/1744453002 .
2016-02-26 10:00:15 -08:00
John Messerly abf6065dc2 more function refactoring
Two more small bug caught/fixed in the process:
* Dart lambdas must generate as `=>` functions or we'll get the wrong `this`
* Another case where generators we using destructuring in a mismatched way

R=vsm@google.com

Review URL: https://codereview.chromium.org/1736723002 .
2016-02-24 16:54:07 -08:00
John Messerly ca46b80811 simplify generation of functions
fixes incorrect destructuring codegen, and encapsulates type parameter comments better in _emitFunctionBody

R=vsm@google.com

Review URL: https://codereview.chromium.org/1729933002 .
2016-02-24 09:18:46 -08:00
John Messerly d959316526 refactor: avoid parts
we try to avoid "parts" except in js_ast (because that will be split out into its own package)

R=vsm@google.com

Review URL: https://codereview.chromium.org/1724463003 .
2016-02-22 16:01:35 -08:00
vsmenon 9586a5d217 Update devc.dart 2016-02-22 15:08:17 -08:00
Vijay Menon c75d51d6bf Fixes #460
R=jmesserly@google.com

Review URL: https://codereview.chromium.org/1718353002 .
2016-02-22 15:03:56 -08:00
vsmenon c222c45599 Update devc.dart 2016-02-19 15:04:31 -08:00
Vijay Menon ce985ef38d Support StackTrace.current
This was recently added to the Dart SDK.  Breaking Angular in DDC via stack_trace package.

R=jmesserly@google.com

Review URL: https://codereview.chromium.org/1720473002 .
2016-02-19 14:25:21 -08:00
vsmenon de5b729e4a Update devc.dart 2016-02-18 16:07:50 -08:00
Vijay Menon 93a627bf44 Wrapperless dart:html and friends
This reuses the dart2js code.

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

Review URL: https://codereview.chromium.org/1700153002 .
2016-02-18 13:57:59 -08:00
Olivier Chafik 09845fbaf7 Use dart.global instead of window in debugger.dart
BUG=
R=vsm@google.com

Review URL: https://codereview.chromium.org/1706973002 .
2016-02-18 16:38:00 +00:00
Vijay Menon 07155de9df Fix additional hint
Missed this locally, but hitting travis.  Probably need to update locally.

TBR=jmesserly@google.com

Review URL: https://codereview.chromium.org/1703263002 .
2016-02-17 13:31:21 -08:00
Vijay Menon a9bcaf6c5b Fix travis
This also regens based on the latest analyzer.  Looks like most improvements on the code.

See #456

TBR=jmesserly@google.com

Review URL: https://codereview.chromium.org/1710583002 .
2016-02-17 13:12:52 -08:00
Olivier Chafik 8a28ce3c65 Introduce _emitParameterReferences to avoid mixing params with param references.
BUG=
R=vsm@google.com

Review URL: https://codereview.chromium.org/1701583003 .
2016-02-16 14:39:15 +00:00
vsmenon 07fe48f5b9 Update devc.dart 2016-02-12 12:29:24 -08:00
Vijay Menon 3f85417199 Support for dart:typed_data
Fixes #441
Fixes #444

R=jmesserly@google.com

Review URL: https://codereview.chromium.org/1680263002 .
2016-02-11 14:36:27 -08:00
Olivier Chafik 1851561638 Fix JS-intrinsic definition of SDK classes
`let Foo = class Foo {};` -> `class Foo {}`

BUG=
R=jmesserly@google.com

Review URL: https://codereview.chromium.org/1681293005 .
2016-02-11 17:31:35 +00:00
Olivier Chafik 0e659e17c4 Use Uris for corelibOrder
(Seems to make some sdk imports not lazy anymore, without even burning the house)

Also, tiny module-related fixes to help with some es6 tools such as rollup:
- Avoid self-importing in eager corelibOrder hack
- Always export exports in es6 module builder

BUG=
R=jmesserly@google.com

Review URL: https://codereview.chromium.org/1689013002 .
2016-02-11 17:28:06 +00:00
Olivier Chafik 4ad758998a Emit TypeScript / Closure ES6_TYPED type annotations in --closure mode (instead of closure comments).
- Replaced ClosureType by a general JS.TypeRef, used in AST for identifier types, return types
- Convert DartType to JS.TypeRef (in mixin JsTypeRefCodegen), including type parameters (also added to AST in Fun & ClassExpression)
- Emit field declarations expected by TS
- Wrote a TypeScriptTypePrinter (mixed in by Printer) and a ClosureTypePrinter (might disappear soon)
- Simplified annotation code, called in more places (seems to gives more source info)

Example input:

  List/*<T>*/ func/*<T>*/(List/*<T>*/ items, dynamic/*=T*/ seed) {}

  class Foo<T> {
    int i;
    static var x;
    Foo(this.i, o, {String v : "?"}) {}
  }

Output:

  function func<T>(items: core.List<T>, seed: T): core.List<T> {}

  const Foo$ = dart.generic(function(T) {
    class Foo<T> extends core.Object {
      i: number;
      static x;
      Foo(i: number, o, {v = "?"}: {v?: string} = {}) {
        this.i = i;
      }
    }
    ...
    Foo.x = null;
    return Foo;
  });

Known remaining issues:
- typedefs expect a `type Callback = (...) => ...;` statement
- `exports` is a reserved keyword in TS (either we change the way we do exports, or we'll need a different temp + extra type annotations of the default-exported object).
- Generic type is currently locked inside the generic call. Might be able to solve by exporting signatures in .d.ts file, or changing the way we do generics.

BUG=
R=jmesserly@google.com

Review URL: https://codereview.chromium.org/1676463002 .
2016-02-10 18:22:21 +00:00
Vijay Menon 817fbc5714 Fix checked mode break in server mode
R=jmesserly@google.com

Review URL: https://codereview.chromium.org/1679873004 .
2016-02-09 11:26:30 -08:00
Olivier Chafik 3f4667bc5d Proper span/asset location for DDC errors in the transformer
BUG=
R=rnystrom@google.com

Review URL: https://codereview.chromium.org/1667173002 .
2016-02-09 17:06:09 +00:00
Olivier Chafik 0afdd61031 Improve --destructure-named-params:
- Destructure named params that clash with JS reserved names:
  `f({arguments = 1}) {}` becomes `function f({['arguments']: arguments$ = 1} = {}) {}`
- Use ES6 default params for positional & optional parameters
- Added simple tests

BUG=
R=jmesserly@google.com

Review URL: https://codereview.chromium.org/1677863002 .
2016-02-09 16:46:32 +00:00
Olivier Chafik f2a26256e4 Simple transformer to run ddc in pub build/serve
- Added simple test that exercises relative and absolute imports
- Introduced FileSystem abstraction to collect compilation outputs /
seed runtime inputs
2016-02-04 19:08:50 +00:00
Olivier Chafik 98b21b030e Revert "Use a symbol for static length/name (and other Function properties) for Closure, to avoid ES5->ES6 lowering bug (https://github.com/google/closure-compiler/issues/1460)."
This reverts commit a637e1b048487629d0d44620eb41e703531ce18d.
2016-02-03 20:35:59 +00:00
Olivier Chafik 84043ffd1e Use a symbol for static length/name (and other Function properties) for Closure, to avoid ES5->ES6 lowering bug (https://github.com/google/closure-compiler/issues/1460).
This is part of the overall "simple closure" effort (issue #312)

BUG=
R=jmesserly@google.com

Review URL: https://codereview.chromium.org/1630963003 .
2016-02-03 20:25:07 +00:00
Olivier Chafik f7f21ca65e Create local alias for super class in --closure mode (issue #312)
Closure compiler chokes on super classes that aren't qualified paths.

(example: http://goo.gl/5mHC7S)

BUG=
R=jmesserly@google.com

Review URL: https://codereview.chromium.org/1638533004 .
2016-02-03 20:21:12 +00:00
John Messerly dee054e23b fixes #415, correct type for map literals
Not sure why this wasn't implemented. Lists seem to be okay.

R=vsm@google.com

Review URL: https://codereview.chromium.org/1611753002 .
2016-02-01 15:39:54 -08:00
John Messerly f43b756b2f fix #43, remove => workaround
also fixes node.js test to use a temp directory, instead of creating "tmp" under dev_compiler checkout

R=vsm@google.com

Review URL: https://codereview.chromium.org/1643523008 .
2016-02-01 12:54:58 -08:00
vsmenon 980c580483 Update devc.dart 2016-01-29 10:16:19 -08:00
Vijay Menon 0fbd992505 Builds / serves multiple HTML files.
With this, I can build multiple Angular samples simultaneously:

[dist/dart/playground/build/web] dart ~/git/dev_compiler/bin/dartdevc.dart -o /tmp/ddc-out --force-compile src/*/index.html

Fixes #430

R=jmesserly@google.com

Review URL: https://codereview.chromium.org/1645343002 .
2016-01-29 10:13:28 -08:00
John Messerly cf6bca8596 Remove library tags, they aren't needed
(with one exception: libs that have parts)

R=rnystrom@google.com

Review URL: https://codereview.chromium.org/1644823002 .
2016-01-29 09:25:34 -08:00
Olivier Chafik edaf069dba Add --modules=node support
- Force import order in all sdk files + simplify module builders
- Stub a node_test.sh with hello world + DeltaBlue (to be expanded to language tests in a followup change)
- Use global_ from dart:_runtime in html lib
- Better export for symbols that node chokes upon: throw, const, void, implements, export... (define as throw_ locally, with proper local resolution, then export as throw).
- Cleanup node module builder

BUG=
R=jmesserly@google.com

Review URL: https://codereview.chromium.org/1633003002 .
2016-01-29 10:01:48 +00:00
Vijay Menon b56617b947 Add CustomEvent
This just mechanically adds CustomEvent.

Fixes #423

R=jacobr@google.com

Review URL: https://codereview.chromium.org/1616263005 .
2016-01-28 17:04:13 -08:00
vsmenon 81625ea6b8 Update devc.dart 2016-01-28 15:45:19 -08:00
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