Commit Graph

2159 Commits

Author SHA1 Message Date
rmacnak@google.com 369c119539 Remove dead ClassMirror._methods. Remove FunctionTypeMirror.members|constructors that should have been removed along with ClassMirror.members|constructors.
R=regis@google.com

Review URL: https://codereview.chromium.org//1070563007

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44986 260f80e4-7a28-3924-810f-c04153c831b5
2015-04-08 22:17:23 +00:00
hausner@google.com aa75044ff7 Fix spurious resume when awaiting future in async* code
Fixes issue reported in bug 23116.

The equivalent fix for dart2js contains a test case for this.

R=iposva@google.com

Review URL: https://codereview.chromium.org//1073623002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44985 260f80e4-7a28-3924-810f-c04153c831b5
2015-04-08 22:09:20 +00:00
rmacnak@google.com b3f4ce9bd8 Deal with type arguments of generic local functions in VM mirrors.
BUG=http://dartbug.com/14913
R=regis@google.com

Review URL: https://codereview.chromium.org//1072443005

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44983 260f80e4-7a28-3924-810f-c04153c831b5
2015-04-08 21:40:51 +00:00
regis@google.com face2b5503 Cache the intermediate result of a div (or rem) operation on bigint and reuse if
followed by rem (or div) with identical dividend and divisor.

Review URL: https://codereview.chromium.org//1057053002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44925 260f80e4-7a28-3924-810f-c04153c831b5
2015-04-06 19:51:38 +00:00
turnidge@google.com fb591fc36a Continue improving the documentation for the vm service protocol.
Clean up the protocol a bit as I go.

---

Addendum:

Clean up inconsistencies between field and function ownership in the protocol.

Change the names of implicit closure functions (!)

Review URL: https://codereview.chromium.org//1057333004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44923 260f80e4-7a28-3924-810f-c04153c831b5
2015-04-06 19:24:47 +00:00
zra@google.com f6028da01d Fixes bug in typed data read/write for floats and doubles.
When reading from a byte array as floats or doubles, perform the
endianness correction before converting to a float or double
rather than the other way around. This is to avoid floating
point canonicalization changing the bytes before we put them
in the right order.

Unrelatedly, this change also adds armv5te as an architecture
needing extra time for tests to correct an oversight in my
last CL.

R=iposva@google.com

Review URL: https://codereview.chromium.org//1059493002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44871 260f80e4-7a28-3924-810f-c04153c831b5
2015-04-02 20:22:39 +00:00
regis@google.com b5ec6bb9b6 Move zero-ing code out of shift intrinsic (not needed if destination is new).
R=srdjan@google.com

Review URL: https://codereview.chromium.org//1058523003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44849 260f80e4-7a28-3924-810f-c04153c831b5
2015-04-01 22:37:47 +00:00
koda@google.com f4419287aa Prepares for multiple threads by further decoupling Thread from Isolate.
- Replace Isolate::SetCurrent with more explicit Thread::Enter/ExitIsolate.
- Lazily initialize Thread instances when entering an isolate, to avoid new API calls for embedders.

R=asiva@google.com

Review URL: https://codereview.chromium.org//1041523002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44835 260f80e4-7a28-3924-810f-c04153c831b5
2015-04-01 17:48:11 +00:00
regis@google.com 80410ae6d7 Implement bigint shift intrinsics on x64.
Add assembler support and tests for shld and shrd instructions on x64.

R=srdjan@google.com

Review URL: https://codereview.chromium.org//1049933002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44834 260f80e4-7a28-3924-810f-c04153c831b5
2015-04-01 17:35:52 +00:00
regis@google.com 67623a6028 Refactor bigint shifting code in preparation of shifting intrinsics.
R=srdjan@google.com

Review URL: https://codereview.chromium.org//1044503002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44764 260f80e4-7a28-3924-810f-c04153c831b5
2015-03-27 22:41:57 +00:00
regis@google.com 306c3d8ded Various cleanup in bigint implementation:
- reduce number of digit array allocations in divRem.
- shortcut reduce step in Classic reduction when possible.
- do not throw out of memory when value shifted left is zero.
- refactor code for future shifting operation intrinsics.
- and more...

R=srdjan@google.com

