Commit Graph

37 Commits

Author SHA1 Message Date
John Messerly a4cbcc0c07 implement mixins in subtype checks, more codegen fixes
or: how creating a SplayTreeSet<String> leads to fixing a bunch of stuff

R=vsm@google.com

Review URL: https://codereview.chromium.org/1058653002
2015-04-02 12:16:24 -07:00
John Messerly 864299081e partially implement instance of checks and some codegen fixes
R=vsm@google.com

Review URL: https://codereview.chromium.org/1050723002
2015-04-01 09:44:37 -07:00
John Messerly 5472d0cfcd keep mixin and interface implementation info at runtime
R=jacobr@google.com, vsm@google.com

Review URL: https://codereview.chromium.org/1043003002
2015-03-30 16:09:48 -07:00
John Messerly fc02cba0f4 use == and != to enable handling null/undefined
R=jacobr@google.com, vsm@google.com

Review URL: https://codereview.chromium.org/1047023002
2015-03-30 16:01:22 -07:00
John Messerly 1515ceaa8e fixes private named constructors
R=jacobr@google.com

Review URL: https://codereview.chromium.org/1042943003
2015-03-30 14:30:01 -07:00
John Messerly af714fed80 fix for static methods and names banned in strict mode
* static methods qualified properly
* static method privacy is now enforced
* avoid static method names banned in strict mode
* avoid variable names banned in strict mode

We might want to relax privacy (for both instance and static), but for now it's nice and consistent with instance methods using ES6 Symbol

R=jacobr@google.com

Review URL: https://codereview.chromium.org/1034273003
2015-03-30 10:09:56 -07:00
Jacob Richman a6ca53ee49 fix list literal initialization call fix typeof calls for primitive JS types add dart/collection.js to defaultRuntimeFiles list Enclose switch statement case blocks with braces to insure a block scope matching dart semantics
BUG=
R=jmesserly@google.com

Review URL: https://codereview.chromium.org/1042003002
2015-03-30 09:42:29 -07:00
John Messerly e1c8e996b7 Replace dart_core.js with actual compiled SDK
Almost no calls are going to work at this point, but core.js can load
now and there is enough in place to continue to load sunflower.

R=sigmund@google.com

Review URL: https://codereview.chromium.org/1020043002
2015-03-20 09:41:00 -07:00
John Messerly c587869d1d bind to localhost instead of all interfaces, and fix closureWrap
R=sigmund@google.com

Review URL: https://codereview.chromium.org/1022923005
2015-03-20 09:19:10 -07:00
John Messerly b62f4c06ab sort classes in dependency order, or load lazily if needed, fixes #78
this also starts using compiled code in dart_core.js (just copy+paste for Object)

visitClassDeclaration was getting rather long, so it's now refactored to make the flow more clear.

R=sigmund@google.com

Review URL: https://codereview.chromium.org/1016003003
2015-03-19 10:03:22 -07:00
Vijay Menon 48d4a4e320 Allow S->T <: dynamic->T
In followup CLs, I will:
- Fix coercions to limit implicit ones.

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

Review URL: https://codereview.chromium.org/1010893004
2015-03-18 16:40:43 -07:00
Sigmund Cherem fa03b6b422 Move sunflower to a new directory, make final tweaks to make it all work.
R=jmesserly@google.com

Review URL: https://codereview.chromium.org/1007313003
2015-03-18 15:53:59 -07:00
John Messerly 07feeb3119 js: fix core.Object, output order, static const fields
These are a few fixes trying to get the compiled SDK to load

R=vsm@google.com

Review URL: https://codereview.chromium.org/1011153002
2015-03-17 13:11:34 -07:00
Jacob Richman 2ed6fbe9e7 minor code cleanup
BUG=
R=jmesserly@google.com

Review URL: https://codereview.chromium.org/1002443002
2015-03-11 08:36:23 -07:00
John Messerly b8fcd8cb42 rename as helper to make tools happy
WebStorm ES6 support treats `as` as a keyword. Not sure why, as I don't see it in any ES6 specs, even under "future reserved words".

R=sigmund@google.com

Review URL: https://codereview.chromium.org/971823002
2015-03-02 11:03:31 -08:00
John Messerly b82e83f383 use js_ast instead of strings to generate JS
fixes https://github.com/dart-lang/dev_compiler/issues/61

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

Review URL: https://codereview.chromium.org/949383003
2015-02-25 11:14:19 -08:00
Vijay Menon 5c1c9c2381 Add LICENSE and corresponding headers
Fix expectations where line number has changed.

R=dgrove@google.com

Review URL: https://chromereviews.googleplex.com/158257013
2015-02-24 15:02:26 -08:00
John Messerly 0ddedfb3da fix incorrect DartObject reference
Review URL: https://chromereviews.googleplex.com/156337013
2015-02-19 09:32:21 -08:00
John Messerly 7c1ab1f04d work around issue #51, super restrictions in V8
Adds an explicit "extends dart.Object", which we probably want for other reasons (e.g. toString, runtimeType, hashCode)

