Commit Graph

1438 Commits

Author SHA1 Message Date
Ryan Macnak b34267d0d7 Replace is_synthetic bit on Fields with is_reflectable. Mark private fields of dart:* as non-reflectable.
This fixes an inconsistency in mirrors where some classes in dart:* would claim to have a field but throw NSM if one attempts to access it, and prevents accessing private static fields of dart:* that don't have implicit getters or setters.

R=asiva@google.com

Review URL: https://codereview.chromium.org//1280713002 .
2015-08-06 16:48:01 -07:00
Ryan Macnak b6c979f20b Hoist InstanceMirror.delegate to ObjectMirror.
BUG=http://dartbug.com/14827
R=gbracha@google.com

Review URL: https://codereview.chromium.org//1273983002 .
2015-08-05 17:09:59 -07:00
Ivan Posva e974b952a7 - Prevent getting an unmodifiable list being returned from List.from.
R=srdjan@google.com

Review URL: https://codereview.chromium.org//1275703002 .
2015-08-05 13:25:32 -07:00
Srdjan Mitrovic caa3cce77e Fix some TODOs
BUG=
R=regis@google.com

Review URL: https://codereview.chromium.org//1263963003 .
2015-08-04 17:13:22 -07:00
Ivan Posva f63db4960c - Implement resource loading via the Resource class.
R=asiva@google.com

Review URL: https://codereview.chromium.org//1264413002 .
2015-08-04 15:39:14 -07:00
John McCutchan 4505a79e58 Increment next sequence number
BUG=

Review URL: https://codereview.chromium.org//1260343004 .
2015-08-04 07:59:13 -07:00
John McCutchan a2757141b0 Make dart:developer log more user friendly
- Make required arguments required.
- Validate required arguments in Dart before calling native.
- timestamp is now a DateTime.
- level has a default (ALL).
- sequence number is last + 1 if not provided.

R=lrn@google.com

