Skip to content

Commit 8095f92

Browse files
committed
convert Temporal.PlainDate asDate(), and test
1 parent 33658a8 commit 8095f92

File tree

3 files changed

+33
-4
lines changed

3 files changed

+33
-4
lines changed

graal-js/src/com.oracle.truffle.js.test/src/com/oracle/truffle/js/test/interop/TemporalInteropToJavaTest.java

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -111,10 +111,18 @@ public void testInstant() {
111111
// public void testDuration() {
112112
// }
113113

114-
// TODO
115-
// @Test
116-
// public void testPlainDate() {
117-
// }
114+
@Test
115+
public void testPlainDate() {
116+
try (Context ctx = getJSContext()) {
117+
Value val = ctx.eval(ID, "new Temporal.PlainDate(1982, 11, 26);");
118+
LocalDate ld = val.asDate();
119+
Assert.assertEquals(1982, ld.getYear());
120+
Assert.assertEquals(Month.NOVEMBER, ld.getMonth());
121+
Assert.assertEquals(26, ld.getDayOfMonth());
122+
123+
Assert.assertFalse(val.isTime());
124+
Assert.assertFalse(val.isTimeZone());
125+
}}
118126

119127
@Test
120128
public void testPlainTime() {

graal-js/src/com.oracle.truffle.js/src/com/oracle/truffle/js/runtime/builtins/temporal/JSTemporalPlainDateObject.java

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,10 +40,17 @@
4040
*/
4141
package com.oracle.truffle.js.runtime.builtins.temporal;
4242

43+
import com.oracle.truffle.api.CompilerDirectives.TruffleBoundary;
44+
import com.oracle.truffle.api.interop.InteropLibrary;
45+
import com.oracle.truffle.api.library.ExportLibrary;
46+
import com.oracle.truffle.api.library.ExportMessage;
4347
import com.oracle.truffle.api.object.Shape;
4448
import com.oracle.truffle.js.runtime.objects.JSDynamicObject;
4549
import com.oracle.truffle.js.runtime.objects.JSNonProxyObject;
4650

51+
import java.time.LocalDate;
52+
53+
@ExportLibrary(InteropLibrary.class)
4754
public class JSTemporalPlainDateObject extends JSNonProxyObject implements TemporalMonth, TemporalYear, TemporalDay, TemporalCalendar {
4855

4956
private final int year;
@@ -78,4 +85,17 @@ public int getDay() {
7885
public JSDynamicObject getCalendar() {
7986
return calendar;
8087
}
88+
89+
@ExportMessage
90+
@SuppressWarnings("static-method")
91+
final boolean isDate() {
92+
return true;
93+
}
94+
95+
@ExportMessage
96+
@TruffleBoundary
97+
final LocalDate asDate() {
98+
LocalDate ld = LocalDate.of(year, month, day);
99+
return ld;
100+
}
81101
}

graal-js/src/com.oracle.truffle.js/src/com/oracle/truffle/js/runtime/builtins/temporal/JSTemporalPlainDateTimeObject.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -148,6 +148,7 @@ final boolean isDate() {
148148
}
149149

150150
@ExportMessage
151+
@TruffleBoundary
151152
final LocalDate asDate() {
152153
LocalDate ld = LocalDate.of(year, month, day);
153154
return ld;

0 commit comments

Comments
 (0)