/** Initialize the properties on this object */
  public void initializeProperties() {
    Environment environment = this.owningEnvironment;
    int attributes = Property.DONT_DELETE | Property.DONT_ENUM;
    int fileIndex = FileContextManager.BUILT_IN_FILE_INDEX;
    int offset = Range.Empty.getStartingOffset();

    // add properties to Number
    this.putPropertyValue(
        "length",
        environment.createNumber(fileIndex, Range.Empty),
        fileIndex,
        attributes); //$NON-NLS-1$
    this.putPropertyValue(
        "MAX_VALUE",
        environment.createNumber(fileIndex, Range.Empty),
        fileIndex,
        attributes); //$NON-NLS-1$
    this.putPropertyValue(
        "MIN_VALUE",
        environment.createNumber(fileIndex, Range.Empty),
        fileIndex,
        attributes); //$NON-NLS-1$
    this.putPropertyValue(
        "NaN",
        environment.createNumber(fileIndex, Range.Empty),
        fileIndex,
        attributes); //$NON-NLS-1$
    this.putPropertyValue(
        "NEGATIVE_INFINITY",
        environment.createNumber(fileIndex, Range.Empty),
        fileIndex,
        attributes); //$NON-NLS-1$
    this.putPropertyValue(
        "POSITIVE_INFINITY",
        environment.createNumber(fileIndex, Range.Empty),
        fileIndex,
        attributes); //$NON-NLS-1$

    // add properties to Number.prototype
    IObject prototype = this.getPropertyValue("prototype", fileIndex, offset); // $NON-NLS-1$

    prototype.putPropertyValue("constructor", this, fileIndex, attributes); // $NON-NLS-1$
    prototype.putPropertyValue(
        "toString",
        environment.createFunction(fileIndex, Range.Empty),
        fileIndex,
        attributes); //$NON-NLS-1$
    prototype.putPropertyValue(
        "toLocaleString",
        environment.createFunction(fileIndex, Range.Empty),
        fileIndex,
        attributes); //$NON-NLS-1$
    prototype.putPropertyValue(
        "valueOf",
        environment.createFunction(fileIndex, Range.Empty),
        fileIndex,
        attributes); //$NON-NLS-1$
    prototype.putPropertyValue(
        "toFixed",
        environment.createFunction(fileIndex, Range.Empty),
        fileIndex,
        attributes); //$NON-NLS-1$
    prototype.putPropertyValue(
        "toExponential",
        environment.createFunction(fileIndex, Range.Empty),
        fileIndex,
        attributes); //$NON-NLS-1$
    prototype.putPropertyValue(
        "toPrecision",
        environment.createFunction(fileIndex, Range.Empty),
        fileIndex,
        attributes); //$NON-NLS-1$
  }
 /**
  * @see
  *     com.aptana.ide.editor.js.runtime.FunctionBase#invoke(com.aptana.ide.editor.js.runtime.Environment,
  *     com.aptana.ide.editor.js.runtime.IObject[], int, IRange)
  */
 public IObject invoke(
     Environment environment, IObject[] arguments, int fileIndex, IRange sourceRegion) {
   return environment.createNumber(fileIndex, sourceRegion);
 }