Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /* -*- Mode: java; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
   *
   * This Source Code Form is subject to the terms of the Mozilla Public
   * License, v. 2.0. If a copy of the MPL was not distributed with this
   * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
  
  // API class
  
  package org.mozilla.javascript;
 
 public class IdFunctionObject extends BaseFunction
 {
 
     static final long serialVersionUID = -5332312783643935019L;
 
     public IdFunctionObject(IdFunctionCall idcallObject tagint idint arity)
     {
         if (arity < 0)
             throw new IllegalArgumentException();
 
         this. = idcall;
         this. = tag;
         this. = id;
         this. = arity;
         if (arity < 0) throw new IllegalArgumentException();
     }
 
     public IdFunctionObject(IdFunctionCall idcallObject tagint id,
                             String nameint arityScriptable scope)
     {
         super(scopenull);
 
         if (arity < 0)
             throw new IllegalArgumentException();
         if (name == null)
             throw new IllegalArgumentException();
 
         this. = idcall;
         this. = tag;
         this. = id;
         this. = arity;
         this. = name;
     }
 
     public void initFunction(String nameScriptable scope)
     {
         if (name == nullthrow new IllegalArgumentException();
         if (scope == nullthrow new IllegalArgumentException();
         this. = name;
         setParentScope(scope);
     }
 
     public final boolean hasTag(Object tag)
     {
         return tag == null ? this. == null : tag.equals(this.);
     }
 
     public final int methodId()
     {
         return ;
     }
 
     public final void markAsConstructor(Scriptable prototypeProperty)
     {
          = true;
         setImmunePrototypeProperty(prototypeProperty);
     }
 
     public final void addAsProperty(Scriptable target)
     {
         ScriptableObject.defineProperty(targetthis,
                                         .);
     }
 
     public void exportAsScopeProperty()
     {
         addAsProperty(getParentScope());
     }
 
     @Override
     public Scriptable getPrototype()
     {
         // Lazy initialization of prototype: for native functions this
         // may not be called at all
         Scriptable proto = super.getPrototype();
         if (proto == null) {
             proto = getFunctionPrototype(getParentScope());
             setPrototype(proto);
         }
         return proto;
     }
 
     @Override
     public Object call(Context cxScriptable scopeScriptable thisObj,
                        Object[] args)
     {
         return .execIdCall(thiscxscopethisObjargs);
     }
 
    @Override
    public Scriptable createObject(Context cxScriptable scope)
    {
        if () {
            return null;
        }
        // Throw error if not explicitly coded to be used as constructor,
        // to satisfy ECMAScript standard (see bugzilla 202019).
        // To follow current (2003-05-01) SpiderMonkey behavior, change it to:
        // return super.createObject(cx, scope);
        throw ScriptRuntime.typeError1("msg.not.ctor");
    }
    @Override
    String decompile(int indentint flags)
    {
        StringBuffer sb = new StringBuffer();
        boolean justbody = (0 != (flags & .));
        if (!justbody) {
            sb.append("function ");
            sb.append(getFunctionName());
            sb.append("() { ");
        }
        sb.append("[native code for ");
        if ( instanceof Scriptable) {
            Scriptable sobj = (Scriptable);
            sb.append(sobj.getClassName());
            sb.append('.');
        }
        sb.append(getFunctionName());
        sb.append(", arity=");
        sb.append(getArity());
        sb.append(justbody ? "]\n" : "] }\n");
        return sb.toString();
    }
    @Override
    public int getArity()
    {
        return ;
    }
    @Override
    public int getLength() { return getArity(); }
    @Override
    public String getFunctionName()
    {
        return ( == null) ? "" : ;
    }
    public final RuntimeException unknown()
    {
        // It is program error to call id-like methods for unknown function
        return new IllegalArgumentException(
            "BAD FUNCTION ID="++" MASTER="+);
    }
    private final IdFunctionCall idcall;
    private final Object tag;
    private final int methodId;
    private int arity;
    private boolean useCallAsConstructor;
    private String functionName;
New to GrepCode? Check out our FAQ X