code: public synchronized Object get(String name, Scriptable start) {
          if (isEmpty(name)) {
              if (indexedProps.containsKey(name)) {
                  return indexedProps.get(name);
              } else {
                  return NOT_FOUND;
              }
          } else {
              synchronized (context) {
                  int scope = context.getAttributesScope(name);
                  if (scope != -1) {
                      Object value = context.getAttribute(name, scope);
                      if(value.getClass().getPackage().getName().startsWith(RHINO_JS_PACKAGE_NAME)){
                      	return value;
                      }else{
                          return Context.javaToJS(value, this);
                      }
                  } else {
                      return NOT_FOUND;
                  }
              }
          }
      }
docs: Returns the value of the named property or NOT_FOUND.
  
  If the property was created using defineProperty, the
  appropriate getter method is called.
  
  @param name the name of the property
  @param start the object in which the lookup began
  @return the value of the property (may be null), or NOT_FOUND