@Override
public void run(WeaselInterpreter interpreter, WeaselThread thread, WeaselMethodExecutor method) {
StackElement se = thread.pop();
if(se.value==null){
WeaselObject object = interpreter.getObject(se.object);
if(object==null)
throw new WeaselNativeException("Null pointer");
WeaselField field = object.getWeaselClass().getField("value");
switch(primitiveID){
case WeaselPrimitive.BOOLEAN:
thread.pushValue(field.getBoolean(object));
break;
case WeaselPrimitive.CHAR:
thread.pushValue(field.getChar(object));
break;
case WeaselPrimitive.BYTE:
thread.pushValue(field.getBoolean(object));
break;
case WeaselPrimitive.SHORT:
thread.pushValue(field.getShort(object));
break;
case WeaselPrimitive.INT:
thread.pushValue(field.getInt(object));
break;
case WeaselPrimitive.LONG:
thread.pushValue(field.getLong(object));
break;
case WeaselPrimitive.DOUBLE:
thread.pushValue(field.getDouble(object));
break;
case WeaselPrimitive.FLOAT:
thread.pushValue(field.getFloat(object));
break;
}
}else{
Object object = se.value;
Class<?> c = object.getClass();
switch(primitiveID){
case WeaselPrimitive.BOOLEAN:
thread.pushValue((Boolean)object);
break;
case WeaselPrimitive.CHAR: