当前位置: 首页>>代码示例>>C#>>正文


C# VsaEngine.ScriptObjectStackTop方法代码示例

本文整理汇总了C#中Microsoft.JScript.Vsa.VsaEngine.ScriptObjectStackTop方法的典型用法代码示例。如果您正苦于以下问题:C# VsaEngine.ScriptObjectStackTop方法的具体用法?C# VsaEngine.ScriptObjectStackTop怎么用?C# VsaEngine.ScriptObjectStackTop使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Microsoft.JScript.Vsa.VsaEngine的用法示例。


在下文中一共展示了VsaEngine.ScriptObjectStackTop方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: Construct

 internal ScriptFunction Construct(object[] args, VsaEngine engine)
 {
     ScriptFunction function;
     StringBuilder builder = new StringBuilder("function anonymous(");
     int index = 0;
     int num2 = args.Length - 2;
     while (index < num2)
     {
         builder.Append(Microsoft.JScript.Convert.ToString(args[index]));
         builder.Append(", ");
         index++;
     }
     if (args.Length > 1)
     {
         builder.Append(Microsoft.JScript.Convert.ToString(args[args.Length - 2]));
     }
     builder.Append(") {\n");
     if (args.Length > 0)
     {
         builder.Append(Microsoft.JScript.Convert.ToString(args[args.Length - 1]));
     }
     builder.Append("\n}");
     Context context = new Context(new DocumentContext("anonymous", engine), builder.ToString());
     JSParser parser = new JSParser(context);
     engine.PushScriptObject(((IActivationObject) engine.ScriptObjectStackTop()).GetGlobalScope());
     try
     {
         function = (ScriptFunction) parser.ParseFunctionExpression().PartiallyEvaluate().Evaluate();
     }
     finally
     {
         engine.PopScriptObject();
     }
     return function;
 }
开发者ID:pritesh-mandowara-sp,项目名称:DecompliedDotNetLibraries,代码行数:35,代码来源:FunctionConstructor.cs

示例2: JScriptPackage

 public static void JScriptPackage(string rootName, VsaEngine engine)
 {
     GlobalScope globalScope = ((IActivationObject) engine.ScriptObjectStackTop()).GetGlobalScope();
     if (globalScope.GetLocalField(rootName) == null)
     {
         FieldInfo info = globalScope.AddNewField(rootName, Namespace.GetNamespace(rootName, engine), FieldAttributes.Literal | FieldAttributes.Public);
     }
 }
开发者ID:pritesh-mandowara-sp,项目名称:DecompliedDotNetLibraries,代码行数:8,代码来源:Package.cs

示例3: JScriptImport

 public static void JScriptImport(String name, VsaEngine engine){
   int dotPos = name.IndexOf('.');
   String rootName = dotPos > 0 ? name.Substring(0, dotPos) : name;
   GlobalScope scope = ((IActivationObject)engine.ScriptObjectStackTop()).GetGlobalScope();
   FieldInfo field = scope.GetLocalField(rootName);
   if (field == null)
     field = scope.AddNewField(rootName, Namespace.GetNamespace(rootName, engine), FieldAttributes.Public|FieldAttributes.Literal);
   engine.SetEnclosingContext(new WrappedNamespace(name, engine, false));
 }
开发者ID:gbarnett,项目名称:shared-source-cli-2.0,代码行数:9,代码来源:import.cs

示例4: JScriptImport

 public static void JScriptImport(string name, VsaEngine engine)
 {
     int index = name.IndexOf('.');
     string str = (index > 0) ? name.Substring(0, index) : name;
     GlobalScope globalScope = ((IActivationObject) engine.ScriptObjectStackTop()).GetGlobalScope();
     if (globalScope.GetLocalField(str) == null)
     {
         FieldInfo info = globalScope.AddNewField(str, Namespace.GetNamespace(str, engine), FieldAttributes.Literal | FieldAttributes.Public);
     }
     engine.SetEnclosingContext(new WrappedNamespace(name, engine, false));
 }
开发者ID:pritesh-mandowara-sp,项目名称:DecompliedDotNetLibraries,代码行数:11,代码来源:Import.cs

