Skip to content

Commit 2372301

Browse files
committed
Correction of Number.isFinite/is(Safe)Integer(long).
1 parent bbaa6bd commit 2372301

File tree

1 file changed

+25
-4
lines changed

1 file changed

+25
-4
lines changed

graal-js/src/com.oracle.truffle.js/src/com/oracle/truffle/js/builtins/NumberFunctionBuiltins.java

Lines changed: 25 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (c) 2018, 2021, Oracle and/or its affiliates. All rights reserved.
2+
* Copyright (c) 2018, 2023, Oracle and/or its affiliates. All rights reserved.
33
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
44
*
55
* The Universal Permissive License (UPL), Version 1.0
@@ -134,12 +134,17 @@ protected boolean isFinite(@SuppressWarnings("unused") int arg) {
134134
return true;
135135
}
136136

137+
@Specialization
138+
protected boolean isFinite(@SuppressWarnings("unused") long arg) {
139+
return true;
140+
}
141+
137142
@Specialization
138143
protected boolean isFinite(double arg) {
139144
return Double.isFinite(arg);
140145
}
141146

142-
@Specialization(guards = "!isNumber(arg)")
147+
@Specialization(guards = {"!isNumber(arg)", "!isNumberLong(arg)"})
143148
protected boolean isFinite(@SuppressWarnings("unused") Object arg) {
144149
return false;
145150
}
@@ -157,6 +162,12 @@ protected static boolean isInteger(int arg) {
157162
return true;
158163
}
159164

165+
@SuppressWarnings("unused")
166+
@Specialization
167+
protected static boolean isInteger(long arg) {
168+
return true;
169+
}
170+
160171
@SuppressWarnings("unused")
161172
@Specialization
162173
protected static boolean isInteger(SafeInteger arg) {
@@ -169,7 +180,7 @@ protected static boolean isInteger(double arg) {
169180
}
170181

171182
@SuppressWarnings("unused")
172-
@Specialization(guards = "!isNumber(arg)")
183+
@Specialization(guards = {"!isNumber(arg)", "!isNumberLong(arg)"})
173184
protected static boolean isInteger(Object arg) {
174185
return false;
175186
}
@@ -186,6 +197,16 @@ protected boolean isSafeIntegerInt(@SuppressWarnings("unused") int arg) {
186197
return true;
187198
}
188199

200+
@Specialization
201+
protected boolean isSafeIntegerLong(long arg) {
202+
return JSRuntime.isSafeInteger(arg);
203+
}
204+
205+
@Specialization
206+
protected boolean isSafeIntegerSafeInteger(@SuppressWarnings("unused") SafeInteger arg) {
207+
return true;
208+
}
209+
189210
@Specialization
190211
protected boolean isSafeIntegerDouble(double arg) {
191212
if (!JSRuntime.isIntegralNumber(arg)) {
@@ -195,7 +216,7 @@ protected boolean isSafeIntegerDouble(double arg) {
195216
return JSRuntime.MIN_SAFE_INTEGER <= l && l <= JSRuntime.MAX_SAFE_INTEGER;
196217
}
197218

198-
@Specialization(guards = "!isNumber(arg)")
219+
@Specialization(guards = {"!isNumber(arg)", "!isNumberLong(arg)"})
199220
protected boolean isSafeIntegerNotANumber(@SuppressWarnings("unused") Object arg) {
200221
return false;
201222
}

0 commit comments

Comments
 (0)