Review URL: https://codereview.chromium.org//1038253002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44750 260f80e4-7a28-3924-810f-c04153c831b5
2015-03-27 18:21:19 +00:00
rmacnak@google.com 91a7300cb9 Mark the functions of closures generated to speed up getField/setField as invisible, just like other dispatchers.
BUG=http://dartbug.com/23006
R=asiva@google.com

Review URL: https://codereview.chromium.org//1036393002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44748 260f80e4-7a28-3924-810f-c04153c831b5
2015-03-27 18:09:49 +00:00
hausner@google.com 8c49660a7e Make await for cancel the stream when breaking out of the loop
Wrap the await-for loop in a try-finally statement that ensures that
the stream is cancelled. Also adding the ability to the
AsyncStartStreamController class to return a cancellation future.

The cancel() call at the end of the await-for loop is not awaiting
the cancellation future yet. This is not part of the spec at this
point.

R=regis@google.com

Review URL: https://codereview.chromium.org//1014273003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44689 260f80e4-7a28-3924-810f-c04153c831b5
2015-03-25 17:41:39 +00:00
rmacnak@google.com 60fd23bffc Treat functions generated for closurization as equivalent to their source functions.
BUG=http://dartbug.com/22601
R=asiva@google.com, gbracha@google.com

Review URL: https://codereview.chromium.org//973913002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44674 260f80e4-7a28-3924-810f-c04153c831b5
2015-03-24 20:06:40 +00:00
kustermann@google.com 8ce0175e1c Avoid infinite growth of linked hash map implementation
R=iposva@google.com, koda@google.com

Review URL: https://codereview.chromium.org//1005083004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44671 260f80e4-7a28-3924-810f-c04153c831b5
2015-03-24 16:32:33 +00:00
koda@google.com e3a345a84b Rename NoGCScope -> NoSafepointScope.
The old name makes less sense in the context of concurrent GC (and multiple threads in general).

Document the intended semantics of this (DEBUG-only) guard scope.

R=asiva@google.com

Review URL: https://codereview.chromium.org//1016503005

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44616 260f80e4-7a28-3924-810f-c04153c831b5
2015-03-20 22:08:25 +00:00
koda@google.com 92a8c39d3c Keep zone cached in SnapshotReader to allow removing ZoneHandle(Isolate*) interface.
Add a StackZone around API snapshot reading call.
Also remove CheckedHandle(Isolate*) interface by migrating its users to Zone*.

R=asiva@google.com

Review URL: https://codereview.chromium.org//1012333002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44580 260f80e4-7a28-3924-810f-c04153c831b5
2015-03-19 17:42:40 +00:00
koda@google.com 9c181ec6d5 Thread/Isolate refactoring: new(Isolate*) -> new(Zone*)
Refactor all remaning cases where the current zone is used through new(Isolate*) and remove this interface.

Removing this interface is needed to move towards multiple threads per isolate, and also makes the caller more aware of the scope of the zone used, reducing the risk of use-after-free.

Make the current thread and the stack zone created around native/runtime entries directly available in their body, saving an indirection (and optimized away if unused).

R=iposva@google.com

Review URL: https://codereview.chromium.org//982873004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44541 260f80e4-7a28-3924-810f-c04153c831b5
2015-03-17 19:24:26 +00:00
lrn@google.com bddb668174 Add some async/await tests.
R=sgjesse@google.com, sigurdm@google.com

Committed: https://code.google.com/p/dart/source/detail?r=44368

Review URL: https://codereview.chromium.org//968963002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44395 260f80e4-7a28-3924-810f-c04153c831b5
2015-03-11 10:15:59 +00:00
lrn@google.com c54856f8be Revert "Add some async/await tests."
Some tests are failing on the bots.

Review URL: https://codereview.chromium.org//995803002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44369 260f80e4-7a28-3924-810f-c04153c831b5
2015-03-10 13:41:34 +00:00
lrn@google.com fc0f0c144a Add some async/await tests.
R=sgjesse@google.com, sigurdm@google.com

Review URL: https://codereview.chromium.org//968963002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44368 260f80e4-7a28-3924-810f-c04153c831b5
2015-03-10 12:56:38 +00:00
iposva@google.com 91e105d8c6 - Implement some more missing pieces of the Isolate API.
Added:
    * addOnExitListener, removeOnExitListener
    * setErrorsFatal
    * addOnErrorListener, removeOnErrorListener

R=asiva@google.com

