| Index: src/runtime.cc
|
| diff --git a/src/runtime.cc b/src/runtime.cc
|
| index 3691fe6a704ae66c7c3d23a786901244493028e9..d7f2798bd5244c16effb692e27f7a9b87aced2bb 100644
|
| --- a/src/runtime.cc
|
| +++ b/src/runtime.cc
|
| @@ -4521,7 +4521,9 @@ static MaybeObject* Runtime_URIUnescape(Arguments args) {
|
| }
|
|
|
|
|
| -static const char* const JsonQuotes[128] = {
|
| +static const unsigned int kQuoteTableLength = 128u;
|
| +
|
| +static const char* const JsonQuotes[kQuoteTableLength] = {
|
| "\\u0000", "\\u0001", "\\u0002", "\\u0003",
|
| "\\u0004", "\\u0005", "\\u0006", "\\u0007",
|
| "\\b", "\\t", "\\n", "\\u000b",
|
| @@ -4557,7 +4559,7 @@ static const char* const JsonQuotes[128] = {
|
| };
|
|
|
|
|
| -static const byte JsonQuoteLengths[128] = {
|
| +static const byte JsonQuoteLengths[kQuoteTableLength] = {
|
| 6, 6, 6, 6, 6, 6, 6, 6,
|
| 2, 2, 2, 6, 2, 2, 6, 6,
|
| 6, 6, 6, 6, 6, 6, 6, 6,
|
| @@ -4606,15 +4608,13 @@ MaybeObject* AllocateRawString<SeqAsciiString>(int length) {
|
|
|
|
|
| template <typename Char, typename StringType>
|
| -static MaybeObject* QuoteJsonString(String* original,
|
| - Vector<const Char> characters) {
|
| +static MaybeObject* QuoteJsonString(Vector<const Char> characters) {
|
| int length = characters.length();
|
| int quoted_length = 0;
|
| for (int i = 0; i < length; i++) {
|
| unsigned int c = characters[i];
|
| if (sizeof(Char) > 1u) {
|
| - quoted_length +=
|
| - (c >= sizeof(JsonQuoteLengths)) ? 1 : JsonQuoteLengths[c];
|
| + quoted_length += (c >= kQuoteTableLength) ? 1 : JsonQuoteLengths[c];
|
| } else {
|
| quoted_length += JsonQuoteLengths[c];
|
| }
|
| @@ -4644,7 +4644,7 @@ static MaybeObject* QuoteJsonString(String* original,
|
| const Char* end = read_cursor + length;
|
| while (read_cursor < end) {
|
| Char c = *(read_cursor++);
|
| - if (sizeof(Char) > 1u && static_cast<unsigned>(c) >= sizeof(JsonQuotes)) {
|
| + if (sizeof(Char) > 1u && static_cast<unsigned>(c) >= kQuoteTableLength) {
|
| *(write_cursor++) = c;
|
| } else {
|
| const char* replacement = JsonQuotes[static_cast<unsigned>(c)];
|
| @@ -4675,9 +4675,9 @@ static MaybeObject* Runtime_QuoteJSONString(Arguments args) {
|
| ASSERT(str->IsFlat());
|
| }
|
| if (str->IsTwoByteRepresentation()) {
|
| - return QuoteJsonString<uc16, SeqTwoByteString>(str, str->ToUC16Vector());
|
| + return QuoteJsonString<uc16, SeqTwoByteString>(str->ToUC16Vector());
|
| } else {
|
| - return QuoteJsonString<char, SeqAsciiString>(str, str->ToAsciiVector());
|
| + return QuoteJsonString<char, SeqAsciiString>(str->ToAsciiVector());
|
| }
|
| }
|
|
|
|
|