--- parser3/src/main/execute.C 2002/08/07 13:24:30 1.245 +++ parser3/src/main/execute.C 2002/08/09 14:18:39 1.247 @@ -5,7 +5,7 @@ Author: Alexandr Petrosian (http://paf.design.ru) */ -static const char* IDENT_EXECUTE_C="$Date: 2002/08/07 13:24:30 $"; +static const char* IDENT_EXECUTE_C="$Date: 2002/08/09 14:18:39 $"; #include "pa_opcode.h" #include "pa_array.h" @@ -848,9 +848,8 @@ void Request::execute(const Array& ops) } case OP_IS: { - //_asm int 3; b=POP(); a=POP(); - value=NEW VBool(pool(), b->as_string() == a->type()); + value=NEW VBool(pool(), a->as(b->as_string().cstr())!=0); PUSH(value); break; } @@ -1007,6 +1006,10 @@ void Request::execute_method(Value& asel } local_frame.set_self(*self); root=rcontext=wcontext=&local_frame; + + // prevent non-string writes for better error reporting + if(return_string) + wcontext->write(local_frame); // execute! execute(*method.parser_code);