Commit Graph

1309 Commits

Author SHA1 Message Date
hausner@google.com 22054b3119 Make yield* throw an error if not yielding an Iterable
Fixes issue 22323

R=gbracha@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43616 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-09 21:47:12 +00:00
regis@google.com 8e5cd57b7e Add modPow(int exponent, int modulus) method to int abstract class.
Provide a dart2js implementation.

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

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43572 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-06 21:46:32 +00:00
hausner@google.com 2487c76886 Add support for sync* and yield and yield*
R=srdjan@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43516 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-05 18:36:40 +00:00
regis@google.com a5ee233d1b Make Bigint instances immutable by removing all setters.
This required rewriting a large portion of bigint.dart.

R=rmacnak@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43492 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-04 23:56:23 +00:00
zra@google.com 1299ad1485 Allows turning on checked mode on a per-isolate basis
using the embedding API.

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

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43481 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-04 18:32:48 +00:00
zerny@google.com e449cd0329 Propagate the stack trace of the inner-most throw when using async/await.
This patch does not provide a full async stack trace, it only ensures
that the inner-most stack frame will be the point of the initial throw.

BUG=http://dartbug.com/22009
R=iposva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43463 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-04 11:54:23 +00:00
fschneider@google.com 25f95654d9 Remove last uses of IterableMixinWorkaround from VM's typed data implementation.
The remaining methods that used it are duplicated. This results
in better (specialized) code for typed data lists because type
feedback does not get mixed. It also avoids the additional
indirection of calling a static method on IterableMixinWorkaround.

BUG=dartbug.com/13647

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43379 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-03 08:27:36 +00:00
lrn@google.com 62adbb7ab0 Let Uint16List.setRange detect a String.codeUnits object, and copy directly from the string.
R=vegorov@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43327 260f80e4-7a28-3924-810f-c04153c831b5
2015-01-30 09:46:04 +00:00
johnmccutchan@google.com 172baa03ff Service isolate rework take 2
Review URL: https://codereview.chromium.org//889443002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43306 260f80e4-7a28-3924-810f-c04153c831b5
2015-01-29 18:31:27 +00:00
lrn@google.com ab51ccc9f0 Create string efficiently from Uint16List/View.
R=asiva@google.com, fschneider@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43235 260f80e4-7a28-3924-810f-c04153c831b5
2015-01-28 12:44:44 +00:00
iposva@google.com ad008bf8ba - Move timer implementation closer to the rest of message handling.
R=zra@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43225 260f80e4-7a28-3924-810f-c04153c831b5
2015-01-28 00:39:35 +00:00
johnmccutchan@google.com db271b0477 Revert r43217, r43215, r43208, r43207, and r43202.
Reverting because of some isolate spawn issues (on Windows, and pub bots).

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43219 260f80e4-7a28-3924-810f-c04153c831b5
2015-01-27 22:56:18 +00:00
johnmccutchan@google.com 66aa470fc6 * Create vm-service isolate at Dart_Initialize time.
* Remove Service create callback.
* Simplify creation of service isolate.
* Creation is done on thread pool.
* Use vm-service isolate for loading in standalone embedder.
* Remove import of dart:io from builtin library.

performance changes:

no service isolate:

$ ./tools/test.py -m release
Test configuration: none_vm_release_ia32
[01:27 | 100% | +12363 | -    0]

$ ./tools/test.py -m release
Test configuration: none_vm_release_ia32
[01:27 | 100% | +12363 | -    0]

always start service isolate (as a thread pool task):

$ ./tools/test.py -m release
Test configuration: none_vm_release_ia32
[01:45 | 100% | +12363 | -    0]

$ ./tools/test.py -m release
Test configuration: none_vm_release_ia32
[01:44 | 100% | +12363 | -    0]

service does I/O (calls to Dart_LoadScript block until service is running):

$ ./tools/test.py -m release
Test configuration: none_vm_release_ia32
[01:55 | 100% | +12363 | -    0]

$ ./tools/test.py -m release
Test configuration: none_vm_release_ia32
[01:55 | 100% | +12363 | -    0]

