Commit Graph

857 Commits

Author SHA1 Message Date
Jennifer Messerly 5533a256cb fix #30030, fix #27327 - fix tearoffs and various Object member bugs
this includes various cleanups found along the way:
* various issues with JS annotations, see #30043
* getGenericClass is now optimized when used in a JS builtin with a Type literal
* typed list literals should be slightly faster to create
* memoized getters used by dart:_runtime should be faster
* registerExtension should be a tad faster, and now understands JSArray
* dart.bind "safeName" hack gone in codegenerator
* JSArray<E>.runtimeType returns List<E>
* JSArray<E>.noSuchMethod works
* cleans up code that generates `setExtensionBaseClass` (used only by JSArray)
* _throwUnsafe helper for generating a `throw` in --unsafe compile mode
* fix tearoff of JS interop types (_emitSimpleIdentifier)
* fix TODO about splitting LazyJSType and AnonymousJSType
* fix is/as/cast methods on TypeRep and related classes
* fix codegenerator to not tearoff "hashCode" and "runtimeType" (they are not methods)
* fix NoSuchMethodError.toString()   (update via dart2js sdk impl)

R=vsm@google.com

Review-Url: https://codereview.chromium.org/2962263002 .
2017-07-05 14:17:53 -07:00
Vijay Menon 7b766556a1 Update test status
See #30075

TBR=rnystrom@google.com

Review-Url: https://codereview.chromium.org/2967193002 .
2017-07-05 10:16:25 -07:00
Vijay Menon 9cbd5bdc2e Output errors for tests that fail to compile
This makes it easier to fix strong mode errors in tests.

R=rnystrom@google.com

Review-Url: https://codereview.chromium.org/2971443002 .
2017-07-05 09:37:14 -07:00
Leaf Petersen 6f73694bb7 Generate better code for '==', core.identical, and dart.test.
Avoid falling back to the dart.equal runtime helper where possible based on static types.  Also uses JS `==` or `===` in some cases.

Treat core.identical as a compiler intrinsic, based on type.

Make dart.test assume correct types, use dart.dtest for combined cast and nullability check only when required.

Fixes https://github.com/dart-lang/sdk/issues/29851
Fixes https://github.com/dart-lang/sdk/issues/29772
BUG=
R=jmesserly@google.com

Review-Url: https://codereview.chromium.org/2926613003 .
2017-06-30 15:04:29 -07:00
Bob Nystrom 0b2c9b048d Dynamically load packages for dartdevc tests in test.dart.
This involves a few pieces:

- Add support to DDC for specifying the module name associated with a
  given summary. This lets test.dart invoke DDC using summaries in the
  build directory outside of the directory containing the test itself.

- Add support to the build scripts for building the packages. This adds
  a new GN target that builds everything needed to run test.dart with
  dartdevc. In particular, it invokes build_pkgs.dart to compile the
  relevant packages to JS+summary so that the tests can use them.

  This requires some changes to build_pkgs.dart so it can output to a
  given directory.

- In test.dart, when tests are compiled with dartdevc, pass in the
  summaries for the packages so they don't get compiled in. Then, when
  the test is run, configure require.js with the right paths to their
  JS files so they can be loaded.

  I also removed a bunch of unneeded buildDir parameters being passed
  around the various CompilerConfiguration class methods now that they
  have direct access to the configuration.

Fix #29923.

R=vsm@google.com, whesse@google.com, zra@google.com

Review-Url: https://codereview.chromium.org/2955513002 .
2017-06-29 13:45:57 -07:00
Erik Corry 029b1cb948 Spelling fixes e to i.
R=kevmoo@google.com
BUG=

Review-Url: https://codereview.chromium.org/2957593002 .
2017-06-24 13:41:39 +02:00
Vijay Menon daf960d5a4 Fix Object method tearoffs
R=jmesserly@google.com