Review URL: https://codereview.chromium.org//1266053003 .
2015-08-04 07:12:39 -07:00
John McCutchan 7640cf4b85 Fix test failure
patch from issue 1271693003 at patchset 20001 (http://crrev.com/1271693003#ps20001)

Review URL: https://codereview.chromium.org//1270953003 .
2015-08-04 07:05:34 -07:00
William Hesse bdda0eff52 Revert "Change msg to message in debugger function."
This reverts commit 2ae214316c.

BUG=

Review URL: https://codereview.chromium.org//1261203005 .
2015-08-04 15:22:47 +02:00
Lasse R.H. Nielsen 2ae214316c Change msg to message in debugger function.
BUG=23949
R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org//1271693003 .
2015-08-04 14:58:13 +02:00
Ryan Macnak db8ed04981 Hack around dart:io being loaded into non-service isolates in Dartium.
BUG=http://dartbug.com/23940
R=asiva@google.com

Review URL: https://codereview.chromium.org//1259893006 .
2015-08-03 16:59:32 -07:00
Ivan Posva b07a9ddbca - Implement .packages specification.
Limitation: Currently only works for file: based .package files. If a script is loaded from http: then the VM currently assumes a co-located packages/ directory.

R=asiva@google.com

Review URL: https://codereview.chromium.org//1232593003 .
2015-07-29 11:30:33 -07:00
Ryan Macnak bc90a5e1f0 Fix getField optimization when the selector is an operator.
BUG=http://dartbug.com/23880
R=asiva@google.com

Review URL: https://codereview.chromium.org//1247733005 .
2015-07-22 13:39:07 -07:00
Matthias Hausner f1da09741d Implement tear-off closure operator #
BUG=
R=fschneider@google.com

Review URL: https://codereview.chromium.org//1234883005 .
2015-07-22 12:50:36 -07:00
John McCutchan bfd2d4ed2a Refactor dart:developer log to use named parameters
BUG=
R=rmacnak@google.com

Review URL: https://codereview.chromium.org//1247803002 .
2015-07-21 10:01:37 -07:00
John McCutchan f818f9dc0f Support piping log data over the service protocol
BUG=
R=rmacnak@google.com

Review URL: https://codereview.chromium.org//1241683005 .
2015-07-21 07:54:46 -07:00
Ivan Posva fe03640e85 - Implement VM parts of https://codereview.chromium.org/1240743003/
- Pass additional state in the IsolateSpawnState to set
  error and exit handlers, as well as fatal errors on isolate start.

BUG=
R=floitsch@google.com

Review URL: https://codereview.chromium.org//1244733002 .
2015-07-20 16:46:54 +02:00
Regis Crelier 7f10c1420d Make invocation namedArguments unmodifiable.
Fixes #13714

R=rmacnak@google.com

Review URL: https://codereview.chromium.org//1241583008 .
2015-07-17 14:04:54 -07:00
Lasse R.H. Nielsen e4881c55d0 Add errorsAreFatal, onExit and onError parameters to the spawn functions.
R=floitsch@google.com

Review URL: https://codereview.chromium.org//1240743003.
2015-07-16 16:52:43 +02:00
Srdjan Mitrovic d503d2f0ed Added full deferred loading semantic to precompiled/--noopt/eager-loading code (some corner cases, e.g., compile-time errors for constants, still missing)
BUG=
R=hausner@google.com

Review URL: https://codereview.chromium.org//1211273011 .
2015-07-09 10:56:55 -07:00
Ryan Macnak d1475c0356 Port irregexp bytecode compiler and interpreter from V8 r24065.
R=srdjan@google.com

Review URL: https://codereview.chromium.org//1201383002 .
2015-07-07 14:43:32 -07:00
Srdjan Mitrovic 5711c13f69 Make frequent type checks (instanceof) faster by adding dedicated instanceof methods; improves dart2js startup
There is a possibility of adding intrinsics for all new instanceOf methods; my measurements did not show any benefits, therefore they were removed from this CL.

BUG=
R=regis@google.com

Review URL: https://codereview.chromium.org//1222863003 .
2015-07-07 10:20:41 -07:00
Lasse R.H. Nielsen 3c976019cc Make int.gcd accept zero as an operand, including both operands being zero.
R=floitsch@google.com, regis@google.com, sgjesse@google.com

Review URL: https://codereview.chromium.org//1211473002.
2015-07-07 09:51:13 +02:00
Ryan Macnak 40fcf4a72d Handle field-invocation and method-extraction in the runtime when --lazy_dispatchers=false.
R=fschneider@google.com

Review URL: https://codereview.chromium.org//1195573006.
2015-06-30 15:14:35 -07:00
Lasse R.H. Nielsen ede6cb71a5 Make modInv throw Exception on incompatible operands.
Also update errors to be more descriptive accross the integer methods.

I'm still considering whether a more precise "NotCoPrimeException" would be better.

R=regis@google.com, sgjesse@google.com

Review URL: https://codereview.chromium.org//1209523002.
2015-06-30 14:46:14 +02:00
Regis Crelier 6a69915cf5 Remove workaround in gcd for even operands and provide permanent fix.
Relax minimum length calculation in _lShift and _lShiftDigits.

See details in https://codereview.chromium.org/1205363003/

R=srdjan@google.com

Review URL: https://codereview.chromium.org//1207403003.
2015-06-26 15:31:32 -07:00
Lasse R.H. Nielsen f8ce36df55 Add Resource class. Currently unimplemented.
R=herhut@google.com, iposva@google.com

Committed: https://github.com/dart-lang/sdk/commit/2890a7a2a94ff54c7c0050e69c40ca6a60a28474

Review URL: https://codereview.chromium.org//1181663002.
2015-06-26 11:42:02 +02:00
Lasse R.H. Nielsen 3a0edfba72 Add tests for gcd, modInverse and modPow that also run on dart2js.
R=regis@google.com, sgjesse@google.com

Review URL: https://codereview.chromium.org//1205363003.
2015-06-26 11:05:11 +02:00
Lasse R.H. Nielsen 78a3db3128 Revert "Add Resource class. Currently unimplemented."
This reverts commit 2890a7a2a9.

Causes a dart2js test error and a significant amount of analyzer
warnings.

Review URL: https://codereview.chromium.org//1193273003.
2015-06-22 16:43:44 +02:00
Lasse R.H. Nielsen 2890a7a2a9 Add Resource class. Currently unimplemented.
R=herhut@google.com, iposva@google.com

Review URL: https://codereview.chromium.org//1181663002.
2015-06-22 15:05:14 +02:00
Regis Crelier a192ef4acb Implement gcd in sdk.
R=srdjan@google.com

Review URL: https://codereview.chromium.org//1199513003.
2015-06-19 13:40:01 -07:00
Regis Crelier 16bb52b88d Implement modInverse for an even modulus.
Update test.

Fixes #23502

R=srdjan@google.com

Review URL: https://codereview.chromium.org//1188843004.
2015-06-17 13:50:30 -07:00
Ryan Macnak 98b9ff6a30 Fix reflective NoSuchMethodErrors to match their non-reflective counterparts when due to argument mismatches.
BUG=http://dartbug.com/23266
R=asiva@google.com

Review URL: https://codereview.chromium.org//1182613004.
2015-06-16 09:42:11 -07:00
Regis Crelier 9edc6e5a6d Detect zero receiver of modInverse (may not converge and time out
in that case).

See #23502

Review URL: https://codereview.chromium.org//1177063002.
2015-06-10 16:40:24 -07:00
Regis Crelier f6f338ce67 Implement modInverse (bigint version does not support even modulus yet).
Added tests.

See #23502

R=srdjan@google.com

Review URL: https://codereview.chromium.org//1174513004.
2015-06-10 15:01:46 -07:00
Ivan Posva f5e3f94019 Fix http://dartbug.com/23578:
- Complete revamp of isolate-specific flags.
- Associate flags with the isolate on creation.
- Dart_CreateIsolate and associate callback do take an
  extra flags argument.
- Make sure to clear IC data array when clearing code.

BUG=23578

Review URL: https://codereview.chromium.org//1162033005
2015-06-07 17:57:34 +02:00
Ryan Macnak 6545e8539e Fix isAssignableTo in VM mirrors to use subtype (<:) rather than moreSpecificThan (<<).
BUG=http://dartbug.com/22852
R=gbracha@google.com

Review URL: https://codereview.chromium.org//1156583005
2015-06-04 12:25:59 -07:00
Lasse R.H. Nielsen de68aaa595 Clean up JSON parsing code.
Fixes some hard-to-find bugs and warnings.
Improves the layout of all the constants.

R=ajohnsen@google.com

Review URL: https://codereview.chromium.org//1150033013
2015-06-04 14:55:32 +02:00
Srdjan Mitrovic 7b04897743 Fix fix
BUG=

Review URL: https://codereview.chromium.org//1166523005
2015-06-03 12:39:59 -07:00
Srdjan Mitrovic 12da412110 Fix build
BUG=

Review URL: https://codereview.chromium.org//1160623004
2015-06-03 11:22:46 -07:00
Srdjan Mitrovic c0824e7725 Fix 23563: double unary- operator unstable for NANs
BUG=
R=koda@google.com

Review URL: https://codereview.chromium.org//1160453003
2015-06-03 11:00:28 -07:00
Lasse R.H. Nielsen 5a843ebbf3 Add "checked" parameter to Isolate.spawnUri.
R=iposva@google.com

Review URL: https://codereview.chromium.org//1154673004
2015-06-03 12:32:52 +02:00
Ryan Macnak eca0d72abe Provide a logical view of VM-internal maps in Observatory.
BUG=http://dartbug.com/20551
BUG=http://dartbug.com/21185
R=koda@google.com

Review URL: https://codereview.chromium.org//1150103005
2015-06-02 11:38:39 -07:00
Daniel Andersson 6090af8f0b Serialize maps without hashes.
Re-generate the indices after deserialization.

This is a more compact representation, and also fixes the issue with identity hash codes not being portable between isolates.

BUG=21675
R=asiva@google.com

Review URL: https://codereview.chromium.org//1151013005
2015-06-02 09:04:37 -07:00
Ryan Macnak 4102b0c446 Canonicalize mixin type during class finalization. Add asserts that most types are canonical.
R=regis@google.com

Review URL: https://codereview.chromium.org//1167583002
2015-05-29 15:29:04 -07:00
Lasse R.H. Nielsen babcd4e9c0 Revert "Make EfficientLength public, as EfficientLengthIterable."
It's still not a good solution for detecting an Iterable with an efficient
length. It's not inherited by, e.g., a DelegatingIterable wrapper or similar
generic Iterable transformers.

Keep this as an internal optimization for quickly detecting the most common
efficient-length Iterable classes (List, Set, Queue, Map.keys/values), but
don't make it public.

A *real* solution would be adding a hasEfficientLength getter to Iterable, or
adding an efficientLength getter that may return null if it's not efficient.
This would something that a wrapper can attach to.

R=sgjesse@google.com

Review URL: https://codereview.chromium.org//1154263003
2015-05-29 12:52:45 +02:00
Lasse R.H. Nielsen cf4eaae5a6 Change RangeError instances to use RangeError.range.
This avoids using the (sometimes confusing) "[...)" notation for half-open ranges.
Also change argument tests to simpler interval tests, and move error handling to the end of the functions.

Mostly in VM typed-data libraries.

R=sgjesse@google.com, srdjan@google.com

Committed: https://github.com/dart-lang/sdk/commit/932bcc6901d70492c6f1b8d000b9555a0db62f4b

Review URL: https://codereview.chromium.org//1132603003
2015-05-29 10:50:20 +02:00
Daniel Andersson ea46192ca3 VM-internalize the default Map implementation.
Make the compact linked hash map, which is the default implementation for Map
(including map literals), a VM-internal class.

This makes it easy to have more efficient serialization of maps (although for
now, the implementation is straight-forward).

Refactor the compact hash class hierarchy to enable the VM-internal class and
the rest (also the Set classes) to share a maximal amount of code, by using
two different bases for implicit/explicit fields.

Remove existing proof-of-concept, C++-based internal VM-class.

BUG=http://dartbug.com/22982
R=asiva@google.com

Review URL: https://codereview.chromium.org//1151523002
2015-05-28 09:32:54 -07:00
Lasse R.H. Nielsen 9e175d27d7 Revert "Change RangeError instances to use RangeError.range."
Method hashes needs to be updated.

Review URL: https://codereview.chromium.org//1160903002
2015-05-28 10:46:15 +02:00
Lasse R.H. Nielsen 932bcc6901 Change RangeError instances to use RangeError.range.
This avoids using the (sometimes confusing) "[...)" notation for half-open ranges.
Also change argument tests to simpler interval tests, and move error handling to the end of the functions.

Mostly in VM typed-data libraries.

R=sgjesse@google.com

Review URL: https://codereview.chromium.org//1132603003
2015-05-28 10:34:03 +02:00