core/src/main/java/org/jruby/RubyObject.java
@Deprecated
    public IRubyObject specificEval(ThreadContext context, RubyModule mod, IRubyObject[] args, Block block, EvalType evalType) {
        if (block.isGiven()) {
            if (args.length > 0) throw getRuntime().newArgumentError(args.length, 0);

            return yieldUnder(context, mod, block, evalType);
        }

        if (args.length == 0) {
            throw getRuntime().newArgumentError("block not supplied");
        } else if (args.length > 3) {
            String lastFuncName = context.getFrameName();
            throw getRuntime().newArgumentError(
                "wrong number of arguments: " + lastFuncName + "(src) or " + lastFuncName + "{..}");
        }

        // We just want the TypeError if the argument doesn't convert to a String (JRUBY-386)
        RubyString evalStr;
        if (args[0] instanceof RubyString) {
            evalStr = (RubyString)args[0];
        } else {
            evalStr = args[0].convertToString();
        }

        String file;
        int line;
        if (args.length > 1) {
            file = args[1].convertToString().asJavaString();
            if (args.length > 2) {
                line = (int)(args[2].convertToInteger().getLongValue() - 1);
            } else {
                line = 0;
            }
        } else {
            file = "(eval)";
            line = 0;
        }

        return evalUnder(context, mod, evalStr, file, line, evalType);
    }
/** specific_eval
     *
     * Evaluates the block or string inside of the context of this
     * object, using the supplied arguments. If a block is given, this
     * will be yielded in the specific context of this object. If no
     * block is given then a String-like object needs to be the first
     * argument, and this string will be evaluated. Second and third
     * arguments in the args-array is optional, but can contain the
     * filename and line of the string under evaluation.
     */
specific_eval
Evaluates the block or string inside of the context of this
object, using the supplied arguments. If a block is given, this
will be yielded in the specific context of this object. If no
block is given then a String-like object needs to be the first
argument, and this string will be evaluated. Second and third
arguments in the args-array is optional, but can contain the
filename and line of the string under evaluation.
specific_eval Evaluates the block or string inside of the context of this object using the supplied arguments . If a block is given this will be yielded in the specific context of this object . If no block is given then a String - like object needs to be the first argument and this string will be evaluated . Second and third arguments in the args - array is optional but can contain the filename and line of the string under evaluation .
@Deprecated
    public IRubyObject specificEval(ThreadContext context, RubyModule mod, IRubyObject[] args, Block block, EvalType evalType) {
        if (block.isGiven()) {
            if (args.length > 0) throw getRuntime().newArgumentError(args.length, 0);
            return yieldUnder(context, mod, block, evalType);
        }
        if (args.length == 0) {
            throw getRuntime().newArgumentError("block not supplied");
        } else if (args.length > 3) {
            String lastFuncName = context.getFrameName();
            throw getRuntime().newArgumentError(
                "wrong number of arguments: " + lastFuncName + "(src) or " + lastFuncName + "{..}");
        }
        RubyString evalStr;
        if (args[0] instanceof RubyString) {
            evalStr = (RubyString)args[0];
        } else {
            evalStr = args[0].convertToString();
        }
        String file;
        int line;
        if (args.length > 1) {
            file = args[1].convertToString().asJavaString();
            if (args.length > 2) {
                line = (int)(args[2].convertToInteger().getLongValue() - 1);
            } else {
                line = 0;
            }
        } else {
            file = "(eval)";
            line = 0;
        }
        return evalUnder(context, mod, evalStr, file, line, evalType);
    }
@ Deprecated public IRubyObject specificEval ( ThreadContext context , RubyModule mod , IRubyObject [ ] args , Block block , EvalType evalType ) { if ( block . isGiven ( ) ) { if ( args . length > 0 ) throw getRuntime ( ) . newArgumentError ( args . length , 0 ) ; return yieldUnder ( context , mod , block , evalType ) ; } if ( args . length == 0 ) { throw getRuntime ( ) . newArgumentError ( "block not supplied" ) ; } else if ( args . length > 3 ) { String lastFuncName = context . getFrameName ( ) ; throw getRuntime ( ) . newArgumentError ( "wrong number of arguments: " + lastFuncName + "(src) or " + lastFuncName + "{..}" ) ; } RubyString evalStr ; if ( args [ 0 ] instanceof RubyString ) { evalStr = ( RubyString ) args [ 0 ] ; } else { evalStr = args [ 0 ] . convertToString ( ) ; } String file ; int line ; if ( args . length > 1 ) { file = args [ 1 ] . convertToString ( ) . asJavaString ( ) ; if ( args . length > 2 ) { line = ( int ) ( args [ 2 ] . convertToInteger ( ) . getLongValue ( ) - 1 ) ; } else { line = 0 ; } } else { file = "(eval)" ; line = 0 ; } return evalUnder ( context , mod , evalStr , file , line , evalType ) ; }
specific_eval
 Evaluates the block or string inside of the context of this
 object, using the supplied arguments.
specific_eval Evaluates the block or string inside of the context of this object using the supplied arguments .
// We just want the TypeError if the argument doesn't convert to a String (JRUBY-386)