Review-Url: https://codereview.chromium.org/2953933002 .
2017-06-22 15:59:45 -07:00
Jennifer Messerly 71c7914061 fix checking of dsend generic type bounds
R=vsm@google.com

Review-Url: https://codereview.chromium.org/2935553002 .
2017-06-12 16:17:39 -07:00
Jennifer Messerly cb038cda2f fix test runner to understand mutlitests that expect an error
R=rnystrom@google.com, vsm@google.com

Review-Url: https://codereview.chromium.org/2930203002 .
2017-06-12 16:07:17 -07:00
Jennifer Messerly 334354f968 fix #29753, use ES5 constructors for ddc
R=vsm@google.com

Review-Url: https://codereview.chromium.org/2934623003 .
2017-06-12 15:31:32 -07:00
Vijay Menon 06c4619b3e Fix int test
Fixes #29822

R=jmesserly@google.com

Review-Url: https://codereview.chromium.org/2927703005 .
2017-06-08 17:42:35 -07:00
Leaf Petersen cb8cc2526b Add codegen test for equality.
Adds a DDC test tracking the generated code and its correctness. Some
test harness changes to support running codegen tests.

BUG=
R=jmesserly@google.com

Review-Url: https://codereview.chromium.org/2930733002 .
2017-06-07 12:42:30 -07:00
Jennifer Messerly 99d5344463 fix "unresolved names" code generation
now unsafe-force-compile will generate a throw rather than a free floating name

R=vsm@google.com

Review-Url: https://codereview.chromium.org/2920223009 .
2017-06-06 15:53:30 -07:00
Jennifer Messerly 88510c1860 fix #29146, downgrade import error to warning in strong mode
R=brianwilkerson@google.com

Review-Url: https://codereview.chromium.org/2916223002 .
2017-06-01 15:44:30 -07:00
Vijay Menon 75afaf5a24 Support reflectClass on parameterized classes
Internal pageloader usage hits this.

R=rnystrom@google.com

Review-Url: https://codereview.chromium.org/2899343004 .
2017-05-25 13:27:35 -07:00
Alan Knight 0bb2d5e548 Update DDC html libraries to match SDK
BUG=
R=vsm@google.com

Review-Url: https://codereview.chromium.org/2899083007 .
2017-05-25 09:33:23 -07:00
Vijay Menon 92d39a4e08 One more minor mixin fix
We need to preserve the Mixin constructor to make sure metadata (e.g.,
implements) is injected in the right place.

R=jacobr@google.com

Review-Url: https://codereview.chromium.org/2779063002 .
2017-05-19 07:41:29 -07:00
Vijay Menon 1f94f3dc0a Fix status for FF
TBR=alanknight@google.com

Review-Url: https://codereview.chromium.org/2895543002 .
2017-05-18 19:29:40 -07:00
Vijay Menon b82b0e29ed DDC fixes for SpeechRecognition
R=alanknight@google.com

Review-Url: https://codereview.chromium.org/2896463002 .
2017-05-18 17:05:51 -07:00
Devon Carew 4afc0aeb73 Fix some analysis issues.
BUG=
R=danrubel@google.com

Review-Url: https://codereview.chromium.org/2882003002 .
2017-05-13 16:24:47 -07:00
Vijay Menon 36356c28c1 Better stack trace support
- Caches stack trace objects (package:stack_trace appears to rely on this)
- Better support for stack traces on primitives

R=jmesserly@google.com

Review-Url: https://codereview.chromium.org/2869463002 .
2017-05-09 14:58:34 -07:00
Jennifer Messerly 811a9eed1d Revert "Revert "fix #27256, track type bounds for generic functions""
This reverts commit 3a23e604e2.

The problem was unrelated to the CL; it appears to be a dart:async break of package:async.

In the meantime we have turned on --unsafe-force-compile to DDC's shapshotting step

Review-Url: https://codereview.chromium.org/2869733006 .
2017-05-09 14:20:25 -07:00
Alan Knight 3a23e604e2 Revert "fix #27256, track type bounds for generic functions"
This reverts commit b58f826976.

