mirror of
https://github.com/Samsung/escargot.git
synced 2026-06-22 10:01:50 +00:00
Implement Intl.Segmenter constructor
Signed-off-by: Seonghyun Kim <sh8281.kim@samsung.com>
This commit is contained in:
parent
e5fe9d44c6
commit
39be7b7d97
12 changed files with 104 additions and 56 deletions
|
|
@ -95,10 +95,12 @@ IF (ESCARGOT_LIBICU_SUPPORT)
|
|||
SET (ESCARGOT_DEFINITIONS ${ESCARGOT_DEFINITIONS} -DENABLE_ICU -DENABLE_INTL -DENABLE_RUNTIME_ICU_BINDER)
|
||||
SET (ESCARGOT_DEFINITIONS ${ESCARGOT_DEFINITIONS} -DENABLE_INTL_DISPLAYNAMES -DENABLE_INTL_NUMBERFORMAT -DENABLE_INTL_PLURALRULES)
|
||||
SET (ESCARGOT_DEFINITIONS ${ESCARGOT_DEFINITIONS} -DENABLE_INTL_RELATIVETIMEFORMAT -DENABLE_INTL_LISTFORMAT -DENABLE_INTL_DURATIONFORMAT)
|
||||
SET (ESCARGOT_DEFINITIONS ${ESCARGOT_DEFINITIONS} -DENABLE_INTL_SEGMENTER)
|
||||
ELSE()
|
||||
IF (NOT ${ESCARGOT_HOST} STREQUAL "windows")
|
||||
SET (ESCARGOT_DEFINITIONS ${ESCARGOT_DEFINITIONS} -DENABLE_INTL_DISPLAYNAMES -DENABLE_INTL_NUMBERFORMAT -DENABLE_INTL_PLURALRULES)
|
||||
SET (ESCARGOT_DEFINITIONS ${ESCARGOT_DEFINITIONS} -DENABLE_INTL_RELATIVETIMEFORMAT -DENABLE_INTL_LISTFORMAT -DENABLE_INTL_DURATIONFORMAT)
|
||||
SET (ESCARGOT_DEFINITIONS ${ESCARGOT_DEFINITIONS} -DENABLE_INTL_SEGMENTER)
|
||||
|
||||
PKG_CHECK_MODULES(ICU REQUIRED icu-uc icu-i18n)
|
||||
ENDIF()
|
||||
|
|
|
|||
|
|
@ -316,7 +316,7 @@ extern "C" {
|
|||
#include <unicode/ulistformatter.h> // for Intl
|
||||
#include <unicode/ures.h> // for Intl
|
||||
#include <unicode/udateintervalformat.h> // for Intl
|
||||
|
||||
#include <unicode/ubrk.h> // for Intl
|
||||
// FIXME replace these vzone decl into include
|
||||
// I declare vzone api because there is no header file in include folder
|
||||
extern "C" {
|
||||
|
|
|
|||
|
|
@ -61,6 +61,7 @@
|
|||
#include "intl/IntlDisplayNames.h"
|
||||
#include "intl/IntlListFormat.h"
|
||||
#include "intl/IntlDurationFormat.h"
|
||||
#include "intl/IntlSegmenter.h"
|
||||
|
||||
namespace Escargot {
|
||||
|
||||
|
|
@ -1367,6 +1368,50 @@ static Value builtinIntlDurationFormatSupportedLocalesOf(ExecutionState& state,
|
|||
return Intl::supportedLocales(state, availableLocales, requestedLocales, options);
|
||||
}
|
||||
|
||||
#endif
|
||||
#if defined(ENABLE_INTL_SEGMENTER)
|
||||
static Value builtinIntlSegmenterConstructor(ExecutionState& state, Value thisValue, size_t argc, Value* argv, Optional<Object*> newTarget)
|
||||
{
|
||||
// If NewTarget is undefined, throw a TypeError exception.
|
||||
if (!newTarget) {
|
||||
ErrorObject::throwBuiltinError(state, ErrorCode::TypeError, ErrorObject::Messages::GlobalObject_ConstructorRequiresNew);
|
||||
return Value();
|
||||
}
|
||||
|
||||
Object* proto = Object::getPrototypeFromConstructor(state, newTarget.value(), [](ExecutionState& state, Context* realm) -> Object* {
|
||||
return realm->globalObject()->intlSegmenterPrototype();
|
||||
});
|
||||
if (argc >= 2) {
|
||||
return new IntlSegmenterObject(state, proto, argv[0], argv[1]);
|
||||
} else if (argc >= 1) {
|
||||
return new IntlSegmenterObject(state, proto, argv[0], Value());
|
||||
} else {
|
||||
return new IntlSegmenterObject(state, proto, Value(), Value());
|
||||
}
|
||||
}
|
||||
|
||||
static Value builtinIntlSegmenterResolvedOptions(ExecutionState& state, Value thisValue, size_t argc, Value* argv, Optional<Object*> newTarget)
|
||||
{
|
||||
if (!thisValue.isObject() || !thisValue.asObject()->isIntlSegmenterObject()) {
|
||||
ErrorObject::throwBuiltinError(state, ErrorCode::TypeError, "Method called on incompatible receiver");
|
||||
}
|
||||
|
||||
IntlSegmenterObject* r = thisValue.asObject()->asIntlSegmenterObject();
|
||||
return r->resolvedOptions(state);
|
||||
}
|
||||
|
||||
static Value builtinIntlSegmenterSupportedLocalesOf(ExecutionState& state, Value thisValue, size_t argc, Value* argv, Optional<Object*> newTarget)
|
||||
{
|
||||
Value locales = argv[0];
|
||||
Value options;
|
||||
if (argc >= 2) {
|
||||
options = argv[1];
|
||||
}
|
||||
const auto& availableLocales = state.context()->vmInstance()->intlSegmenterAvailableLocales();
|
||||
ValueVector requestedLocales = Intl::canonicalizeLocaleList(state, locales);
|
||||
return Intl::supportedLocales(state, availableLocales, requestedLocales, options);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
static Value builtinIntlGetCanonicalLocales(ExecutionState& state, Value thisValue, size_t argc, Value* argv, Optional<Object*> newTarget)
|
||||
|
|
@ -1936,6 +1981,22 @@ void GlobalObject::installIntl(ExecutionState& state)
|
|||
m_intlDurationFormatPrototype->directDefineOwnProperty(state, ObjectPropertyName(state.context()->vmInstance()->globalSymbols().toStringTag),
|
||||
ObjectPropertyDescriptor(Value(strings->lazyIntlDotDurationFormat().string()), (ObjectPropertyDescriptor::PresentAttribute)(ObjectPropertyDescriptor::ConfigurablePresent)));
|
||||
#endif
|
||||
#if defined(ENABLE_INTL_SEGMENTER)
|
||||
m_intlSegmenter = new NativeFunctionObject(state, NativeFunctionInfo(strings->lazyCapitalSegmenter(), builtinIntlSegmenterConstructor, 0), NativeFunctionObject::__ForBuiltinConstructor__);
|
||||
m_intlSegmenter->setGlobalIntrinsicObject(state);
|
||||
|
||||
m_intlSegmenter->directDefineOwnProperty(state, strings->lazySupportedLocalesOf(),
|
||||
ObjectPropertyDescriptor(new NativeFunctionObject(state, NativeFunctionInfo(strings->lazySupportedLocalesOf(), builtinIntlSegmenterSupportedLocalesOf, 1, NativeFunctionInfo::Strict)), (ObjectPropertyDescriptor::PresentAttribute)(ObjectPropertyDescriptor::ConfigurablePresent | ObjectPropertyDescriptor::WritablePresent)));
|
||||
|
||||
m_intlSegmenterPrototype = m_intlSegmenter->getFunctionPrototype(state).asObject();
|
||||
m_intlSegmenterPrototype->setGlobalIntrinsicObject(state, true);
|
||||
|
||||
m_intlSegmenterPrototype->directDefineOwnProperty(state, strings->lazyResolvedOptions(),
|
||||
ObjectPropertyDescriptor(new NativeFunctionObject(state, NativeFunctionInfo(strings->lazyResolvedOptions(), builtinIntlSegmenterResolvedOptions, 0, NativeFunctionInfo::Strict)), (ObjectPropertyDescriptor::PresentAttribute)(ObjectPropertyDescriptor::ConfigurablePresent | ObjectPropertyDescriptor::WritablePresent)));
|
||||
|
||||
m_intlSegmenterPrototype->directDefineOwnProperty(state, ObjectPropertyName(state.context()->vmInstance()->globalSymbols().toStringTag),
|
||||
ObjectPropertyDescriptor(Value(strings->lazyIntlDotSegmenter().string()), (ObjectPropertyDescriptor::PresentAttribute)(ObjectPropertyDescriptor::ConfigurablePresent)));
|
||||
#endif
|
||||
|
||||
m_intl->directDefineOwnProperty(state, ObjectPropertyName(state.context()->vmInstance()->globalSymbols().toStringTag),
|
||||
ObjectPropertyDescriptor(Value(strings->Intl.string()), (ObjectPropertyDescriptor::PresentAttribute)(ObjectPropertyDescriptor::ConfigurablePresent)));
|
||||
|
|
@ -1970,6 +2031,10 @@ void GlobalObject::installIntl(ExecutionState& state)
|
|||
#if defined(ENABLE_INTL_DURATIONFORMAT)
|
||||
m_intl->directDefineOwnProperty(state, ObjectPropertyName(strings->lazyCapitalDurationFormat()),
|
||||
ObjectPropertyDescriptor(m_intlDurationFormat, (ObjectPropertyDescriptor::PresentAttribute)(ObjectPropertyDescriptor::WritablePresent | ObjectPropertyDescriptor::ConfigurablePresent)));
|
||||
#endif
|
||||
#if defined(ENABLE_INTL_SEGMENTER)
|
||||
m_intl->directDefineOwnProperty(state, ObjectPropertyName(strings->lazyCapitalSegmenter()),
|
||||
ObjectPropertyDescriptor(m_intlSegmenter, (ObjectPropertyDescriptor::PresentAttribute)(ObjectPropertyDescriptor::WritablePresent | ObjectPropertyDescriptor::ConfigurablePresent)));
|
||||
#endif
|
||||
FunctionObject* getCanonicalLocales = new NativeFunctionObject(state, NativeFunctionInfo(strings->lazyGetCanonicalLocales(), builtinIntlGetCanonicalLocales, 1, NativeFunctionInfo::Strict));
|
||||
m_intl->directDefineOwnProperty(state, ObjectPropertyName(strings->lazyGetCanonicalLocales()),
|
||||
|
|
|
|||
|
|
@ -76,7 +76,7 @@ static std::vector<std::string> localeDataDurationFormat(String* locale, size_t
|
|||
}
|
||||
|
||||
IntlDurationFormatObject::IntlDurationFormatObject(ExecutionState& state, Value locales, Value options)
|
||||
: IntlDurationFormatObject(state, state.context()->globalObject()->intlRelativeTimeFormatPrototype(), locales, options)
|
||||
: IntlDurationFormatObject(state, state.context()->globalObject()->intlDurationFormatPrototype(), locales, options)
|
||||
{
|
||||
}
|
||||
|
||||
|
|
@ -158,7 +158,7 @@ IntlDurationFormatObject::IntlDurationFormatObject(ExecutionState& state, Object
|
|||
#if defined(ENABLE_RUNTIME_ICU_BINDER)
|
||||
UVersionInfo versionArray;
|
||||
u_getVersion(versionArray);
|
||||
if (versionArray[0] < 62) {
|
||||
if (versionArray[0] < 67) {
|
||||
ErrorObject::throwBuiltinError(state, ErrorCode::TypeError, "Intl.NumberFormat needs 67+ version of ICU");
|
||||
}
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -127,6 +127,13 @@ class FunctionObject;
|
|||
#else
|
||||
#define GLOBALOBJECT_BUILTIN_INTL_DURATIONFORMAT(F, objName)
|
||||
#endif
|
||||
#if defined(ENABLE_INTL_SEGMENTER)
|
||||
#define GLOBALOBJECT_BUILTIN_INTL_SEGMENTER(F, objName) \
|
||||
F(intlSegmenter, FunctionObject, objName) \
|
||||
F(intlSegmenterPrototype, Object, objName)
|
||||
#else
|
||||
#define GLOBALOBJECT_BUILTIN_INTL_SEGMENTER(F, objName)
|
||||
#endif
|
||||
#define GLOBALOBJECT_BUILTIN_INTL(F, objName) \
|
||||
F(intl, Object, objName) \
|
||||
F(intlCollator, FunctionObject, objName) \
|
||||
|
|
@ -139,7 +146,8 @@ class FunctionObject;
|
|||
GLOBALOBJECT_BUILTIN_INTL_PLURALRULES(F, objName) \
|
||||
GLOBALOBJECT_BUILTIN_INTL_RELATIVETIMEFORMAT(F, objName) \
|
||||
GLOBALOBJECT_BUILTIN_INTL_LISTFORMAT(F, objName) \
|
||||
GLOBALOBJECT_BUILTIN_INTL_DURATIONFORMAT(F, objName)
|
||||
GLOBALOBJECT_BUILTIN_INTL_DURATIONFORMAT(F, objName) \
|
||||
GLOBALOBJECT_BUILTIN_INTL_SEGMENTER(F, objName)
|
||||
#else
|
||||
#define GLOBALOBJECT_BUILTIN_INTL(F, objName)
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -96,6 +96,7 @@ class IntlRelativeTimeFormatObject;
|
|||
class IntlDisplayNamesObject;
|
||||
class IntlListFormatObject;
|
||||
class IntlDurationFormatObject;
|
||||
class IntlSegmenterObject;
|
||||
#endif
|
||||
#if defined(ENABLE_WASM)
|
||||
class WASMModuleObject;
|
||||
|
|
@ -536,6 +537,11 @@ public:
|
|||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
virtual bool isIntlSegmenterObject() const
|
||||
{
|
||||
return false;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(ENABLE_TEMPORAL)
|
||||
|
|
@ -950,6 +956,12 @@ public:
|
|||
ASSERT(isIntlDurationFormatObject());
|
||||
return (IntlDurationFormatObject*)this;
|
||||
}
|
||||
|
||||
IntlSegmenterObject* asIntlSegmenterObject()
|
||||
{
|
||||
ASSERT(isIntlSegmenterObject());
|
||||
return (IntlSegmenterObject*)this;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(ENABLE_TEMPORAL)
|
||||
|
|
|
|||
|
|
@ -794,6 +794,8 @@ namespace Escargot {
|
|||
F(GetTextInfo, "getTextInfo") \
|
||||
F(GetTimeZones, "getTimeZones") \
|
||||
F(GetWeekInfo, "getWeekInfo") \
|
||||
F(Grapheme, "grapheme") \
|
||||
F(Granularity, "granularity") \
|
||||
F(Group, "group") \
|
||||
F(H11, "h11") \
|
||||
F(H12, "h12") \
|
||||
|
|
@ -877,6 +879,7 @@ namespace Escargot {
|
|||
F(Script, "script") \
|
||||
F(Second, "second") \
|
||||
F(Seconds, "seconds") \
|
||||
F(Sentence, "sentence") \
|
||||
F(Sensitivity, "sensitivity") \
|
||||
F(Select, "select") \
|
||||
F(SelectRange, "selectRange") \
|
||||
|
|
@ -913,6 +916,7 @@ namespace Escargot {
|
|||
F(Weeks, "weeks") \
|
||||
F(Weekday, "weekday") \
|
||||
F(WeekInfo, "weekInfo") \
|
||||
F(Word, "word") \
|
||||
F(Year, "year") \
|
||||
F(Years, "years") \
|
||||
F(YearName, "yearName")
|
||||
|
|
|
|||
|
|
@ -973,6 +973,12 @@ const Vector<String*, GCUtil::gc_malloc_allocator<String*>>& VMInstance::intlDur
|
|||
return m_intlAvailableLocales;
|
||||
}
|
||||
|
||||
const Vector<String*, GCUtil::gc_malloc_allocator<String*>>& VMInstance::intlSegmenterAvailableLocales()
|
||||
{
|
||||
ensureIntlSupportedLocales();
|
||||
return m_intlAvailableLocales;
|
||||
}
|
||||
|
||||
const Vector<String*, GCUtil::gc_malloc_allocator<String*>>& VMInstance::caseMappingAvailableLocales()
|
||||
{
|
||||
if (m_caseMappingAvailableLocales.size() == 0) {
|
||||
|
|
|
|||
|
|
@ -387,6 +387,7 @@ public:
|
|||
const Vector<String*, GCUtil::gc_malloc_allocator<String*>>& intlListFormatAvailableLocales();
|
||||
const Vector<String*, GCUtil::gc_malloc_allocator<String*>>& intlPluralRulesAvailableLocales();
|
||||
const Vector<String*, GCUtil::gc_malloc_allocator<String*>>& intlDurationFormatAvailableLocales();
|
||||
const Vector<String*, GCUtil::gc_malloc_allocator<String*>>& intlSegmenterAvailableLocales();
|
||||
const Vector<String*, GCUtil::gc_malloc_allocator<String*>>& caseMappingAvailableLocales();
|
||||
#endif
|
||||
|
||||
|
|
|
|||
1
third_party/runtime_icu_binder/ICUPolyfill.h
vendored
1
third_party/runtime_icu_binder/ICUPolyfill.h
vendored
|
|
@ -147,6 +147,7 @@
|
|||
#define ubrk_setText RuntimeICUBinder::ICU::instance().ubrk_setText
|
||||
#define ubrk_setUText RuntimeICUBinder::ICU::instance().ubrk_setUText
|
||||
#define ubrk_close RuntimeICUBinder::ICU::instance().ubrk_close
|
||||
#define ubrk_clone RuntimeICUBinder::ICU::instance().ubrk_clone
|
||||
|
||||
#define ucnv_open RuntimeICUBinder::ICU::instance().ucnv_open
|
||||
#define ucnv_compareNames RuntimeICUBinder::ICU::instance().ucnv_compareNames
|
||||
|
|
|
|||
|
|
@ -161,6 +161,7 @@ namespace RuntimeICUBinder {
|
|||
F(ubrk_open, UBreakIterator*(CALLCONV*)(UBreakIteratorType type, const char* locale, const UChar* text, int32_t textLength, UErrorCode* status), UBreakIterator*) \
|
||||
F(ubrk_openRules, UBreakIterator*(CALLCONV*)(const UChar* rules, int32_t rulesLength, const UChar* text, int32_t textLength, UParseError* parseErr, UErrorCode* status), UBreakIterator*) \
|
||||
F(ubrk_next, int32_t(CALLCONV*)(UBreakIterator * bi), int32_t) \
|
||||
F(ubrk_clone, UBreakIterator*(CALLCONV*)(const UBreakIterator* format, UErrorCode* status), UBreakIterator*) \
|
||||
F(ucsdet_open, UCharsetDetector*(CALLCONV*)(UErrorCode * status), UCharsetDetector*) \
|
||||
F(ucsdet_detectAll, const UCharsetMatch**(CALLCONV*)(UCharsetDetector * ucsd, int32_t* matchesFound, UErrorCode* status), const UCharsetMatch**) \
|
||||
F(ucsdet_detect, const UCharsetMatch*(CALLCONV*)(UCharsetDetector * ucsd, UErrorCode * status), const UCharsetMatch*) \
|
||||
|
|
|
|||
|
|
@ -4658,57 +4658,7 @@
|
|||
<test id="intl402/RelativeTimeFormat/prototype/formatToParts/pl-pl-style-long"><reason>TODO</reason></test>
|
||||
<test id="intl402/RelativeTimeFormat/prototype/formatToParts/pl-pl-style-narrow"><reason>TODO</reason></test>
|
||||
<test id="intl402/RelativeTimeFormat/prototype/formatToParts/pl-pl-style-short"><reason>TODO</reason></test>
|
||||
<test id="intl402/Segmenter/constructor/constructor/locales-invalid"><reason>TODO</reason></test>
|
||||
<test id="intl402/Segmenter/constructor/constructor/locales-valid"><reason>TODO</reason></test>
|
||||
<test id="intl402/Segmenter/constructor/constructor/newtarget-undefined"><reason>TODO</reason></test>
|
||||
<test id="intl402/Segmenter/constructor/constructor/options-granularity-abrupt-throws"><reason>TODO</reason></test>
|
||||
<test id="intl402/Segmenter/constructor/constructor/options-granularity-invalid"><reason>TODO</reason></test>
|
||||
<test id="intl402/Segmenter/constructor/constructor/options-granularity-toString-abrupt-throws"><reason>TODO</reason></test>
|
||||
<test id="intl402/Segmenter/constructor/constructor/options-granularity-valid"><reason>TODO</reason></test>
|
||||
<test id="intl402/Segmenter/constructor/constructor/options-invalid"><reason>TODO</reason></test>
|
||||
<test id="intl402/Segmenter/constructor/constructor/options-localeMatcher-abrupt-throws"><reason>TODO</reason></test>
|
||||
<test id="intl402/Segmenter/constructor/constructor/options-localeMatcher-invalid"><reason>TODO</reason></test>
|
||||
<test id="intl402/Segmenter/constructor/constructor/options-localeMatcher-toString-abrupt-throws"><reason>TODO</reason></test>
|
||||
<test id="intl402/Segmenter/constructor/constructor/options-localeMatcher-valid"><reason>TODO</reason></test>
|
||||
<test id="intl402/Segmenter/constructor/constructor/options-order"><reason>TODO</reason></test>
|
||||
<test id="intl402/Segmenter/constructor/constructor/options-throwing-getters"><reason>TODO</reason></test>
|
||||
<test id="intl402/Segmenter/constructor/constructor/options-undefined"><reason>TODO</reason></test>
|
||||
<test id="intl402/Segmenter/constructor/constructor/options-valid-combinations"><reason>TODO</reason></test>
|
||||
<test id="intl402/Segmenter/constructor/constructor/proto-from-ctor-realm"><reason>TODO</reason></test>
|
||||
<test id="intl402/Segmenter/constructor/constructor/subclassing"><reason>TODO</reason></test>
|
||||
<test id="intl402/Segmenter/constructor/length"><reason>TODO</reason></test>
|
||||
<test id="intl402/Segmenter/constructor/name"><reason>TODO</reason></test>
|
||||
<test id="intl402/Segmenter/constructor/prop-desc"><reason>TODO</reason></test>
|
||||
<test id="intl402/Segmenter/constructor/prototype"><reason>TODO</reason></test>
|
||||
<test id="intl402/Segmenter/constructor/supportedLocalesOf/basic"><reason>TODO</reason></test>
|
||||
<test id="intl402/Segmenter/constructor/supportedLocalesOf/branding"><reason>TODO</reason></test>
|
||||
<test id="intl402/Segmenter/constructor/supportedLocalesOf/length"><reason>TODO</reason></test>
|
||||
<test id="intl402/Segmenter/constructor/supportedLocalesOf/locales-empty"><reason>TODO</reason></test>
|
||||
<test id="intl402/Segmenter/constructor/supportedLocalesOf/locales-invalid"><reason>TODO</reason></test>
|
||||
<test id="intl402/Segmenter/constructor/supportedLocalesOf/locales-specific"><reason>TODO</reason></test>
|
||||
<test id="intl402/Segmenter/constructor/supportedLocalesOf/name"><reason>TODO</reason></test>
|
||||
<test id="intl402/Segmenter/constructor/supportedLocalesOf/options-localeMatcher-invalid"><reason>TODO</reason></test>
|
||||
<test id="intl402/Segmenter/constructor/supportedLocalesOf/options-null"><reason>TODO</reason></test>
|
||||
<test id="intl402/Segmenter/constructor/supportedLocalesOf/options-toobject"><reason>TODO</reason></test>
|
||||
<test id="intl402/Segmenter/constructor/supportedLocalesOf/options-undefined"><reason>TODO</reason></test>
|
||||
<test id="intl402/Segmenter/constructor/supportedLocalesOf/prop-desc"><reason>TODO</reason></test>
|
||||
<test id="intl402/Segmenter/constructor/supportedLocalesOf/result-type"><reason>TODO</reason></test>
|
||||
<test id="intl402/Segmenter/ctor-custom-get-prototype-poison-throws"><reason>TODO</reason></test>
|
||||
<test id="intl402/Segmenter/ctor-custom-prototype"><reason>TODO</reason></test>
|
||||
<test id="intl402/Segmenter/ctor-default-prototype"><reason>TODO</reason></test>
|
||||
<test id="intl402/Segmenter/instance/extensibility"><reason>TODO</reason></test>
|
||||
<test id="intl402/Segmenter/instance/prototype"><reason>TODO</reason></test>
|
||||
<test id="intl402/Segmenter/proto-from-ctor-realm"><reason>TODO</reason></test>
|
||||
<test id="intl402/Segmenter/prototype/Symbol.toStringTag"><reason>TODO</reason></test>
|
||||
<test id="intl402/Segmenter/prototype/constructor/prop-desc"><reason>TODO</reason></test>
|
||||
<test id="intl402/Segmenter/prototype/prop-desc"><reason>TODO</reason></test>
|
||||
<test id="intl402/Segmenter/prototype/resolvedOptions/branding"><reason>TODO</reason></test>
|
||||
<test id="intl402/Segmenter/prototype/resolvedOptions/caching"><reason>TODO</reason></test>
|
||||
<test id="intl402/Segmenter/prototype/resolvedOptions/length"><reason>TODO</reason></test>
|
||||
<test id="intl402/Segmenter/prototype/resolvedOptions/name"><reason>TODO</reason></test>
|
||||
<test id="intl402/Segmenter/prototype/resolvedOptions/order"><reason>TODO</reason></test>
|
||||
<test id="intl402/Segmenter/prototype/resolvedOptions/prop-desc"><reason>TODO</reason></test>
|
||||
<test id="intl402/Segmenter/prototype/resolvedOptions/type-without-lbs"><reason>TODO</reason></test>
|
||||
<test id="intl402/Segmenter/prototype/segment/branding"><reason>TODO</reason></test>
|
||||
<test id="intl402/Segmenter/prototype/segment/containing/branding"><reason>TODO</reason></test>
|
||||
<test id="intl402/Segmenter/prototype/segment/containing/breakable-input"><reason>TODO</reason></test>
|
||||
|
|
@ -4732,8 +4682,6 @@
|
|||
<test id="intl402/Segmenter/prototype/segment/segment-sentence-iterable"><reason>TODO</reason></test>
|
||||
<test id="intl402/Segmenter/prototype/segment/segment-tostring"><reason>TODO</reason></test>
|
||||
<test id="intl402/Segmenter/prototype/segment/segment-word-iterable"><reason>TODO</reason></test>
|
||||
<test id="intl402/Segmenter/prototype/toStringTag/toString"><reason>TODO</reason></test>
|
||||
<test id="intl402/Segmenter/prototype/toStringTag/toStringTag"><reason>TODO</reason></test>
|
||||
<test id="intl402/Temporal/Duration/compare/relativeto-hour"><reason>TODO</reason></test>
|
||||
<test id="intl402/Temporal/Duration/compare/relativeto-sub-minute-offset"><reason>TODO</reason></test>
|
||||
<test id="intl402/Temporal/Duration/compare/twenty-five-hour-day"><reason>TODO</reason></test>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue