示例#1
0
        // Perform a constructor call on this object.
        internal override Object Construct(VsaEngine engine, Object[] args)
        {
            String    parameters;
            String    body;
            String    defn;
            int       index;
            JSParser  parser;
            JFunction func;

            // Collect up the parameters and body.
            if (args.Length == 0)
            {
                parameters = String.Empty;
                body       = String.Empty;
            }
            else if (args.Length == 1)
            {
                parameters = String.Empty;
                body       = Convert.ToString(args[0]);
            }
            else
            {
                parameters = Convert.ToString(args[0]);
                for (index = 1; index < (args.Length - 1); ++index)
                {
                    parameters =
                        String.Concat(parameters, ",",
                                      Convert.ToString(args[index]));
                }
                body = Convert.ToString(args[args.Length - 1]);
            }

            // Build a complete function definition and parse it.
            defn   = "function (" + parameters + ") { " + body + " }";
            parser = new JSParser(new Context(defn));
            func   = parser.ParseFunctionSource();

            // Build the function object and return it.
            return(new FunctionObject
                       (EngineInstance.GetEngineInstance(engine)
                       .GetFunctionPrototype(), func,
                       engine.GetMainScope()));
        }
	// Perform a constructor call on this object.
	internal override Object Construct(VsaEngine engine, Object[] args)
			{
				String parameters;
				String body;
				String defn;
				int index;
				JSParser parser;
				JFunction func;

				// Collect up the parameters and body.
				if(args.Length == 0)
				{
					parameters = String.Empty;
					body = String.Empty;
				}
				else if(args.Length == 1)
				{
					parameters = String.Empty;
					body = Convert.ToString(args[0]);
				}
				else
				{
					parameters = Convert.ToString(args[0]);
					for(index = 1; index < (args.Length - 1); ++index)
					{
						parameters =
							String.Concat(parameters, ",",
										  Convert.ToString(args[index]));
					}
					body = Convert.ToString(args[args.Length - 1]);
				}

				// Build a complete function definition and parse it.
				defn = "function (" + parameters + ") { " + body + " }";
				parser = new JSParser(new Context(defn));
				func = parser.ParseFunctionSource();

				// Build the function object and return it.
				return new FunctionObject
					(EngineInstance.GetEngineInstance(engine)
						.GetFunctionPrototype(), func,
					 engine.GetMainScope());
			}