Commit Graph

337 Commits

Author SHA1 Message Date
Andrew Krieger 87bcbf9147 Move type tagging logic out of setSignature
setSignature is only called for classes with constructors or static
members, so previously _runtimeType was only set explicitly on such
classes. Now _runtimeType is not set on any classes except for Object,
and all other types inherit _runtimeType from Object.

R=jmesserly@google.com

Review URL: https://codereview.chromium.org/2076713002 .
2016-06-27 15:29:15 -07:00
John Messerly d27eda4ffc implement user-defined nSM, Object members on functions
fix #591 and fix #59

R=vsm@google.com

Review URL: https://codereview.chromium.org/2061373003 .
2016-06-22 17:18:52 -07:00
Stan Manilov 715c845d85 Add a regression test for bug #587
BUG= https://github.com/dart-lang/dev_compiler/issues/587
R=jmesserly@google.com

Review URL: https://codereview.chromium.org/2075493002 .
2016-06-15 16:58:57 -07:00
Leaf Petersen 3e5d1d80e6 Fix function subtyping crash
Fixes #588

BUG=
R=vsm@google.com

Review URL: https://codereview.chromium.org/2069653003 .
2016-06-14 09:55:04 -07:00
Leaf Petersen 59abfdb121 Fix bot, law of the excluded middle still holds
TBR=jacobr@google.com

BUG=

Review URL: https://codereview.chromium.org/2037503002 .
2016-06-01 20:58:44 -07:00
Leaf Petersen 40c7ac9038 Wire up class hierarchy for recursive inheritance
BUG=
R=jacobr@google.com

Review URL: https://codereview.chromium.org/2033543002 .
2016-06-01 19:21:45 -07:00
Leaf Petersen 3e9ed11db6 Name and hoist types
Adds infrastructure for naming and hoisting types in various ways. Makes an initial cut at how to slice the naming, but we will want to adjust.

BUG=
R=jmesserly@google.com

Review URL: https://codereview.chromium.org/1988023008 .
2016-05-25 11:07:38 -07:00
Bob Nystrom 1e5b3af2e0 Move generated files to gen/.
- The generated SDK goes into gen/patched_sdk.
- Expanded multitests go into gen/codegen_tests.
- Compiled tests go into gen/codegen_output.

R=jmesserly@google.com

Review URL: https://codereview.chromium.org/1988503002 .
2016-05-18 13:48:10 -07:00
John Messerly d2b6f53630 fix #470, string interpolation now respects Dart toString
R=sra@google.com

Review URL: https://codereview.chromium.org/1989663002 .
2016-05-17 17:23:57 -07:00
Bob Nystrom d95a368e70 Update dart:collection.
This doesn't include the copious changes in collection_patch.dart
because I believe (1) those are quite old and (2) are dart2js specific.

The changes here have basically no effect on DDC, but it at least gets
us a little better test coverage and reduces noise in the diffs.

R=sra@google.com

Review URL: https://codereview.chromium.org/1977003002 .
2016-05-17 15:39:52 -07:00
John Messerly 0cedeb49af simplify constructors, fixes #564
we still have an init method, for better or worse, to break out of ES6 restrictions

The idea here is default Dart constructor (really an initialization method) is always called `new` instead of the class name. We already do this for unnamed factory.

R=leafp@google.com

Review URL: https://codereview.chromium.org/1965213003 .
2016-05-17 14:36:56 -07:00
Leaf Petersen 59012493cb Eliminate unnecessary covariance checks.
This eliminates the erroneous checks inside of nested closures, and
eliminates checks where the type parameter is only used covariantly.

We still don't handle the cases where a generic is implemented by
a non-generic correctly.

BUG=
R=jmesserly@google.com

Review URL: https://codereview.chromium.org/1988613006 .
2016-05-17 12:21:02 -07:00
John Messerly 1265dc470b fix #569, cache constants defined in methods
R=leafp@google.com, sra@google.com

Review URL: https://codereview.chromium.org/1979013003 .
2016-05-17 11:09:59 -07:00
Stephen Adams 3c44af0a51 Named constants are (usually) not null.
R=vsm@google.com

BUG=

Review URL: https://codereview.chromium.org/1986683002 .
2016-05-17 10:55:14 -07:00
Harry Terkelsen 9458bdf428 enable top-level @JS() getters
BUG=
R=jmesserly@google.com

Review URL: https://codereview.chromium.org/1976383002 .
2016-05-16 09:22:32 -07:00
Bob Nystrom 4a51a187d3 Upgrade to the latest dart:convert.
This fixes html_escape_test as well as codec1_test.

R=vsm@google.com

Review URL: https://codereview.chromium.org/1978963002 .
2016-05-13 16:33:35 -07:00
Harry Terkelsen 382996f41c update dart:math
BUG=
R=rnystrom@google.com

