예제 #1
0
 internal override void CompileBy(FunctionCompiler compiler, bool isLastOperator)
 {
     Operand.CompileBy(compiler, false);
     compiler.Emitter.Emit(OpCode.Pop);
     if (!isLastOperator)
     {
         compiler.Emitter.Emit(OpCode.LdUndefined);
     }
 }
예제 #2
0
 internal override void CompileBy(FunctionCompiler compiler, bool isLastOperator)
 {
     Operand.CompileBy(compiler, false);
     if (isLastOperator)
     {
         compiler.Emitter.Emit(OpCode.Pop);
     }
     else
     {
         if (Operand.CanBeObject)
         {
             compiler.Emitter.Emit(OpCode.CastToPrimitive);
         }
         compiler.Emitter.Emit(OpCode.Pos);
     }
 }
예제 #3
0
 internal override void CompileBy(FunctionCompiler compiler, bool isLastOperator)
 {
     Operand.CompileBy(compiler, false);
     compiler.Emitter.Emit(isLastOperator ? OpCode.Pop : OpCode.TypeOf);
 }
예제 #4
0
 internal override void CompileBy(FunctionCompiler compiler, bool isLastOperator)
 {
     Operand.CompileBy(compiler, isLastOperator);
 }