internal static ErrorReporter ForEval (ErrorReporter reporter) { DefaultErrorReporter r = new DefaultErrorReporter (); r.forEval = true; r.chainedReporter = reporter; return r; }
private static object JsConstructor(Context cx, IScriptable scope, object [] args) { int arglen = args.Length; System.Text.StringBuilder sourceBuf = new System.Text.StringBuilder(); sourceBuf.Append("function "); /* version != 1.2 Function constructor behavior - * print 'anonymous' as the function name if the * version (under which the function was compiled) is * less than 1.2... or if it's greater than 1.2, because * we need to be closer to ECMA. */ if (cx.Version != Context.Versions.JS1_2) { sourceBuf.Append("anonymous"); } sourceBuf.Append('('); // Append arguments as coma separated strings for (int i = 0; i < arglen - 1; i++) { if (i > 0) { sourceBuf.Append(','); } sourceBuf.Append(ScriptConvert.ToString(args [i])); } sourceBuf.Append(") {"); if (arglen != 0) { // append function body string funBody = ScriptConvert.ToString(args [arglen - 1]); sourceBuf.Append(funBody); } sourceBuf.Append('}'); string source = sourceBuf.ToString(); int [] linep = new int [1]; string filename = Context.GetSourcePositionFromStack(linep); if (filename == null) { filename = "<eval'ed string>"; linep [0] = 1; } string sourceURI = ScriptRuntime.makeUrlForGeneratedScript(false, filename, linep [0]); IScriptable global = ScriptableObject.GetTopLevelScope(scope); ErrorReporter reporter; reporter = DefaultErrorReporter.ForEval(cx.ErrorReporter); // Compile with explicit interpreter instance to force interpreter // mode. return(cx.CompileFunction(global, source, new Interpreter(), reporter, sourceURI, 1, (object)null)); }
internal static ErrorReporter ForEval(ErrorReporter reporter) { DefaultErrorReporter r = new DefaultErrorReporter(); r.forEval = true; r.chainedReporter = reporter; return(r); }