R=asiva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43202 260f80e4-7a28-3924-810f-c04153c831b5
2015-01-27 19:45:48 +00:00
srdjan@google.com 0b094880cc Improve performance of addAll for internallt known lists.
Review URL: https://codereview.chromium.org//873863002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43154 260f80e4-7a28-3924-810f-c04153c831b5
2015-01-26 21:50:40 +00:00
rmacnak@google.com db79e9cca6 Rename is_visible to is_reflectable; use is_debuggable instead of is_reflectable to decide whether to filter a frame from stack traces.
Merge verbose_stacktrace flag into show_hidden_frames.

Don't mark native functions as non-debuggable (breakpoints don't actually work there now but nothing goes wrong).

BUG=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43121 260f80e4-7a28-3924-810f-c04153c831b5
2015-01-23 21:16:40 +00:00
lrn@google.com ab2d914ae3 Avoid extra duplication of substrings during string.replaceAll.
R=asiva@google.com, zerny@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43059 260f80e4-7a28-3924-810f-c04153c831b5
2015-01-22 08:27:42 +00:00
rmacnak@google.com 2fb0bb020b Reapply "Mark all private functions in dart: libraries as invisible (*sniff*). Previously these functions were only marked invisible if they were also native, a constructor, or on a black list."
Broken assumption in Dartium fixed in blink r188698.

R=hausner@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43053 260f80e4-7a28-3924-810f-c04153c831b5
2015-01-21 20:44:04 +00:00
vegorov@google.com e31313efea Refactor _ByteDataView.[set|get]<Type> methods to improve their performance.
- don't manually truncate values before passing them to TypedData._[set|get]<Type> - these methods already have truncating semantics;

- don't call into runtime for endianess conversion, implement it in pure Dart instead (with an intent to provide optimized version on platforms that support fast byte-swapping instructions);

- force inlining of these methods (change the order of checks in the ShouldWeInline to guarantee inlining of whitelisted methods).

Unrelated change:

- tweak output of Function::CheckSourceFingerprint to be immediately copy&paste useful.

R=fschneider@google.com
BUG=http://dartbug.com/22107

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43038 260f80e4-7a28-3924-810f-c04153c831b5
2015-01-21 14:21:49 +00:00
iposva@google.com 7b7cbb4017 - Allow implementations to hook into the Utf8Decoder.convert method.
R=srdjan@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43033 260f80e4-7a28-3924-810f-c04153c831b5
2015-01-21 01:29:14 +00:00
rmacnak@google.com ed88ac7f0c Revert "Mark all private functions in dart: libraries as invisible (*sniff*). Previously these functions were only marked invisible if they were also native, a constructor, or on a black list."
Broke Dartium.

TBR=hausner@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43026 260f80e4-7a28-3924-810f-c04153c831b5
2015-01-20 20:56:59 +00:00
rmacnak@google.com 045bd762d7 Mark all private functions in dart: libraries as invisible (*sniff*). Previously these functions were only marked invisible if they were also native, a constructor, or on a black list.
An invisible function is hidden from stack traces, will not be enumerated
by mirrors, and cannot be directly invoked by mirrors. Note that private
classes remain accessible.

Fix a few internal dart:io functions that should be private.

Fix bug where mirrors would enumerate top-level invisible functions.

Mark observatory test that was using such private functions through
mirrors as failing.

BUG=http://dartbug.com/15274
R=hausner@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43019 260f80e4-7a28-3924-810f-c04153c831b5
2015-01-20 18:32:19 +00:00
fschneider@google.com c99e78af72 Reland and fix r42951: Tweaks in the VM's typed_data implementations.
Fixed checked mode failure and correct function fingerprints.

R=zerny@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42980 260f80e4-7a28-3924-810f-c04153c831b5
2015-01-19 09:59:45 +00:00
vegorov@google.com 6c597dadbf Revert "Tweaks in the VM's typed_data implementations."
This reverts commit r42951.

Reason: checked mode breakage.

TBR=fschneider@google.com
BUG=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42952 260f80e4-7a28-3924-810f-c04153c831b5
2015-01-16 12:14:47 +00:00
fschneider@google.com 1f5208e648 Tweaks in the VM's typed_data implementations.
Moving the throw of RangeError out of the _throwRangeError helper
may benefit LICM, since that block is now considered a method exit (and
not part of a enclosing loop).