Review URL: https://codereview.chromium.org//881373002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44307 260f80e4-7a28-3924-810f-c04153c831b5
2015-03-07 01:04:19 +00:00
koda@google.com 784c1e4f88 Replace Linked{Identity,Custom}Hash{Map,Set} with compact implementation; remove old code and flag.
R=iposva@google.com

Review URL: https://codereview.chromium.org//983703003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44294 260f80e4-7a28-3924-810f-c04153c831b5
2015-03-06 15:13:01 +00:00
koda@google.com d73d6de73d Support enum keys in maps in messages.
Make enum classes implement hashCode, rather than use the identity hash code, so that they can be portably serialized.

BUG=dart:21675
R=asiva@google.com, lrn@google.com

Review URL: https://codereview.chromium.org//752123003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44278 260f80e4-7a28-3924-810f-c04153c831b5
2015-03-06 02:57:34 +00:00
iposva@google.com 4b1ba9eb69 - Make sure we schedule another wakeup when handling a timeout
from the event handler.

Review URL: https://codereview.chromium.org//971193002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44191 260f80e4-7a28-3924-810f-c04153c831b5
2015-03-03 19:14:30 +00:00
hausner@google.com 9a6ed9a718 Implement async* functions in VM
R=iposva@google.com

Review URL: https://codereview.chromium.org//944893005

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44185 260f80e4-7a28-3924-810f-c04153c831b5
2015-03-03 17:49:53 +00:00
koda@google.com 6add62d1b0 Correct typing of LinkedHashSet.add. Add unit test.
BUG=dart:22605
R=skybrian@google.com

Review URL: https://codereview.chromium.org//971833002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44155 260f80e4-7a28-3924-810f-c04153c831b5
2015-03-03 00:44:31 +00:00
iposva@google.com b4088d10c9 Adjust handling of timers:
- Every zero timer is enqueued individually in the event queue
  and handled in sequence with other events.
- Non-zero timers and zero timers expire in order. Therefor a
  due zero timer will also fire all preceding non-zero timers
  to ensure this order.

R=sgjesse@google.com

Review URL: https://codereview.chromium.org//958123002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44095 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-27 16:45:23 +00:00
rmacnak@google.com 8b6a6a1e4f Add ClassMirror.isEnum.
BUG=http://dartbug.com/21718
R=asiva@google.com, gbracha@google.com

Review URL: https://codereview.chromium.org//938513002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44035 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-26 01:13:50 +00:00
lrn@google.com f0a07f1eb0 Cleanup URI and use String.replaceRange.
R=sgjesse@google.com

Review URL: https://codereview.chromium.org//957743002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44023 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-25 14:27:10 +00:00
lrn@google.com 20653fc1fb Add String.replaceRange and use it in replaceFirst{,Mapped}.
R=floitsch@google.com

Review URL: https://codereview.chromium.org//949753005

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44022 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-25 12:17:27 +00:00
iposva@google.com ebabd58de8 - Add a _fatal helper function into dart:core, so that we can
abort if we get into an unrecoverable state in the core library.

R=hausner@google.com

Review URL: https://codereview.chromium.org//953973003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44010 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-24 23:27:56 +00:00
lrn@google.com 0b1bb96146 Change _interpolateSingle to use the same value in errors as _interpolate.
R=iposva@google.com

Review URL: https://codereview.chromium.org//920793002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43942 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-23 08:09:50 +00:00
koda@google.com 574028165f Ensure hash pattern is non-zero. Re-enable compact hash map/set.
BUG=dart:22520
TBR=vegorov@google.com

Review URL: https://codereview.chromium.org//946893002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43940 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-22 03:04:35 +00:00
koda@google.com 018ec1cb83 Temporarily disable compact hash map/set to see whether it fixes Dart2JS flaky faliures.
R=floitsch@google.com

Review URL: https://codereview.chromium.org//942003004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43921 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-20 17:27:06 +00:00
koda@google.com c6e3dd73c2 Default to compact Map/Set implementation.
Also adjust unit tests accoringly to maintain coverage, and remove some redundant ones.

R=iposva@google.com

Review URL: https://codereview.chromium.org//936613007

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43894 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-19 21:28:56 +00:00
iposva@google.com db9faebe98 - Simplify collection of stack traces. If we determine that a stack
trace is needed we collect the full stack trace instead of piecing
  it together as we walk up the stack.

R=rmacnak@google.com

