Skip to content

Commit 5ce6592

Browse files
committed
[GR-50000] Recent normative changes in Intl Locale Info proposal.
PullRequest: js/2978
2 parents 1c51911 + 9b0ece9 commit 5ce6592

File tree

5 files changed

+49
-240
lines changed

5 files changed

+49
-240
lines changed

graal-js/src/com.oracle.truffle.js.test.external/src/com/oracle/truffle/js/test/external/testv8/TestV8Runnable.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ public class TestV8Runnable extends TestRunnable {
111111
private static final Set<String> STAGING_FLAGS = featureSet(new String[]{
112112
"--harmony-array-grouping",
113113
"--harmony-atomics-waitasync",
114-
"--harmony-intl-locale_info",
114+
"--harmony-intl-locale-info-func",
115115
"--harmony-shadow-realm",
116116
"--harmony-weak-refs-with-cleanup-some",
117117
"--js-promise-withresolvers",

graal-js/src/com.oracle.truffle.js/src/com/oracle/truffle/js/builtins/intl/LocalePrototypeBuiltins.java

Lines changed: 45 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -55,24 +55,24 @@
5555
import com.oracle.truffle.js.builtins.JSBuiltinsContainer;
5656
import com.oracle.truffle.js.builtins.intl.LocalePrototypeBuiltinsFactory.JSLocaleBaseNameAccessorNodeGen;
5757
import com.oracle.truffle.js.builtins.intl.LocalePrototypeBuiltinsFactory.JSLocaleCalendarAccessorNodeGen;
58-
import com.oracle.truffle.js.builtins.intl.LocalePrototypeBuiltinsFactory.JSLocaleCalendarsAccessorNodeGen;
5958
import com.oracle.truffle.js.builtins.intl.LocalePrototypeBuiltinsFactory.JSLocaleCaseFirstAccessorNodeGen;
6059
import com.oracle.truffle.js.builtins.intl.LocalePrototypeBuiltinsFactory.JSLocaleCollationAccessorNodeGen;
61-
import com.oracle.truffle.js.builtins.intl.LocalePrototypeBuiltinsFactory.JSLocaleCollationsAccessorNodeGen;
60+
import com.oracle.truffle.js.builtins.intl.LocalePrototypeBuiltinsFactory.JSLocaleGetCalendarsNodeGen;
61+
import com.oracle.truffle.js.builtins.intl.LocalePrototypeBuiltinsFactory.JSLocaleGetCollationsNodeGen;
62+
import com.oracle.truffle.js.builtins.intl.LocalePrototypeBuiltinsFactory.JSLocaleGetHourCyclesNodeGen;
63+
import com.oracle.truffle.js.builtins.intl.LocalePrototypeBuiltinsFactory.JSLocaleGetNumberingSystemsNodeGen;
64+
import com.oracle.truffle.js.builtins.intl.LocalePrototypeBuiltinsFactory.JSLocaleGetTextInfoNodeGen;
65+
import com.oracle.truffle.js.builtins.intl.LocalePrototypeBuiltinsFactory.JSLocaleGetTimeZonesNodeGen;
66+
import com.oracle.truffle.js.builtins.intl.LocalePrototypeBuiltinsFactory.JSLocaleGetWeekInfoNodeGen;
6267
import com.oracle.truffle.js.builtins.intl.LocalePrototypeBuiltinsFactory.JSLocaleHourCycleAccessorNodeGen;
63-
import com.oracle.truffle.js.builtins.intl.LocalePrototypeBuiltinsFactory.JSLocaleHourCyclesAccessorNodeGen;
6468
import com.oracle.truffle.js.builtins.intl.LocalePrototypeBuiltinsFactory.JSLocaleLanguageAccessorNodeGen;
6569
import com.oracle.truffle.js.builtins.intl.LocalePrototypeBuiltinsFactory.JSLocaleMaximizeNodeGen;
6670
import com.oracle.truffle.js.builtins.intl.LocalePrototypeBuiltinsFactory.JSLocaleMinimizeNodeGen;
6771
import com.oracle.truffle.js.builtins.intl.LocalePrototypeBuiltinsFactory.JSLocaleNumberingSystemAccessorNodeGen;
68-
import com.oracle.truffle.js.builtins.intl.LocalePrototypeBuiltinsFactory.JSLocaleNumberingSystemsAccessorNodeGen;
6972
import com.oracle.truffle.js.builtins.intl.LocalePrototypeBuiltinsFactory.JSLocaleNumericAccessorNodeGen;
7073
import com.oracle.truffle.js.builtins.intl.LocalePrototypeBuiltinsFactory.JSLocaleRegionAccessorNodeGen;
7174
import com.oracle.truffle.js.builtins.intl.LocalePrototypeBuiltinsFactory.JSLocaleScriptAccessorNodeGen;
72-
import com.oracle.truffle.js.builtins.intl.LocalePrototypeBuiltinsFactory.JSLocaleTextInfoAccessorNodeGen;
73-
import com.oracle.truffle.js.builtins.intl.LocalePrototypeBuiltinsFactory.JSLocaleTimeZonesAccessorNodeGen;
7475
import com.oracle.truffle.js.builtins.intl.LocalePrototypeBuiltinsFactory.JSLocaleToStringNodeGen;
75-
import com.oracle.truffle.js.builtins.intl.LocalePrototypeBuiltinsFactory.JSLocaleWeekInfoAccessorNodeGen;
7676
import com.oracle.truffle.js.nodes.access.CreateDataPropertyNode;
7777
import com.oracle.truffle.js.nodes.function.JSBuiltin;
7878
import com.oracle.truffle.js.nodes.function.JSBuiltinNode;
@@ -119,13 +119,13 @@ public enum LocalePrototype implements BuiltinEnum<LocalePrototype> {
119119
script(0),
120120
region(0),
121121

122-
calendars(0),
123-
collations(0),
124-
hourCycles(0),
125-
numberingSystems(0),
126-
timeZones(0),
127-
textInfo(0),
128-
weekInfo(0);
122+
getCalendars(0),
123+
getCollations(0),
124+
getHourCycles(0),
125+
getNumberingSystems(0),
126+
getTimeZones(0),
127+
getTextInfo(0),
128+
getWeekInfo(0);
129129

130130
private final int length;
131131

@@ -140,12 +140,12 @@ public int getLength() {
140140

141141
@Override
142142
public boolean isGetter() {
143-
return baseName.ordinal() <= ordinal();
143+
return baseName.ordinal() <= ordinal() && ordinal() <= region.ordinal();
144144
}
145145

146146
@Override
147147
public int getECMAScriptVersion() {
148-
if (calendars.ordinal() <= ordinal()) {
148+
if (getCalendars.ordinal() <= ordinal()) {
149149
return JSConfig.StagingECMAScriptVersion;
150150
}
151151
return BuiltinEnum.super.getECMAScriptVersion();
@@ -181,20 +181,20 @@ protected Object createNode(JSContext context, JSBuiltin builtin, boolean constr
181181
return JSLocaleScriptAccessorNodeGen.create(context, builtin, args().withThis().createArgumentNodes(context));
182182
case region:
183183
return JSLocaleRegionAccessorNodeGen.create(context, builtin, args().withThis().createArgumentNodes(context));
184-
case calendars:
185-
return JSLocaleCalendarsAccessorNodeGen.create(context, builtin, args().withThis().createArgumentNodes(context));
186-
case collations:
187-
return JSLocaleCollationsAccessorNodeGen.create(context, builtin, args().withThis().createArgumentNodes(context));
188-
case hourCycles:
189-
return JSLocaleHourCyclesAccessorNodeGen.create(context, builtin, args().withThis().createArgumentNodes(context));
190-
case numberingSystems:
191-
return JSLocaleNumberingSystemsAccessorNodeGen.create(context, builtin, args().withThis().createArgumentNodes(context));
192-
case timeZones:
193-
return JSLocaleTimeZonesAccessorNodeGen.create(context, builtin, args().withThis().createArgumentNodes(context));
194-
case textInfo:
195-
return JSLocaleTextInfoAccessorNodeGen.create(context, builtin, args().withThis().createArgumentNodes(context));
196-
case weekInfo:
197-
return JSLocaleWeekInfoAccessorNodeGen.create(context, builtin, args().withThis().createArgumentNodes(context));
184+
case getCalendars:
185+
return JSLocaleGetCalendarsNodeGen.create(context, builtin, args().withThis().createArgumentNodes(context));
186+
case getCollations:
187+
return JSLocaleGetCollationsNodeGen.create(context, builtin, args().withThis().createArgumentNodes(context));
188+
case getHourCycles:
189+
return JSLocaleGetHourCyclesNodeGen.create(context, builtin, args().withThis().createArgumentNodes(context));
190+
case getNumberingSystems:
191+
return JSLocaleGetNumberingSystemsNodeGen.create(context, builtin, args().withThis().createArgumentNodes(context));
192+
case getTimeZones:
193+
return JSLocaleGetTimeZonesNodeGen.create(context, builtin, args().withThis().createArgumentNodes(context));
194+
case getTextInfo:
195+
return JSLocaleGetTextInfoNodeGen.create(context, builtin, args().withThis().createArgumentNodes(context));
196+
case getWeekInfo:
197+
return JSLocaleGetWeekInfoNodeGen.create(context, builtin, args().withThis().createArgumentNodes(context));
198198
}
199199
return null;
200200
}
@@ -435,9 +435,9 @@ public Object doOther(@SuppressWarnings("unused") Object bummer) {
435435

436436
}
437437

438-
public abstract static class JSLocaleCalendarsAccessor extends JSBuiltinNode {
438+
public abstract static class JSLocaleGetCalendarsNode extends JSBuiltinNode {
439439

440-
public JSLocaleCalendarsAccessor(JSContext context, JSBuiltin builtin) {
440+
public JSLocaleGetCalendarsNode(JSContext context, JSBuiltin builtin) {
441441
super(context, builtin);
442442
}
443443

@@ -462,9 +462,9 @@ public Object doOther(@SuppressWarnings("unused") Object bummer) {
462462

463463
}
464464

465-
public abstract static class JSLocaleCollationsAccessor extends JSBuiltinNode {
465+
public abstract static class JSLocaleGetCollationsNode extends JSBuiltinNode {
466466

467-
public JSLocaleCollationsAccessor(JSContext context, JSBuiltin builtin) {
467+
public JSLocaleGetCollationsNode(JSContext context, JSBuiltin builtin) {
468468
super(context, builtin);
469469
}
470470

@@ -489,9 +489,9 @@ public Object doOther(@SuppressWarnings("unused") Object bummer) {
489489

490490
}
491491

492-
public abstract static class JSLocaleHourCyclesAccessor extends JSBuiltinNode {
492+
public abstract static class JSLocaleGetHourCyclesNode extends JSBuiltinNode {
493493

494-
public JSLocaleHourCyclesAccessor(JSContext context, JSBuiltin builtin) {
494+
public JSLocaleGetHourCyclesNode(JSContext context, JSBuiltin builtin) {
495495
super(context, builtin);
496496
}
497497

@@ -514,9 +514,9 @@ public Object doOther(@SuppressWarnings("unused") Object bummer) {
514514

515515
}
516516

517-
public abstract static class JSLocaleNumberingSystemsAccessor extends JSBuiltinNode {
517+
public abstract static class JSLocaleGetNumberingSystemsNode extends JSBuiltinNode {
518518

519-
public JSLocaleNumberingSystemsAccessor(JSContext context, JSBuiltin builtin) {
519+
public JSLocaleGetNumberingSystemsNode(JSContext context, JSBuiltin builtin) {
520520
super(context, builtin);
521521
}
522522

@@ -538,9 +538,9 @@ public Object doOther(@SuppressWarnings("unused") Object bummer) {
538538

539539
}
540540

541-
public abstract static class JSLocaleTimeZonesAccessor extends JSBuiltinNode {
541+
public abstract static class JSLocaleGetTimeZonesNode extends JSBuiltinNode {
542542

543-
public JSLocaleTimeZonesAccessor(JSContext context, JSBuiltin builtin) {
543+
public JSLocaleGetTimeZonesNode(JSContext context, JSBuiltin builtin) {
544544
super(context, builtin);
545545
}
546546

@@ -569,10 +569,10 @@ public Object doOther(@SuppressWarnings("unused") Object bummer) {
569569

570570
}
571571

572-
public abstract static class JSLocaleTextInfoAccessor extends JSBuiltinNode {
572+
public abstract static class JSLocaleGetTextInfoNode extends JSBuiltinNode {
573573
@Child CreateDataPropertyNode createDirectionNode = CreateDataPropertyNode.create(getContext(), IntlUtil.KEY_DIRECTION);
574574

575-
public JSLocaleTextInfoAccessor(JSContext context, JSBuiltin builtin) {
575+
public JSLocaleGetTextInfoNode(JSContext context, JSBuiltin builtin) {
576576
super(context, builtin);
577577
}
578578

@@ -591,18 +591,17 @@ public Object doOther(@SuppressWarnings("unused") Object bummer) {
591591
@TruffleBoundary
592592
private static TruffleString direction(JSLocaleObject localeObject) {
593593
ULocale locale = localeObject.getInternalState().getULocale();
594-
String orientation = locale.getCharacterOrientation();
595-
return "right-to-left".equals(orientation) ? IntlUtil.KEY_RTL : IntlUtil.KEY_LTR;
594+
return locale.isRightToLeft() ? IntlUtil.KEY_RTL : IntlUtil.KEY_LTR;
596595
}
597596

598597
}
599598

600-
public abstract static class JSLocaleWeekInfoAccessor extends JSBuiltinNode {
599+
public abstract static class JSLocaleGetWeekInfoNode extends JSBuiltinNode {
601600
@Child CreateDataPropertyNode createFirstDayNode = CreateDataPropertyNode.create(getContext(), IntlUtil.KEY_FIRST_DAY);
602601
@Child CreateDataPropertyNode createWeekendNode = CreateDataPropertyNode.create(getContext(), IntlUtil.KEY_WEEKEND);
603602
@Child CreateDataPropertyNode createMinimalDaysNode = CreateDataPropertyNode.create(getContext(), IntlUtil.KEY_MINIMAL_DAYS);
604603

605-
public JSLocaleWeekInfoAccessor(JSContext context, JSBuiltin builtin) {
604+
public JSLocaleGetWeekInfoNode(JSContext context, JSBuiltin builtin) {
606605
super(context, builtin);
607606
}
608607

graal-js/src/com.oracle.truffle.js/src/com/oracle/truffle/js/runtime/util/IntlUtil.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1003,14 +1003,14 @@ public static String[] availableCollations(ULocale locale, boolean commonOnly) {
10031003
collations = trimmed;
10041004
}
10051005

1006+
Arrays.sort(collations);
1007+
10061008
return collations;
10071009
}
10081010

10091011
@TruffleBoundary
10101012
public static String[] availableCollations() {
1011-
String[] collations = availableCollations(null, false);
1012-
Arrays.sort(collations);
1013-
return collations;
1013+
return availableCollations(null, false);
10141014
}
10151015

10161016
@TruffleBoundary

graal-js/test/test262.json

Lines changed: 0 additions & 136 deletions
Original file line numberDiff line numberDiff line change
@@ -10384,142 +10384,6 @@
1038410384
"filePath" : "intl402/Locale/constructor-non-iana-canon.js",
1038510385
"status" : "FAIL",
1038610386
"comment" : "new failures 2013-06-28"
10387-
}, {
10388-
"filePath" : "intl402/Locale/prototype/getCalendars/branding.js",
10389-
"status" : "FAIL",
10390-
"comment" : "new failures 2023-10-09"
10391-
}, {
10392-
"filePath" : "intl402/Locale/prototype/getCalendars/name.js",
10393-
"status" : "FAIL",
10394-
"comment" : "new failures 2023-10-09"
10395-
}, {
10396-
"filePath" : "intl402/Locale/prototype/getCalendars/output-array.js",
10397-
"status" : "FAIL",
10398-
"comment" : "new failures 2023-10-09"
10399-
}, {
10400-
"filePath" : "intl402/Locale/prototype/getCalendars/prop-desc.js",
10401-
"status" : "FAIL",
10402-
"comment" : "new failures 2023-10-09"
10403-
}, {
10404-
"filePath" : "intl402/Locale/prototype/getCollations/branding.js",
10405-
"status" : "FAIL",
10406-
"comment" : "new failures 2023-10-09"
10407-
}, {
10408-
"filePath" : "intl402/Locale/prototype/getCollations/name.js",
10409-
"status" : "FAIL",
10410-
"comment" : "new failures 2023-10-09"
10411-
}, {
10412-
"filePath" : "intl402/Locale/prototype/getCollations/output-array-values.js",
10413-
"status" : "FAIL",
10414-
"comment" : "new failures 2023-10-09"
10415-
}, {
10416-
"filePath" : "intl402/Locale/prototype/getCollations/output-array.js",
10417-
"status" : "FAIL",
10418-
"comment" : "new failures 2023-10-09"
10419-
}, {
10420-
"filePath" : "intl402/Locale/prototype/getCollations/prop-desc.js",
10421-
"status" : "FAIL",
10422-
"comment" : "new failures 2023-10-09"
10423-
}, {
10424-
"filePath" : "intl402/Locale/prototype/getHourCycles/branding.js",
10425-
"status" : "FAIL",
10426-
"comment" : "new failures 2023-10-09"
10427-
}, {
10428-
"filePath" : "intl402/Locale/prototype/getHourCycles/name.js",
10429-
"status" : "FAIL",
10430-
"comment" : "new failures 2023-10-09"
10431-
}, {
10432-
"filePath" : "intl402/Locale/prototype/getHourCycles/output-array-values.js",
10433-
"status" : "FAIL",
10434-
"comment" : "new failures 2023-10-09"
10435-
}, {
10436-
"filePath" : "intl402/Locale/prototype/getHourCycles/output-array.js",
10437-
"status" : "FAIL",
10438-
"comment" : "new failures 2023-10-09"
10439-
}, {
10440-
"filePath" : "intl402/Locale/prototype/getHourCycles/prop-desc.js",
10441-
"status" : "FAIL",
10442-
"comment" : "new failures 2023-10-09"
10443-
}, {
10444-
"filePath" : "intl402/Locale/prototype/getNumberingSystems/branding.js",
10445-
"status" : "FAIL",
10446-
"comment" : "new failures 2023-10-09"
10447-
}, {
10448-
"filePath" : "intl402/Locale/prototype/getNumberingSystems/name.js",
10449-
"status" : "FAIL",
10450-
"comment" : "new failures 2023-10-09"
10451-
}, {
10452-
"filePath" : "intl402/Locale/prototype/getNumberingSystems/output-array.js",
10453-
"status" : "FAIL",
10454-
"comment" : "new failures 2023-10-09"
10455-
}, {
10456-
"filePath" : "intl402/Locale/prototype/getNumberingSystems/prop-desc.js",
10457-
"status" : "FAIL",
10458-
"comment" : "new failures 2023-10-09"
10459-
}, {
10460-
"filePath" : "intl402/Locale/prototype/getTextInfo/branding.js",
10461-
"status" : "FAIL",
10462-
"comment" : "new failures 2023-10-09"
10463-
}, {
10464-
"filePath" : "intl402/Locale/prototype/getTextInfo/name.js",
10465-
"status" : "FAIL",
10466-
"comment" : "new failures 2023-10-09"
10467-
}, {
10468-
"filePath" : "intl402/Locale/prototype/getTextInfo/output-object-keys.js",
10469-
"status" : "FAIL",
10470-
"comment" : "new failures 2023-10-09"
10471-
}, {
10472-
"filePath" : "intl402/Locale/prototype/getTextInfo/output-object.js",
10473-
"status" : "FAIL",
10474-
"comment" : "new failures 2023-10-09"
10475-
}, {
10476-
"filePath" : "intl402/Locale/prototype/getTextInfo/prop-desc.js",
10477-
"status" : "FAIL",
10478-
"comment" : "new failures 2023-10-09"
10479-
}, {
10480-
"filePath" : "intl402/Locale/prototype/getTimeZones/branding.js",
10481-
"status" : "FAIL",
10482-
"comment" : "new failures 2023-10-09"
10483-
}, {
10484-
"filePath" : "intl402/Locale/prototype/getTimeZones/name.js",
10485-
"status" : "FAIL",
10486-
"comment" : "new failures 2023-10-09"
10487-
}, {
10488-
"filePath" : "intl402/Locale/prototype/getTimeZones/output-array-sorted.js",
10489-
"status" : "FAIL",
10490-
"comment" : "new failures 2023-10-09"
10491-
}, {
10492-
"filePath" : "intl402/Locale/prototype/getTimeZones/output-array-undefined.js",
10493-
"status" : "FAIL",
10494-
"comment" : "new failures 2023-10-09"
10495-
}, {
10496-
"filePath" : "intl402/Locale/prototype/getTimeZones/output-array.js",
10497-
"status" : "FAIL",
10498-
"comment" : "new failures 2023-10-09"
10499-
}, {
10500-
"filePath" : "intl402/Locale/prototype/getTimeZones/prop-desc.js",
10501-
"status" : "FAIL",
10502-
"comment" : "new failures 2023-10-09"
10503-
}, {
10504-
"filePath" : "intl402/Locale/prototype/getWeekInfo/branding.js",
10505-
"status" : "FAIL",
10506-
"comment" : "new failures 2023-10-09"
10507-
}, {
10508-
"filePath" : "intl402/Locale/prototype/getWeekInfo/name.js",
10509-
"status" : "FAIL",
10510-
"comment" : "new failures 2023-10-09"
10511-
}, {
10512-
"filePath" : "intl402/Locale/prototype/getWeekInfo/output-object-keys.js",
10513-
"status" : "FAIL",
10514-
"comment" : "new failures 2023-10-09"
10515-
}, {
10516-
"filePath" : "intl402/Locale/prototype/getWeekInfo/output-object.js",
10517-
"status" : "FAIL",
10518-
"comment" : "new failures 2023-10-09"
10519-
}, {
10520-
"filePath" : "intl402/Locale/prototype/getWeekInfo/prop-desc.js",
10521-
"status" : "FAIL",
10522-
"comment" : "new failures 2023-10-09"
1052310387
}, {
1052410388
"filePath" : "intl402/Locale/prototype/minimize/removing-likely-subtags-first-adds-likely-subtags.js",
1052510389
"status" : "FAIL",

0 commit comments

Comments
 (0)