Commit Graph

1076 Commits

Author SHA1 Message Date
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
Vijay Menon a7645f817f Optimize runtime code on hot methods
ochafik: this should include your internal fixes.

Here are generated diffs:

JSArray:
       [dartx._get](index) {
-        if (!(typeof index == 'number')) dart.throw(_js_helper.diagnoseIndexError(this, index));
-        if (dart.notNull(index) >= dart.notNull(this[dartx.length]) || dart.notNull(index) < 0) dart.throw(_js_helper.diagnoseIndexError(this, index));
+        if (index == null || index >= this.length || index < 0) {
+          dart.throw(_js_helper.diagnoseIndexError(this, index));
+        }
         return this[index];
       }
       [dartx._set](index, value) {
         E._check(value);
         this[dartx.checkMutable]('indexed set');
-        if (!(typeof index == 'number')) dart.throw(_js_helper.diagnoseIndexError(this, index));
-        if (dart.notNull(index) >= dart.notNull(this[dartx.length]) || dart.notNull(index) < 0) dart.throw(_js_helper.diagnoseIndexError(this, index));
+        if (index == null || index >= this.length || index < 0) {
+          dart.throw(_js_helper.diagnoseIndexError(this, index));
+        }

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

JSString:
     [dartx.codeUnitAt](index) {
-      if (!(typeof index == 'number')) dart.throw(_js_helper.diagnoseIndexError(this, index));
-      if (dart.notNull(index) < 0) dart.throw(_js_helper.diagnoseIndexError(this, index));
-      if (dart.notNull(index) >= dart.notNull(this[dartx.length])) dart.throw(_js_helper.diagnoseIndexError(this, index));
+      if (index == null || index < 0 || index >= this.length) {
+        dart.throw(_js_helper.diagnoseIndexError(this, index));
+      }
       return this.charCodeAt(index);
     }
     [dartx.startsWith](pattern, index) {
       if (index === void 0) index = 0;
-      _js_helper.checkInt(index);
-      if (dart.notNull(index) < 0 || dart.notNull(index) > dart.notNull(this[dartx.length])) {
+      let length = this.length;
+      if (dart.notNull(index) < 0 || index > length) {
         dart.throw(new core.RangeError.range(index, 0, this[dartx.length]));
       }
       if (typeof pattern == 'string') {
         let other = pattern;
-        let otherLength = other[dartx.length];
-        let endIndex = dart.notNull(index) + dart.notNull(otherLength);
-        if (endIndex > dart.notNull(this[dartx.length])) return false;
+        let otherLength = other.length;
+        let endIndex = index + otherLength;
+        if (endIndex > length) return false;
         return other == this.substring(index, endIndex);
       }
       return pattern[dartx.matchAsPrefix](this, index) != null;
     }
     get [dartx.isEmpty]() {
-      return this[dartx.length] == 0;
+      return this.length == 0;
     }
     [dartx.compareTo](other) {
-      if (!(typeof other == 'string')) dart.throw(_js_helper.argumentErrorValue(other));
+      if (other == null) dart.throw(_js_helper.argumentErrorValue(other));
       return dart.equals(this, other) ? 0 : this < other ? -1 : 1;
     }
     get [dartx.hashCode]() {
       let hash = 0;
-      for (let i = 0; i < dart.notNull(this[dartx.length]); i++) {
+      let length = this.length;
+      for (let i = 0; i < length; i++) {
         hash = 536870911 & hash + this.charCodeAt(i);
         hash = 536870911 & hash + ((524287 & hash) << 10);
         hash = hash ^ hash >> 6;
         ...
     }
     [dartx._get](index) {
-      if (!(typeof index == 'number')) dart.throw(_js_helper.diagnoseIndexError(this, index));
-      if (dart.notNull(index) >= dart.notNull(this[dartx.length]) || dart.notNull(index) < 0) dart.throw(_js_helper.diagnoseIndexError(this, index));
+      if (index == null || index >= this.length || index < 0) {
+        dart.throw(_js_helper.diagnoseIndexError(this, index));
+      }
       return this[index];
     }
Review-Url: https://codereview.chromium.org/2927763004 .
2017-06-08 17:31:44 -07:00
Jennifer Messerly 332b34aba8 refactor _emitFunctionBody slightly to simplify it
R=vsm@google.com

Review-Url: https://codereview.chromium.org/2929503002 .
2017-06-06 15:58:55 -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
Leaf Petersen 671091b9ef Regenerate DDC SDK.
BUG=
R=vsm@google.com

Review-Url: https://codereview.chromium.org/2926523002 .
2017-06-05 16:28:16 -07:00
Jennifer Messerly 3054dc50c1 fix #27255, remove angular whitelist hack
R=vsm@google.com

Review-Url: https://codereview.chromium.org/2928483002 .
2017-06-05 14:52:55 -07:00
Alan Knight a865f0ecf2 Update DDC libraries to match SDK, and debugger_test golden file
BUG=
R=jacobr@google.com

Review-Url: https://codereview.chromium.org/2903333002 .
2017-05-25 15:00:51 -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 2187f5232d DDC cleanup
R=jacobr@google.com, jakemac@google.com

Review-Url: https://codereview.chromium.org/2902103005 .
2017-05-24 13:01:10 -07:00
Vijay Menon 5919a12038 Library root fix for win
R=jakemac@google.com

Jacob: do we need a fix in jsDebuggingLibraryName too?  could that code be refactored - it looks like it duplicates a lot of logic.
Review-Url: https://codereview.chromium.org/2899363002 .
2017-05-24 12:10:47 -07:00
Vijay Menon 6402ad477d Use the dart2js patch for dart:convert to get latest type fixes
BUG=
R=floitsch@google.com

Review-Url: https://codereview.chromium.org/2896253003 .
2017-05-24 07:33:19 -07:00
Jacob Richman 58851f2f06 Add ignoreAllErrors option to dart:_runtime
Supports users who want to try to run broken code while porting a Dart
app to strong mode.

BUG=
R=alanknight@google.com

Review-Url: https://codereview.chromium.org/2893803006 .
2017-05-19 15:53:08 -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 b82b0e29ed DDC fixes for SpeechRecognition
R=alanknight@google.com

Review-Url: https://codereview.chromium.org/2896463002 .
2017-05-18 17:05:51 -07:00
Vijay Menon 59e6c332ea Regenerate DDC artifacts
TBR=rnystrom@google.com

Review-Url: https://codereview.chromium.org/2886403006 .
2017-05-18 13:29:26 -07:00
Vijay Menon ad7f257f9b Fix nullaware dynamic dispatch
Fixes #29610

R=leafp@google.com

Review-Url: https://codereview.chromium.org/2880103004 .
2017-05-15 20:47:10 -07:00
Jacob Richman 61b0cbd685 Fix language/stacktrace_rethrow_error_test_withtraceparameter_multi test
Fix is to remove unexpected frames on the stack trace by inlining
all calls to determine current DDC configuration settings.

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

Review-Url: https://codereview.chromium.org/2879393002 .
2017-05-15 16:27:42 -07:00
Vijay Menon 2375e5f9b5 Better error when force-compile fails
R=alanknight@google.com

Review-Url: https://codereview.chromium.org/2883443002 .
2017-05-12 17:21:15 -07:00
Jacob Richman ff588405fe Fix bugs supporting configuring DDC runtime settings before the application starts.
I don't see a better way to implement this given how DDC lazily
initializes fields.

BUG=
R=vsm@google.com

Review-Url: https://codereview.chromium.org/2875063003 .
2017-05-12 15:59:07 -07:00
Leaf Petersen 8cdcfb98e2 Use Null argument for callback arity check in async_error.
Avoid relying on fuzzy arrow semantics by using Null for the callback type
parameter to be checked against.  Any function of the right arity will pass the "is"
check.

BUG=
R=lrn@google.com

Review-Url: https://codereview.chromium.org/2878553003 .
2017-05-11 17:36:47 -07:00
Bob Nystrom 979a75c4b3 Fix more errors in DDC SDK.
R=jacobr@google.com, vsm@google.com

Review-Url: https://codereview.chromium.org/2871363002 .
2017-05-11 11:22:05 -07:00
Bob Nystrom a68b44924e Disambiguate setters and getters when patching DDC SDK.
Stdio was having its setters applied twice instead of applying the
getter and setter each once.

R=vsm@google.com

Review-Url: https://codereview.chromium.org/2874713005 .
2017-05-10 16:56:41 -07:00
Leaf Petersen a2ebe9c809 Update DDC built sdk.
BUG=
R=vsm@google.com

Review-Url: https://codereview.chromium.org/2873363002 .
2017-05-10 10:30:33 -07:00
Jacob Richman a35b79f178 Support configuring DDC runtime settings before the application starts and normalize API for configuring runtime settings.
BUG=
R=vsm@google.com

Review-Url: https://codereview.chromium.org/2874813002 .
2017-05-10 10:05:49 -07:00
Jennifer Messerly 4c377076bf fix #29585, implement equality for tearoffs
R=vsm@google.com

Review-Url: https://codereview.chromium.org/2873073002 .
2017-05-09 16:21:51 -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
Vijay Menon 96f9287c0b Regenerate DDC artifacts
I had to put --unsafe-force-compile back to get the snapshot to build.  Investigating...

TBR=jmesserly@google.com

Review-Url: https://codereview.chromium.org/2873013003 .
2017-05-09 14:08:47 -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
Bob Nystrom 4145a49503 Move Dart versions of math.min() and math.max() into VM patch file.
For DDC and dart2js, we call the corresponding JS function. This is
shorter and avoids a strong mode type error in the Dart implementation.

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

Review-Url: https://codereview.chromium.org/2858353003 .
2017-05-05 15:15:21 -07:00
Jacob MacDonald fc0c45c790 update dependencies to use url style paths
BUG=
R=jmesserly@google.com

Review-Url: https://codereview.chromium.org/2860943003 .
2017-05-04 12:44:56 -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
Vijay Menon d5ecaf1088 Loosen type check on runZoned errorHandler
R=floitsch@google.com, lrn@google.com

Review-Url: https://codereview.chromium.org/2858843002 .
2017-05-03 05:30:06 -07:00
Jennifer Messerly 5e82b8c2e9 fix #29530, field metadata generation
R=vsm@google.com

Review-Url: https://codereview.chromium.org/2861503002 .
2017-05-02 14:45:34 -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
Jennifer Messerly c305d183c3 fix #29504, dcall on object member when a temporary was involved.
R=vsm@google.com

Review-Url: https://codereview.chromium.org/2848153002 .
2017-05-01 10:57:49 -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 7bedf63e1e dart:mirrors workaround for generic methods
Fixes #29509

R=jmesserly@google.com

Review-Url: https://codereview.chromium.org/2852723002 .
2017-04-28 20:02:13 -07: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
Bob Nystrom 7f7c681893 Fix a batch of DDC SDK compile errors.
R=floitsch@google.com, vsm@google.com

Review-Url: https://codereview.chromium.org/2848703003 .
2017-04-27 17:27:02 -07:00
Vijay Menon aa3966dc84 Fix hot dynamic check in WhereIterator
R=floitsch@google.com

Review-Url: https://codereview.chromium.org/2843423002 .
2017-04-27 06:35:37 -07:00
Konstantin Shcheglov 8e76c78cce Cache path -> URI mapping in SourceMapPrintingContext.
This improves DDC compiling DDC from 30 to 25 seconds.

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

Review-Url: https://codereview.chromium.org/2839733003 .
2017-04-24 19:32:10 -07:00
Vijay Menon 75b7bea014 Snapshot DDC trained on itself
Note: path.canonicalize appears to normalize windows paths (c:/ vs c:\).

Fixes #29119

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

Review-Url: https://codereview.chromium.org/2836483002 .
2017-04-21 16:19:57 -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 b98729503c Fix ddc perf issue
This brings compilation time on large_class_declaration_test down from 30s to 4s.  Just analysis is about 3.2s.  (All #s without snapshotted tools.)

Fixes #29234

R=jmesserly@google.com

Review-Url: https://codereview.chromium.org/2834663002 .
2017-04-20 11:24:35 -07:00