BUG=

Review URL: https://codereview.chromium.org/2870543005 .
2017-05-09 12:58:03 -07:00
Jennifer Messerly b58f826976 fix #27256, track type bounds for generic functions
R=vsm@google.com

Review-Url: https://codereview.chromium.org/2867493002 .
2017-05-09 11:42:40 -07:00
Jennifer Messerly 171f7ba592 fix #29544, mixins to a class with named constructors
R=vsm@google.com

Review-Url: https://codereview.chromium.org/2859703003 .
2017-05-04 12:33:45 -07:00
Jennifer Messerly 6ab17db3da fix more mixin tests to work in strong mode
R=vsm@google.com

Review-Url: https://codereview.chromium.org/2861783002 .
2017-05-04 11:30:14 -07:00
Jennifer Messerly eeb0e1d2ae fix #27258, don't allow dynamic set of a final field
R=vsm@google.com

Review-Url: https://codereview.chromium.org/2847893002 .
2017-05-01 15:36:32 -07:00
Erik Corry aa6353b6da Dart SDK Spelling b, c, and d.
R=kmillikin@google.com
BUG=

Review-Url: https://codereview.chromium.org/2850783002 .
2017-05-01 08:28:10 +02:00
Vijay Menon 334373b1dc Temporarily disable overlapping summary check
Turning this off to unblock the current roll.  We'll try flipping the
flag internally and shaking out the last violators.

R=keertip@google.com

Review-Url: https://codereview.chromium.org/2853543002 .
2017-04-28 11:08:05 -07:00
Jennifer Messerly d26bb56575 fix #27971, implement generic function RTTI
R=vsm@google.com

Review-Url: https://codereview.chromium.org/2832913003 .
2017-04-21 15:40:44 -07:00
Jennifer Messerly bed6f8242a add an option to turn off errors from strong mode is-checks
This adds an option and also has our tests run with it turned off.

R=vsm@google.com

Review-Url: https://codereview.chromium.org/2835743002 .
2017-04-21 15:24:32 -07:00
Jacob Richman 7149b90c7c Tighten up handling of JS types and add test.
Side effect of this:
Fix bug where helpers in js_mirrors were specifying that name had to have type String when it could really also be a JS Symbol as well.
Fix bug where top level JS interop members using the external keyword but no @JS keyword were not implemented.
Update js_typed_interop_test.dart so it can work in DDC.
Add regression test for jsify call with native function type arguments.

BUG=
R=vsm@google.com

Review-Url: https://codereview.chromium.org/2827333003 .
2017-04-21 08:44:00 -07:00
Vijay Menon 21c38e6c8c Various DDC fixes for windows
This gets most tests compiling and running on Windows.

Fixes #27450
Fixes #27797
Fixes #28752

R=jmesserly@google.com

Review-Url: https://codereview.chromium.org/2833633002 .
2017-04-20 11:30:57 -07:00
Vijay Menon a3d2e49198 Revert "Revert "Report error if the same uri appears in multiple summaries.""
Relanding after fixing package_bundle_reader_test.dart.

