本文整理汇总了C#中EcmaScript.NET.Context.CompileFunction方法的典型用法代码示例。如果您正苦于以下问题:C# Context.CompileFunction方法的具体用法?C# Context.CompileFunction怎么用?C# Context.CompileFunction使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类EcmaScript.NET.Context
的用法示例。
在下文中一共展示了Context.CompileFunction方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: JsConstructor
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);
}