Commit Graph

42 Commits

Author SHA1 Message Date
lrn@google.com 69145994de Allow multi-codeunit padding in String.padLeft/padRight.
Also allow negative repeats.

Based on suggestions from Stephen.

R=sra@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@32843 260f80e4-7a28-3924-810f-c04153c831b5
2014-02-20 07:17:11 +00:00
lrn@google.com a3ad46de0d Add String.repeat, String.padLeft, String.padRight.
We keep seeing reimplementations everywhere, and reimplementing it ourselves.

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

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@32784 260f80e4-7a28-3924-810f-c04153c831b5
2014-02-19 12:32:56 +00:00
ajohnsen@google.com 03c7cf69f3 Add optimized String.fromCharCodes path for Uint8List and Int8List.
BUG=
R=srdjan@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@30496 260f80e4-7a28-3924-810f-c04153c831b5
2013-11-21 06:12:01 +00:00
hausner@google.com c96bc29ab5 Compile time error if name is used before variable is declared
Implement proper semantics if a name has been referenced in a
block and later a variable with that same name is declared.

Fix library code that was wrong.

Add new language test, delete a couple of tests that are
outdated, file co19 bug 649.

Dart2js and dart2dart are not yet implementing these compile-time
errors.

R=iposva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@29770 260f80e4-7a28-3924-810f-c04153c831b5
2013-11-01 21:28:31 +00:00
srdjan@google.com 98aad1b1d0 Optimize OneByteString’s contains function for one character patterns (similar to indexOf).
R=zra@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@29701 260f80e4-7a28-3924-810f-c04153c831b5
2013-10-31 21:13:46 +00:00
sgjesse@google.com 36a67fa046 Implement fromEnvironment on bool, int and String
This implements const constructor fromEnvironment on bool, int and
String.

The VM have the added -Dname=value option to define the value for the
properties. All values are provided by using the -D - nothing is read
from the environment.

If the resulting value is null or - in the case of int.fromEnvironment
- not a number an ArgumentError is thrown.

This CL does not have any implementation for dart2js.

This is a continuation of the change
https://chromiumcodereview.appspot.com/24975002 by iposva@
BUG=
R=iposva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@29642 260f80e4-7a28-3924-810f-c04153c831b5
2013-10-31 05:46:57 +00:00
srdjan@google.com cacd63cf7b Improve indexOf for one byte string receiver to work with other string classes.
Optimize access to core class’s class-ids.

R=zra@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@29610 260f80e4-7a28-3924-810f-c04153c831b5
2013-10-30 23:51:42 +00:00
srdjan@google.com 15d2afdca4 Fix performance degradation in string buffer benchmarks: concat in native instead of in Dart.
R=zra@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@29567 260f80e4-7a28-3924-810f-c04153c831b5
2013-10-30 17:25:23 +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
srdjan@google.com 255ffb6947 Specialize string equality for various string classes. Add intrinsics for one/two-byte string equality. Improves sudoku_solver by 10%.
R=regis@google.com, zra@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@29266 260f80e4-7a28-3924-810f-c04153c831b5
2013-10-25 18:00:27 +00:00
lrn@google.com ff1d105a0f Remove deprecated 'str' getter on Match.
BUG= http://dartbug.com/12843
R=floitsch@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@29167 260f80e4-7a28-3924-810f-c04153c831b5
2013-10-24 12:06:41 +00:00
srdjan@google.com 1676113897 Fix runtimeType for strings, integers and double: return their interface type.
R=asiva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@28286 260f80e4-7a28-3924-810f-c04153c831b5
2013-10-04 22:08:55 +00:00
iposva@google.com e7e2e4bf03 - Rename arrays to lists:
_ObjectArray -> _List
  _GrowableObjectArray -> _GrowableList
  _ImmutableArray -> _ImmutableList

R=srdjan@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@28189 260f80e4-7a28-3924-810f-c04153c831b5
2013-10-03 00:15:14 +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
lrn@google.com df78198c50 Remove String.concat from implementation classes.
It was removed from the interface a long time ago.

BUG= http://dartbug.com/13128
R=floitsch@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@27286 260f80e4-7a28-3924-810f-c04153c831b5
2013-09-09 11:04:45 +00:00
lrn@google.com 3f23ba6d14 Fix implementations of Match too, to use "input", not "str".
Fix accidental rename of str to src.

R=sgjesse@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@26781 260f80e4-7a28-3924-810f-c04153c831b5
2013-08-28 11:33:56 +00:00
lrn@google.com e73a721d8e Make String.startsWith take an optional start index.
R=floitsch@google.com, ngeoffray@google.com, srdjan@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24142 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-18 13:59:19 +00:00
lrn@google.com 9b67f92679 Use Pattern.matchAsPrefix to let String.indexOf/lastIndexOf/startsWith accept Pattern.
Rearranged co19-runtime.status to only have one section for each configuration,
and tried to keep them in a logical order.

BUG=http://dartbug.com/11129
R=floitsch@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@23974 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-13 12:49:44 +00:00
lrn@google.com 9614a603bb Proof-of-concept matchPrefix on Pattern.
Can be used to implement startsWith (and endsWith with a loop).

R=floitsch@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@23897 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-12 08:37:36 +00:00
asiva@google.com 937da3dd4a Delete some dead code
Strings.concatAll
Strings.join

R=srdjan@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@23882 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-11 21:13:27 +00:00
lrn@google.com 7dd35ed656 Better documentation on Sets and Maps.
Small updates on other documentation too.