Review URL: https://codereview.chromium.org//939773003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43863 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-19 02:18:53 +00:00
koda@google.com 1d7ca12fdc Compact LinkedHashMap/Set implementation.
Add GC-friendly replacement for default Map/Set:
* open-addressing hash table, avoiding the overhead of chained entries
* index separate from the keys/values, allowing more of it to fit in the cache
* new keys are always appended, to allow insertion-order iteration
* spare bits in index entries are used to store hashes
* index is typed data, so can be ignored by GC

Enable it with --use_compact_hash (disabled by default).

Reduces Dart2JS compilation time for huge codebase (N=200) by ~30%, due to reduced time in GC. Slightly slower for small maps and maps with deletions: json benchmarks regress by ~5%.

R=vegorov@google.com

Review URL: https://codereview.chromium.org//915323002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43840 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-18 13:58:32 +00:00
rmacnak@google.com 4abf50c04d Add LibraryDependencyMirror.isDeferred.
R=asiva@google.com, gbracha@google.com

Review URL: https://codereview.chromium.org//921163004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43829 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-17 23:49:40 +00:00
regis@google.com 6a7be914e3 Add modPow tests.
Fix selection of modular reduction algorithm for modPow.
Remove bad assert and fix digits array length in classic modular reduction.

R=srdjan@google.com

Review URL: https://codereview.chromium.org//918403002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43817 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-17 19:32:32 +00:00
iposva@google.com b31372883b - Use new name for source file.
Review URL: https://codereview.chromium.org//930153002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43804 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-17 00:10:31 +00:00
iposva@google.com 9846e42886 - Leave abstract class StackTrace be an abstract class and
implement its interface from within the VM instead of patching.

R=srdjan@google.com

Review URL: https://codereview.chromium.org//929883005

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43803 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-16 23:49:05 +00:00
iposva@google.com 98e0500c87 - Remove obsolete stack trace functions.
R=srdjan@google.com

Review URL: https://codereview.chromium.org//933623003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43802 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-16 22:53:19 +00:00
rmacnak@google.com 511c997316 Implement DeclarationMirror.location for all but ParameterMirrors.
- Mark NativeFieldWrapper classes as synthetic.
- Mark ClassID fields as synthetic.

BUG=http://dartbug.com/22378
R=gbracha@google.com, hausner@google.com

Review URL: https://codereview.chromium.org//922023002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43784 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-13 23:32:20 +00:00
lrn@google.com a4dc421974 Fix last-minute-typo.
Review URL: https://codereview.chromium.org//921713002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43721 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-12 10:37:40 +00:00
lrn@google.com 688d50f1c9 Add String.replaceFirstMapped.
Also refactory VM implementation of checking if a string is one-byte,
and adds dart2js implementation of replaceFirst for non-string/regexp pattern.

BUG= http://dartbug.com/2979
R=floitsch@google.com, iposva@google.com

Committed: https://code.google.com/p/dart/source/detail?r=43716

Review URL: https://codereview.chromium.org//920453002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43718 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-12 09:16:57 +00:00
lrn@google.com 7c9248c642 Revert "Add String.replaceFirstMapped."
Changes to interpolation should be separate CL.

Review URL: https://codereview.chromium.org//917663004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43717 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-12 09:12:06 +00:00
lrn@google.com 6b9ff4c4d4 Add String.replaceFirstMapped.
Also refactory VM implementation of checking if a string is one-byte,
and adds dart2js implementation of replaceFirst for non-string/regexp pattern.

BUG= http://dartbug.com/2979
R=floitsch@google.com, iposva@google.com

Review URL: https://codereview.chromium.org//920453002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43716 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-12 09:04:09 +00:00
regis@google.com 163f1c2244 Improve _toInt64() and _toUint64() conversions in TypedData.
Add missing conversions of exponent and modulus in Bigint.modPow().
Fix typos in Bigint Classic reduction (modPow tests coming in later cl).
Address a few more TODOs.

R=srdjan@google.com

Review URL: https://codereview.chromium.org//916153002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43697 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-11 20:57:33 +00:00
rmacnak@google.com 4de5f89b99 Rename IsConstructor to IsGenerativeConstructor.
This matches the terminology in the spec, and it avoids confusion with the function kind kConstructor, which indicates either a generative constructor or a factory constructor.

R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org//910313002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43673 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-11 00:59:19 +00:00