| Index: runtime/lib/string.cc
|
| ===================================================================
|
| --- runtime/lib/string.cc (revision 5412)
|
| +++ runtime/lib/string.cc (working copy)
|
| @@ -11,7 +11,7 @@
|
| namespace dart {
|
|
|
| DEFINE_NATIVE_ENTRY(StringBase_createFromCodePoints, 1) {
|
| - const Array& a = Array::CheckedHandle(arguments->At(0));
|
| + GET_NATIVE_ARGUMENT(Array, a, arguments->At(0));
|
| // TODO(srdjan): Check that parameterized type is an int.
|
| Zone* zone = Isolate::Current()->current_zone();
|
| intptr_t len = a.Length();
|
| @@ -55,21 +55,18 @@
|
|
|
|
|
| DEFINE_NATIVE_ENTRY(String_hashCode, 1) {
|
| - const String& str = String::CheckedHandle(arguments->At(0));
|
| - intptr_t hash_val = 0;
|
| - if (!str.IsNull()) {
|
| - hash_val = str.Hash();
|
| - }
|
| - ASSERT(Smi::IsValid(hash_val));
|
| + const String& receiver = String::CheckedHandle(arguments->At(0));
|
| + intptr_t hash_val = receiver.Hash();
|
| ASSERT(hash_val > 0);
|
| + ASSERT(Smi::IsValid(hash_val));
|
| const Smi& hash_smi = Smi::Handle(Smi::New(hash_val));
|
| arguments->SetReturn(hash_smi);
|
| }
|
|
|
|
|
| DEFINE_NATIVE_ENTRY(String_getLength, 1) {
|
| - const String& str = String::CheckedHandle(arguments->At(0));
|
| - arguments->SetReturn(Smi::Handle(Smi::New(str.Length())));
|
| + const String& receiver = String::CheckedHandle(arguments->At(0));
|
| + arguments->SetReturn(Smi::Handle(Smi::New(receiver.Length())));
|
| }
|
|
|
|
|
| @@ -95,17 +92,17 @@
|
|
|
|
|
| DEFINE_NATIVE_ENTRY(String_charAt, 2) {
|
| - const String& str = String::CheckedHandle(arguments->At(0));
|
| + const String& receiver = String::CheckedHandle(arguments->At(0));
|
| GET_NATIVE_ARGUMENT(Integer, index, arguments->At(1));
|
| - uint32_t value = StringValueAt(str, index);
|
| + uint32_t value = StringValueAt(receiver, index);
|
| ASSERT(value <= 0x10FFFF);
|
| arguments->SetReturn(String::Handle(String::NewSymbol(&value, 1)));
|
| }
|
|
|
| DEFINE_NATIVE_ENTRY(String_charCodeAt, 2) {
|
| - const String& str = String::CheckedHandle(arguments->At(0));
|
| + const String& receiver = String::CheckedHandle(arguments->At(0));
|
| GET_NATIVE_ARGUMENT(Integer, index, arguments->At(1));
|
| - int32_t value = StringValueAt(str, index);
|
| + int32_t value = StringValueAt(receiver, index);
|
| ASSERT(value >= 0);
|
| ASSERT(value <= 0x10FFFF);
|
| arguments->SetReturn(Smi::Handle(Smi::New(value)));
|
| @@ -113,31 +110,31 @@
|
|
|
|
|
| DEFINE_NATIVE_ENTRY(String_concat, 2) {
|
| - const String& a = String::CheckedHandle(arguments->At(0));
|
| + const String& receiver = String::CheckedHandle(arguments->At(0));
|
| GET_NATIVE_ARGUMENT(String, b, arguments->At(1));
|
| - const String& result = String::Handle(String::Concat(a, b));
|
| + const String& result = String::Handle(String::Concat(receiver, b));
|
| arguments->SetReturn(result);
|
| }
|
|
|
|
|
| DEFINE_NATIVE_ENTRY(String_toLowerCase, 1) {
|
| - const String& str = String::CheckedHandle(arguments->At(0));
|
| - ASSERT(!str.IsNull());
|
| - const String& result = String::Handle(String::ToLowerCase(str));
|
| + const String& receiver = String::CheckedHandle(arguments->At(0));
|
| + ASSERT(!receiver.IsNull());
|
| + const String& result = String::Handle(String::ToLowerCase(receiver));
|
| arguments->SetReturn(result);
|
| }
|
|
|
|
|
| DEFINE_NATIVE_ENTRY(String_toUpperCase, 1) {
|
| - const String& str = String::CheckedHandle(arguments->At(0));
|
| - ASSERT(!str.IsNull());
|
| - const String& result = String::Handle(String::ToUpperCase(str));
|
| + const String& receiver = String::CheckedHandle(arguments->At(0));
|
| + ASSERT(!receiver.IsNull());
|
| + const String& result = String::Handle(String::ToUpperCase(receiver));
|
| arguments->SetReturn(result);
|
| }
|
|
|
|
|
| DEFINE_NATIVE_ENTRY(Strings_concatAll, 1) {
|
| - const Array& strings = Array::CheckedHandle(arguments->At(0));
|
| + GET_NATIVE_ARGUMENT(Array, strings, arguments->At(0));
|
| ASSERT(!strings.IsNull());
|
| // Check that the array contains strings.
|
| Instance& elem = Instance::Handle();
|
|
|