Review URL: https://codereview.chromium.org/1967773005 .
2016-05-12 09:03:11 -07:00
John Messerly 825737dc13 fuse some null checks with type checks, introduce a special bool variant
fixes #536

R=sra@google.com

Review URL: https://codereview.chromium.org/1964263002 .
2016-05-11 11:16:00 -07:00
John Messerly a7f812b676 fix #552, Object members on native types
We initially hard coded a few of these. That worked until native_typed_data and html were added. Those two libraries have a lot of native types.

This also fixes TypeRep to extend dart:core Object, and fixes the dart:_runtime so we can write Dart classes. Cleans up a few of the JS builtins as well.

R=vsm@google.com

Review URL: https://codereview.chromium.org/1962823002 .
2016-05-10 11:35:38 -07:00
Bob Nystrom e535970604 Update dart:convert and dart:core Uri.
I started trying to get the convert tests all cleaned up and passing
but realized I was going down a rathole. So, for now, all of the slow
or failing ones are just skipped.

BUG=
R=sra@google.com

Review URL: https://codereview.chromium.org/1965563003 .
2016-05-10 10:25:38 -07:00
Harry Terkelsen 6a1d61fba7 optimize self-references in generic type definitions
fixes #556

R=jmesserly@google.com

Review URL: https://codereview.chromium.org/1958193002 .
2016-05-09 11:42:57 -07:00
Leaf Petersen 86c4dc01a1 Only use white list on indefinite checks
BUG=
R=vsm@google.com

Review URL: https://codereview.chromium.org/1953823005 .
2016-05-06 19:14:47 -07:00
Stephen Adams 65e8266447 Update collection (list / map / iterable) printing.
Remove methods from IterableBase that are now on Iterable.

And random comments from other files.

Review URL: https://codereview.chromium.org/1956933002 .
2016-05-06 16:03:44 -07:00
Jacob Richman 2cc3233c13 Remove unittest.js from codegen/expect directory.
BUG=

Review URL: https://codereview.chromium.org/1956053002 .
2016-05-06 13:48:33 -07:00
Jacob Richman 9520e96340 Switch to actual unittest, stack trace, and path packages. Tag tests as failing that were ignored due to the incomplete unittest library. Make running of unittests a bit more robust by wrapping them inside a mocha test to avoid unpredictable behavior due to interleaving async mocha and unittests.
BUG=
R=jmesserly@google.com

Review URL: https://codereview.chromium.org/1956513004 .
2016-05-06 12:28:44 -07:00
Harry Terkelsen d9e0533bf9 allow 'super' in async and finally blocks
Fixes #499
Fixes #528

R=jmesserly@google.com

Review URL: https://codereview.chromium.org/1948563002 .
2016-05-05 17:03:11 -07:00
Stephen Adams daddc0d4fa Update number parsing.
Review URL: https://codereview.chromium.org/1950133008 .
2016-05-05 16:15:05 -07:00
Bob Nystrom a6d1fbfb9d Fix accessing private members on extension classes.
Since the member was already a symbol, canonicalMember() was incorrectly
double wrapping it.

Fixes #508.

R=vsm@google.com

Review URL: https://codereview.chromium.org/1944293003 .
2016-05-04 15:04:00 -07:00
John Messerly 56b9d090aa fix #549 export of properties
R=vsm@google.com

Review URL: https://codereview.chromium.org/1949253002 .
2016-05-04 14:59:12 -07:00
John Messerly c840252271 fix for #520, ListMixin should work again
it regressed when dart:html was added and it became an "extension type"

R=vsm@google.com

Review URL: https://codereview.chromium.org/1949163003 .
2016-05-04 14:31:29 -07:00
Leaf Petersen 2f00ebd41c Better is/as check handling. With this CL, the subtype function in
the DDC runtime returns null when a difference from the spec mode
result is possible.

Fixes https://github.com/dart-lang/dev_compiler/issues/524 .

BUG=
R=jmesserly@google.com, vsm@google.com

Review URL: https://codereview.chromium.org/1945113003 .
2016-05-04 13:25:55 -07:00
Stephen Adams be0d779177 Add corelib tests
99 have compile errors
265 generate code
94 fail

We will triage after updating the sdk.

R=vsm@google.com

