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
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