_throwRangeError was not inlined because the call site was considered
cold by invocation counters (most programs don't throw RangeError).

Also, I renamed some misleading names in the optimizer.

R=zerny@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42951 260f80e4-7a28-3924-810f-c04153c831b5
2015-01-16 11:30:49 +00:00
lrn@google.com de2b7c40d4 Optimize creation of ASCII strings in UTF-8 JSON parser.
Recognize that the string is ASCII only during scanning, and just use
String.fromCharCodes directly, instead of interpreting as UTF-8 first.

R=kustermann@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42857 260f80e4-7a28-3924-810f-c04153c831b5
2015-01-14 10:22:53 +00:00
regis@google.com a1c9e2b6b0 Simplify double to bigint conversion.
Remove 3 bigint mutators.
Remove unused support to create vm internal error.

R=rmacnak@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42842 260f80e4-7a28-3924-810f-c04153c831b5
2015-01-13 21:29:44 +00:00
regis@google.com 8a96f1947c Revert modPow introduction since dart2js does not like it.
Review URL: https://codereview.chromium.org//851763002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42827 260f80e4-7a28-3924-810f-c04153c831b5
2015-01-13 17:47:11 +00:00
regis@google.com 485be555bf Add modPow(int exponent, int modulus) method to int abstract class.
R=lrn@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42823 260f80e4-7a28-3924-810f-c04153c831b5
2015-01-13 17:13:59 +00:00
asiva@google.com ca1c3241c4 Fix for issue 21398.
Accept only 'literal-like' objects when sending messages to isolates
spawned using spawnURI. Allow all objects for isolates spawned using
spawnFunction.

R=iposva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42793 260f80e4-7a28-3924-810f-c04153c831b5
2015-01-12 23:14:30 +00:00
regis@google.com 03fa3d1ff4 Mark mutator methods of canonical constants as invisible to reflective access.
R=rmacnak@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42747 260f80e4-7a28-3924-810f-c04153c831b5
2015-01-09 18:03:31 +00:00
iposva@google.com 2104fd6165 Fix http://dartbug.com/21834
- Ensure that microtasks fire after every timer event, instead
  of being bunched together once all pending timers fired.
- Do not wait for timer message to be delivered. Trigger timers
  as soon as they are ready from within the message handling
  loop.
- Notify timers in the order of wakeup time regardless of
  specified timeout value. (AKA Do not allow Timer.run to
  overtake new Timer() scheduled operations.)

R=zra@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42673 260f80e4-7a28-3924-810f-c04153c831b5
2015-01-07 22:21:59 +00:00
lrn@google.com cc0151bf2e Optimize DateTime constructor slightly.
R=sgjesse@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42656 260f80e4-7a28-3924-810f-c04153c831b5
2015-01-07 13:09:47 +00:00
lrn@google.com 3f1780f70d Change List/Set/Map/Queue.from constructrs to accept any iterable.
This allows using the .from constructor as a cast:

  new Set<int>.from(numSetContainingOnlyInts);

BUG= http://dartbug.com/21731
R=sgjesse@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42620 260f80e4-7a28-3924-810f-c04153c831b5
2015-01-06 10:14:56 +00:00
regis@google.com cc843c2189 Process two 32-bit digits as one 64-bit digit in all bigint intrinsics on x64.
R=zra@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42607 260f80e4-7a28-3924-810f-c04153c831b5
2015-01-05 19:44:02 +00:00
iposva@google.com fd69128004 - Allow an isolate to be started in paused state.
R=asiva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42576 260f80e4-7a28-3924-810f-c04153c831b5
2014-12-30 23:52:37 +00:00
regis@google.com 4dc4caa34d Modify Bigint _mulAdd, _sqrAdd, _estQuotientDigit, and Montgomery _mulMod
methods to return the number of digits processed, so that their intrinsified
versions on 64-bit platforms can process digit pairs.

R=zra@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42568 260f80e4-7a28-3924-810f-c04153c831b5
2014-12-29 18:40:44 +00:00
lrn@google.com cf724d70a9 Add Isolate.current getter, returning the current isolate as an Isolate object.
R=floitsch@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42499 260f80e4-7a28-3924-810f-c04153c831b5
2014-12-19 07:04:29 +00:00
iposva@google.com 577242dbd4 - Implement Isolate.kill.
R=asiva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42355 260f80e4-7a28-3924-810f-c04153c831b5
2014-12-13 00:39:16 +00:00
zerny@google.com 0a80eaec06 Revert "Revert "Revert "Disable the irregexp backend."""
This enables the irregexp backend by reverting commit
http://code.google.com/p/dart/source/detail?r=42246

R=fschneider@google.com
BUG=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42312 260f80e4-7a28-3924-810f-c04153c831b5
2014-12-12 09:02:24 +00:00
zerny@google.com 0bfa80b5a5 Revert "Revert "Disable the irregexp backend.""
This reverts commit http://code.google.com/p/dart/source/detail?r=42240
Reason for revert: failures and timeouts on Dartium bots.

TBR=fschneider@google.com
BUG=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42246 260f80e4-7a28-3924-810f-c04153c831b5
2014-12-10 15:38:10 +00:00
zerny@google.com d1f5aacd77 Revert "Disable the irregexp backend."
This reverts commit http://code.google.com/p/dart/source/detail?r=41999

R=fschneider@google.com
BUG=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42240 260f80e4-7a28-3924-810f-c04153c831b5
2014-12-10 09:56:53 +00:00
turnidge@google.com 92211b622a Minor optimization in _GrowableList.removeAt.
BUG=
R=srdjan@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42214 260f80e4-7a28-3924-810f-c04153c831b5
2014-12-09 19:11:41 +00:00
iposva@google.com 602aad28a1 - Implement Isolate.ping.
- Allow isolate library messages to be enqueued at the beginning
  of the message queue.

R=asiva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42193 260f80e4-7a28-3924-810f-c04153c831b5
2014-12-08 22:45:10 +00:00
hausner@google.com 392db8d312 Implement correct semantics of Boolean Conversion
When converting null to a boolean value, throw an AssertionError
rather than a TypeError.

This is the same change as r42145, with added co19 status updates.

R=srdjan@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42170 260f80e4-7a28-3924-810f-c04153c831b5
2014-12-08 18:51:48 +00:00
hausner@google.com 4cfdf02012 Revert r42145 to fix co19 tests
Review URL: https://codereview.chromium.org//772513003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42148 260f80e4-7a28-3924-810f-c04153c831b5
2014-12-05 21:05:38 +00:00
hausner@google.com ad837a0d9f Implement correct semantics of Boolean Conversion
When converting null to a boolean value, throw an AssertionError
rather than a TypeError.

Fixes issue 21279.

R=srdjan@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42145 260f80e4-7a28-3924-810f-c04153c831b5
2014-12-05 20:36:37 +00:00
regis@google.com 1757888022 Implement mint unboxing on MIPS.
R=zra@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42138 260f80e4-7a28-3924-810f-c04153c831b5
2014-12-05 18:27:37 +00:00
iposva@google.com 320ffa23a1 - Implement hashCode and == for Capability.
R=lrn@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42102 260f80e4-7a28-3924-810f-c04153c831b5
2014-12-04 12:17:48 +00:00
rmacnak@google.com dd3c1fa32e Remove several entries from invocation fuzzer blacklist.
Add event loop, isolate startup, and symbol helper functions to the invisible list.

Include doubles as a target.

BUG=http://dartbug.com/15274
BUG=http://dartbug.com/20583
BUG=http://dartbug.com/21707
R=regis@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42092 260f80e4-7a28-3924-810f-c04153c831b5
2014-12-03 22:08:32 +00:00
fschneider@google.com 6fc87187a6 Fix implementation of the Iterable interface for typed data lists.
Return an Iterable with the correct type arguments (instead of <dynamic>)
when calling Iterable methods.

R=lrn@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42066 260f80e4-7a28-3924-810f-c04153c831b5
2014-12-02 13:25:36 +00:00