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