< prev index next >
test/script/nosecurity/JDK-8067215.js
Print this page
*** 30,40 ****
* @fork
*/
var intType = Java.type("int");
var doubleType = Java.type("double");
- var longType = Java.type("long");
var objectType = Java.type("java.lang.Object");
var Context = Java.type("jdk.nashorn.internal.runtime.Context");
var JSType = Java.type("jdk.nashorn.internal.runtime.JSType");
--- 30,39 ----
*** 56,82 ****
if (prop.hasDualFields() !== dualFields) {
throw new Error("Wrong property flags: " + prop);
}
if (prop.getType() != getExpectedType(obj[key])) {
throw new Error("Wrong property type: " + prop.getType() + " // " + getExpectedType(obj[key]));
-
}
}
}
function getExpectedType(value) {
if (!dualFields) {
return objectType.class;
}
! if (JSType.isRepresentableAsInt(value)) {
! return intType.class;
! }
! if (JSType.isRepresentableAsLong(value)) {
! return longType.class;
! }
! if (JSType.isNumber(value)) {
! return doubleType.class;
}
return objectType.class;
}
var o = {
--- 55,74 ----
if (prop.hasDualFields() !== dualFields) {
throw new Error("Wrong property flags: " + prop);
}
if (prop.getType() != getExpectedType(obj[key])) {
throw new Error("Wrong property type: " + prop.getType() + " // " + getExpectedType(obj[key]));
}
}
}
function getExpectedType(value) {
if (!dualFields) {
return objectType.class;
}
! if (typeof value === "number") {
! return JSType.isRepresentableAsInt(value) ? intType.class : doubleType.class;
}
return objectType.class;
}
var o = {
< prev index next >