示例5: JScriptFunctionExpression

		public static FunctionObject JScriptFunctionExpression (RuntimeTypeHandle handle, string name,
									string methodName, string [] formalParams,
									JSLocalField [] fields, bool mustSaveStackLocals, 
									bool hasArgumentsObject, string text,
									VsaEngine engine)
		{
			MethodInfo method = engine.ScriptObjectStackTop ().GetType ().GetMethod (methodName);
			FunctionObject fun = new FunctionObject (method);
			fun.source = text;
			fun.vsa_engine = engine;
			return fun;
		}
开发者ID:nickchal,项目名称:pash,代码行数:12,代码来源:FunctionExpression.cs

示例6: GetClosureInstance

 public static object GetClosureInstance(VsaEngine engine)
 {
     if (engine != null)
     {
         StackFrame frame = engine.ScriptObjectStackTop() as StackFrame;
         if (frame != null)
         {
             return frame.closureInstance;
         }
     }
     return null;
 }
开发者ID:pritesh-mandowara-sp,项目名称:DecompliedDotNetLibraries,代码行数:12,代码来源:DebuggingHelper.cs

示例7: JScriptFunctionDeclaration

		public static Closure JScriptFunctionDeclaration (RuntimeTypeHandle handle, string name, 
								  string methodName, string [] formalParameters,
								  JSLocalField [] fields, bool mustSaveStackLocals,
								  bool hasArgumentsObjects, string text, 
								  Object declaringObject, VsaEngine engine)
		{
			FunctionObject f = new FunctionObject (name, null, null, null, null);
			f.source = text;
			MethodInfo method = engine.ScriptObjectStackTop ().GetType ().GetMethod (methodName);
			f.method = method;
			f.vsa_engine = engine;
			return new Closure (f);
		}
开发者ID:nickchal,项目名称:pash,代码行数:13,代码来源:FunctionDeclaration.cs

示例8: JScriptWith

	// Push into a "with" scope and return the converted object.
	public static Object JScriptWith(Object withOb, VsaEngine engine)
			{
				withOb = Convert.ToObject(withOb, engine);
				if(withOb != null)
				{
					engine.PushScriptObjectChecked
						(new WithScope(engine.ScriptObjectStackTop(), withOb));
					return withOb;
				}
				else
				{
					throw new JScriptException(JSError.ObjectExpected);
				}
			}
开发者ID:jjenki11,项目名称:blaze-chem-rendering,代码行数:15,代码来源:With.cs

示例9: JScriptEvaluate

 public static Object JScriptEvaluate(Object source, VsaEngine engine){
   if (Convert.GetTypeCode(source) != TypeCode.String)
     return source;
   if (engine.doFast)
     engine.PushScriptObject(new BlockScope(engine.ScriptObjectStackTop()));
   try{
     Context context = new Context(new DocumentContext("eval code", engine), ((IConvertible)source).ToString());
     JSParser p = new JSParser(context);
     return ((Completion)p.ParseEvalBody().PartiallyEvaluate().Evaluate()).value;
   }finally{
     if (engine.doFast)
       engine.PopScriptObject();
   }
 }
开发者ID:ArildF,项目名称:masters,代码行数:14,代码来源:eval.cs

示例10: Construct

 internal ScriptFunction Construct(Object[] args, VsaEngine engine){
   StringBuilder func_string = new StringBuilder("function anonymous(");
   for (int i = 0, n = args.Length-2; i < n; i++){
     func_string.Append(Convert.ToString(args[i]));
     func_string.Append(", ");
   }
   if (args.Length > 1)
     func_string.Append(Convert.ToString(args[args.Length-2]));
   func_string.Append(") {\n");
   if (args.Length > 0)
     func_string.Append(Convert.ToString(args[args.Length-1]));
   func_string.Append("\n}");
   Context context = new Context(new DocumentContext("anonymous", engine), func_string.ToString());
   JSParser p = new JSParser(context);
   engine.PushScriptObject(((IActivationObject)engine.ScriptObjectStackTop()).GetGlobalScope());
   try{
     return (ScriptFunction)p.ParseFunctionExpression().PartiallyEvaluate().Evaluate();
   }finally{
     engine.PopScriptObject();
   }
 }
开发者ID:gbarnett,项目名称:shared-source-cli-2.0,代码行数:21,代码来源:functionconstructor.cs