BUG= http://dartbug.com/474, http://dartbug.com/1289, http://dartbug.com/5516, http://dartbug.com/10902, http://dartbug.com/10315
R=floitsch@google.com, ngeoffray@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@23734 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-07 08:51:35 +00:00
floitsch@google.com 5d058bb0eb Adding isNotEmpty property to collection and string.
BUG= http://dartbug.com/3074
R=floitsch@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@23294 260f80e4-7a28-3924-810f-c04153c831b5
2013-05-28 17:30:37 +00:00
floitsch@google.com c5bd888acb Fix string.trim (adding more runes).
R=lrn@google.com, srdjan@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@23006 260f80e4-7a28-3924-810f-c04153c831b5
2013-05-22 11:10:11 +00:00
asiva@google.com 551cde79fa Reuse _isOneByteWhitespace in all the classes for implementing _isWhitespace.
R=srdjan@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@22882 260f80e4-7a28-3924-810f-c04153c831b5
2013-05-17 23:49:50 +00:00
asiva@google.com 4ba1fdafba Remove obsolete code (FourByteString).
R=srdjan@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@22871 260f80e4-7a28-3924-810f-c04153c831b5
2013-05-17 20:59:39 +00:00
srdjan@google.com 7797d39362 Added Object._cid getter, optimized it. Added to (some) classes a static final _clCid. Use those to test for exact type in VM's libraries.
R=iposva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@22695 260f80e4-7a28-3924-810f-c04153c831b5
2013-05-14 18:16:44 +00:00
srdjan@google.com 70d8860c17 Optimize concatenation of lists of onebyte strings by implementing it in Dart.
R=asiva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@22532 260f80e4-7a28-3924-810f-c04153c831b5
2013-05-08 21:33:03 +00:00
srdjan@google.com ddc9d23610 Inline _OneByteString._setAt. The key knowledge is that _setAt is an internal method that has to be called with correct arguments, therefore no checks are needed.
R=fschneider@google.com, zra@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@22528 260f80e4-7a28-3924-810f-c04153c831b5
2013-05-08 20:03:33 +00:00
srdjan@google.com ab188d327c Improve performance of String.fromCharCodes by implementing it in Dart. Add tow internal natives to Dart in order to be able to allocate and fill a String. Next step is to implement String.concatAll in Dart as well and to inline String._setAt operation (currently intrinsified).
R=asiva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@22399 260f80e4-7a28-3924-810f-c04153c831b5
2013-05-03 23:48:10 +00:00
srdjan@google.com 596f203f2a Do not copy immutable arrays in String.createFromCharCodes. Tighten the types a little in string_patch.dart.
R=hausner@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@22338 260f80e4-7a28-3924-810f-c04153c831b5
2013-05-02 20:45:06 +00:00
floitsch@google.com 07b02a845c Remove String.slice. Too much overlap with String.substring.
Review URL: https://codereview.chromium.org//13874008

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@21442 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-15 12:20:07 +00:00
lrn@google.com 6160e59850 Moving ListBase, FixedLengthListMixin and UmodifiableListMixin to collection.
Users can now create lists easily by extending these classes, just
as they can create iterables by extending Iterable.

Reduce the dependency of IterableMixinWorkaround outside of core/collection
implementations. I plan to move IterableMixinWorkaround to _collection-dev
before M4.

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@21147 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-09 12:11:05 +00:00
iposva@google.com 3a858ca8a9 - Consolidate String sources in the runtime libraries.
Review URL: https://codereview.chromium.org//13097009

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@20578 260f80e4-7a28-3924-810f-c04153c831b5
2013-03-27 20:57:25 +00:00
lrn@google.com f79786d726 Fix String.fromCharCodes to work with iterables.
BUG=http://dartbug.com/8922

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@19602 260f80e4-7a28-3924-810f-c04153c831b5
2013-03-07 09:14:43 +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 4a7dfd2da3 Big merge from experimental to bleeding edge.
Review URL: https://codereview.chromium.org//11783009

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16687 260f80e4-7a28-3924-810f-c04153c831b5
2013-01-07 11:23:16 +00:00
erikcorry@google.com 84da84c22d Revert "Add some support for the code-point code-unit distinction."
This reverts commit r15150

R=karlklose@google.com
BUG=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@15152 260f80e4-7a28-3924-810f-c04153c831b5
2012-11-20 15:23:41 +00:00
erikcorry@google.com 547cbf9da6 Add some support for the code-point code-unit distinction.
Adds String.fromCodeUnits and String.codeUnitAt, and modifies
String.fromCodePoints and String.codePointAt to actually use code points.
Fixes String.charCodes to use code points and adds String.codeUnits.
Reenables some tests, and adds new ones for non-BMP characters.
Fixes issues 6418, 6501 and 1357.

R=floitsch@google.com
BUG=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@15150 260f80e4-7a28-3924-810f-c04153c831b5
2012-11-20 14:51:25 +00:00
lrn@google.com 1555c1db26 Convert String to a class.
Remove the StringImplementation class.

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@14779 260f80e4-7a28-3924-810f-c04153c831b5
2012-11-12 08:16:59 +00:00
ajohnsen@google.com 806fa6fab1 Move StringImplementation from coreimpl to core as _StringImpl.
BUG=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@14281 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-30 14:19:57 +00:00
ager@google.com 70216ab4cd Hide internal details of VM string implementation.
R=lrn@google.com,srdjan@google.com
BUG=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13352 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-08 13:00:33 +00:00
ajohnsen@google.com 60c99504bc Unify String.
BUG=

Review URL: https://chromiumcodereview.appspot.com//10883052

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@11380 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-27 12:26:32 +00:00