Attempts to recover some readability by tweaking the name of the initialize functions. This closes #51, but we should open another tracking bug because there are concerning aspects to this workaround.

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

Review URL: https://chromereviews.googleplex.com/150417015
2015-02-18 16:27:32 -08:00
John Messerly bf9a2b9015 add test tools, implement generic type constructor
test tools are from https://github.com/webcomponents/webcomponentsjs/tree/master/tests/tools

R=vsm@google.com

Review URL: https://chromereviews.googleplex.com/151127013
2015-02-11 16:53:05 -08:00
John Messerly 083e4c4889 reified generics baby steps
introduces a memoized function that produces the generic type instance
generic type parameters are closed over, making it easy to get them and ensure they flow correctly through base class/mixins.

also implements the unimplemented features in _typeName.

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

Review URL: https://chromereviews.googleplex.com/157627013
2015-02-11 09:03:03 -08:00
John Messerly f85c2eb649 fix mixin field init, implicit-this
also slight change to sunflower example

R=vsm@google.com

Review URL: https://chromereviews.googleplex.com/144247014
2015-02-09 13:11:26 -08:00
John Messerly bf682828f8 implement try and switch
R=leafp@google.com

Review URL: https://chromereviews.googleplex.com/144527014
2015-02-06 10:25:13 -08:00
John Messerly 9957696748 improve invoke/as code
R=vsm@google.com

Review URL: https://chromereviews.googleplex.com/149937013
2015-02-05 15:46:42 -08:00
John Messerly 170c06e3d4 partial support for IsExpression
R=vsm@google.com

Review URL: https://chromereviews.googleplex.com/148937013
2015-02-05 09:52:33 -08:00
John Messerly 7b60c4140f simplify named ctors
R=vsm@google.com

Review URL: https://chromereviews.googleplex.com/150947013
2015-02-05 09:18:50 -08:00
John Messerly 1c26c3e1a6 fix user-defined operators in classes
well, at least they don't generate blatantly illegal ES6 code now :)
also fixes incorrect implicit this generation, dynamic get/index, and set/setindex

R=vsm@google.com

Review URL: https://chromereviews.googleplex.com/146497013
2015-02-03 16:56:24 -08:00
John Messerly a6cde17998 fix static fields, add map literals
R=vsm@google.com

Review URL: https://chromereviews.googleplex.com/141557013
2015-01-30 13:23:55 -08:00
John Messerly 6c6a6d5163 fix typo 2015-01-30 11:46:23 -08:00
John Messerly 9f318a484c add support for mixins
R=vsm@google.com

Review URL: https://chromereviews.googleplex.com/147247013
2015-01-30 11:19:31 -08:00
John Messerly 25a0f9fba4 implement function statements, assert
R=vsm@google.com

Review URL: https://chromereviews.googleplex.com/145367013
2015-01-30 08:00:42 -08:00
John Messerly 8463f421ad implement notNull checking for num -> int and num -> double
R=vsm@google.com

Review URL: https://chromereviews.googleplex.com/144347013
2015-01-30 07:59:36 -08:00
John Messerly b9fce8ad51 add lazy fields, cleanup library identifiers
R=leafp@google.com, vsm@google.com

Review URL: https://chromereviews.googleplex.com/146777014
2015-01-26 10:25:45 -08:00
John Messerly c9d86483ef rename dart_runtime to dart
R=vsm@google.com

Review URL: https://chromereviews.googleplex.com/147667013
2015-01-22 11:09:21 -08:00
John Messerly 69add413d2 add work-in-progress deltablue
R=vsm@google.com

Review URL: https://chromereviews.googleplex.com/147607013
2015-01-22 09:49:48 -08:00
Vijay Menon 20cf4c9c4b Runtime arity helper function
We'll need to figure out an efficient way to do this in JS output.

An alternative, suggested by Jacob, is only provide something like an applyTruncated function.  E.g., something like:

dynamic applyTruncated(Function f, List args) {
  var arity = getArity(f);
  assert(args.length >= arity.min);
  args = args.sublist(0, arity.max);
  return Function.apply(f, args);
}

Jacob: is this what you have in mind?

If so, we could *only* provide this.  The dart2j impl could use the existing code pattern of is-checks.  The ddc implementation could map to JS apply (with a check for named params?).

Thoughts?

R=jacobr@google.com

Review URL: https://chromereviews.googleplex.com/137047014
2015-01-13 17:55:44 -08:00
Sigmund Cherem 02a4650a24 Refactor: move code around a bit
- bin/
    devc.dart

- lib/
    devc.dart

    src/
       info.dart # static info we compute, used by checker & backends
       checker/  # implementation details for the checker
          checker.dart  # checking algorithm
          rules.dart    # type checking rules
          resolver.dart # same as today, type resolution via analyzer
       emitter/
          ...
- test/
     checker/    # unit tests for the checker internals
     codegen/    # left as is - maybe should rename to emitter?
     samples/    # stand alone samples that we run in the end_to_end tests.
     ...

R=vsm@google.com

Review URL: https://chromereviews.googleplex.com/128957013
2014-12-11 15:13:54 -08:00