示例11: DoEvaluate

 private static object DoEvaluate(object source, VsaEngine engine, bool isUnsafe)
 {
     object obj2;
     if (engine.doFast)
     {
         engine.PushScriptObject(new BlockScope(engine.ScriptObjectStackTop()));
     }
     try
     {
         Context context = new Context(new DocumentContext("eval code", engine), ((IConvertible) source).ToString());
         JSParser parser = new JSParser(context);
         obj2 = ((Completion) parser.ParseEvalBody().PartiallyEvaluate().Evaluate()).value;
     }
     finally
     {
         if (engine.doFast)
         {
             engine.PopScriptObject();
         }
     }
     return obj2;
 }
开发者ID:pritesh-mandowara-sp,项目名称:DecompliedDotNetLibraries,代码行数:22,代码来源:Eval.cs

示例12: PushHandlerScope

 public static void PushHandlerScope(VsaEngine engine, String id, int scopeId){
   engine.PushScriptObject(new BlockScope(engine.ScriptObjectStackTop(), id, scopeId));
 }
开发者ID:ArildF,项目名称:masters,代码行数:3,代码来源:try.cs

示例13: Eval

	public override Object Eval(VsaEngine engine)
#line 322 "./Nodes/JNode.tc"
	{
		// Get the scope to declare the function within.
		ScriptObject scope = engine.ScriptObjectStackTop();
	
		// Create a function object to wrap up this function.
		FunctionObject obj = new FunctionObject
			(EngineInstance.GetEngineInstance(engine).GetFunctionPrototype(),
			 this, scope);
		
		// javascript allows for anonymous functions
		if(name != null)
		{
			// Add the function to the scope.
			if(scope is IVariableAccess)
			{
				((IVariableAccess)scope).SetVariable(name, obj);
			}
			else
			{
				scope.Put(name, obj);
			}
		}
	
		// Return compiled function object
		return obj;
	}
开发者ID:jjenki11,项目名称:blaze-chem-rendering,代码行数:28,代码来源:JNode.cs

示例14: JScriptEvaluate

	// Evaluate a JScript expression in the context of a specific engine.
	public static Object JScriptEvaluate(Object source, VsaEngine engine)
			{
				Object value = null;

				// Bail out if we weren't supplied a string.
				if(!(source is String))
				{
					return source;
				}

				// Parse the "eval" statement.
				Context context = new Context((String)source);
				context.codebase = new CodeBase("eval code", null);
				JSParser parser = new JSParser(context);
				JNode node = parser.ParseSource(true);

				// Push a scope for use during evaluation.
				engine.PushScriptObject
					(new BlockScope(engine.ScriptObjectStackTop(),
									new JSObject (null, engine)));

				// Evaluate the statement.
				try
				{
					value = node.Eval(engine);
					if(value == Empty.Value)
					{
						value = null;
					}
				}
				catch(JScriptException e)
				{
					// Attach the context information to low-level exceptions.
					if(e.context == null)
					{
						e.context = context;
					}
					throw;
				}
				catch(BreakJumpOut brk)
				{
					// "break" used incorrectly.
					throw new JScriptException(JSError.BadBreak, brk.context);
				}
				catch(ContinueJumpOut cont)
				{
					// "continue" used incorrectly.
					throw new JScriptException(JSError.BadContinue,
											   cont.context);
				}
				catch(ReturnJumpOut ret)
				{
					// "return" used incorrectly.
					throw new JScriptException(JSError.BadReturn, ret.context);
				}
				finally
				{
					// Pop the script scope.
					engine.PopScriptObject();
				}

				// Return the result of the evaluation to the caller.
				return value;
			}
开发者ID:jjenki11,项目名称:blaze-chem-rendering,代码行数:65,代码来源:Eval.cs

示例15: GetAndPrepare

	public override Object GetAndPrepare(VsaEngine engine, ref Object data1, ref Object data2)
#line 130 "./Nodes/JExpr.tc"
	{
		IVariableAccess scope = (engine.ScriptObjectStackTop() as IVariableAccess);
		while(scope != null)
		{
			if(scope.HasVariable(name))
			{
				data1 = scope;
				return scope.GetVariable(name);
			}
			scope = scope.GetParentScope();
		}
		scope = (IVariableAccess)(engine.GetMainScope());
		data1 = scope;
		return scope.GetVariable(name);
	}
开发者ID:jjenki11,项目名称:blaze-chem-rendering,代码行数:17,代码来源:JNode.cs


注:本文中的Microsoft.JScript.Vsa.VsaEngine.ScriptObjectStackTop方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。