| 463 | } |
| 464 | |
| 465 | StringBox Value::toStringBox() const { |
| 466 | if (isInternedString()) { |
| 467 | return StringBox(Ref<InternedStringImpl>(toPointer<InternedStringImpl>())); |
| 468 | } else if (isStaticString()) { |
| 469 | const auto* staticString = getStaticString(); |
| 470 | switch (staticString->encoding()) { |
| 471 | case StaticString::Encoding::UTF8: |
| 472 | return StringCache::getGlobal().makeString(staticString->utf8StringView()); |
| 473 | case StaticString::Encoding::UTF16: |
| 474 | return StringCache::getGlobal().makeStringFromUTF16(staticString->utf16Data(), staticString->size()); |
| 475 | case StaticString::Encoding::UTF32: { |
| 476 | auto storage = staticString->utf8Storage(); |
| 477 | return StringCache::getGlobal().makeString(storage.data, storage.length); |
| 478 | } |
| 479 | } |
| 480 | } |
| 481 | |
| 482 | return StringCache::getGlobal().makeString(toString()); |
| 483 | } |
| 484 | |
| 485 | std::vector<StringBox> Value::sortedMapKeys() const { |
| 486 | std::vector<StringBox> keys; |
no test coverage detected