/**
  * Sets the index property.
  *
  * @param index the index
  * @param start the scriptable object that was originally invoked for this property
  * @param newValue the new value
  */
 @Override
 public void put(final int index, final Scriptable start, final Object newValue) {
   if (optionsArray_ == null) {
     initialize();
   }
   optionsArray_.put(index, start, newValue);
 }
 /**
  * Returns the specified indexed property.
  *
  * @param index the index of the property
  * @param start the scriptable object that was originally queried for this property
  * @return the property
  */
 @Override
 public Object get(final int index, final Scriptable start) {
   if (optionsArray_ == null) {
     initialize();
   }
   return optionsArray_.get(index, start);
 }
 /** Initialize the object. */
 public void initialize() {
   final HtmlSelect htmlSelect = getHtmlSelect();
   htmlSelect.setScriptObject(this);
   if (optionsArray_ == null) {
     optionsArray_ = new HTMLOptionsCollection(this);
     optionsArray_.initialize(htmlSelect);
   }
 }
 /**
  * Removes options by reducing the "length" property.
  *
  * @param newLength the new length property value
  */
 public void jsxSet_length(final int newLength) {
   if (optionsArray_ == null) {
     initialize();
   }
   optionsArray_.jsxSet_length(newLength);
 }
 /**
  * Returns the value of the "length" property.
  *
  * @return the length property
  */
 public int jsxGet_length() {
   if (optionsArray_ == null) {
     initialize();
   }
   return optionsArray_.jsxGet_length();
 }