| Index: runtime/lib/string.cc
|
| diff --git a/runtime/lib/string.cc b/runtime/lib/string.cc
|
| index 8affbbd6a78116b7fa4c33fc7cad24f045658774..0141a5c09fa11783a04269b50a1eb527b3137896 100644
|
| --- a/runtime/lib/string.cc
|
| +++ b/runtime/lib/string.cc
|
| @@ -5,8 +5,8 @@
|
| #include "vm/bootstrap_natives.h"
|
|
|
| #include "include/dart_api.h"
|
| -#include "vm/exceptions.h"
|
| #include "vm/dart_api_impl.h"
|
| +#include "vm/exceptions.h"
|
| #include "vm/isolate.h"
|
| #include "vm/native_entry.h"
|
| #include "vm/object.h"
|
| @@ -27,7 +27,6 @@ DEFINE_NATIVE_ENTRY(String_fromEnvironment, 3) {
|
| return default_value.raw();
|
| }
|
|
|
| -
|
| DEFINE_NATIVE_ENTRY(StringBase_createFromCodePoints, 3) {
|
| GET_NON_NULL_NATIVE_ARGUMENT(Instance, list, arguments->NativeArgAt(0));
|
| GET_NON_NULL_NATIVE_ARGUMENT(Smi, start_obj, arguments->NativeArgAt(1));
|
| @@ -89,7 +88,6 @@ DEFINE_NATIVE_ENTRY(StringBase_createFromCodePoints, 3) {
|
| return TwoByteString::New(utf16_len, utf32_array, array_len, Heap::kNew);
|
| }
|
|
|
| -
|
| DEFINE_NATIVE_ENTRY(StringBase_substringUnchecked, 3) {
|
| const String& receiver =
|
| String::CheckedHandle(zone, arguments->NativeArgAt(0));
|
| @@ -101,7 +99,6 @@ DEFINE_NATIVE_ENTRY(StringBase_substringUnchecked, 3) {
|
| return String::SubString(receiver, start, (end - start));
|
| }
|
|
|
| -
|
| // Return the bitwise-or of all characters in the slice from start to end.
|
| static uint16_t CharacterLimit(const String& string,
|
| intptr_t start,
|
| @@ -162,7 +159,6 @@ static bool CheckSlicesOneByte(const String& base,
|
| return true;
|
| }
|
|
|
| -
|
| DEFINE_NATIVE_ENTRY(StringBase_joinReplaceAllResult, 4) {
|
| const String& base = String::CheckedHandle(zone, arguments->NativeArgAt(0));
|
| GET_NON_NULL_NATIVE_ARGUMENT(GrowableObjectArray, matches_growable,
|
| @@ -260,7 +256,6 @@ DEFINE_NATIVE_ENTRY(OneByteString_substringUnchecked, 3) {
|
| return OneByteString::New(receiver, start, end - start, Heap::kNew);
|
| }
|
|
|
| -
|
| // This is high-performance code.
|
| DEFINE_NATIVE_ENTRY(OneByteString_splitWithCharCode, 2) {
|
| const String& receiver =
|
| @@ -288,13 +283,11 @@ DEFINE_NATIVE_ENTRY(OneByteString_splitWithCharCode, 2) {
|
| return result.raw();
|
| }
|
|
|
| -
|
| DEFINE_NATIVE_ENTRY(OneByteString_allocate, 1) {
|
| GET_NON_NULL_NATIVE_ARGUMENT(Smi, length_obj, arguments->NativeArgAt(0));
|
| return OneByteString::New(length_obj.Value(), Heap::kNew);
|
| }
|
|
|
| -
|
| DEFINE_NATIVE_ENTRY(OneByteString_allocateFromOneByteList, 3) {
|
| Instance& list = Instance::CheckedHandle(zone, arguments->NativeArgAt(0));
|
| GET_NON_NULL_NATIVE_ARGUMENT(Smi, start_obj, arguments->NativeArgAt(1));
|
| @@ -381,7 +374,6 @@ DEFINE_NATIVE_ENTRY(OneByteString_allocateFromOneByteList, 3) {
|
| return Object::null();
|
| }
|
|
|
| -
|
| DEFINE_NATIVE_ENTRY(OneByteString_setAt, 3) {
|
| GET_NON_NULL_NATIVE_ARGUMENT(String, receiver, arguments->NativeArgAt(0));
|
| ASSERT(receiver.IsOneByteString());
|
| @@ -392,12 +384,10 @@ DEFINE_NATIVE_ENTRY(OneByteString_setAt, 3) {
|
| return Object::null();
|
| }
|
|
|
| -
|
| DEFINE_NATIVE_ENTRY(ExternalOneByteString_getCid, 0) {
|
| return Smi::New(kExternalOneByteStringCid);
|
| }
|
|
|
| -
|
| DEFINE_NATIVE_ENTRY(TwoByteString_allocateFromTwoByteList, 3) {
|
| Instance& list = Instance::CheckedHandle(zone, arguments->NativeArgAt(0));
|
| GET_NON_NULL_NATIVE_ARGUMENT(Smi, start_obj, arguments->NativeArgAt(1));
|
| @@ -483,7 +473,6 @@ DEFINE_NATIVE_ENTRY(TwoByteString_allocateFromTwoByteList, 3) {
|
| return Object::null();
|
| }
|
|
|
| -
|
| DEFINE_NATIVE_ENTRY(String_getHashCode, 1) {
|
| const String& receiver =
|
| String::CheckedHandle(zone, arguments->NativeArgAt(0));
|
| @@ -493,14 +482,12 @@ DEFINE_NATIVE_ENTRY(String_getHashCode, 1) {
|
| return Smi::New(hash_val);
|
| }
|
|
|
| -
|
| DEFINE_NATIVE_ENTRY(String_getLength, 1) {
|
| const String& receiver =
|
| String::CheckedHandle(zone, arguments->NativeArgAt(0));
|
| return Smi::New(receiver.Length());
|
| }
|
|
|
| -
|
| static uint16_t StringValueAt(const String& str, const Integer& index) {
|
| if (index.IsSmi()) {
|
| const intptr_t index_value = Smi::Cast(index).Value();
|
| @@ -514,7 +501,6 @@ static uint16_t StringValueAt(const String& str, const Integer& index) {
|
| return 0;
|
| }
|
|
|
| -
|
| DEFINE_NATIVE_ENTRY(String_charAt, 2) {
|
| const String& receiver =
|
| String::CheckedHandle(zone, arguments->NativeArgAt(0));
|
| @@ -523,7 +509,6 @@ DEFINE_NATIVE_ENTRY(String_charAt, 2) {
|
| return Symbols::FromCharCode(thread, static_cast<int32_t>(value));
|
| }
|
|
|
| -
|
| // Returns the 16-bit UTF-16 code unit at the given index.
|
| DEFINE_NATIVE_ENTRY(String_codeUnitAt, 2) {
|
| const String& receiver =
|
| @@ -533,7 +518,6 @@ DEFINE_NATIVE_ENTRY(String_codeUnitAt, 2) {
|
| return Smi::New(static_cast<intptr_t>(value));
|
| }
|
|
|
| -
|
| DEFINE_NATIVE_ENTRY(String_concat, 2) {
|
| const String& receiver =
|
| String::CheckedHandle(zone, arguments->NativeArgAt(0));
|
| @@ -541,7 +525,6 @@ DEFINE_NATIVE_ENTRY(String_concat, 2) {
|
| return String::Concat(receiver, b);
|
| }
|
|
|
| -
|
| DEFINE_NATIVE_ENTRY(String_toLowerCase, 1) {
|
| const String& receiver =
|
| String::CheckedHandle(zone, arguments->NativeArgAt(0));
|
| @@ -549,7 +532,6 @@ DEFINE_NATIVE_ENTRY(String_toLowerCase, 1) {
|
| return String::ToLowerCase(receiver);
|
| }
|
|
|
| -
|
| DEFINE_NATIVE_ENTRY(String_toUpperCase, 1) {
|
| const String& receiver =
|
| String::CheckedHandle(zone, arguments->NativeArgAt(0));
|
| @@ -557,7 +539,6 @@ DEFINE_NATIVE_ENTRY(String_toUpperCase, 1) {
|
| return String::ToUpperCase(receiver);
|
| }
|
|
|
| -
|
| DEFINE_NATIVE_ENTRY(String_concatRange, 3) {
|
| GET_NON_NULL_NATIVE_ARGUMENT(Instance, argument, arguments->NativeArgAt(0));
|
| GET_NON_NULL_NATIVE_ARGUMENT(Smi, start, arguments->NativeArgAt(1));
|
| @@ -593,7 +574,6 @@ DEFINE_NATIVE_ENTRY(String_concatRange, 3) {
|
| return String::ConcatAllRange(strings, start_ix, end_ix, Heap::kNew);
|
| }
|
|
|
| -
|
| DEFINE_NATIVE_ENTRY(StringBuffer_createStringFromUint16Array, 3) {
|
| GET_NON_NULL_NATIVE_ARGUMENT(TypedData, codeUnits, arguments->NativeArgAt(0));
|
| GET_NON_NULL_NATIVE_ARGUMENT(Smi, length, arguments->NativeArgAt(1));
|
|
|