Note, original CL (already reviewed here: https://codereview.chromium.org/2781483007/) is patch set 1.

Test fix is patch set #2.

R=brianwilkerson@google.com

Review-Url: https://codereview.chromium.org/2825503002 .
2017-04-17 10:11:21 -07:00
Vijay Menon dcdccf4750 Revert "Report error if the same uri appears in multiple summaries."
This reverts commit 2afa21bb2c.

Breaking the bots.

TBR=jmesserly@google.com
BUG=

Review-Url: https://codereview.chromium.org/2821933002 .
2017-04-17 08:07:36 -07:00
Vijay Menon 2afa21bb2c Report error if the same uri appears in multiple summaries.
Fixes #27025

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

Review-Url: https://codereview.chromium.org/2781483007 .
2017-04-17 07:32:59 -07:00
Jennifer Messerly b76e2d67cf fix #29346, ensure all nodes are implemented by DDC's code generator
R=vsm@google.com

Review-Url: https://codereview.chromium.org/2822633003 .
2017-04-14 10:10:50 -07:00
Vijay Menon 1975c8431a Migrate async tests to strong
No modifications to the actual tests

R=rnystrom@google.com

Review-Url: https://codereview.chromium.org/2802973005 .
2017-04-07 12:46:12 -07:00
Vijay Menon 5c3bcff375 DDC fix for foreign futures
Fixes #29287

R=jmesserly@google.com

Review-Url: https://codereview.chromium.org/2804113002 .
2017-04-06 14:52:59 -07:00
Jennifer Messerly e4e7dffadb fix #29182, generate top level const fields lazily
This fixes an ordering issue, but also may help load time.

R=vsm@google.com

Review-Url: https://codereview.chromium.org/2797443007 .
2017-04-04 16:18:46 -07:00
Peter von der Ahé 4827ac4f38 Remove references to renamed test.
R=jmesserly@google.com

Review-Url: https://codereview.chromium.org/2790893002 .
2017-04-04 09:51:29 +02:00
Jacob Richman 509bcd58e1 Fix type checks and display for JS interop types.
Re-enable formatter test that had been disabled when someone changed type
name display for Foo<dynamic> types.
Fix bug in how type names were displayed for JS interop types.

BUG=
R=vsm@google.com

Review-Url: https://codereview.chromium.org/2789663005 .
2017-04-03 08:34:20 -07:00
Vijay Menon 46d6c56c96 Fix ddc async test code
Fortunately, not too many false passes.

R=jacobr@google.com

Review-Url: https://codereview.chromium.org/2792703002 .
2017-03-31 15:57:08 -07:00
Vijay Menon 466d4ffb9c Add runtime tests for ignored checks
Tests for https://codereview.chromium.org/2788933002/

R=jmesserly@google.com

Review-Url: https://codereview.chromium.org/2789933002 .
2017-03-31 13:31:59 -07:00
Jacob Richman a7465d942f Update test expectations to reflect errors that are now warning.
BUG=

Review-Url: https://codereview.chromium.org/2785183003 .
2017-03-30 14:54:35 -07:00
Konstantin Shcheglov cf25e7f5cb Fix top-level inference errors for most of the newly failing tests.
Update analyzer status files and DDC expections.

R=brianwilkerson@google.com
BUG=

Review-Url: https://codereview.chromium.org/2779843004 .
2017-03-28 12:16:09 -07:00
Jennifer Messerly 1c504f8945 Fix #28120, strong mode allows field overrides
Fix #28119, DDC supports field overrides without @virtual
Fix #28801, devirtualize private fields in DDC where possible
Fix #28589, stop supporting @virtual in strong mode

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

Review-Url: https://codereview.chromium.org/2781443003 .
2017-03-28 10:26:36 -07:00
Konstantin Shcheglov 27ab6478b9 Report errors for the new top-level inference rules.
We also stop type inference most of these cases with task based analysis.
Summary based analysis is not changed yet.

R=brianwilkerson@google.com
BUG=

Review-Url: https://codereview.chromium.org/2782533002 .
2017-03-28 09:41:04 -07:00
Vijay Menon 50ceaa4c04 Fix for #29003
This is an alternative to the other CL.  It just uses the result of
dart.mixin instead of declaring a new class.  That preserves the assumption (at least at runtime) that the mixin class directly inherits from Object.

We were also not declaring interfaces for ClassTypeAliases.

R=jmesserly@google.com

Review-Url: https://codereview.chromium.org/2783443002 .
2017-03-27 16:06:13 -07:00
Vijay Menon ac68d598cf Add patch code for List.filled growable param
Looks like a missing param doesn't break patch_sdk.  I think this was a recent add.

Fixes #28508

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

Review-Url: https://codereview.chromium.org/2771953004 .
2017-03-24 14:27:47 -07:00