Matthias Hausner
1a6d1eca32
Implement @patch annotation for patch class members
...
Allow members of patch classes to be annotated with @patch. The VM
ignores the annotation. I simply replaces the original method
if the name matches, or reports an error if field names match.
Adding a bit is_patched to members to do more checking remains a
TODO. There are currently no unused bits available, and I don’t want
to increase the size of Function objects for this.
BUG=
R=asiva@google.com
Review URL: https://codereview.chromium.org/2230383003 .
2016-08-10 12:54:57 -07:00
Matthias Hausner
e11ca24053
Use metadata annotation @patch for patch classes
...
Annotate patch classes and top-level patch functions with @patch
instead of the pseudo-keyword patch. This allows the analyzer
to read patch files, and matches the syntax that dart2js uses.
The deprecated syntax is still supported, but a warning is printed when detected.
BUG=
Review URL: https://codereview.chromium.org/2220883004 .
2016-08-09 09:48:03 -07:00
Stephen Adams
2bb2a12720
Avoid multiple reallocations of StringBuffer._parts
...
The original code
_parts = [ str ];
allocated a _GrowableList backed by a single element _List.
Subsequent calls to _parts.add() grows the backing list to 2, then 4, etc.
On a dart2js workload, allocating with a reasonable initial capacity
reduces the number of _List objects allocated by 8%, with 4% reduction in
_List bytes allocated.
R=lrn@google.com
Review URL: https://codereview.chromium.org/1888453011 .
2016-04-18 18:08:16 -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
sra@google.com
6467b4302d
dart2js implementation of StringBuffer.writeAll that optimizes better.
...
Sometimes we can avoid the StringBuffer object:
t1 = new P.StringBuffer(leftDelimiter);
t1.writeAll$2(parts, ", ");
t1 = t1._contents += rightDelimiter;
return t1.charCodeAt(0) == 0 ? t1 : t1;
-->
t1 = P.StringBuffer__writeAll(leftDelimiter, parts, ", ") + rightDelimiter;
return t1.charCodeAt(0) == 0 ? t1 : t1;
Also updated tests with missing cases.
R=lrn@google.com
Committed: https://code.google.com/p/dart/source/detail?r=45184
Reverted: https://code.google.com/p/dart/source/detail?r=45186
Review URL: https://codereview.chromium.org//1086043002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45188 260f80e4-7a28-3924-810f-c04153c831b5
2015-04-15 23:13:29 +00:00
sra@google.com
18dd1aa826
Revert "dart2js implementation of StringBuffer.writeAll that optimizes better."
...
StringBuffer.writeAll is expected by pub tests to not be patched or inlined. I'll fix that and redo.
TBR=lrn@google.com
Review URL: https://codereview.chromium.org//1085423003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45186 260f80e4-7a28-3924-810f-c04153c831b5
2015-04-15 22:55:05 +00:00
sra@google.com
54718dc6e2
dart2js implementation of StringBuffer.writeAll that optimizes better.
...
Sometimes we can avoid the StringBuffer object:
t1 = new P.StringBuffer(leftDelimiter);
t1.writeAll$2(parts, ", ");
t1 = t1._contents += rightDelimiter;
return t1.charCodeAt(0) == 0 ? t1 : t1;
-->
t1 = P.StringBuffer__writeAll(leftDelimiter, parts, ", ") + rightDelimiter;
return t1.charCodeAt(0) == 0 ? t1 : t1;
Also updated tests with missing cases.
R=lrn@google.com
Review URL: https://codereview.chromium.org//1086043002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45184 260f80e4-7a28-3924-810f-c04153c831b5
2015-04-15 22:02:05 +00:00
fschneider@google.com
8621f8bda9
VM: Remove explicit field initialization with null from library classes.
...
It is redundant since fields are implicitly null-initialized.
R=ajohnsen@google.com
Review URL: https://codereview.chromium.org//333583003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37261 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-12 10:59:20 +00:00
srdjan@google.com
a81288c8ca
Improve string library performance. String concat and indexOf.
...
Rename String concatAll to concatRange. Optimize concatRange for OneByteStrings (avoids natives), optimize indexOf for one character onByteStrings.
R=iposva@google.com
Review URL: https://codereview.chromium.org//42443002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@29472 260f80e4-7a28-3924-810f-c04153c831b5
2013-10-29 18:18:40 +00:00
iposva@google.com
fbec69dca1
- Fix typos and add comments.
...
R=srdjan@google.com
Review URL: https://codereview.chromium.org//25790004
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@28180 260f80e4-7a28-3924-810f-c04153c831b5
2013-10-02 20:52:15 +00:00
srdjan@google.com
30197aab9d
Improve performance of string buffer by modifying concatAll native to allow growable array and an interval. Eliminate unnecessary check for String elements in release mode.
...
R=asiva@google.com
Review URL: https://codereview.chromium.org//25087006
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@28102 260f80e4-7a28-3924-810f-c04153c831b5
2013-10-01 16:48:12 +00:00
kasperl@google.com
a37950273c
Improve the memory consumption and performance of our string buffer implementation.
...
R=lrn@google.com
BUG=
Review URL: https://codereview.chromium.org//24251012
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@27698 260f80e4-7a28-3924-810f-c04153c831b5
2013-09-20 12:07:39 +00:00
regis@google.com
9eb12ad303
Implement updated method overriding rules in the vm (issue 11495).
...
Introduce --error-on-bad-override flag and use it when generating snapshots.
Fix signature checking when patching methods.
Fix errors in patch files.
Fix receiver type of constructors.
Fix finalization of mixin application typedefs.
Update tests and status files.
R=asiva@google.com
Review URL: https://codereview.chromium.org//22685007
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@26027 260f80e4-7a28-3924-810f-c04153c831b5
2013-08-12 20:28:52 +00:00
lrn@google.com
a5a93492d9
Change VM's string-buffer patch to use a Uin16Array as backing buffer.
...
Review URL: https://codereview.chromium.org//12421002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@19679 260f80e4-7a28-3924-810f-c04153c831b5
2013-03-08 10:21:52 +00:00
floitsch@google.com
ecce8a6293
Remove deprecated Strings class.
...
Review URL: https://codereview.chromium.org//12295014
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@18686 260f80e4-7a28-3924-810f-c04153c831b5
2013-02-19 13:57:03 +00:00
floitsch@google.com
d65511b707
Add StringSink and update StringBuffer.
...
Committed: https://code.google.com/p/dart/source/detail?r=18313
Reverted: http://code.google.com/p/dart/source/detail?r=18327
Committed: https://code.google.com/p/dart/source/detail?r=18626
Reverted: http://code.google.com/p/dart/source/detail?r=18629
Review URL: https://codereview.chromium.org//12218086
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@18631 260f80e4-7a28-3924-810f-c04153c831b5
2013-02-18 14:15:53 +00:00
floitsch@google.com
ab46bbd209
Revert "Add StringSink and update StringBuffer."
...
This reverts commit 18626.
Review URL: https://codereview.chromium.org//12300012
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@18629 260f80e4-7a28-3924-810f-c04153c831b5
2013-02-18 13:57:41 +00:00
floitsch@google.com
c32a0fd519
Add StringSink and update StringBuffer.
...
Committed: https://code.google.com/p/dart/source/detail?r=18313
Reverted: http://code.google.com/p/dart/source/detail?r=18327
Review URL: https://codereview.chromium.org//12218086
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@18626 260f80e4-7a28-3924-810f-c04153c831b5
2013-02-18 13:26:51 +00:00
floitsch@google.com
3b0c2885b7
Revert "Add StringSink and update StringBuffer."
...
This reverts commit 18313.
Review URL: https://codereview.chromium.org//12217115
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@18327 260f80e4-7a28-3924-810f-c04153c831b5
2013-02-11 19:29:54 +00:00
floitsch@google.com
7c194d0d06
Add StringSink and update StringBuffer.
...
Review URL: https://codereview.chromium.org//12218086
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@18313 260f80e4-7a28-3924-810f-c04153c831b5
2013-02-11 17:11:56 +00:00
ahe@google.com
8d698fdf19
Improve performance of dart2js StringBuffer.
...
Review URL: https://codereview.chromium.org//11565034
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@17639 260f80e4-7a28-3924-810f-c04153c831b5
2013-01-25 15:32:10 +00:00