mirror of
https://github.com/honeymoose/OpenSearch.git
synced 2025-02-23 05:15:04 +00:00
fix the primitive case of instanceof
This commit is contained in:
parent
001a060c84
commit
e6819648cc
@ -79,7 +79,7 @@ public class EInstanceof extends AExpression {
|
|||||||
// discard its result
|
// discard its result
|
||||||
writer.writePop(expression.actual.type.getSize());
|
writer.writePop(expression.actual.type.getSize());
|
||||||
// push our result: its a primitive so it cannot be null.
|
// push our result: its a primitive so it cannot be null.
|
||||||
writer.push(resolvedType == Object.class || resolvedType == expressionType);
|
writer.push(resolvedType.isAssignableFrom(expressionType));
|
||||||
} else {
|
} else {
|
||||||
// ordinary instanceof
|
// ordinary instanceof
|
||||||
expression.write(writer, globals);
|
expression.write(writer, globals);
|
||||||
|
@ -442,6 +442,10 @@ public class ComparisonTests extends ScriptTestCase {
|
|||||||
|
|
||||||
public void testInstanceOf() {
|
public void testInstanceOf() {
|
||||||
assertEquals(true, exec("int x = 5; return x instanceof int"));
|
assertEquals(true, exec("int x = 5; return x instanceof int"));
|
||||||
|
assertEquals(true, exec("int x = 5; return x instanceof Number"));
|
||||||
|
assertEquals(true, exec("int x = 5; return x instanceof Integer"));
|
||||||
|
assertEquals(true, exec("int x = 5; return x instanceof def"));
|
||||||
|
assertEquals(true, exec("int x = 5; return x instanceof Object"));
|
||||||
assertEquals(true, exec("def x = 5; return x instanceof int"));
|
assertEquals(true, exec("def x = 5; return x instanceof int"));
|
||||||
assertEquals(true, exec("def x = 5; return x instanceof def"));
|
assertEquals(true, exec("def x = 5; return x instanceof def"));
|
||||||
assertEquals(true, exec("def x = 5; return x instanceof Object"));
|
assertEquals(true, exec("def x = 5; return x instanceof Object"));
|
||||||
|
Loading…
x
Reference in New Issue
Block a user