Review URL: https://codereview.chromium.org/1945153002 .
2016-05-04 11:09:28 -07:00
Bob Nystrom 3bb9e0aa93 Don't wrap type literals that are referenced by prefixes.
Also, fix the language test for this to actually do something useful.
I accidentally removed the definition of testType() in the last patch,
so the test did nothing. :(

Fixes #547.

R=vsm@google.com

Review URL: https://codereview.chromium.org/1945643005 .
2016-05-04 10:13:23 -07:00
John Messerly 2b20f3d1cc fix #543, export of properties should now work
top-level fields, getters, setters were all broken

R=vsm@google.com

Review URL: https://codereview.chromium.org/1949733002 .
2016-05-03 16:37:42 -07:00
Bob Nystrom 44db042cd8 Redo how Type objects are exposed from DDC.
- Instead of using the raw runtime type that DDC uses for its type
  checks, use a WrappedType that correctly implements Type's interface.
- Compile class literals to wrap the type in a WrappedType.
- Make Object.runtimeType() do the same thing.

Fixes #488. Fixes #511.

R=jmesserly@google.com

Review URL: https://codereview.chromium.org/1944483002 .
2016-05-03 14:24:08 -07:00
John Messerly 733773476d instantiate generic tear-offs, fixes #525
R=het@google.com

Review URL: https://codereview.chromium.org/1930323004 .
2016-04-29 16:41:24 -07:00
Harry Terkelsen 428cb00f7d include type parameters on generic sync/async functions
fixes #538

R=jmesserly@google.com

Review URL: https://codereview.chromium.org/1935823002 .
2016-04-29 15:25:56 -07:00
Stephen Adams a7504464c3 Improve code for shifts and bitwise operations.
- JavaScript shifts can be used for operands in certain ranges.

- Coercion from signed-32 to unsigned-32 can be omitted if
  - it is a no-op
  - the context performs the coercion
  - the context is insensitive to the most significant bit

R=jmesserly@google.com

Review URL: https://codereview.chromium.org/1920293005 .
2016-04-29 12:22:15 -07:00
John Messerly 6598fa0f7d implement generic method runtime behavior, fixes #301
R=leafp@google.com, vsm@google.com

Review URL: https://codereview.chromium.org/1926283002 .
2016-04-29 10:41:48 -07:00
Harry Terkelsen d109467369 Use lazy static fields when overriding static getters or setters.
Fixes #522

R=jmesserly@google.com

Review URL: https://codereview.chromium.org/1927353002 .
2016-04-28 15:42:01 -07:00
Stephen Adams 8c745c69d1 Fix modulo and bitwise operators.
Dart `%` is modulo, JS `%` is remainder, so call the runtime version.

Use dart2js interpretation of bit operations and shifts which always
produce a 32-bit unsigned result.

Optimization of the bit operations to follow.

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

Review URL: https://codereview.chromium.org/1924413002 .
2016-04-28 13:47:22 -07:00
Vijay Menon 9d49469af4 Reenable typed_data and html tests
TBR=jacobr@google.com

Review URL: https://codereview.chromium.org/1924423002 .
2016-04-28 13:00:07 -07:00
Jacob Richman efa2303c64 Add all dart:html tests from the sdk to test/codegen. All tests are added except for js_array_test.dart and js_dart_to_string_test.dart which have to be stripped out for now due to failures.
BUG=
R=vsm@google.com

Review URL: https://codereview.chromium.org/1930043002 .
2016-04-28 12:30:25 -07:00
Vijay Menon acc4d6867d Stop concatenating all tests
R=sra@google.com

Review URL: https://codereview.chromium.org/1928443006 .
2016-04-28 11:29:38 -07:00
Jacob Richman eef7f81d0a Land fix to StackTrace.current performance already landed in dart2js.
BUG=
R=vsm@google.com

Review URL: https://codereview.chromium.org/1927813002 .
2016-04-28 09:28:25 -07:00
Sigmund Cherem b163c86585 Make file-paths absolute before providing them to the CustomUrlResolver
R=jmesserly@google.com

Review URL: https://codereview.chromium.org/1931553003 .
2016-04-28 09:07:28 -07:00
Vijay Menon 3483e1974c Qualify library names in packages
Partially addresses #504.  This is WIP, but wanted your thoughts.

Comment / questions:
- The current js_ast ImportDeclaration assumes a legal identifier I think.
  E.g., this gets lowered:
  import { src$interfaces } from "matcher"

- Should we thread package root through ModuleCompiler to let it packagify urls?

- How should we handle non-package urls?  Pass in an explicit root dir
  and go relative?

R=jmesserly@google.com

Review URL: https://codereview.chromium.org/1917863005 .
2016-04-27 21:03:58 -07:00
John Messerly aa0b75f893 simplify emitting dart.bind for native types
R=het@google.com

Review URL: https://codereview.chromium.org/1921503007 .
2016-04-27 09:59:32 -07:00
John Messerly 45f57aab55 small cleanup in dart:_runtime
there was LazyTagged thing that was not necessary

R=vsm@google.com

Review URL: https://codereview.chromium.org/1920743003 .
2016-04-26 17:58:13 -07:00
Harry Terkelsen bc0536a56a Use static dispatch for dynamic on Object methods
Fixes #510

R=jmesserly@google.com

Review URL: https://codereview.chromium.org/1919173004 .
2016-04-26 17:54:02 -07:00