JavaScriptCore:
authoradele <adele@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 22 Jun 2005 00:48:49 +0000 (00:48 +0000)
committeradele <adele@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 22 Jun 2005 00:48:49 +0000 (00:48 +0000)
        rolling out fix for http://bugzilla.opendarwin.org/show_bug.cgi?id=3293, since it caused layout test failures.
fast/forms/element-by-name
        fast/loader/loadInProgress

        * ChangeLog:
        * bindings/objc/objc_runtime.h:
        * bindings/objc/objc_runtime.mm:
        (ObjcFallbackObjectImp::hasProperty):
        * bindings/runtime_array.cpp:
        (RuntimeArrayImp::hasProperty):
        * bindings/runtime_array.h:
        * bindings/runtime_object.cpp:
        (RuntimeObjectImp::hasProperty):
        * bindings/runtime_object.h:
        * kjs/array_instance.h:
        * kjs/array_object.cpp:
        (ArrayInstanceImp::hasProperty):
        * kjs/function.cpp:
        (KJS::FunctionImp::hasProperty):
        (KJS::ActivationImp::hasProperty):
        * kjs/function.h:
        * kjs/object.cpp:
        (KJS::ObjectImp::hasProperty):
        * kjs/object.h:
        * kjs/object_object.cpp:
        (ObjectPrototypeImp::ObjectPrototypeImp):
        (ObjectProtoFuncImp::call):
        * kjs/object_object.h:
        (KJS::ObjectProtoFuncImp::):
        * kjs/string_object.cpp:
        (StringInstanceImp::hasProperty):
        * kjs/string_object.h:
        * tests/mozilla/expected.html:

WebCore:

        rolling out fix for http://bugzilla.opendarwin.org/show_bug.cgi?id=3293, since it caused layout test failures.
fast/forms/element-by-name
        fast/loader/loadInProgress

        * ChangeLog:
        * khtml/ecma/kjs_binding.h:
        * khtml/ecma/kjs_css.cpp:
        (KJS::DOMCSSStyleDeclaration::hasProperty):
        * khtml/ecma/kjs_css.h:
        * khtml/ecma/kjs_dom.cpp:
        (KJS::DOMNodeList::hasProperty):
        (KJS::DOMNamedNodeMap::hasProperty):
        * khtml/ecma/kjs_dom.h:
        * khtml/ecma/kjs_html.cpp:
        (KJS::HTMLDocument::hasProperty):
        (KJS::KJS::HTMLElement::hasProperty):
        (KJS::KJS::HTMLCollection::hasProperty):
        * khtml/ecma/kjs_html.h:
        * khtml/ecma/kjs_window.cpp:
        (KJS::Window::hasProperty):
        (KJS::Konqueror::hasProperty):
        * khtml/ecma/kjs_window.h:
        * layout-tests/fast/js/eval-var-decl-expected.txt: Removed. This test used hasOwnProperty
        * layout-tests/fast/js/eval-var-decl.html: Removed. This test used hasOwnProperty
        * layout-tests/fast/js/hasOwnProperty-expected.txt: Removed.
        * layout-tests/fast/js/hasOwnProperty.html: Removed.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@9455 268f45cc-cd09-0410-ab3c-d52691b4dbfc

32 files changed:
JavaScriptCore/ChangeLog
JavaScriptCore/bindings/objc/objc_runtime.h
JavaScriptCore/bindings/objc/objc_runtime.mm
JavaScriptCore/bindings/runtime_array.cpp
JavaScriptCore/bindings/runtime_array.h
JavaScriptCore/bindings/runtime_object.cpp
JavaScriptCore/bindings/runtime_object.h
JavaScriptCore/kjs/array_instance.h
JavaScriptCore/kjs/array_object.cpp
JavaScriptCore/kjs/function.cpp
JavaScriptCore/kjs/function.h
JavaScriptCore/kjs/object.cpp
JavaScriptCore/kjs/object.h
JavaScriptCore/kjs/object_object.cpp
JavaScriptCore/kjs/object_object.h
JavaScriptCore/kjs/string_object.cpp
JavaScriptCore/kjs/string_object.h
JavaScriptCore/tests/mozilla/expected.html
LayoutTests/fast/js/eval-var-decl-expected.txt [deleted file]
LayoutTests/fast/js/eval-var-decl.html [deleted file]
LayoutTests/fast/js/hasOwnProperty-expected.txt [deleted file]
LayoutTests/fast/js/hasOwnProperty.html [deleted file]
WebCore/ChangeLog-2005-08-23
WebCore/khtml/ecma/kjs_binding.h
WebCore/khtml/ecma/kjs_css.cpp
WebCore/khtml/ecma/kjs_css.h
WebCore/khtml/ecma/kjs_dom.cpp
WebCore/khtml/ecma/kjs_dom.h
WebCore/khtml/ecma/kjs_html.cpp
WebCore/khtml/ecma/kjs_html.h
WebCore/khtml/ecma/kjs_window.cpp
WebCore/khtml/ecma/kjs_window.h

index e2421a47f38ecf70ee47acf993c79eb1eebd3d3b..c04772d3ef1138ac6930b3c79706a99fa7d8c238 100644 (file)
@@ -1,3 +1,39 @@
+2005-06-21  Adele Peterson  <adele@apple.com>
+
+        rolling out fix for http://bugzilla.opendarwin.org/show_bug.cgi?id=3293, since it caused layout test failures.
+       fast/forms/element-by-name
+        fast/loader/loadInProgress
+
+        * ChangeLog:
+        * bindings/objc/objc_runtime.h:
+        * bindings/objc/objc_runtime.mm:
+        (ObjcFallbackObjectImp::hasProperty):
+        * bindings/runtime_array.cpp:
+        (RuntimeArrayImp::hasProperty):
+        * bindings/runtime_array.h:
+        * bindings/runtime_object.cpp:
+        (RuntimeObjectImp::hasProperty):
+        * bindings/runtime_object.h:
+        * kjs/array_instance.h:
+        * kjs/array_object.cpp:
+        (ArrayInstanceImp::hasProperty):
+        * kjs/function.cpp:
+        (KJS::FunctionImp::hasProperty):
+        (KJS::ActivationImp::hasProperty):
+        * kjs/function.h:
+        * kjs/object.cpp:
+        (KJS::ObjectImp::hasProperty):
+        * kjs/object.h:
+        * kjs/object_object.cpp:
+        (ObjectPrototypeImp::ObjectPrototypeImp):
+        (ObjectProtoFuncImp::call):
+        * kjs/object_object.h:
+        (KJS::ObjectProtoFuncImp::):
+        * kjs/string_object.cpp:
+        (StringInstanceImp::hasProperty):
+        * kjs/string_object.h:
+        * tests/mozilla/expected.html:
+
 2005-06-21  Darin Adler  <darin@apple.com>
 
         * JavaScriptCore.pbproj/project.pbxproj: Switched to a build rule rather than a build phase for
 
         Patch from Mark Rowe <opendarwin.org@bdash.net.nz>, reviewed by me.
 
-       - fixed http://bugzilla.opendarwin.org/attachment.cgi?id=2483
+       - fixed http://bugzilla.opendarwin.org/show_bug.cgi?id=3293
         
         Test cases added: 
         * tests/mozilla/expected.html: Updated for two fixed tests.
index 8a4e741a0edd544b2aa52126501e07bdf4305c3e..e8e69c968eb2c70403d105b7ce050785384daf6b 100644 (file)
@@ -179,7 +179,7 @@ public:
     virtual bool implementsCall() const;
     virtual Value call(ExecState *exec, Object &thisObj, const List &args);
 
-    virtual bool hasOwnProperty(ExecState *exec,
+    virtual bool hasProperty(ExecState *exec,
                             const Identifier &propertyName) const;
 
 
index 060554a05a66080acea1396dbf2a7b9ddfcf9957..bcc00da113a52753c22b3e68bf80c92e344d9e08 100644 (file)
@@ -332,7 +332,7 @@ Value ObjcFallbackObjectImp::call(ExecState *exec, Object &thisObj, const List &
     return result;
 }
 
-bool ObjcFallbackObjectImp::hasOwnProperty(ExecState *exec,
+bool ObjcFallbackObjectImp::hasProperty(ExecState *exec,
                          const Identifier &propertyName) const
 {
     return false;
index 2feae393e158e636c041a3a0e583f208fb0ed0a5..1ff4ec18eab8bd383b45b03c57c35bf8e5670ddd 100644 (file)
@@ -96,7 +96,7 @@ void RuntimeArrayImp::put(ExecState *exec, unsigned index, const Value &value, i
 }
 
 
-bool RuntimeArrayImp::hasOwnProperty(ExecState *exec, const Identifier &propertyName) const
+bool RuntimeArrayImp::hasProperty(ExecState *exec, const Identifier &propertyName) const
 {
     if (propertyName == lengthPropertyName)
         return true;
@@ -109,10 +109,10 @@ bool RuntimeArrayImp::hasOwnProperty(ExecState *exec, const Identifier &property
         return true;
     }
     
-    return ObjectImp::hasOwnProperty(exec, propertyName);
+    return ObjectImp::hasProperty(exec, propertyName);
 }
 
-bool RuntimeArrayImp::hasOwnProperty(ExecState *exec, unsigned index) const
+bool RuntimeArrayImp::hasProperty(ExecState *exec, unsigned index) const
 {
     if (index >= getLength())
         return false;
index a56b142cf46eac8c614ef122ff16188d699e7d96..9f7f79adfd25c25a9db0f34dbc87cf511a8cc649 100644 (file)
@@ -42,8 +42,8 @@ public:
     virtual void put(ExecState *exec, const Identifier &propertyName, const Value &value, int attr = None);
     virtual void put(ExecState *exec, unsigned propertyName, const Value &value, int attr = None);
     
-    virtual bool hasOwnProperty(ExecState *exec, const Identifier &propertyName) const;
-    virtual bool hasOwnProperty(ExecState *exec, unsigned propertyName) const;
+    virtual bool hasProperty(ExecState *exec, const Identifier &propertyName) const;
+    virtual bool hasProperty(ExecState *exec, unsigned propertyName) const;
     virtual bool deleteProperty(ExecState *exec, const Identifier &propertyName);
     virtual bool deleteProperty(ExecState *exec, unsigned propertyName);
     
index 2531d3e5b7b980d73af1c56b2aff4796f23a30e6..dd536019a270b3cb8a49f5f43c4a004f54efb82e 100644 (file)
@@ -131,7 +131,7 @@ bool RuntimeObjectImp::canPut(ExecState *exec, const Identifier &propertyName) c
     return result;
 }
 
-bool RuntimeObjectImp::hasOwnProperty(ExecState *exec,
+bool RuntimeObjectImp::hasProperty(ExecState *exec,
                             const Identifier &propertyName) const
 {
     bool result = false;
index 799dffb1a2f98e74d218f05f96c2ecbffb88c2bb..5f7df0a65b1aa48967f3155da8f0f52e5c453bc0 100644 (file)
@@ -48,7 +48,7 @@ public:
 
     virtual bool canPut(ExecState *exec, const Identifier &propertyName) const;
 
-    virtual bool hasOwnProperty(ExecState *exec,
+    virtual bool hasProperty(ExecState *exec,
                             const Identifier &propertyName) const;
 
 
index 931b9124a768cf4f485e837410f4c3bff8c8ab80..a2bc5a7ff346b1eb91e6dd8ee36f0046a1b019ef 100644 (file)
@@ -37,8 +37,8 @@ namespace KJS {
     virtual Value get(ExecState *exec, unsigned propertyName) const;
     virtual void put(ExecState *exec, const Identifier &propertyName, const Value &value, int attr = None);
     virtual void put(ExecState *exec, unsigned propertyName, const Value &value, int attr = None);
-    virtual bool hasOwnProperty(ExecState *exec, const Identifier &propertyName) const;
-    virtual bool hasOwnProperty(ExecState *exec, unsigned propertyName) const;
+    virtual bool hasProperty(ExecState *exec, const Identifier &propertyName) const;
+    virtual bool hasProperty(ExecState *exec, unsigned propertyName) const;
     virtual bool deleteProperty(ExecState *exec, const Identifier &propertyName);
     virtual bool deleteProperty(ExecState *exec, unsigned propertyName);
     virtual ReferenceList propList(ExecState *exec, bool recursive);
index dc89925632e450390f724bd13e0ee91e31d8cd24..da8f4a10d171a4d7507ce689a5f56f28d708110f 100644 (file)
@@ -138,7 +138,7 @@ void ArrayInstanceImp::put(ExecState *exec, unsigned index, const Value &value,
   ObjectImp::put(exec, Identifier::from(index), value, attr);
 }
 
-bool ArrayInstanceImp::hasOwnProperty(ExecState *exec, const Identifier &propertyName) const
+bool ArrayInstanceImp::hasProperty(ExecState *exec, const Identifier &propertyName) const
 {
   if (propertyName == lengthPropertyName)
     return true;
@@ -154,10 +154,10 @@ bool ArrayInstanceImp::hasOwnProperty(ExecState *exec, const Identifier &propert
     }
   }
   
-  return ObjectImp::hasOwnProperty(exec, propertyName);
+  return ObjectImp::hasProperty(exec, propertyName);
 }
 
-bool ArrayInstanceImp::hasOwnProperty(ExecState *exec, unsigned index) const
+bool ArrayInstanceImp::hasProperty(ExecState *exec, unsigned index) const
 {
   if (index >= length)
     return false;
@@ -166,7 +166,7 @@ bool ArrayInstanceImp::hasOwnProperty(ExecState *exec, unsigned index) const
     return v && v != UndefinedImp::staticUndefined;
   }
   
-  return ObjectImp::hasOwnProperty(exec, Identifier::from(index));
+  return ObjectImp::hasProperty(exec, Identifier::from(index));
 }
 
 bool ArrayInstanceImp::deleteProperty(ExecState *exec, const Identifier &propertyName)
index 30bbf825ba18fbe821f681b4d6c64819357ea49a..8ac682ebc1b2dc7c430f0a7a95b34a7f2054d885 100644 (file)
@@ -237,11 +237,11 @@ void FunctionImp::put(ExecState *exec, const Identifier &propertyName, const Val
     InternalFunctionImp::put(exec, propertyName, value, attr);
 }
 
-bool FunctionImp::hasOwnProperty(ExecState *exec, const Identifier &propertyName) const
+bool FunctionImp::hasProperty(ExecState *exec, const Identifier &propertyName) const
 {
     if (propertyName == argumentsPropertyName || propertyName == lengthPropertyName)
         return true;
-    return InternalFunctionImp::hasOwnProperty(exec, propertyName);
+    return InternalFunctionImp::hasProperty(exec, propertyName);
 }
 
 bool FunctionImp::deleteProperty(ExecState *exec, const Identifier &propertyName)
@@ -357,11 +357,11 @@ Value ActivationImp::get(ExecState *exec, const Identifier &propertyName) const
     return ObjectImp::get(exec, propertyName);
 }
 
-bool ActivationImp::hasOwnProperty(ExecState *exec, const Identifier &propertyName) const
+bool ActivationImp::hasProperty(ExecState *exec, const Identifier &propertyName) const
 {
     if (propertyName == argumentsPropertyName)
         return true;
-    return ObjectImp::hasOwnProperty(exec, propertyName);
+    return ObjectImp::hasProperty(exec, propertyName);
 }
 
 bool ActivationImp::deleteProperty(ExecState *exec, const Identifier &propertyName)
index 5fcda3e25764698da3a519fdb0224de0d767a6c2..18567f4c15004c22ef4393ccf3e483aafdf7fc4e 100644 (file)
@@ -43,7 +43,7 @@ namespace KJS {
 
     virtual Value get(ExecState *exec, const Identifier &propertyName) const;
     virtual void put(ExecState *exec, const Identifier &propertyName, const Value &value, int attr = None);
-    virtual bool hasOwnProperty(ExecState *exec, const Identifier &propertyName) const;
+    virtual bool hasProperty(ExecState *exec, const Identifier &propertyName) const;
     virtual bool deleteProperty(ExecState *exec, const Identifier &propertyName);
 
     virtual bool implementsCall() const;
@@ -104,7 +104,7 @@ namespace KJS {
     ActivationImp(FunctionImp *function, const List &arguments);
 
     virtual Value get(ExecState *exec, const Identifier &propertyName) const;
-    virtual bool hasOwnProperty(ExecState *exec, const Identifier &propertyName) const;
+    virtual bool hasProperty(ExecState *exec, const Identifier &propertyName) const;
     virtual bool deleteProperty(ExecState *exec, const Identifier &propertyName);
 
     virtual const ClassInfo *classInfo() const { return &info; }
index 26854287a850141f69b801e231e49d67e57fc0bd..1e389cf73f7616a3d8bf469c3457408165fddcb7 100644 (file)
@@ -281,53 +281,31 @@ bool ObjectImp::canPut(ExecState *, const Identifier &propertyName) const
 
 // ECMA 8.6.2.4
 bool ObjectImp::hasProperty(ExecState *exec, const Identifier &propertyName) const
-{
-  if (hasOwnProperty(exec, propertyName))
-    return true;
-
-  if (_proto->dispatchType() != ObjectType) {
-    return false;
-  }
-
-  // Look in the prototype
-  return static_cast<ObjectImp *>(_proto)->hasProperty(exec, propertyName);
-}
-
-bool ObjectImp::hasProperty(ExecState *exec, unsigned propertyName) const
-{
-    if (hasOwnProperty(exec, propertyName))
-      return true;
-
-    if (_proto->dispatchType() != ObjectType) {
-      return false;
-    }
-
-    // Look in the prototype
-    return static_cast<ObjectImp *>(_proto)->hasProperty(exec, propertyName);
-}
-
-bool ObjectImp::hasOwnProperty(ExecState *exec, const Identifier &propertyName) const
 {
   if (_prop.get(propertyName))
     return true;
 
   // Look in the static hashtable of properties
   if (findPropertyHashEntry(propertyName))
-    return true;
+      return true;
 
   // non-standard netscape extension
   if (propertyName == specialPrototypePropertyName)
     return true;
 
-  return false;
+  if (_proto->dispatchType() != ObjectType) {
+    return false;
+  }
+
+  // Look in the prototype
+  return static_cast<ObjectImp *>(_proto)->hasProperty(exec, propertyName);
 }
 
-bool ObjectImp::hasOwnProperty(ExecState *exec, unsigned propertyName) const
+bool ObjectImp::hasProperty(ExecState *exec, unsigned propertyName) const
 {
-  return hasOwnProperty(exec, Identifier::from(propertyName));
+  return hasProperty(exec, Identifier::from(propertyName));
 }
 
-
 // ECMA 8.6.2.5
 bool ObjectImp::deleteProperty(ExecState */*exec*/, const Identifier &propertyName)
 {
index 48e1aee3d233dbe4a268c778ffadca7fa63f2f56..b649ce2e9053271849901ee71f3e60bf6a219e92 100644 (file)
@@ -181,18 +181,6 @@ namespace KJS {
     bool hasProperty(ExecState *exec, const Identifier &propertyName) const;
     bool hasProperty(ExecState *exec, unsigned propertyName) const;
 
-    /**
-     * Checks to see whether the object has a property with the specified name.
-     *
-     * See ECMA 15.2.4.5
-     *
-     * @param exec The current execution state
-     * @param propertyName The name of the property to check for
-     * @return true if the object has the property, otherwise false
-     */
-    bool hasOwnProperty(ExecState *exec, const Identifier &propertyName) const;
-    bool hasOwnProperty(ExecState *exec, unsigned propertyName) const;
-
     /**
      * Removes the specified property from the object.
      *
@@ -525,13 +513,9 @@ namespace KJS {
      *
      * @see Object::hasProperty()
      */
-    bool hasProperty(ExecState *exec,
+    virtual bool hasProperty(ExecState *exec,
                             const Identifier &propertyName) const;
-    bool hasProperty(ExecState *exec, unsigned propertyName) const;
-
-    virtual bool hasOwnProperty(ExecState *exec,
-                    const Identifier &propertyName) const;
-    virtual bool hasOwnProperty(ExecState *exec, unsigned propertyName) const;
+    virtual bool hasProperty(ExecState *exec, unsigned propertyName) const;
 
     /**
      * Implementation of the [[Delete]] internal property (implemented by all
@@ -709,12 +693,6 @@ namespace KJS {
   inline bool Object::hasProperty(ExecState *exec, unsigned propertyName) const
     { return imp()->hasProperty(exec, propertyName); }
 
-  inline bool Object::hasOwnProperty(ExecState *exec, const Identifier &propertyName) const
-    { return imp()->hasOwnProperty(exec, propertyName); }
-
-  inline bool Object::hasOwnProperty(ExecState *exec, unsigned propertyName) const
-    { return imp()->hasOwnProperty(exec, propertyName); }
-
   inline bool Object::deleteProperty(ExecState *exec, const Identifier &propertyName)
     { return imp()->deleteProperty(exec,propertyName); }
 
index 3a2c947864d17906eb329afe6fabc2c9e8a78ab0..84023280db8e0392516886c4f0149e37cbec56b9 100644 (file)
@@ -37,10 +37,9 @@ ObjectPrototypeImp::ObjectPrototypeImp(ExecState *exec,
                                        FunctionPrototypeImp *funcProto)
   : ObjectImp() // [[Prototype]] is Null()
 {
-    Value protect(this);
-    putDirect(toStringPropertyName, new ObjectProtoFuncImp(exec,funcProto,ObjectProtoFuncImp::ToString,  0), DontEnum);
-    putDirect(valueOfPropertyName,  new ObjectProtoFuncImp(exec,funcProto,ObjectProtoFuncImp::ValueOf,   0), DontEnum);
-    putDirect("hasOwnProperty", new ObjectProtoFuncImp(exec,funcProto,ObjectProtoFuncImp::HasOwnProperty,1), DontEnum);
+  Value protect(this);
+  putDirect(toStringPropertyName, new ObjectProtoFuncImp(exec,funcProto,ObjectProtoFuncImp::ToString, 0), DontEnum);
+  putDirect(valueOfPropertyName,  new ObjectProtoFuncImp(exec,funcProto,ObjectProtoFuncImp::ValueOf,  0), DontEnum);
 }
 
 
@@ -61,23 +60,14 @@ bool ObjectProtoFuncImp::implementsCall() const
   return true;
 }
 
-// ECMA 15.2.4.2, 15.2.4.4, 15.2.4.5
+// ECMA 15.2.4.2 + 15.2.4.3
 
-Value ObjectProtoFuncImp::call(ExecState *exec, Object &thisObj, const List &args)
+Value ObjectProtoFuncImp::call(ExecState */*exec*/, Object &thisObj, const List &/*args*/)
 {
-    switch (id) {
-        case ValueOf:
-            return thisObj;
-        case HasOwnProperty: {
-            // Same as hasProperty() but without checking the prototype
-            Identifier propertyName(args[0].toString(exec));
-            bool exists = thisObj.hasOwnProperty(exec, propertyName);
-            return Value(exists ? BooleanImp::staticTrue : BooleanImp::staticFalse);
-        }
-        case ToString:
-        default:
-            return String("[object " + thisObj.className() + "]");
-    }
+  if (id == ValueOf)
+    return thisObj;
+  else /* ToString */
+    return String("[object "+thisObj.className()+"]");
 }
 
 // ------------------------------ ObjectObjectImp --------------------------------
index 518917e33ffedf390a4dcf2b69d47c7db0e78bbe..f2c7161bff4e484b89840383faa7e87cd39aef44 100644 (file)
@@ -53,7 +53,7 @@ namespace KJS {
     virtual bool implementsCall() const;
     virtual Value call(ExecState *exec, Object &thisObj, const List &args);
 
-    enum { ToString, ValueOf, HasOwnProperty };
+    enum { ToString, ValueOf };
   private:
     int id;
   };
index f4bc89d1a55c0b117f74c8a9197f37ac723e6dd9..3bbff1d49b3309dc7752b66535f08994175c1583 100644 (file)
@@ -76,7 +76,7 @@ void StringInstanceImp::put(ExecState *exec, const Identifier &propertyName, con
   ObjectImp::put(exec, propertyName, value, attr);
 }
 
-bool StringInstanceImp::hasOwnProperty(ExecState *exec, const Identifier &propertyName) const
+bool StringInstanceImp::hasProperty(ExecState *exec, const Identifier &propertyName) const
 {
   if (propertyName == lengthPropertyName)
     return true;
@@ -89,7 +89,7 @@ bool StringInstanceImp::hasOwnProperty(ExecState *exec, const Identifier &proper
       return true;
   }
 
-  return ObjectImp::hasOwnProperty(exec, propertyName);
+  return ObjectImp::hasProperty(exec, propertyName);
 }
 
 bool StringInstanceImp::deleteProperty(ExecState *exec, const Identifier &propertyName)
index f439f74f6515817afaa8cae3570a279e7aa952d2..05c5904cafa4560cafb9812040be3b4bbf859df5 100644 (file)
@@ -34,7 +34,7 @@ namespace KJS {
 
     virtual Value get(ExecState *exec, const Identifier &propertyName) const;
     virtual void put(ExecState *exec, const Identifier &propertyName, const Value &value, int attr = None);
-    virtual bool hasOwnProperty(ExecState *exec, const Identifier &propertyName) const;
+    virtual bool hasProperty(ExecState *exec, const Identifier &propertyName) const;
     virtual bool deleteProperty(ExecState *exec, const Identifier &propertyName);
 
     virtual const ClassInfo *classInfo() const { return &info; }
index 2925f0fb4a2c2c32a3ac5e6962e25c7252e36ede..488a261e3cf6212043992aac9831f0705aaf1acf 100644 (file)
@@ -7,11 +7,11 @@
 <p class='results_summary'>
 Test List: All tests<br>
 Skip List: ecma/Date<br>
-967 test(s) selected, 962 test(s) completed, 125 failures reported (12.99% failed)<br>
-Engine command line: /Volumes/Home/ggaren/dev/symroots/testkjs <br>
-OS type: Darwin darin-adler-portable.apple.com 8.2.0 Darwin Kernel Version 8.2.0: Fri Jun  3 21:09:06 PDT 2005; root:xnu-792.2.3.obj~1/RELEASE_PPC Power Macintosh powerpc<br>
-Testcase execution time: 2 minutes, 26 seconds.<br>
-Tests completed on Tue Jun 21 11:41:43 2005.<br><br>
+967 test(s) selected, 962 test(s) completed, 127 failures reported (13.2% failed)<br>
+Engine command line: /Build/symroots/testkjs <br>
+OS type: Darwin adele1.apple.com 8.1.0 Darwin Kernel Version 8.1.0: Fri May  6 22:51:45 PDT 2005; root:xnu-792.1.5.obj~1/RELEASE_PPC Power Macintosh powerpc<br>
+Testcase execution time: 1 minutes, 55 seconds.<br>
+Tests completed on Tue Jun 21 17:58:04 2005.<br><br>
 [ <a href='#fail_detail'>Failure Details</a> | <a href='#retest_list'>Retest List</a> | <a href='menu.html'>Test Selection Page</a> ]<br>
 <hr>
 <a name='fail_detail'></a>
@@ -192,8 +192,8 @@ Failure messages were:<br>
 --> (Mon Feb 28 2000 16:00:00 GMT-0800).toLocaleTimeString() = 4:00:00 PM PST FAILED! expected: 16:00:00<br>
 --> (Mon Feb 28 2000 15:59:59 GMT-0800).toLocaleTimeString() = 3:59:59 PM PST FAILED! expected: 15:59:59<br>
 --> (Tue Feb 29 2000 00:00:00 GMT-0800).toLocaleTimeString() = 12:00:00 AM PST FAILED! expected: 00:00:00<br>
---> (Tue Jun 21 2005 11:40:56 GMT-0700).toLocaleTimeString() = 11:40:56 AM PDT FAILED! expected: 11:40:56<br>
---> (Tue Jun 21 2005 19:40:56 GMT-0700).toLocaleTimeString() = 7:40:56 PM PDT FAILED! expected: 19:40:56<br>
+--> (Tue Jun 21 2005 17:57:29 GMT-0700).toLocaleTimeString() = 5:57:29 PM PDT FAILED! expected: 17:57:29<br>
+--> (Wed Jun 22 2005 01:57:29 GMT-0700).toLocaleTimeString() = 1:57:29 AM PDT FAILED! expected: 01:57:29<br>
 --> (Fri Dec 31 2004 16:00:00 GMT-0800).toLocaleTimeString() = 4:00:00 PM PST FAILED! expected: 16:00:00<br>
 --> (Fri Dec 31 2004 15:59:59 GMT-0800).toLocaleTimeString() = 3:59:59 PM PST FAILED! expected: 15:59:59<br>
 --> (Sat Jan 01 2005 00:00:00 GMT-0800).toLocaleTimeString() = 12:00:00 AM PST FAILED! expected: 00:00:00<br>
@@ -322,31 +322,45 @@ Complete testcase output was:<br>
 yylex: ERROR.<br>
 Exception, line 83: SyntaxError - Parse error<br>
 </tt><br>
-<a name='failure31'></a><dd><b>Testcase <a target='other_window' href='./ecma_3/FunExpr/fe-001.js'>ecma_3/FunExpr/fe-001.js</a> failed</b> <br>
+<a name='failure31'></a><dd><b>Testcase <a target='other_window' href='./ecma_3/Function/scope-001.js'>ecma_3/Function/scope-001.js</a> failed</b> <br>
  [ <a href='#failure30'>Previous Failure</a> | <a href='#failure32'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
 <tt>Expected exit code 0, got 3<br>
 Testcase terminated with signal 0<br>
 Complete testcase output was:<br>
-Exception, line 26: SyntaxError - Parse error<br>
+Exception, line 185: TypeError - Value undefined (result of expression obj.hasOwnProperty) is not object.<br>
 </tt><br>
-<a name='failure32'></a><dd><b>Testcase <a target='other_window' href='./ecma_3/Object/class-001.js'>ecma_3/Object/class-001.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=(none)' target='other_window'>Bug Number (none)</a><br>
+<a name='failure32'></a><dd><b>Testcase <a target='other_window' href='./ecma_3/Function/scope-002.js'>ecma_3/Function/scope-002.js</a> failed</b> <br>
  [ <a href='#failure31'>Previous Failure</a> | <a href='#failure33'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
+<tt>Expected exit code 0, got 3<br>
+Testcase terminated with signal 0<br>
+Complete testcase output was:<br>
+Exception, line 168: TypeError - Value undefined (result of expression obj.hasOwnProperty) is not object.<br>
+</tt><br>
+<a name='failure33'></a><dd><b>Testcase <a target='other_window' href='./ecma_3/FunExpr/fe-001.js'>ecma_3/FunExpr/fe-001.js</a> failed</b> <br>
+ [ <a href='#failure32'>Previous Failure</a> | <a href='#failure34'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
+<tt>Expected exit code 0, got 3<br>
+Testcase terminated with signal 0<br>
+Complete testcase output was:<br>
+Exception, line 26: SyntaxError - Parse error<br>
+</tt><br>
+<a name='failure34'></a><dd><b>Testcase <a target='other_window' href='./ecma_3/Object/class-001.js'>ecma_3/Object/class-001.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=(none)' target='other_window'>Bug Number (none)</a><br>
+ [ <a href='#failure33'>Previous Failure</a> | <a href='#failure35'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
 <tt>--> STATUS: Testing the internal [[Class]] property of objects<br>
 Failure messages were:<br>
 --> FAILED!: [reported from test()] Current object is: new Error()<br>
 --> FAILED!: [reported from test()] Expected value 'Error', Actual value 'Object'<br>
 --> FAILED!: [reported from test()] <br>
 </tt><br>
-<a name='failure33'></a><dd><b>Testcase <a target='other_window' href='./ecma_3/Object/class-002.js'>ecma_3/Object/class-002.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=(none)' target='other_window'>Bug Number (none)</a><br>
- [ <a href='#failure32'>Previous Failure</a> | <a href='#failure34'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
+<a name='failure35'></a><dd><b>Testcase <a target='other_window' href='./ecma_3/Object/class-002.js'>ecma_3/Object/class-002.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=(none)' target='other_window'>Bug Number (none)</a><br>
+ [ <a href='#failure34'>Previous Failure</a> | <a href='#failure36'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
 <tt>--> STATUS: Testing the internal [[Class]] property of native constructors<br>
 Failure messages were:<br>
 --> FAILED!: [reported from test()] Current constructor is: Number<br>
 --> FAILED!: [reported from test()] Expected value 'Function', Actual value 'Number'<br>
 --> FAILED!: [reported from test()] <br>
 </tt><br>
-<a name='failure34'></a><dd><b>Testcase <a target='other_window' href='./ecma_3/Object/class-003.js'>ecma_3/Object/class-003.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=56868' target='other_window'>Bug Number 56868</a><br>
- [ <a href='#failure33'>Previous Failure</a> | <a href='#failure35'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
+<a name='failure36'></a><dd><b>Testcase <a target='other_window' href='./ecma_3/Object/class-003.js'>ecma_3/Object/class-003.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=56868' target='other_window'>Bug Number 56868</a><br>
+ [ <a href='#failure35'>Previous Failure</a> | <a href='#failure37'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
 <tt>--> STATUS: Testing the internal [[Class]] property of native error types<br>
 Failure messages were:<br>
 --> FAILED!: [reported from test()] Current object is: new Error()<br>
@@ -371,8 +385,8 @@ Failure messages were:<br>
 --> FAILED!: [reported from test()] Expected value 'Error', Actual value 'Object'<br>
 --> FAILED!: [reported from test()] <br>
 </tt><br>
-<a name='failure35'></a><dd><b>Testcase <a target='other_window' href='./ecma_3/Object/class-004.js'>ecma_3/Object/class-004.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=56868' target='other_window'>Bug Number 56868</a><br>
- [ <a href='#failure34'>Previous Failure</a> | <a href='#failure36'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
+<a name='failure37'></a><dd><b>Testcase <a target='other_window' href='./ecma_3/Object/class-004.js'>ecma_3/Object/class-004.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=56868' target='other_window'>Bug Number 56868</a><br>
+ [ <a href='#failure36'>Previous Failure</a> | <a href='#failure38'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
 <tt>--> STATUS: Testing the internal [[Class]] property of native error constructors<br>
 Failure messages were:<br>
 --> FAILED!: [reported from test()] Current constructor is: EvalError<br>
@@ -394,16 +408,16 @@ Failure messages were:<br>
 --> FAILED!: [reported from test()] Expected value 'Function', Actual value 'Error'<br>
 --> FAILED!: [reported from test()] <br>
 </tt><br>
-<a name='failure36'></a><dd><b>Testcase <a target='other_window' href='./ecma_3/Object/regress-72773.js'>ecma_3/Object/regress-72773.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=72773' target='other_window'>Bug Number 72773</a><br>
- [ <a href='#failure35'>Previous Failure</a> | <a href='#failure37'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
+<a name='failure38'></a><dd><b>Testcase <a target='other_window' href='./ecma_3/Object/regress-72773.js'>ecma_3/Object/regress-72773.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=72773' target='other_window'>Bug Number 72773</a><br>
+ [ <a href='#failure37'>Previous Failure</a> | <a href='#failure39'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
 <tt>--> STATUS: Regression test: we shouldn't crash on this code<br>
 Failure messages were:<br>
 --> FAILED!: [reported from test()] Trying to catch an expected error<br>
 --> FAILED!: [reported from test()] Expected value 'Error', Actual value 'Object'<br>
 --> FAILED!: [reported from test()] <br>
 </tt><br>
-<a name='failure37'></a><dd><b>Testcase <a target='other_window' href='./ecma_3/RegExp/15.10.2-1.js'>ecma_3/RegExp/15.10.2-1.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=(none)' target='other_window'>Bug Number (none)</a><br>
- [ <a href='#failure36'>Previous Failure</a> | <a href='#failure38'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
+<a name='failure39'></a><dd><b>Testcase <a target='other_window' href='./ecma_3/RegExp/15.10.2-1.js'>ecma_3/RegExp/15.10.2-1.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=(none)' target='other_window'>Bug Number (none)</a><br>
+ [ <a href='#failure38'>Previous Failure</a> | <a href='#failure40'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
 <tt>--> STATUS: RegExp conformance test<br>
 Failure messages were:<br>
 --> FAILED!: [reported from test()] Section 7 of test -<br>
@@ -428,8 +442,8 @@ Failure messages were:<br>
 --> FAILED!: [reported from test()] Actual: null<br>
 --> FAILED!: [reported from test()] <br>
 </tt><br>
-<a name='failure38'></a><dd><b>Testcase <a target='other_window' href='./ecma_3/RegExp/15.10.6.2-2.js'>ecma_3/RegExp/15.10.6.2-2.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=76717' target='other_window'>Bug Number 76717</a><br>
- [ <a href='#failure37'>Previous Failure</a> | <a href='#failure39'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
+<a name='failure40'></a><dd><b>Testcase <a target='other_window' href='./ecma_3/RegExp/15.10.6.2-2.js'>ecma_3/RegExp/15.10.6.2-2.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=76717' target='other_window'>Bug Number 76717</a><br>
+ [ <a href='#failure39'>Previous Failure</a> | <a href='#failure41'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
 <tt>--> STATUS: Testing re.exec(str) when re.lastIndex is < 0 or > str.length<br>
 Failure messages were:<br>
 --> FAILED!: [reported from test()] Section 6 of test -<br>
@@ -496,8 +510,8 @@ Failure messages were:<br>
 --> FAILED!: [reported from test()] Actual: ["Abc"]<br>
 --> FAILED!: [reported from test()] <br>
 </tt><br>
-<a name='failure39'></a><dd><b>Testcase <a target='other_window' href='./ecma_3/RegExp/octal-002.js'>ecma_3/RegExp/octal-002.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=141078' target='other_window'>Bug Number 141078</a><br>
- [ <a href='#failure38'>Previous Failure</a> | <a href='#failure40'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
+<a name='failure41'></a><dd><b>Testcase <a target='other_window' href='./ecma_3/RegExp/octal-002.js'>ecma_3/RegExp/octal-002.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=141078' target='other_window'>Bug Number 141078</a><br>
+ [ <a href='#failure40'>Previous Failure</a> | <a href='#failure42'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
 <tt>--> STATUS: Testing regexps containing octal escape sequences<br>
 Failure messages were:<br>
 --> FAILED!: [reported from test()] Section 8 of test -<br>
@@ -508,38 +522,10 @@ Failure messages were:<br>
 --> FAILED!: [reported from test()] Actual: ["a"]<br>
 --> FAILED!: [reported from test()] <br>
 </tt><br>
-<a name='failure40'></a><dd><b>Testcase <a target='other_window' href='./ecma_3/RegExp/perlstress-001.js'>ecma_3/RegExp/perlstress-001.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=85721' target='other_window'>Bug Number 85721</a><br>
- [ <a href='#failure39'>Previous Failure</a> | <a href='#failure41'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
+<a name='failure42'></a><dd><b>Testcase <a target='other_window' href='./ecma_3/RegExp/perlstress-001.js'>ecma_3/RegExp/perlstress-001.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=85721' target='other_window'>Bug Number 85721</a><br>
+ [ <a href='#failure41'>Previous Failure</a> | <a href='#failure43'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
 <tt>--> STATUS: Testing regular expression edge cases<br>
 Failure messages were:<br>
---> FAILED!: [reported from test()] Section 14 of test -<br>
---> FAILED!: [reported from test()] regexp = /ab{1,3}bc/<br>
---> FAILED!: [reported from test()] string = 'abbbbc'<br>
---> FAILED!: [reported from test()] ERROR !!! regexp FAILED to match anything !!!<br>
---> FAILED!: [reported from test()] Expect: ["abbbbc"]<br>
---> FAILED!: [reported from test()] Actual: null<br>
---> FAILED!: [reported from test()] <br>
---> FAILED!: [reported from test()] Section 15 of test -<br>
---> FAILED!: [reported from test()] regexp = /ab{3,4}bc/<br>
---> FAILED!: [reported from test()] string = 'abbbbc'<br>
---> FAILED!: [reported from test()] ERROR !!! regexp FAILED to match anything !!!<br>
---> FAILED!: [reported from test()] Expect: ["abbbbc"]<br>
---> FAILED!: [reported from test()] Actual: null<br>
---> FAILED!: [reported from test()] <br>
---> FAILED!: [reported from test()] Section 124 of test -<br>
---> FAILED!: [reported from test()] regexp = /ab{1,3}?bc/i<br>
---> FAILED!: [reported from test()] string = 'ABBBBC'<br>
---> FAILED!: [reported from test()] ERROR !!! regexp FAILED to match anything !!!<br>
---> FAILED!: [reported from test()] Expect: ["ABBBBC"]<br>
---> FAILED!: [reported from test()] Actual: null<br>
---> FAILED!: [reported from test()] <br>
---> FAILED!: [reported from test()] Section 125 of test -<br>
---> FAILED!: [reported from test()] regexp = /ab{3,4}?bc/i<br>
---> FAILED!: [reported from test()] string = 'ABBBBC'<br>
---> FAILED!: [reported from test()] ERROR !!! regexp FAILED to match anything !!!<br>
---> FAILED!: [reported from test()] Expect: ["ABBBBC"]<br>
---> FAILED!: [reported from test()] Actual: null<br>
---> FAILED!: [reported from test()] <br>
 --> FAILED!: [reported from test()] Section 218 of test -<br>
 --> FAILED!: [reported from test()] regexp = /((foo)|(bar))*/<br>
 --> FAILED!: [reported from test()] string = 'foobar'<br>
@@ -597,8 +583,8 @@ Failure messages were:<br>
 --> FAILED!: [reported from test()] Actual: ["aabbaa", "aa", "bb"]<br>
 --> FAILED!: [reported from test()] <br>
 </tt><br>
-<a name='failure41'></a><dd><b>Testcase <a target='other_window' href='./ecma_3/RegExp/perlstress-002.js'>ecma_3/RegExp/perlstress-002.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=85721' target='other_window'>Bug Number 85721</a><br>
- [ <a href='#failure40'>Previous Failure</a> | <a href='#failure42'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
+<a name='failure43'></a><dd><b>Testcase <a target='other_window' href='./ecma_3/RegExp/perlstress-002.js'>ecma_3/RegExp/perlstress-002.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=85721' target='other_window'>Bug Number 85721</a><br>
+ [ <a href='#failure42'>Previous Failure</a> | <a href='#failure44'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
 <tt>--> STATUS: Testing regular expression edge cases<br>
 Failure messages were:<br>
 --> FAILED!: [reported from test()] Section 40 of test -<br>
@@ -616,8 +602,8 @@ Failure messages were:<br>
 --> FAILED!: [reported from test()] Actual: null<br>
 --> FAILED!: [reported from test()] <br>
 </tt><br>
-<a name='failure42'></a><dd><b>Testcase <a target='other_window' href='./ecma_3/RegExp/regress-100199.js'>ecma_3/RegExp/regress-100199.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=100199' target='other_window'>Bug Number 100199</a><br>
- [ <a href='#failure41'>Previous Failure</a> | <a href='#failure43'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
+<a name='failure44'></a><dd><b>Testcase <a target='other_window' href='./ecma_3/RegExp/regress-100199.js'>ecma_3/RegExp/regress-100199.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=100199' target='other_window'>Bug Number 100199</a><br>
+ [ <a href='#failure43'>Previous Failure</a> | <a href='#failure45'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
 <tt>--> STATUS: [], [^] are valid RegExp conditions. Should not cause errors -<br>
 Failure messages were:<br>
 --> FAILED!: [reported from test()] Section 19 of test -<br>
@@ -719,8 +705,8 @@ Failure messages were:<br>
 --> FAILED!: [reported from test()] Actual: null<br>
 --> FAILED!: [reported from test()] <br>
 </tt><br>
-<a name='failure43'></a><dd><b>Testcase <a target='other_window' href='./ecma_3/RegExp/regress-188206.js'>ecma_3/RegExp/regress-188206.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=188206' target='other_window'>Bug Number 188206</a><br>
- [ <a href='#failure42'>Previous Failure</a> | <a href='#failure44'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
+<a name='failure45'></a><dd><b>Testcase <a target='other_window' href='./ecma_3/RegExp/regress-188206.js'>ecma_3/RegExp/regress-188206.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=188206' target='other_window'>Bug Number 188206</a><br>
+ [ <a href='#failure44'>Previous Failure</a> | <a href='#failure46'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
 <tt>--> STATUS: Invalid use of regexp quantifiers should generate SyntaxErrors<br>
 Failure messages were:<br>
 --> FAILED!: [reported from test()] Section 1 of test -<br>
@@ -781,8 +767,8 @@ Failure messages were:<br>
 --> FAILED!: [reported from test()] Expected value 'SyntaxError', Actual value 'Did not generate ANY error!!!'<br>
 --> FAILED!: [reported from test()] <br>
 </tt><br>
-<a name='failure44'></a><dd><b>Testcase <a target='other_window' href='./ecma_3/RegExp/regress-209067.js'>ecma_3/RegExp/regress-209067.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=209067' target='other_window'>Bug Number 209067</a><br>
- [ <a href='#failure43'>Previous Failure</a> | <a href='#failure45'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
+<a name='failure46'></a><dd><b>Testcase <a target='other_window' href='./ecma_3/RegExp/regress-209067.js'>ecma_3/RegExp/regress-209067.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=209067' target='other_window'>Bug Number 209067</a><br>
+ [ <a href='#failure45'>Previous Failure</a> | <a href='#failure47'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
 <tt>--> STATUS: Testing complicated str.replace()<br>
 Failure messages were:<br>
 --> FAILED!: [reported from test()] Section 1 of test -<br>
@@ -793,8 +779,8 @@ Failure messages were:<br>
 --> FAILED!: [reported from test()] }</span>'<br>
 --> FAILED!: [reported from test()] <br>
 </tt><br>
-<a name='failure45'></a><dd><b>Testcase <a target='other_window' href='./ecma_3/RegExp/regress-209919.js'>ecma_3/RegExp/regress-209919.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=209919' target='other_window'>Bug Number 209919</a><br>
- [ <a href='#failure44'>Previous Failure</a> | <a href='#failure46'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
+<a name='failure47'></a><dd><b>Testcase <a target='other_window' href='./ecma_3/RegExp/regress-209919.js'>ecma_3/RegExp/regress-209919.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=209919' target='other_window'>Bug Number 209919</a><br>
+ [ <a href='#failure46'>Previous Failure</a> | <a href='#failure48'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
 <tt>--> STATUS: Testing regexp submatches with quantifiers<br>
 Failure messages were:<br>
 --> FAILED!: [reported from test()] Section 1 of test -<br>
@@ -833,8 +819,8 @@ Failure messages were:<br>
 --> FAILED!: [reported from test()] Actual: ["1.000,00", "", ",00"]<br>
 --> FAILED!: [reported from test()] <br>
 </tt><br>
-<a name='failure46'></a><dd><b>Testcase <a target='other_window' href='./ecma_3/RegExp/regress-72964.js'>ecma_3/RegExp/regress-72964.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=72964' target='other_window'>Bug Number 72964</a><br>
- [ <a href='#failure45'>Previous Failure</a> | <a href='#failure47'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
+<a name='failure48'></a><dd><b>Testcase <a target='other_window' href='./ecma_3/RegExp/regress-72964.js'>ecma_3/RegExp/regress-72964.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=72964' target='other_window'>Bug Number 72964</a><br>
+ [ <a href='#failure47'>Previous Failure</a> | <a href='#failure49'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
 <tt>--> STATUS: Testing regular expressions containing non-Latin1 characters<br>
 Failure messages were:<br>
 --> FAILED!: [reported from test()] Section 3 of test -<br>
@@ -852,8 +838,8 @@ Failure messages were:<br>
 --> FAILED!: [reported from test()] Actual: null<br>
 --> FAILED!: [reported from test()] <br>
 </tt><br>
-<a name='failure47'></a><dd><b>Testcase <a target='other_window' href='./ecma_3/RegExp/regress-78156.js'>ecma_3/RegExp/regress-78156.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=78156' target='other_window'>Bug Number 78156</a><br>
- [ <a href='#failure46'>Previous Failure</a> | <a href='#failure48'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
+<a name='failure49'></a><dd><b>Testcase <a target='other_window' href='./ecma_3/RegExp/regress-78156.js'>ecma_3/RegExp/regress-78156.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=78156' target='other_window'>Bug Number 78156</a><br>
+ [ <a href='#failure48'>Previous Failure</a> | <a href='#failure50'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
 <tt>--> STATUS: Testing regular expressions with  ^, $, and the m flag -<br>
 Failure messages were:<br>
 --> FAILED!: [reported from test()] Section 2 of test -<br>
@@ -871,8 +857,8 @@ Failure messages were:<br>
 --> FAILED!: [reported from test()] Actual: null<br>
 --> FAILED!: [reported from test()] <br>
 </tt><br>
-<a name='failure48'></a><dd><b>Testcase <a target='other_window' href='./ecma_3/RegExp/regress-85721.js'>ecma_3/RegExp/regress-85721.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=85721' target='other_window'>Bug Number 85721</a><br>
- [ <a href='#failure47'>Previous Failure</a> | <a href='#failure49'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
+<a name='failure50'></a><dd><b>Testcase <a target='other_window' href='./ecma_3/RegExp/regress-85721.js'>ecma_3/RegExp/regress-85721.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=85721' target='other_window'>Bug Number 85721</a><br>
+ [ <a href='#failure49'>Previous Failure</a> | <a href='#failure51'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
 <tt>--> STATUS: Performance: execution of regular expression<br>
 Failure messages were:<br>
 --> FAILED!: Section 4 of test -<br>
@@ -1101,47 +1087,47 @@ Failure messages were:<br>
 --> FAILED!: Actual: null<br>
 --> FAILED!: <br>
 </tt><br>
-<a name='failure49'></a><dd><b>Testcase <a target='other_window' href='./ecma_3/Statements/regress-194364.js'>ecma_3/Statements/regress-194364.js</a> failed</b> <br>
- [ <a href='#failure48'>Previous Failure</a> | <a href='#failure50'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
+<a name='failure51'></a><dd><b>Testcase <a target='other_window' href='./ecma_3/Statements/regress-194364.js'>ecma_3/Statements/regress-194364.js</a> failed</b> <br>
+ [ <a href='#failure50'>Previous Failure</a> | <a href='#failure52'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
 <tt>Expected exit code 0, got 3<br>
 Testcase terminated with signal 0<br>
 Complete testcase output was:<br>
 Exception, line 1: SyntaxError - Parse error<br>
 </tt><br>
-<a name='failure50'></a><dd><b>Testcase <a target='other_window' href='./ecma_3/Unicode/uc-001.js'>ecma_3/Unicode/uc-001.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=23610' target='other_window'>Bug Number 23610</a><br>
- [ <a href='#failure49'>Previous Failure</a> | <a href='#failure51'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
+<a name='failure52'></a><dd><b>Testcase <a target='other_window' href='./ecma_3/Unicode/uc-001.js'>ecma_3/Unicode/uc-001.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=23610' target='other_window'>Bug Number 23610</a><br>
+ [ <a href='#failure51'>Previous Failure</a> | <a href='#failure53'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
 <tt>--> STATUS: Unicode format-control character (Category Cf) test.<br>
 Failure messages were:<br>
 --> FAILED!: [reported from test()] Unicode format-control character test (Category Cf.)<br>
 --> FAILED!: [reported from test()] Expected value 'no error', Actual value 'no\ e error'<br>
 --> FAILED!: [reported from test()] <br>
 </tt><br>
-<a name='failure51'></a><dd><b>Testcase <a target='other_window' href='./ecma_3/Unicode/uc-002.js'>ecma_3/Unicode/uc-002.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=23613' target='other_window'>Bug Number 23613</a><br>
- [ <a href='#failure50'>Previous Failure</a> | <a href='#failure52'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
+<a name='failure53'></a><dd><b>Testcase <a target='other_window' href='./ecma_3/Unicode/uc-002.js'>ecma_3/Unicode/uc-002.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=23613' target='other_window'>Bug Number 23613</a><br>
+ [ <a href='#failure52'>Previous Failure</a> | <a href='#failure54'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
 <tt>--> STATUS: Unicode non-breaking space character test.<br>
 Failure messages were:<br>
 --> FAILED!: [reported from test()] Unicode non-breaking space character regexp test.<br>
 --> FAILED!: [reported from test()] Expected value '0', Actual value '-1'<br>
 --> FAILED!: [reported from test()] <br>
 </tt><br>
-<a name='failure52'></a><dd><b>Testcase <a target='other_window' href='./ecma_3/Unicode/uc-003.js'>ecma_3/Unicode/uc-003.js</a> failed</b> <br>
- [ <a href='#failure51'>Previous Failure</a> | <a href='#failure53'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
+<a name='failure54'></a><dd><b>Testcase <a target='other_window' href='./ecma_3/Unicode/uc-003.js'>ecma_3/Unicode/uc-003.js</a> failed</b> <br>
+ [ <a href='#failure53'>Previous Failure</a> | <a href='#failure55'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
 <tt>Expected exit code 0, got 3<br>
 Testcase terminated with signal 0<br>
 Complete testcase output was:<br>
 yylex: ERROR.<br>
 Exception, line 32: SyntaxError - Parse error<br>
 </tt><br>
-<a name='failure53'></a><dd><b>Testcase <a target='other_window' href='./ecma_3/Unicode/uc-005.js'>ecma_3/Unicode/uc-005.js</a> failed</b> <br>
- [ <a href='#failure52'>Previous Failure</a> | <a href='#failure54'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
+<a name='failure55'></a><dd><b>Testcase <a target='other_window' href='./ecma_3/Unicode/uc-005.js'>ecma_3/Unicode/uc-005.js</a> failed</b> <br>
+ [ <a href='#failure54'>Previous Failure</a> | <a href='#failure56'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
 <tt>Expected exit code 0, got 3<br>
 Testcase terminated with signal 0<br>
 Complete testcase output was:<br>
 yylex: ERROR.<br>
 Exception, line 118: SyntaxError - Parse error<br>
 </tt><br>
-<a name='failure54'></a><dd><b>Testcase <a target='other_window' href='./js1_2/Array/tostring_1.js'>js1_2/Array/tostring_1.js</a> failed</b> <br>
- [ <a href='#failure53'>Previous Failure</a> | <a href='#failure55'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
+<a name='failure56'></a><dd><b>Testcase <a target='other_window' href='./js1_2/Array/tostring_1.js'>js1_2/Array/tostring_1.js</a> failed</b> <br>
+ [ <a href='#failure55'>Previous Failure</a> | <a href='#failure57'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
 <tt><br>
 Failure messages were:<br>
 --> var a = new Array(); a.toString() =  FAILED! expected: []<br>
@@ -1152,16 +1138,16 @@ Failure messages were:<br>
 --> var b = new Array(1000); b.toString() = ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, FAILED! expected: [1000]<br>
 --> b.length = 1000 FAILED! expected: 1<br>
 </tt><br>
-<a name='failure55'></a><dd><b>Testcase <a target='other_window' href='./js1_2/Array/tostring_2.js'>js1_2/Array/tostring_2.js</a> failed</b> <br>
- [ <a href='#failure54'>Previous Failure</a> | <a href='#failure56'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
+<a name='failure57'></a><dd><b>Testcase <a target='other_window' href='./js1_2/Array/tostring_2.js'>js1_2/Array/tostring_2.js</a> failed</b> <br>
+ [ <a href='#failure56'>Previous Failure</a> | <a href='#failure58'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
 <tt><br>
 Failure messages were:<br>
 --> a.toString() =  FAILED! expected: []<br>
 --> String( a ) =  FAILED! expected: []<br>
 --> a +'' =  FAILED! expected: []<br>
 </tt><br>
-<a name='failure56'></a><dd><b>Testcase <a target='other_window' href='./js1_2/function/function-001-n.js'>js1_2/function/function-001-n.js</a> failed</b> <br>
- [ <a href='#failure55'>Previous Failure</a> | <a href='#failure57'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
+<a name='failure58'></a><dd><b>Testcase <a target='other_window' href='./js1_2/function/function-001-n.js'>js1_2/function/function-001-n.js</a> failed</b> <br>
+ [ <a href='#failure57'>Previous Failure</a> | <a href='#failure59'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
 <tt>Expected exit code 3, got 0<br>
 Testcase terminated with signal 0<br>
 Complete testcase output was:<br>
@@ -1169,8 +1155,8 @@ Complete testcase output was:<br>
 --> eval("function f(){}function g(){}") = undefined FAILED! expected: error<br>
 OK.<br>
 </tt><br>
-<a name='failure57'></a><dd><b>Testcase <a target='other_window' href='./js1_2/function/Function_object.js'>js1_2/function/Function_object.js</a> failed</b> <br>
- [ <a href='#failure56'>Previous Failure</a> | <a href='#failure58'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
+<a name='failure59'></a><dd><b>Testcase <a target='other_window' href='./js1_2/function/Function_object.js'>js1_2/function/Function_object.js</a> failed</b> <br>
+ [ <a href='#failure58'>Previous Failure</a> | <a href='#failure60'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
 <tt><br>
 Failure messages were:<br>
 --> f.name = undefined FAILED! expected: a_test_function<br>
@@ -1178,29 +1164,29 @@ Failure messages were:<br>
 --> (new Function()).name = undefined FAILED! expected: anonymous<br>
 } FAILED! expected: <br>
 </tt><br>
-<a name='failure58'></a><dd><b>Testcase <a target='other_window' href='./js1_2/function/Number.js'>js1_2/function/Number.js</a> failed</b> <br>
- [ <a href='#failure57'>Previous Failure</a> | <a href='#failure59'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
+<a name='failure60'></a><dd><b>Testcase <a target='other_window' href='./js1_2/function/Number.js'>js1_2/function/Number.js</a> failed</b> <br>
+ [ <a href='#failure59'>Previous Failure</a> | <a href='#failure61'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
 <tt><br>
 Failure messages were:<br>
 --> Number([1,2,3])          = NaN FAILED! expected: 3<br>
 </tt><br>
-<a name='failure59'></a><dd><b>Testcase <a target='other_window' href='./js1_2/function/regexparg-1.js'>js1_2/function/regexparg-1.js</a> failed</b> <br>
- [ <a href='#failure58'>Previous Failure</a> | <a href='#failure60'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
+<a name='failure61'></a><dd><b>Testcase <a target='other_window' href='./js1_2/function/regexparg-1.js'>js1_2/function/regexparg-1.js</a> failed</b> <br>
+ [ <a href='#failure60'>Previous Failure</a> | <a href='#failure62'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
 <tt>Expected exit code 0, got 3<br>
 Testcase terminated with signal 0<br>
 Complete testcase output was:<br>
 --> JS_1.2 The variable statment<br>
 Exception, line 81: TypeError - Object /abc/ (result of expression x) does not allow calls.<br>
 </tt><br>
-<a name='failure60'></a><dd><b>Testcase <a target='other_window' href='./js1_2/function/String.js'>js1_2/function/String.js</a> failed</b> <br>
- [ <a href='#failure59'>Previous Failure</a> | <a href='#failure61'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
+<a name='failure62'></a><dd><b>Testcase <a target='other_window' href='./js1_2/function/String.js'>js1_2/function/String.js</a> failed</b> <br>
+ [ <a href='#failure61'>Previous Failure</a> | <a href='#failure63'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
 <tt><br>
 Failure messages were:<br>
 --> String({p:1})            = [object Object] FAILED! expected: {p:1}<br>
 --> String([1,2,3])             = 1,2,3 FAILED! expected: [1, 2, 3]<br>
 </tt><br>
-<a name='failure61'></a><dd><b>Testcase <a target='other_window' href='./js1_2/function/tostring-1.js'>js1_2/function/tostring-1.js</a> failed</b> <br>
- [ <a href='#failure60'>Previous Failure</a> | <a href='#failure62'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
+<a name='failure63'></a><dd><b>Testcase <a target='other_window' href='./js1_2/function/tostring-1.js'>js1_2/function/tostring-1.js</a> failed</b> <br>
+ [ <a href='#failure62'>Previous Failure</a> | <a href='#failure64'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
 <tt><br>
 Failure messages were:<br>
 } FAILED! expected: <br>
@@ -1209,8 +1195,8 @@ Failure messages were:<br>
 } FAILED! expected: <br>
 } FAILED! expected: <br>
 </tt><br>
-<a name='failure62'></a><dd><b>Testcase <a target='other_window' href='./js1_2/function/tostring-2.js'>js1_2/function/tostring-2.js</a> failed</b> <br>
- [ <a href='#failure61'>Previous Failure</a> | <a href='#failure63'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
+<a name='failure64'></a><dd><b>Testcase <a target='other_window' href='./js1_2/function/tostring-2.js'>js1_2/function/tostring-2.js</a> failed</b> <br>
+ [ <a href='#failure63'>Previous Failure</a> | <a href='#failure65'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
 <tt><br>
 Failure messages were:<br>
 } FAILED! expected: <br>
@@ -1223,29 +1209,29 @@ Failure messages were:<br>
 } FAILED! expected: <br>
 } FAILED! expected: <br>
 </tt><br>
-<a name='failure63'></a><dd><b>Testcase <a target='other_window' href='./js1_2/Objects/toString-001.js'>js1_2/Objects/toString-001.js</a> failed</b> <br>
- [ <a href='#failure62'>Previous Failure</a> | <a href='#failure64'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
+<a name='failure65'></a><dd><b>Testcase <a target='other_window' href='./js1_2/Objects/toString-001.js'>js1_2/Objects/toString-001.js</a> failed</b> <br>
+ [ <a href='#failure64'>Previous Failure</a> | <a href='#failure66'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
 <tt>Expected exit code 0, got 3<br>
 Testcase terminated with signal 0<br>
 Complete testcase output was:<br>
 --> JS1_2 Object.toString()<br>
 Exception, line 104: TypeError - Object /^\{(.*)\}$/ (result of expression ^\{(.*)\}$) does not allow calls.<br>
 </tt><br>
-<a name='failure64'></a><dd><b>Testcase <a target='other_window' href='./js1_2/operator/equality.js'>js1_2/operator/equality.js</a> failed</b> <br>
- [ <a href='#failure63'>Previous Failure</a> | <a href='#failure65'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
+<a name='failure66'></a><dd><b>Testcase <a target='other_window' href='./js1_2/operator/equality.js'>js1_2/operator/equality.js</a> failed</b> <br>
+ [ <a href='#failure65'>Previous Failure</a> | <a href='#failure67'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
 <tt><br>
 Failure messages were:<br>
 --> (new String('x') == 'x')                  = true FAILED! expected: false<br>
 --> ('x' == new String('x'))                  = true FAILED! expected: false<br>
 </tt><br>
-<a name='failure65'></a><dd><b>Testcase <a target='other_window' href='./js1_2/regexp/beginLine.js'>js1_2/regexp/beginLine.js</a> failed</b> <br>
- [ <a href='#failure64'>Previous Failure</a> | <a href='#failure66'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
+<a name='failure67'></a><dd><b>Testcase <a target='other_window' href='./js1_2/regexp/beginLine.js'>js1_2/regexp/beginLine.js</a> failed</b> <br>
+ [ <a href='#failure66'>Previous Failure</a> | <a href='#failure68'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
 <tt><br>
 Failure messages were:<br>
 123xyz'.match(new RegExp('^\d+')) = null FAILED! expected: 123<br>
 </tt><br>
-<a name='failure66'></a><dd><b>Testcase <a target='other_window' href='./js1_2/regexp/compile.js'>js1_2/regexp/compile.js</a> failed</b> <br>
- [ <a href='#failure65'>Previous Failure</a> | <a href='#failure67'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
+<a name='failure68'></a><dd><b>Testcase <a target='other_window' href='./js1_2/regexp/compile.js'>js1_2/regexp/compile.js</a> failed</b> <br>
+ [ <a href='#failure67'>Previous Failure</a> | <a href='#failure69'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
 <tt>Expected exit code 0, got 3<br>
 Testcase terminated with signal 0<br>
 Complete testcase output was:<br>
@@ -1253,14 +1239,14 @@ Complete testcase output was:<br>
 --> As described in Netscape doc "Whats new in JavaScript 1.2" RegExp: compile<br>
 Exception, line 44: TypeError - Value undefined (result of expression regularExpression.compile) is not object.<br>
 </tt><br>
-<a name='failure67'></a><dd><b>Testcase <a target='other_window' href='./js1_2/regexp/endLine.js'>js1_2/regexp/endLine.js</a> failed</b> <br>
- [ <a href='#failure66'>Previous Failure</a> | <a href='#failure68'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
+<a name='failure69'></a><dd><b>Testcase <a target='other_window' href='./js1_2/regexp/endLine.js'>js1_2/regexp/endLine.js</a> failed</b> <br>
+ [ <a href='#failure68'>Previous Failure</a> | <a href='#failure70'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
 <tt><br>
 Failure messages were:<br>
 xyz'.match(new RegExp('\d+$')) = null FAILED! expected: 890<br>
 </tt><br>
-<a name='failure68'></a><dd><b>Testcase <a target='other_window' href='./js1_2/regexp/RegExp_input.js'>js1_2/regexp/RegExp_input.js</a> failed</b> <br>
- [ <a href='#failure67'>Previous Failure</a> | <a href='#failure69'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
+<a name='failure70'></a><dd><b>Testcase <a target='other_window' href='./js1_2/regexp/RegExp_input.js'>js1_2/regexp/RegExp_input.js</a> failed</b> <br>
+ [ <a href='#failure69'>Previous Failure</a> | <a href='#failure71'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
 <tt><br>
 Failure messages were:<br>
 --> RegExp.input = 'abcd12357efg'; /\d+/.exec() = null FAILED! expected: 12357<br>
@@ -1269,8 +1255,8 @@ Failure messages were:<br>
 --> RegExp.input = 'abcd12357efg'; /[h-z]+/.test() = true FAILED! expected: false<br>
 --> RegExp.input = 'abcd12357efg'; (new RegExp('[h-z]+')).test() = true FAILED! expected: false<br>
 </tt><br>
-<a name='failure69'></a><dd><b>Testcase <a target='other_window' href='./js1_2/regexp/RegExp_input_as_array.js'>js1_2/regexp/RegExp_input_as_array.js</a> failed</b> <br>
- [ <a href='#failure68'>Previous Failure</a> | <a href='#failure70'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
+<a name='failure71'></a><dd><b>Testcase <a target='other_window' href='./js1_2/regexp/RegExp_input_as_array.js'>js1_2/regexp/RegExp_input_as_array.js</a> failed</b> <br>
+ [ <a href='#failure70'>Previous Failure</a> | <a href='#failure72'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
 <tt><br>
 Failure messages were:<br>
 --> RegExp['$_'] = 'abcd12357efg'; /\d+/.exec() = null FAILED! expected: 12357<br>
@@ -1279,15 +1265,15 @@ Failure messages were:<br>
 --> RegExp['$_'] = 'abcd12357efg'; /[h-z]+/.test() = true FAILED! expected: false<br>
 --> RegExp['$_'] = 'abcd12357efg'; (new RegExp('[h-z]+')).test() = true FAILED! expected: false<br>
 </tt><br>
-<a name='failure70'></a><dd><b>Testcase <a target='other_window' href='./js1_2/regexp/RegExp_lastIndex.js'>js1_2/regexp/RegExp_lastIndex.js</a> failed</b> <br>
- [ <a href='#failure69'>Previous Failure</a> | <a href='#failure71'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
+<a name='failure72'></a><dd><b>Testcase <a target='other_window' href='./js1_2/regexp/RegExp_lastIndex.js'>js1_2/regexp/RegExp_lastIndex.js</a> failed</b> <br>
+ [ <a href='#failure71'>Previous Failure</a> | <a href='#failure73'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
 <tt><br>
 Failure messages were:<br>
 --> re=/x./g; re.lastIndex=4; re.exec('xyabcdxa') = xa FAILED! expected: ["xa"]<br>
 --> re.exec('xyabcdef') = xy FAILED! expected: ["xy"]<br>
 </tt><br>
-<a name='failure71'></a><dd><b>Testcase <a target='other_window' href='./js1_2/regexp/RegExp_lastMatch.js'>js1_2/regexp/RegExp_lastMatch.js</a> failed</b> <br>
- [ <a href='#failure70'>Previous Failure</a> | <a href='#failure72'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
+<a name='failure73'></a><dd><b>Testcase <a target='other_window' href='./js1_2/regexp/RegExp_lastMatch.js'>js1_2/regexp/RegExp_lastMatch.js</a> failed</b> <br>
+ [ <a href='#failure72'>Previous Failure</a> | <a href='#failure74'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
 <tt><br>
 Failure messages were:<br>
 --> 'foo'.match(/foo/); RegExp.lastMatch = undefined FAILED! expected: foo<br>
@@ -1297,8 +1283,8 @@ Failure messages were:<br>
 --> 'abcdefg'.match(/^..(cd)[a-z]+/); RegExp.lastMatch = undefined FAILED! expected: abcdefg<br>
 --> 'abcdefgabcdefg'.match(/(a(b(c(d)e)f)g)\1/); RegExp.lastMatch = undefined FAILED! expected: abcdefgabcdefg<br>
 </tt><br>
-<a name='failure72'></a><dd><b>Testcase <a target='other_window' href='./js1_2/regexp/RegExp_lastMatch_as_array.js'>js1_2/regexp/RegExp_lastMatch_as_array.js</a> failed</b> <br>
- [ <a href='#failure71'>Previous Failure</a> | <a href='#failure73'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
+<a name='failure74'></a><dd><b>Testcase <a target='other_window' href='./js1_2/regexp/RegExp_lastMatch_as_array.js'>js1_2/regexp/RegExp_lastMatch_as_array.js</a> failed</b> <br>
+ [ <a href='#failure73'>Previous Failure</a> | <a href='#failure75'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
 <tt><br>
 Failure messages were:<br>
 --> 'foo'.match(/foo/); RegExp['$&'] = undefined FAILED! expected: foo<br>
@@ -1308,8 +1294,8 @@ Failure messages were:<br>
 --> 'abcdefg'.match(/^..(cd)[a-z]+/); RegExp['$&'] = undefined FAILED! expected: abcdefg<br>
 --> 'abcdefgabcdefg'.match(/(a(b(c(d)e)f)g)\1/); RegExp['$&'] = undefined FAILED! expected: abcdefgabcdefg<br>
 </tt><br>
-<a name='failure73'></a><dd><b>Testcase <a target='other_window' href='./js1_2/regexp/RegExp_lastParen.js'>js1_2/regexp/RegExp_lastParen.js</a> failed</b> <br>
- [ <a href='#failure72'>Previous Failure</a> | <a href='#failure74'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
+<a name='failure75'></a><dd><b>Testcase <a target='other_window' href='./js1_2/regexp/RegExp_lastParen.js'>js1_2/regexp/RegExp_lastParen.js</a> failed</b> <br>
+ [ <a href='#failure74'>Previous Failure</a> | <a href='#failure76'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
 <tt><br>
 Failure messages were:<br>
 --> 'abcd'.match(/(abc)d/); RegExp.lastParen = undefined FAILED! expected: abc<br>
@@ -1322,8 +1308,8 @@ Failure messages were:<br>
 --> 'abcdefg'.match(new RegExp('(^a)bc')); RegExp.lastParen = undefined FAILED! expected: a<br>
 --> 'abcdefg'.match(/bc/); RegExp.lastParen = undefined FAILED! expected: <br>
 </tt><br>
-<a name='failure74'></a><dd><b>Testcase <a target='other_window' href='./js1_2/regexp/RegExp_lastParen_as_array.js'>js1_2/regexp/RegExp_lastParen_as_array.js</a> failed</b> <br>
- [ <a href='#failure73'>Previous Failure</a> | <a href='#failure75'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
+<a name='failure76'></a><dd><b>Testcase <a target='other_window' href='./js1_2/regexp/RegExp_lastParen_as_array.js'>js1_2/regexp/RegExp_lastParen_as_array.js</a> failed</b> <br>
+ [ <a href='#failure75'>Previous Failure</a> | <a href='#failure77'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
 <tt><br>
 Failure messages were:<br>
 --> 'abcd'.match(/(abc)d/); RegExp['$+'] = undefined FAILED! expected: abc<br>
@@ -1336,8 +1322,8 @@ Failure messages were:<br>
 --> 'abcdefg'.match(new RegExp('(^a)bc')); RegExp['$+'] = undefined FAILED! expected: a<br>
 --> 'abcdefg'.match(/bc/); RegExp['$+'] = undefined FAILED! expected: <br>
 </tt><br>
-<a name='failure75'></a><dd><b>Testcase <a target='other_window' href='./js1_2/regexp/RegExp_leftContext.js'>js1_2/regexp/RegExp_leftContext.js</a> failed</b> <br>
- [ <a href='#failure74'>Previous Failure</a> | <a href='#failure76'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
+<a name='failure77'></a><dd><b>Testcase <a target='other_window' href='./js1_2/regexp/RegExp_leftContext.js'>js1_2/regexp/RegExp_leftContext.js</a> failed</b> <br>
+ [ <a href='#failure76'>Previous Failure</a> | <a href='#failure78'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
 <tt><br>
 Failure messages were:<br>
 --> 'abc123xyz'.match(/123/); RegExp.leftContext = undefined FAILED! expected: abc<br>
@@ -1348,8 +1334,8 @@ Failure messages were:<br>
 --> 'xxxx'.match(new RegExp('$')); RegExp.leftContext = undefined FAILED! expected: xxxx<br>
 --> 'test'.match(new RegExp('^')); RegExp.leftContext = undefined FAILED! expected: <br>
 </tt><br>
-<a name='failure76'></a><dd><b>Testcase <a target='other_window' href='./js1_2/regexp/RegExp_leftContext_as_array.js'>js1_2/regexp/RegExp_leftContext_as_array.js</a> failed</b> <br>
- [ <a href='#failure75'>Previous Failure</a> | <a href='#failure77'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
+<a name='failure78'></a><dd><b>Testcase <a target='other_window' href='./js1_2/regexp/RegExp_leftContext_as_array.js'>js1_2/regexp/RegExp_leftContext_as_array.js</a> failed</b> <br>
+ [ <a href='#failure77'>Previous Failure</a> | <a href='#failure79'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
 <tt><br>
 Failure messages were:<br>
 --> 'abc123xyz'.match(/123/); RegExp['$`'] = undefined FAILED! expected: abc<br>
@@ -1360,8 +1346,8 @@ Failure messages were:<br>
 --> 'xxxx'.match(new RegExp('$')); RegExp['$`'] = undefined FAILED! expected: xxxx<br>
 --> 'test'.match(new RegExp('^')); RegExp['$`'] = undefined FAILED! expected: <br>
 </tt><br>
-<a name='failure77'></a><dd><b>Testcase <a target='other_window' href='./js1_2/regexp/RegExp_multiline.js'>js1_2/regexp/RegExp_multiline.js</a> failed</b> <br>
- [ <a href='#failure76'>Previous Failure</a> | <a href='#failure78'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
+<a name='failure79'></a><dd><b>Testcase <a target='other_window' href='./js1_2/regexp/RegExp_multiline.js'>js1_2/regexp/RegExp_multiline.js</a> failed</b> <br>
+ [ <a href='#failure78'>Previous Failure</a> | <a href='#failure80'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
 <tt><br>
 Failure messages were:<br>
 --> RegExp.multiline = undefined FAILED! expected: false<br>
@@ -1371,8 +1357,8 @@ Failure messages were:<br>
 --> (multiline == true) 'a11\na22\na23\na24'.match(/a..$/g) = a24 FAILED! expected: a11,a22,a23,a24<br>
 --> (multiline == true) 'a11\na22\na23\na24'.match(new RegExp('a..$','g')) = a24 FAILED! expected: a11,a22,a23,a24<br>
 </tt><br>
-<a name='failure78'></a><dd><b>Testcase <a target='other_window' href='./js1_2/regexp/RegExp_multiline_as_array.js'>js1_2/regexp/RegExp_multiline_as_array.js</a> failed</b> <br>
- [ <a href='#failure77'>Previous Failure</a> | <a href='#failure79'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
+<a name='failure80'></a><dd><b>Testcase <a target='other_window' href='./js1_2/regexp/RegExp_multiline_as_array.js'>js1_2/regexp/RegExp_multiline_as_array.js</a> failed</b> <br>
+ [ <a href='#failure79'>Previous Failure</a> | <a href='#failure81'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
 <tt><br>
 Failure messages were:<br>
 --> RegExp['$*'] = undefined FAILED! expected: false<br>
@@ -1382,8 +1368,8 @@ Failure messages were:<br>
 --> (['$*'] == true) 'a11\na22\na23\na24'.match(/a..$/g) = a24 FAILED! expected: a11,a22,a23,a24<br>
 --> (['$*'] == true) 'a11\na22\na23\na24'.match(new RegExp('a..$','g')) = a24 FAILED! expected: a11,a22,a23,a24<br>
 </tt><br>
-<a name='failure79'></a><dd><b>Testcase <a target='other_window' href='./js1_2/regexp/RegExp_rightContext.js'>js1_2/regexp/RegExp_rightContext.js</a> failed</b> <br>
- [ <a href='#failure78'>Previous Failure</a> | <a href='#failure80'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
+<a name='failure81'></a><dd><b>Testcase <a target='other_window' href='./js1_2/regexp/RegExp_rightContext.js'>js1_2/regexp/RegExp_rightContext.js</a> failed</b> <br>
+ [ <a href='#failure80'>Previous Failure</a> | <a href='#failure82'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
 <tt><br>
 Failure messages were:<br>
 --> 'abc123xyz'.match(/123/); RegExp.rightContext = undefined FAILED! expected: xyz<br>
@@ -1394,8 +1380,8 @@ Failure messages were:<br>
 --> 'xxxx'.match(new RegExp('$')); RegExp.rightContext = undefined FAILED! expected: <br>
 --> 'test'.match(new RegExp('^')); RegExp.rightContext = undefined FAILED! expected: test<br>
 </tt><br>
-<a name='failure80'></a><dd><b>Testcase <a target='other_window' href='./js1_2/regexp/RegExp_rightContext_as_array.js'>js1_2/regexp/RegExp_rightContext_as_array.js</a> failed</b> <br>
- [ <a href='#failure79'>Previous Failure</a> | <a href='#failure81'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
+<a name='failure82'></a><dd><b>Testcase <a target='other_window' href='./js1_2/regexp/RegExp_rightContext_as_array.js'>js1_2/regexp/RegExp_rightContext_as_array.js</a> failed</b> <br>
+ [ <a href='#failure81'>Previous Failure</a> | <a href='#failure83'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
 <tt><br>
 Failure messages were:<br>
 --> 'abc123xyz'.match(/123/); RegExp['$''] = undefined FAILED! expected: xyz<br>
@@ -1406,24 +1392,24 @@ Failure messages were:<br>
 --> 'xxxx'.match(new RegExp('$')); RegExp['$''] = undefined FAILED! expected: <br>
 --> 'test'.match(new RegExp('^')); RegExp['$''] = undefined FAILED! expected: test<br>
 </tt><br>
-<a name='failure81'></a><dd><b>Testcase <a target='other_window' href='./js1_2/regexp/regress-6359.js'>js1_2/regexp/regress-6359.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=http://bugzilla.mozilla.org/show_bug.cgi?id=6359' target='other_window'>Bug Number http://bugzilla.mozilla.org/show_bug.cgi?id=6359</a><br>
- [ <a href='#failure80'>Previous Failure</a> | <a href='#failure82'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
+<a name='failure83'></a><dd><b>Testcase <a target='other_window' href='./js1_2/regexp/regress-6359.js'>js1_2/regexp/regress-6359.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=http://bugzilla.mozilla.org/show_bug.cgi?id=6359' target='other_window'>Bug Number http://bugzilla.mozilla.org/show_bug.cgi?id=6359</a><br>
+ [ <a href='#failure82'>Previous Failure</a> | <a href='#failure84'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
 <tt>Expected exit code 0, got 3<br>
 Testcase terminated with signal 0<br>
 Complete testcase output was:<br>
 --> BUGNUMBER: http://bugzilla.mozilla.org/show_bug.cgi?id=6359<br>
 Exception, line 57: TypeError - Object /(a*)b\1+/ (result of expression (a*)b\1+) does not allow calls.<br>
 </tt><br>
-<a name='failure82'></a><dd><b>Testcase <a target='other_window' href='./js1_2/regexp/regress-9141.js'>js1_2/regexp/regress-9141.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=http://bugzilla.mozilla.org/show_bug.cgi?id=9141' target='other_window'>Bug Number http://bugzilla.mozilla.org/show_bug.cgi?id=9141</a><br>
- [ <a href='#failure81'>Previous Failure</a> | <a href='#failure83'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
+<a name='failure84'></a><dd><b>Testcase <a target='other_window' href='./js1_2/regexp/regress-9141.js'>js1_2/regexp/regress-9141.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=http://bugzilla.mozilla.org/show_bug.cgi?id=9141' target='other_window'>Bug Number http://bugzilla.mozilla.org/show_bug.cgi?id=9141</a><br>
+ [ <a href='#failure83'>Previous Failure</a> | <a href='#failure85'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
 <tt>Expected exit code 0, got 3<br>
 Testcase terminated with signal 0<br>
 Complete testcase output was:<br>
 --> BUGNUMBER: http://bugzilla.mozilla.org/show_bug.cgi?id=9141<br>
 Exception, line 74: TypeError - Object /(?:xx|x)*/ (result of expression (?:xx|x)*) does not allow calls.<br>
 </tt><br>
-<a name='failure83'></a><dd><b>Testcase <a target='other_window' href='./js1_2/regexp/simple_form.js'>js1_2/regexp/simple_form.js</a> failed</b> <br>
- [ <a href='#failure82'>Previous Failure</a> | <a href='#failure84'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
+<a name='failure85'></a><dd><b>Testcase <a target='other_window' href='./js1_2/regexp/simple_form.js'>js1_2/regexp/simple_form.js</a> failed</b> <br>
+ [ <a href='#failure84'>Previous Failure</a> | <a href='#failure86'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
 <tt>Expected exit code 0, got 3<br>
 Testcase terminated with signal 0<br>
 Complete testcase output was:<br>
@@ -1431,14 +1417,14 @@ Complete testcase output was:<br>
 --> As described in Netscape doc "Whats new in JavaScript 1.2" RegExp: simple form<br>
 Exception, line 44: TypeError - Object /[0-9]{3}/ (result of expression [0-9]{3}) does not allow calls.<br>
 </tt><br>
-<a name='failure84'></a><dd><b>Testcase <a target='other_window' href='./js1_2/regexp/special_characters.js'>js1_2/regexp/special_characters.js</a> failed</b> <br>
- [ <a href='#failure83'>Previous Failure</a> | <a href='#failure85'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
+<a name='failure86'></a><dd><b>Testcase <a target='other_window' href='./js1_2/regexp/special_characters.js'>js1_2/regexp/special_characters.js</a> failed</b> <br>
+ [ <a href='#failure85'>Previous Failure</a> | <a href='#failure87'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
 <tt><br>
 Failure messages were:<br>
 --> 'a\v\vb a  b'.match(/a\v{2}/) = null FAILED! expected: a\v\v<br>
 </tt><br>
-<a name='failure85'></a><dd><b>Testcase <a target='other_window' href='./js1_2/regexp/string_split.js'>js1_2/regexp/string_split.js</a> failed</b> <br>
- [ <a href='#failure84'>Previous Failure</a> | <a href='#failure86'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
+<a name='failure87'></a><dd><b>Testcase <a target='other_window' href='./js1_2/regexp/string_split.js'>js1_2/regexp/string_split.js</a> failed</b> <br>
+ [ <a href='#failure86'>Previous Failure</a> | <a href='#failure88'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
 <tt><br>
 Failure messages were:<br>
 --> 'abc'.split(/[a-z]/) = ,,, FAILED! expected: ,,<br>
@@ -1446,8 +1432,8 @@ Failure messages were:<br>
 --> 'abc'.split(new RegExp('[a-z]')) = ,,, FAILED! expected: ,,<br>
 --> 'abc'.split(new RegExp('[a-z]')) = ,,, FAILED! expected: ,,<br>
 </tt><br>
-<a name='failure86'></a><dd><b>Testcase <a target='other_window' href='./js1_2/String/concat.js'>js1_2/String/concat.js</a> failed</b> <br>
- [ <a href='#failure85'>Previous Failure</a> | <a href='#failure87'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
+<a name='failure88'></a><dd><b>Testcase <a target='other_window' href='./js1_2/String/concat.js'>js1_2/String/concat.js</a> failed</b> <br>
+ [ <a href='#failure87'>Previous Failure</a> | <a href='#failure89'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
 <tt><br>
 Failure messages were:<br>
 --> aString.concat([])      = test string FAILED! expected: test string[]<br>
@@ -1455,29 +1441,29 @@ Failure messages were:<br>
 --> 'abcde'.concat([])      = abcde FAILED! expected: abcde[]<br>
 --> 'abcde'.concat([1,2,3]) = abcde1,2,3 FAILED! expected: abcde[1, 2, 3]<br>
 </tt><br>
-<a name='failure87'></a><dd><b>Testcase <a target='other_window' href='./js1_2/String/slice.js'>js1_2/String/slice.js</a> failed</b> <br>
- [ <a href='#failure86'>Previous Failure</a> | <a href='#failure88'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
+<a name='failure89'></a><dd><b>Testcase <a target='other_window' href='./js1_2/String/slice.js'>js1_2/String/slice.js</a> failed</b> <br>
+ [ <a href='#failure88'>Previous Failure</a> | <a href='#failure90'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
 <tt><br>
 Failure messages were:<br>
 --> exhaustive String.slice test 1 = false FAILED! expected: true<br>
 --> exhaustive String.slice test 2 = false FAILED! expected: true<br>
 </tt><br>
-<a name='failure88'></a><dd><b>Testcase <a target='other_window' href='./js1_2/version120/boolean-001.js'>js1_2/version120/boolean-001.js</a> failed</b> <br>
- [ <a href='#failure87'>Previous Failure</a> | <a href='#failure89'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
+<a name='failure90'></a><dd><b>Testcase <a target='other_window' href='./js1_2/version120/boolean-001.js'>js1_2/version120/boolean-001.js</a> failed</b> <br>
+ [ <a href='#failure89'>Previous Failure</a> | <a href='#failure91'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
 <tt><br>
 Failure messages were:<br>
 --> new Boolean(false) = true FAILED! expected: false<br>
 </tt><br>
-<a name='failure89'></a><dd><b>Testcase <a target='other_window' href='./js1_2/version120/regress-99663.js'>js1_2/version120/regress-99663.js</a> failed</b> <br>
- [ <a href='#failure88'>Previous Failure</a> | <a href='#failure90'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
+<a name='failure91'></a><dd><b>Testcase <a target='other_window' href='./js1_2/version120/regress-99663.js'>js1_2/version120/regress-99663.js</a> failed</b> <br>
+ [ <a href='#failure90'>Previous Failure</a> | <a href='#failure92'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
 <tt>--> STATUS: Regression test for Bugzilla bug 99663<br>
 Failure messages were:<br>
 --> Section 1 of test - got Error: Can't find variable: it FAILED! expected: a "read-only" error<br>
 --> Section 2 of test - got Error: Can't find variable: it FAILED! expected: a "read-only" error<br>
 --> Section 3 of test - got Error: Can't find variable: it FAILED! expected: a "read-only" error<br>
 </tt><br>
-<a name='failure90'></a><dd><b>Testcase <a target='other_window' href='./js1_3/regress/function-001-n.js'>js1_3/regress/function-001-n.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=10278' target='other_window'>Bug Number 10278</a><br>
- [ <a href='#failure89'>Previous Failure</a> | <a href='#failure91'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
+<a name='failure92'></a><dd><b>Testcase <a target='other_window' href='./js1_3/regress/function-001-n.js'>js1_3/regress/function-001-n.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=10278' target='other_window'>Bug Number 10278</a><br>
+ [ <a href='#failure91'>Previous Failure</a> | <a href='#failure93'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
 <tt>Expected exit code 3, got 0<br>
 Testcase terminated with signal 0<br>
 Complete testcase output was:<br>
@@ -1486,8 +1472,8 @@ Complete testcase output was:<br>
 --> eval("function f(){}function g(){}") = undefined FAILED! expected: error<br>
 OK.<br>
 </tt><br>
-<a name='failure91'></a><dd><b>Testcase <a target='other_window' href='./js1_3/Script/function-001-n.js'>js1_3/Script/function-001-n.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=10278' target='other_window'>Bug Number 10278</a><br>
- [ <a href='#failure90'>Previous Failure</a> | <a href='#failure92'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
+<a name='failure93'></a><dd><b>Testcase <a target='other_window' href='./js1_3/Script/function-001-n.js'>js1_3/Script/function-001-n.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=10278' target='other_window'>Bug Number 10278</a><br>
+ [ <a href='#failure92'>Previous Failure</a> | <a href='#failure94'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
 <tt>Expected exit code 3, got 0<br>
 Testcase terminated with signal 0<br>
 Complete testcase output was:<br>
@@ -1496,28 +1482,28 @@ Complete testcase output was:<br>
 --> eval("function f(){}function g(){}") = undefined FAILED! expected: error<br>
 OK.<br>
 </tt><br>
-<a name='failure92'></a><dd><b>Testcase <a target='other_window' href='./js1_3/Script/script-001.js'>js1_3/Script/script-001.js</a> failed</b> <br>
- [ <a href='#failure91'>Previous Failure</a> | <a href='#failure93'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
+<a name='failure94'></a><dd><b>Testcase <a target='other_window' href='./js1_3/Script/script-001.js'>js1_3/Script/script-001.js</a> failed</b> <br>
+ [ <a href='#failure93'>Previous Failure</a> | <a href='#failure95'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
 <tt>Expected exit code 0, got 3<br>
 Testcase terminated with signal 0<br>
 Complete testcase output was:<br>
 --> script-001 NativeScript<br>
 Exception, line 134: ReferenceError - Can't find variable: Script<br>
 </tt><br>
-<a name='failure93'></a><dd><b>Testcase <a target='other_window' href='./js1_4/Regress/function-002.js'>js1_4/Regress/function-002.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=330462' target='other_window'>Bug Number 330462</a><br>
- [ <a href='#failure92'>Previous Failure</a> | <a href='#failure94'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
+<a name='failure95'></a><dd><b>Testcase <a target='other_window' href='./js1_4/Regress/function-002.js'>js1_4/Regress/function-002.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=330462' target='other_window'>Bug Number 330462</a><br>
+ [ <a href='#failure94'>Previous Failure</a> | <a href='#failure96'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
 <tt><br>
 Failure messages were:<br>
 --> f1.toString() == dec1 = false FAILED! expected: true<br>
 </tt><br>
-<a name='failure94'></a><dd><b>Testcase <a target='other_window' href='./js1_4/Regress/function-003.js'>js1_4/Regress/function-003.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=310514' target='other_window'>Bug Number 310514</a><br>
- [ <a href='#failure93'>Previous Failure</a> | <a href='#failure95'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
+<a name='failure96'></a><dd><b>Testcase <a target='other_window' href='./js1_4/Regress/function-003.js'>js1_4/Regress/function-003.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=310514' target='other_window'>Bug Number 310514</a><br>
+ [ <a href='#failure95'>Previous Failure</a> | <a href='#failure97'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
 <tt><br>
 Failure messages were:<br>
 --> StripSpaces(Array.prototype.concat.toString()).substring(0,17) = (InternalFunction FAILED! expected: functionconcat(){<br>
 </tt><br>
-<a name='failure95'></a><dd><b>Testcase <a target='other_window' href='./js1_5/Array/regress-157652.js'>js1_5/Array/regress-157652.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=157652' target='other_window'>Bug Number 157652</a><br>
- [ <a href='#failure94'>Previous Failure</a> | <a href='#failure96'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
+<a name='failure97'></a><dd><b>Testcase <a target='other_window' href='./js1_5/Array/regress-157652.js'>js1_5/Array/regress-157652.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=157652' target='other_window'>Bug Number 157652</a><br>
+ [ <a href='#failure96'>Previous Failure</a> | <a href='#failure98'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
 <tt>Expected exit code 3, got 0<br>
 Testcase terminated with signal 0<br>
 Complete testcase output was:<br>
@@ -1526,36 +1512,36 @@ Complete testcase output was:<br>
 --> --- NOTE: IN THIS TESTCASE, WE EXPECT EXIT CODE 3 ---<br>
 OK.<br>
 </tt><br>
-<a name='failure96'></a><dd><b>Testcase <a target='other_window' href='./js1_5/Exceptions/catchguard-001.js'>js1_5/Exceptions/catchguard-001.js</a> failed</b> <br>
- [ <a href='#failure95'>Previous Failure</a> | <a href='#failure97'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
+<a name='failure98'></a><dd><b>Testcase <a target='other_window' href='./js1_5/Exceptions/catchguard-001.js'>js1_5/Exceptions/catchguard-001.js</a> failed</b> <br>
+ [ <a href='#failure97'>Previous Failure</a> | <a href='#failure99'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
 <tt>Expected exit code 0, got 3<br>
 Testcase terminated with signal 0<br>
 Complete testcase output was:<br>
 Exception, line 42: SyntaxError - Parse error<br>
 </tt><br>
-<a name='failure97'></a><dd><b>Testcase <a target='other_window' href='./js1_5/Exceptions/catchguard-002.js'>js1_5/Exceptions/catchguard-002.js</a> failed</b> <br>
- [ <a href='#failure96'>Previous Failure</a> | <a href='#failure98'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
+<a name='failure99'></a><dd><b>Testcase <a target='other_window' href='./js1_5/Exceptions/catchguard-002.js'>js1_5/Exceptions/catchguard-002.js</a> failed</b> <br>
+ [ <a href='#failure98'>Previous Failure</a> | <a href='#failure100'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
 <tt>Expected exit code 0, got 3<br>
 Testcase terminated with signal 0<br>
 Complete testcase output was:<br>
 Exception, line 42: SyntaxError - Parse error<br>
 </tt><br>
-<a name='failure98'></a><dd><b>Testcase <a target='other_window' href='./js1_5/Exceptions/catchguard-003.js'>js1_5/Exceptions/catchguard-003.js</a> failed</b> <br>
- [ <a href='#failure97'>Previous Failure</a> | <a href='#failure99'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
+<a name='failure100'></a><dd><b>Testcase <a target='other_window' href='./js1_5/Exceptions/catchguard-003.js'>js1_5/Exceptions/catchguard-003.js</a> failed</b> <br>
+ [ <a href='#failure99'>Previous Failure</a> | <a href='#failure101'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
 <tt>Expected exit code 0, got 3<br>
 Testcase terminated with signal 0<br>
 Complete testcase output was:<br>
 Exception, line 42: SyntaxError - Parse error<br>
 </tt><br>
-<a name='failure99'></a><dd><b>Testcase <a target='other_window' href='./js1_5/Exceptions/errstack-001.js'>js1_5/Exceptions/errstack-001.js</a> failed</b> <br>
- [ <a href='#failure98'>Previous Failure</a> | <a href='#failure100'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
+<a name='failure101'></a><dd><b>Testcase <a target='other_window' href='./js1_5/Exceptions/errstack-001.js'>js1_5/Exceptions/errstack-001.js</a> failed</b> <br>
+ [ <a href='#failure100'>Previous Failure</a> | <a href='#failure102'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
 <tt>Expected exit code 0, got 3<br>
 Testcase terminated with signal 0<br>
 Complete testcase output was:<br>
 Exception, line 248: TypeError - Undefined value<br>
 </tt><br>
-<a name='failure100'></a><dd><b>Testcase <a target='other_window' href='./js1_5/Exceptions/regress-123002.js'>js1_5/Exceptions/regress-123002.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=123002' target='other_window'>Bug Number 123002</a><br>
- [ <a href='#failure99'>Previous Failure</a> | <a href='#failure101'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
+<a name='failure102'></a><dd><b>Testcase <a target='other_window' href='./js1_5/Exceptions/regress-123002.js'>js1_5/Exceptions/regress-123002.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=123002' target='other_window'>Bug Number 123002</a><br>
+ [ <a href='#failure101'>Previous Failure</a> | <a href='#failure103'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
 <tt>--> STATUS: Testing Error.length<br>
 Failure messages were:<br>
 --> FAILED!: [reported from test()] Section "Error" of test -<br>
@@ -1580,8 +1566,8 @@ Failure messages were:<br>
 --> FAILED!: [reported from test()] Expected value '3', Actual value '0'<br>
 --> FAILED!: [reported from test()] <br>
 </tt><br>
-<a name='failure101'></a><dd><b>Testcase <a target='other_window' href='./js1_5/Exceptions/regress-50447.js'>js1_5/Exceptions/regress-50447.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=50447' target='other_window'>Bug Number 50447</a><br>
- [ <a href='#failure100'>Previous Failure</a> | <a href='#failure102'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
+<a name='failure103'></a><dd><b>Testcase <a target='other_window' href='./js1_5/Exceptions/regress-50447.js'>js1_5/Exceptions/regress-50447.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=50447' target='other_window'>Bug Number 50447</a><br>
+ [ <a href='#failure102'>Previous Failure</a> | <a href='#failure104'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
 <tt>Expected exit code 0, got 3<br>
 Testcase terminated with signal 0<br>
 Complete testcase output was:<br>
@@ -1589,78 +1575,78 @@ Complete testcase output was:<br>
 --> STATUS: Test (non-ECMA) Error object properties fileName, lineNumber<br>
 Exception, line 66: TypeError - Undefined value<br>
 </tt><br>
-<a name='failure102'></a><dd><b>Testcase <a target='other_window' href='./js1_5/GetSet/getset-001.js'>js1_5/GetSet/getset-001.js</a> failed</b> <br>
- [ <a href='#failure101'>Previous Failure</a> | <a href='#failure103'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
+<a name='failure104'></a><dd><b>Testcase <a target='other_window' href='./js1_5/GetSet/getset-001.js'>js1_5/GetSet/getset-001.js</a> failed</b> <br>
+ [ <a href='#failure103'>Previous Failure</a> | <a href='#failure105'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
 <tt>Expected exit code 0, got 3<br>
 Testcase terminated with signal 0<br>
 Complete testcase output was:<br>
 Exception, line 33: SyntaxError - Parse error<br>
 </tt><br>
-<a name='failure103'></a><dd><b>Testcase <a target='other_window' href='./js1_5/GetSet/getset-002.js'>js1_5/GetSet/getset-002.js</a> failed</b> <br>
- [ <a href='#failure102'>Previous Failure</a> | <a href='#failure104'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
+<a name='failure105'></a><dd><b>Testcase <a target='other_window' href='./js1_5/GetSet/getset-002.js'>js1_5/GetSet/getset-002.js</a> failed</b> <br>
+ [ <a href='#failure104'>Previous Failure</a> | <a href='#failure106'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
 <tt>Expected exit code 0, got 3<br>
 Testcase terminated with signal 0<br>
 Complete testcase output was:<br>
 Exception, line 29: SyntaxError - Parse error<br>
 </tt><br>
-<a name='failure104'></a><dd><b>Testcase <a target='other_window' href='./js1_5/GetSet/getset-003.js'>js1_5/GetSet/getset-003.js</a> failed</b> <br>
- [ <a href='#failure103'>Previous Failure</a> | <a href='#failure105'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
+<a name='failure106'></a><dd><b>Testcase <a target='other_window' href='./js1_5/GetSet/getset-003.js'>js1_5/GetSet/getset-003.js</a> failed</b> <br>
+ [ <a href='#failure105'>Previous Failure</a> | <a href='#failure107'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
 <tt>Expected exit code 0, got 3<br>
 Testcase terminated with signal 0<br>
 Complete testcase output was:<br>
 Exception, line 48: SyntaxError - Parse error<br>
 </tt><br>
-<a name='failure105'></a><dd><b>Testcase <a target='other_window' href='./js1_5/GetSet/getset-004.js'>js1_5/GetSet/getset-004.js</a> failed</b> <br>
- [ <a href='#failure104'>Previous Failure</a> | <a href='#failure106'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
+<a name='failure107'></a><dd><b>Testcase <a target='other_window' href='./js1_5/GetSet/getset-004.js'>js1_5/GetSet/getset-004.js</a> failed</b> <br>
+ [ <a href='#failure106'>Previous Failure</a> | <a href='#failure108'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
 <tt>Expected exit code 0, got 3<br>
 Testcase terminated with signal 0<br>
 Complete testcase output was:<br>
 Exception, line 48: TypeError - Value undefined (result of expression obj.__defineSetter__) is not object.<br>
 </tt><br>
-<a name='failure106'></a><dd><b>Testcase <a target='other_window' href='./js1_5/GetSet/getset-005.js'>js1_5/GetSet/getset-005.js</a> failed</b> <br>
- [ <a href='#failure105'>Previous Failure</a> | <a href='#failure107'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
+<a name='failure108'></a><dd><b>Testcase <a target='other_window' href='./js1_5/GetSet/getset-005.js'>js1_5/GetSet/getset-005.js</a> failed</b> <br>
+ [ <a href='#failure107'>Previous Failure</a> | <a href='#failure109'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
 <tt>Expected exit code 0, got 3<br>
 Testcase terminated with signal 0<br>
 Complete testcase output was:<br>
 Exception, line 57: TypeError - Value undefined (result of expression obj.__defineSetter__) is not object.<br>
 </tt><br>
-<a name='failure107'></a><dd><b>Testcase <a target='other_window' href='./js1_5/GetSet/getset-006.js'>js1_5/GetSet/getset-006.js</a> failed</b> <br>
- [ <a href='#failure106'>Previous Failure</a> | <a href='#failure108'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
+<a name='failure109'></a><dd><b>Testcase <a target='other_window' href='./js1_5/GetSet/getset-006.js'>js1_5/GetSet/getset-006.js</a> failed</b> <br>
+ [ <a href='#failure108'>Previous Failure</a> | <a href='#failure110'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
 <tt>Expected exit code 0, got 3<br>
 Testcase terminated with signal 0<br>
 Complete testcase output was:<br>
 Exception, line 62: TypeError - Value undefined (result of expression obj.__defineSetter__) is not object.<br>
 </tt><br>
-<a name='failure108'></a><dd><b>Testcase <a target='other_window' href='./js1_5/Object/regress-90596-001.js'>js1_5/Object/regress-90596-001.js</a> failed</b> <br>
- [ <a href='#failure107'>Previous Failure</a> | <a href='#failure109'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
+<a name='failure110'></a><dd><b>Testcase <a target='other_window' href='./js1_5/Object/regress-90596-001.js'>js1_5/Object/regress-90596-001.js</a> failed</b> <br>
+ [ <a href='#failure109'>Previous Failure</a> | <a href='#failure111'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
 <tt>Expected exit code 0, got 3<br>
 Testcase terminated with signal 0<br>
 Complete testcase output was:<br>
 Exception, line 49: TypeError - Value undefined (result of expression obj.toSource) is not object.<br>
 </tt><br>
-<a name='failure109'></a><dd><b>Testcase <a target='other_window' href='./js1_5/Object/regress-90596-002.js'>js1_5/Object/regress-90596-002.js</a> failed</b> <br>
- [ <a href='#failure108'>Previous Failure</a> | <a href='#failure110'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
+<a name='failure111'></a><dd><b>Testcase <a target='other_window' href='./js1_5/Object/regress-90596-002.js'>js1_5/Object/regress-90596-002.js</a> failed</b> <br>
+ [ <a href='#failure110'>Previous Failure</a> | <a href='#failure112'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
 <tt>Expected exit code 0, got 3<br>
 Testcase terminated with signal 0<br>
 Complete testcase output was:<br>
 Exception, line 49: TypeError - Object  (result of expression uneval) does not allow calls.<br>
 </tt><br>
-<a name='failure110'></a><dd><b>Testcase <a target='other_window' href='./js1_5/Object/regress-96284-001.js'>js1_5/Object/regress-96284-001.js</a> failed</b> <br>
- [ <a href='#failure109'>Previous Failure</a> | <a href='#failure111'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
+<a name='failure112'></a><dd><b>Testcase <a target='other_window' href='./js1_5/Object/regress-96284-001.js'>js1_5/Object/regress-96284-001.js</a> failed</b> <br>
+ [ <a href='#failure111'>Previous Failure</a> | <a href='#failure113'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
 <tt>Expected exit code 0, got 3<br>
 Testcase terminated with signal 0<br>
 Complete testcase output was:<br>
 Exception, line 50: TypeError - Value undefined (result of expression obj1.toSource) is not object.<br>
 </tt><br>
-<a name='failure111'></a><dd><b>Testcase <a target='other_window' href='./js1_5/Object/regress-96284-002.js'>js1_5/Object/regress-96284-002.js</a> failed</b> <br>
- [ <a href='#failure110'>Previous Failure</a> | <a href='#failure112'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
+<a name='failure113'></a><dd><b>Testcase <a target='other_window' href='./js1_5/Object/regress-96284-002.js'>js1_5/Object/regress-96284-002.js</a> failed</b> <br>
+ [ <a href='#failure112'>Previous Failure</a> | <a href='#failure114'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
 <tt>Expected exit code 0, got 3<br>
 Testcase terminated with signal 0<br>
 Complete testcase output was:<br>
 Exception, line 50: TypeError - Object  (result of expression uneval) does not allow calls.<br>
 </tt><br>
-<a name='failure112'></a><dd><b>Testcase <a target='other_window' href='./js1_5/Regress/regress-103602.js'>js1_5/Regress/regress-103602.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=103602' target='other_window'>Bug Number 103602</a><br>
- [ <a href='#failure111'>Previous Failure</a> | <a href='#failure113'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
+<a name='failure114'></a><dd><b>Testcase <a target='other_window' href='./js1_5/Regress/regress-103602.js'>js1_5/Regress/regress-103602.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=103602' target='other_window'>Bug Number 103602</a><br>
+ [ <a href='#failure113'>Previous Failure</a> | <a href='#failure115'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
 <tt>--> STATUS: Reassignment to a const is NOT an error per ECMA<br>
 Failure messages were:<br>
 --> FAILED!: [reported from test()] Section 1 of test -<br>
@@ -1670,29 +1656,29 @@ Failure messages were:<br>
 --> FAILED!: [reported from test()] Expected value '1', Actual value '2'<br>
 --> FAILED!: [reported from test()] <br>
 </tt><br>
-<a name='failure113'></a><dd><b>Testcase <a target='other_window' href='./js1_5/Regress/regress-104077.js'>js1_5/Regress/regress-104077.js</a> failed</b> <br>
- [ <a href='#failure112'>Previous Failure</a> | <a href='#failure114'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
+<a name='failure115'></a><dd><b>Testcase <a target='other_window' href='./js1_5/Regress/regress-104077.js'>js1_5/Regress/regress-104077.js</a> failed</b> <br>
+ [ <a href='#failure114'>Previous Failure</a> | <a href='#failure116'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
 <tt>Expected exit code 0, got 3<br>
 Testcase terminated with signal 0<br>
 Complete testcase output was:<br>
 Exception, line 351: SyntaxError - Parse error<br>
 </tt><br>
-<a name='failure114'></a><dd><b>Testcase <a target='other_window' href='./js1_5/Regress/regress-127557.js'>js1_5/Regress/regress-127557.js</a> failed</b> <br>
- [ <a href='#failure113'>Previous Failure</a> | <a href='#failure115'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
+<a name='failure116'></a><dd><b>Testcase <a target='other_window' href='./js1_5/Regress/regress-127557.js'>js1_5/Regress/regress-127557.js</a> failed</b> <br>
+ [ <a href='#failure115'>Previous Failure</a> | <a href='#failure117'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
 <tt>Expected exit code 0, got 3<br>
 Testcase terminated with signal 0<br>
 Complete testcase output was:<br>
 Exception, line 76: TypeError - Object  (result of expression clone) does not allow calls.<br>
 </tt><br>
-<a name='failure115'></a><dd><b>Testcase <a target='other_window' href='./js1_5/Regress/regress-156354.js'>js1_5/Regress/regress-156354.js</a> failed</b> <br>
- [ <a href='#failure114'>Previous Failure</a> | <a href='#failure116'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
+<a name='failure117'></a><dd><b>Testcase <a target='other_window' href='./js1_5/Regress/regress-156354.js'>js1_5/Regress/regress-156354.js</a> failed</b> <br>
+ [ <a href='#failure116'>Previous Failure</a> | <a href='#failure118'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
 <tt>Expected exit code 0, got 3<br>
 Testcase terminated with signal 0<br>
 Complete testcase output was:<br>
 Exception, line 56: TypeError - Value undefined (result of expression this.propertyIsEnumerable) is not object.<br>
 </tt><br>
-<a name='failure116'></a><dd><b>Testcase <a target='other_window' href='./js1_5/Regress/regress-168347.js'>js1_5/Regress/regress-168347.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=168347' target='other_window'>Bug Number 168347</a><br>
- [ <a href='#failure115'>Previous Failure</a> | <a href='#failure117'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
+<a name='failure118'></a><dd><b>Testcase <a target='other_window' href='./js1_5/Regress/regress-168347.js'>js1_5/Regress/regress-168347.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=168347' target='other_window'>Bug Number 168347</a><br>
+ [ <a href='#failure117'>Previous Failure</a> | <a href='#failure119'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
 <tt>--> STATUS: Testing F.toString()<br>
 Failure messages were:<br>
 --> FAILED!: [reported from test()] Section 2 of test -<br>
@@ -1702,15 +1688,15 @@ Failure messages were:<br>
 --> FAILED!: [reported from test()] Expected value '{--f.i;print("--isucceededi="+f.i);}catch(e){print("--ifailedwith"+e+"i="+f.i);}try{f.i--;print("i--', Actual value '{f.i--;print("--isucceededi="+f.i);}catch(e){print("--ifailedwith"+e+"i="+f.i);}try{f.i--;print("i--'<br>
 --> FAILED!: [reported from test()] <br>
 </tt><br>
-<a name='failure117'></a><dd><b>Testcase <a target='other_window' href='./js1_5/Regress/regress-172699.js'>js1_5/Regress/regress-172699.js</a> failed</b> <br>
- [ <a href='#failure116'>Previous Failure</a> | <a href='#failure118'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
+<a name='failure119'></a><dd><b>Testcase <a target='other_window' href='./js1_5/Regress/regress-172699.js'>js1_5/Regress/regress-172699.js</a> failed</b> <br>
+ [ <a href='#failure118'>Previous Failure</a> | <a href='#failure120'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
 <tt>Expected exit code 0, got 3<br>
 Testcase terminated with signal 0<br>
 Complete testcase output was:<br>
 Exception, line 62: URIError - URI error<br>
 </tt><br>
-<a name='failure118'></a><dd><b>Testcase <a target='other_window' href='./js1_5/Regress/regress-179524.js'>js1_5/Regress/regress-179524.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=179524' target='other_window'>Bug Number 179524</a><br>
- [ <a href='#failure117'>Previous Failure</a> | <a href='#failure119'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
+<a name='failure120'></a><dd><b>Testcase <a target='other_window' href='./js1_5/Regress/regress-179524.js'>js1_5/Regress/regress-179524.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=179524' target='other_window'>Bug Number 179524</a><br>
+ [ <a href='#failure119'>Previous Failure</a> | <a href='#failure121'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
 <tt>--> STATUS: Don't crash on extraneous arguments to str.match(), etc.<br>
 Failure messages were:<br>
 --> FAILED!: [reported from test()] Section 14 of test -<br>
@@ -1760,16 +1746,16 @@ Failure messages were:<br>
 --> FAILED!: [reported from test()] Expected value 'SHOULD HAVE FALLEN INTO CATCH-BLOCK!', Actual value 'ABC Zbc'<br>
 --> FAILED!: [reported from test()] <br>
 </tt><br>
-<a name='failure119'></a><dd><b>Testcase <a target='other_window' href='./js1_5/Regress/regress-185165.js'>js1_5/Regress/regress-185165.js</a> failed</b> <br>
- [ <a href='#failure118'>Previous Failure</a> | <a href='#failure120'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
+<a name='failure121'></a><dd><b>Testcase <a target='other_window' href='./js1_5/Regress/regress-185165.js'>js1_5/Regress/regress-185165.js</a> failed</b> <br>
+ [ <a href='#failure120'>Previous Failure</a> | <a href='#failure122'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
 <tt>Expected exit code 0, got 3<br>
 Testcase terminated with signal 0<br>
 Complete testcase output was:<br>
 yylex: ERROR.<br>
 Exception, line 3: SyntaxError - Parse error<br>
 </tt><br>
-<a name='failure120'></a><dd><b>Testcase <a target='other_window' href='./js1_5/Regress/regress-44009.js'>js1_5/Regress/regress-44009.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=44009' target='other_window'>Bug Number 44009</a><br>
- [ <a href='#failure119'>Previous Failure</a> | <a href='#failure121'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
+<a name='failure122'></a><dd><b>Testcase <a target='other_window' href='./js1_5/Regress/regress-44009.js'>js1_5/Regress/regress-44009.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=44009' target='other_window'>Bug Number 44009</a><br>
+ [ <a href='#failure121'>Previous Failure</a> | <a href='#failure123'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
 <tt>Expected exit code 0, got 3<br>
 Testcase terminated with signal 0<br>
 Complete testcase output was:<br>
@@ -1777,8 +1763,8 @@ Complete testcase output was:<br>
 --> STATUS: Testing that we don't crash on obj.toSource()<br>
 Exception, line 61: TypeError - Value undefined (result of expression obj.toSource) is not object.<br>
 </tt><br>
-<a name='failure121'></a><dd><b>Testcase <a target='other_window' href='./js1_5/Regress/regress-68498-003.js'>js1_5/Regress/regress-68498-003.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=68498' target='other_window'>Bug Number 68498</a><br>
- [ <a href='#failure120'>Previous Failure</a> | <a href='#failure122'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
+<a name='failure123'></a><dd><b>Testcase <a target='other_window' href='./js1_5/Regress/regress-68498-003.js'>js1_5/Regress/regress-68498-003.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=68498' target='other_window'>Bug Number 68498</a><br>
+ [ <a href='#failure122'>Previous Failure</a> | <a href='#failure124'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
 <tt>--> STATUS: Testing calling obj.eval(str)<br>
 Failure messages were:<br>
 --> FAILED!: [reported from test()] Testing calling obj.eval(str); currently at expect[1] within test -<br>
@@ -1786,16 +1772,16 @@ Failure messages were:<br>
 --> FAILED!: [reported from test()] Expected value '43', Actual value 'false'<br>
 --> FAILED!: [reported from test()] <br>
 </tt><br>
-<a name='failure122'></a><dd><b>Testcase <a target='other_window' href='./js1_5/Regress/regress-96128-n.js'>js1_5/Regress/regress-96128-n.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=96128' target='other_window'>Bug Number 96128</a><br>
- [ <a href='#failure121'>Previous Failure</a> | <a href='#failure123'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
+<a name='failure124'></a><dd><b>Testcase <a target='other_window' href='./js1_5/Regress/regress-96128-n.js'>js1_5/Regress/regress-96128-n.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=96128' target='other_window'>Bug Number 96128</a><br>
+ [ <a href='#failure123'>Previous Failure</a> | <a href='#failure125'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
 <tt>Expected exit code 3, got 0<br>
 Testcase terminated with signal 11<br>
 Complete testcase output was:<br>
 --> BUGNUMBER: 96128<br>
 --> STATUS: Testing that JS infinite recursion protection works<br>
 </tt><br>
-<a name='failure123'></a><dd><b>Testcase <a target='other_window' href='./js1_5/Scope/regress-185485.js'>js1_5/Scope/regress-185485.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=185485' target='other_window'>Bug Number 185485</a><br>
- [ <a href='#failure122'>Previous Failure</a> | <a href='#failure124'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
+<a name='failure125'></a><dd><b>Testcase <a target='other_window' href='./js1_5/Scope/regress-185485.js'>js1_5/Scope/regress-185485.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=185485' target='other_window'>Bug Number 185485</a><br>
+ [ <a href='#failure124'>Previous Failure</a> | <a href='#failure126'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
 <tt>--> STATUS: Testing |with (x) {function f() {}}| when |x.f| already exists<br>
 Failure messages were:<br>
 --> FAILED!: [reported from test()] Section 2 of test -<br>
@@ -1810,15 +1796,15 @@ Failure messages were:<br>
 --> FAILED!: [reported from test()] }', Actual value '0'<br>
 --> FAILED!: [reported from test()] <br>
 </tt><br>
-<a name='failure124'></a><dd><b>Testcase <a target='other_window' href='./js1_5/Scope/regress-220584.js'>js1_5/Scope/regress-220584.js</a> failed</b> <br>
- [ <a href='#failure123'>Previous Failure</a> | <a href='#failure125'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
+<a name='failure126'></a><dd><b>Testcase <a target='other_window' href='./js1_5/Scope/regress-220584.js'>js1_5/Scope/regress-220584.js</a> failed</b> <br>
+ [ <a href='#failure125'>Previous Failure</a> | <a href='#failure127'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
 <tt>Expected exit code 0, got 3<br>
 Testcase terminated with signal 0<br>
 Complete testcase output was:<br>
 Exception, line 57: TypeError - Object  (result of expression Script) does not allow calls.<br>
 </tt><br>
-<a name='failure125'></a><dd><b>Testcase <a target='other_window' href='./js1_5/Scope/scope-001.js'>js1_5/Scope/scope-001.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=53268' target='other_window'>Bug Number 53268</a><br>
- [ <a href='#failure124'>Previous Failure</a> | <a href='#failure126'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
+<a name='failure127'></a><dd><b>Testcase <a target='other_window' href='./js1_5/Scope/scope-001.js'>js1_5/Scope/scope-001.js</a> failed</b> <a href='http://bugzilla.mozilla.org/show_bug.cgi?id=53268' target='other_window'>Bug Number 53268</a><br>
+ [ <a href='#failure126'>Previous Failure</a> | <a href='#failure128'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
 <tt>--> STATUS: Testing scope after changing obj.__proto__<br>
 Failure messages were:<br>
 --> FAILED!: [reported from test()] Step 1:  setting obj.__proto__ = global object<br>
@@ -1835,9 +1821,9 @@ Failure messages were:<br>
 <pre>
 <a name='retest_list'></a>
 <h2>Retest List</h2><br>
-# Retest List, kjs, generated Tue Jun 21 11:41:43 2005.
+# Retest List, kjs, generated Tue Jun 21 17:58:04 2005.
 # Original test base was: All tests.
-# 962 of 967 test(s) were completed, 125 failures reported.
+# 962 of 967 test(s) were completed, 127 failures reported.
 ecma/GlobalObject/15.1.2.2-2.js
 ecma/LexicalConventions/7.7.3-1.js
 ecma/Statements/12.7-1-n.js
@@ -1868,6 +1854,8 @@ ecma_3/Function/arguments-001.js
 ecma_3/Function/regress-104584.js
 ecma_3/Function/regress-193555.js
 ecma_3/Function/regress-58274.js
+ecma_3/Function/scope-001.js
+ecma_3/Function/scope-002.js
 ecma_3/FunExpr/fe-001.js
 ecma_3/Object/class-001.js
 ecma_3/Object/class-002.js
diff --git a/LayoutTests/fast/js/eval-var-decl-expected.txt b/LayoutTests/fast/js/eval-var-decl-expected.txt
deleted file mode 100644 (file)
index f960de9..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-This test case checks whether variables cause properties to be defined even before reaching the declaration statement in various cases. It should print true true true false on separate lines.
-
-true
-true
-true
-false
-
diff --git a/LayoutTests/fast/js/eval-var-decl.html b/LayoutTests/fast/js/eval-var-decl.html
deleted file mode 100644 (file)
index a2a57e0..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-<div> 
-This test case checks whether variables cause properties to be
-defined even before reaching the declaration statement in various
-cases. It should print true true true false on separate lines.
-</div>
-<br>
-<div>
-<script>
-if (window.layoutTestController) {
-   layoutTestController.dumpAsText();
-}
-
-document.write(window.hasOwnProperty('foo') + '<br>');
-var foo = 3;
-
-delete bar;
-document.write(window.hasOwnProperty('bar') + '<br>');
-var bar = 3;
-
-eval("document.write(window.hasOwnProperty('y') + '<br>'); var y = 3;");
-eval("delete x; document.write(window.hasOwnProperty('x') + '<br>'); var x = 3;");
-
-</script>
-</div>
\ No newline at end of file
diff --git a/LayoutTests/fast/js/hasOwnProperty-expected.txt b/LayoutTests/fast/js/hasOwnProperty-expected.txt
deleted file mode 100644 (file)
index 445d7b0..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-This test verifies the behaviour of Object.prototype.hasOwnProperty, as documented in ECMA-262 rev3 section 15.2.4.5.
-
-If the test passes, you should see two 'true' outputs followed by three 'false' outputs.
-
-anObject has own property 'foo': true
-aString has own property 'length': true
-anObject has own property 'bar': false
-anObject has own property 'toString': false
-aString has own property 'toString': false
-
diff --git a/LayoutTests/fast/js/hasOwnProperty.html b/LayoutTests/fast/js/hasOwnProperty.html
deleted file mode 100644 (file)
index d025a97..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-<html>
-    <head>
-        <title>Test of hasOwnProperty</title>
-        <script type="text/javascript">
-            function print(message)
-            {
-                var paragraph = document.createElement("li");
-                paragraph.appendChild(document.createTextNode(message));
-                document.getElementById("console").appendChild(paragraph);
-            }
-            
-            function test()
-            {
-            
-                var anObject = {foo : 'yum'};
-                var aString = '';
-                
-                if (anObject.hasOwnProperty)
-                {
-                    print("anObject has own property 'foo': " + anObject.hasOwnProperty('foo'));
-                    print("aString has own property 'length': " + ''.hasOwnProperty('length'));
-                    print("anObject has own property 'bar': " + anObject.hasOwnProperty('bar'));
-                    print("anObject has own property 'toString': " + anObject.hasOwnProperty('toString'));
-                    print("aString has own property 'toString': " + ''.hasOwnProperty('toString'));
-                }
-                else
-                {
-                    print("ERROR: ECMAScript hasOwnProperty() method missing!");
-                }
-            }        
-
-           if (window.layoutTestController) {
-               layoutTestController.dumpAsText();
-           }
-        </script>
-    </head>
-    <body onload="test()">
-        <p>This test verifies the behaviour of Object.prototype.hasOwnProperty, as documented in ECMA-262 rev3 section 15.2.4.5.</p>
-        <p>If the test passes, you should see two 'true' outputs followed by three 'false' outputs.</p>
-        <hr>
-        <p><ol id=console></ol></p>
-    </body>
-</html>
index 63625ab0e88bbb4eefd2cb2b7a035351314f0f0b..01682bc60a80a035d76e993dce07296cb809f427 100644 (file)
@@ -1,3 +1,32 @@
+2005-06-21  Adele Peterson  <adele@apple.com>
+
+        rolling out fix for http://bugzilla.opendarwin.org/show_bug.cgi?id=3293, since it caused layout test failures.
+       fast/forms/element-by-name
+        fast/loader/loadInProgress
+
+        * ChangeLog:
+        * khtml/ecma/kjs_binding.h:
+        * khtml/ecma/kjs_css.cpp:
+        (KJS::DOMCSSStyleDeclaration::hasProperty):
+        * khtml/ecma/kjs_css.h:
+        * khtml/ecma/kjs_dom.cpp:
+        (KJS::DOMNodeList::hasProperty):
+        (KJS::DOMNamedNodeMap::hasProperty):
+        * khtml/ecma/kjs_dom.h:
+        * khtml/ecma/kjs_html.cpp:
+        (KJS::HTMLDocument::hasProperty):
+        (KJS::KJS::HTMLElement::hasProperty):
+        (KJS::KJS::HTMLCollection::hasProperty):
+        * khtml/ecma/kjs_html.h:
+        * khtml/ecma/kjs_window.cpp:
+        (KJS::Window::hasProperty):
+        (KJS::Konqueror::hasProperty):
+        * khtml/ecma/kjs_window.h:
+        * layout-tests/fast/js/eval-var-decl-expected.txt: Removed. This test used hasOwnProperty
+        * layout-tests/fast/js/eval-var-decl.html: Removed. This test used hasOwnProperty
+        * layout-tests/fast/js/hasOwnProperty-expected.txt: Removed.
+        * layout-tests/fast/js/hasOwnProperty.html: Removed.
+
 2005-06-21  Darin Adler  <darin@apple.com>
 
         * WebCore.pbproj/project.pbxproj: Switched to a build rule rather than a build phase for the
index 0d42d8cf218c66c5406e5ade581853bd9daf6011..60157365774b1f23ecc8b8148bbc52b3cc879238 100644 (file)
@@ -312,7 +312,7 @@ namespace KJS {
     virtual const ClassInfo *classInfo() const { return &info; } \
     static const ClassInfo info; \
     Value get(ExecState *exec, const Identifier &propertyName) const; \
-    bool hasOwnProperty(ExecState *exec, const Identifier &propertyName) const; \
+    bool hasProperty(ExecState *exec, const Identifier &propertyName) const; \
   }; \
   const ClassInfo ClassProto::info = { ClassName, 0, &ClassProto##Table, 0 };
 
@@ -322,9 +322,9 @@ namespace KJS {
       /*fprintf( stderr, "%sProto::get(%s) [in macro, no parent]\n", info.className, propertyName.ascii());*/ \
       return lookupGetFunction<ClassFunc,ObjectImp>(exec, propertyName, &ClassProto##Table, this ); \
     } \
-    bool ClassProto::hasOwnProperty(ExecState *exec, const Identifier &propertyName) const \
+    bool ClassProto::hasProperty(ExecState *exec, const Identifier &propertyName) const \
     { /*stupid but we need this to have a common macro for the declaration*/ \
-      return ObjectImp::hasOwnProperty(exec, propertyName); \
+      return ObjectImp::hasProperty(exec, propertyName); \
     }
 
 #define IMPLEMENT_PROTOTYPE_WITH_PARENT(ClassProto,ClassFunc,ParentProto)  \
@@ -336,11 +336,11 @@ namespace KJS {
       /* Not found -> forward request to "parent" prototype */ \
       return ParentProto::self(exec)->get( exec, propertyName ); \
     } \
-    bool ClassProto::hasOwnProperty(ExecState *exec, const Identifier &propertyName) const \
+    bool ClassProto::hasProperty(ExecState *exec, const Identifier &propertyName) const \
     { \
-      if (ObjectImp::hasOwnProperty(exec, propertyName)) \
+      if (ObjectImp::hasProperty(exec, propertyName)) \
         return true; \
-      return ParentProto::self(exec)->hasOwnProperty(exec, propertyName); \
+      return ParentProto::self(exec)->hasProperty(exec, propertyName); \
     }
 
 #define IMPLEMENT_PROTOFUNC(ClassFunc) \
index 3c9303cc5510d241408cd15b3667b8a20a834575..65a828ccdf564839793c52057e9bd0883ecfcf2e 100644 (file)
@@ -133,13 +133,13 @@ DOMCSSStyleDeclaration::~DOMCSSStyleDeclaration()
   ScriptInterpreter::forgetDOMObject(m_impl.get());
 }
 
-bool DOMCSSStyleDeclaration::hasOwnProperty(ExecState *exec, const Identifier &p) const
+bool DOMCSSStyleDeclaration::hasProperty(ExecState *exec, const Identifier &p) const
 {
   if (p == "cssText")
     return true;
   if (isCSSPropertyName(p))
     return true;
-  return ObjectImp::hasOwnProperty(exec, p);
+  return ObjectImp::hasProperty(exec, p);
 }
 
 Value DOMCSSStyleDeclaration::tryGet(ExecState *exec, const Identifier &propertyName) const
index bc8b87bd0768589950d6edec5d73a2c3cc053cb4..3ad84cfe456947d01b32372c86888721709c0645 100644 (file)
@@ -51,7 +51,7 @@ namespace KJS {
     virtual ~DOMCSSStyleDeclaration();
     virtual Value tryGet(ExecState *exec, const Identifier &propertyName) const;
     virtual void tryPut(ExecState *exec, const Identifier &propertyName, const Value& value, int attr = None);
-    virtual bool hasOwnProperty(ExecState *exec, const Identifier &propertyName) const;
+    virtual bool hasProperty(ExecState *exec, const Identifier &propertyName) const;
     virtual const ClassInfo *classInfo() const { return &info; }
     static const ClassInfo info;
     enum { CssText, Length, ParentRule,
index ad2ac725eab169be24ca33bb59b9869a7cb5c903..0cf37e383f8eec765b0512f11c00d22bf829f358 100644 (file)
@@ -727,11 +727,11 @@ Value DOMNodeList::toPrimitive(ExecState *exec, Type /*preferred*/) const
 
 // We have to implement hasProperty since we don't use a hashtable for 'length' and 'item'
 // ## this breaks "for (..in..)" though.
-bool DOMNodeList::hasOwnProperty(ExecState *exec, const Identifier &p) const
+bool DOMNodeList::hasProperty(ExecState *exec, const Identifier &p) const
 {
   if (p == lengthPropertyName || p == "item")
     return true;
-  return ObjectImp::hasOwnProperty(exec, p);
+  return ObjectImp::hasProperty(exec, p);
 }
 
 Value DOMNodeList::tryGet(ExecState *exec, const Identifier &p) const
@@ -1430,11 +1430,11 @@ DOMNamedNodeMap::~DOMNamedNodeMap()
 
 // We have to implement hasProperty since we don't use a hashtable for 'length'
 // ## this breaks "for (..in..)" though.
-bool DOMNamedNodeMap::hasOwnProperty(ExecState *exec, const Identifier &p) const
+bool DOMNamedNodeMap::hasProperty(ExecState *exec, const Identifier &p) const
 {
   if (p == lengthPropertyName)
     return true;
-  return DOMObject::hasOwnProperty(exec, p);
+  return DOMObject::hasProperty(exec, p);
 }
 
 Value DOMNamedNodeMap::tryGet(ExecState* exec, const Identifier &p) const
index 78fb2282b3cb7b3e9800331ad7467ffa5d9bd564..0e444cc65fff843a1dcb73389dc9924cadc27905 100644 (file)
@@ -91,7 +91,7 @@ namespace KJS {
   public:
     DOMNodeList(ExecState *, DOM::NodeListImpl *l) : m_impl(l) { }
     ~DOMNodeList();
-    virtual bool hasOwnProperty(ExecState *exec, const Identifier &p) const;
+    virtual bool hasProperty(ExecState *exec, const Identifier &p) const;
     virtual Value tryGet(ExecState *exec, const Identifier &propertyName) const;
     virtual Value call(ExecState *exec, Object &thisObj, const List&args);
     virtual Value tryCall(ExecState *exec, Object &thisObj, const List&args);
@@ -201,7 +201,7 @@ namespace KJS {
   public:
     DOMNamedNodeMap(ExecState *, DOM::NamedNodeMapImpl *m);
     ~DOMNamedNodeMap();
-    virtual bool hasOwnProperty(ExecState *exec, const Identifier &p) const;
+    virtual bool hasProperty(ExecState *exec, const Identifier &p) const;
     virtual Value tryGet(ExecState *exec, const Identifier &propertyName) const;
     // no put - all read-only
     virtual const ClassInfo* classInfo() const { return &info; }
index 6185afa76749a3bdbe47fb3668197f32478d8fac..bc278bf6d25ed85981d35784ee10d59ad3f5f37c 100644 (file)
@@ -270,13 +270,13 @@ HTMLDocument::HTMLDocument(ExecState *exec, HTMLDocumentImpl *d)
 {
 }
 
-bool HTMLDocument::hasOwnProperty(ExecState *exec, const Identifier &p) const
+bool HTMLDocument::hasProperty(ExecState *exec, const Identifier &p) const
 {
 #ifdef KJS_VERBOSE
   //kdDebug(6070) << "HTMLDocument::hasProperty " << p.qstring() << endl;
 #endif
   HTMLDocumentImpl *doc = static_cast<HTMLDocumentImpl *>(impl());
-  return DOMDocument::hasOwnProperty(exec, p) || doc->haveNamedImageOrForm(p.qstring());
+  return DOMDocument::hasProperty(exec, p) || doc->haveNamedImageOrForm(p.qstring());
 }
 
 Value HTMLDocument::tryGet(ExecState *exec, const Identifier &propertyName) const
@@ -2025,7 +2025,7 @@ Value KJS::HTMLElement::getValueProperty(ExecState *exec, int token) const
   return Undefined();
 }
 
-bool KJS::HTMLElement::hasOwnProperty(ExecState *exec, const Identifier &propertyName) const
+bool KJS::HTMLElement::hasProperty(ExecState *exec, const Identifier &propertyName) const
 {
 #ifdef KJS_VERBOSE
   //kdDebug(6070) << "HTMLElement::hasProperty " << propertyName.qstring() << endl;
@@ -2056,7 +2056,7 @@ bool KJS::HTMLElement::hasOwnProperty(ExecState *exec, const Identifier &propert
       break;
   }
 
-  return DOMElement::hasOwnProperty(exec, propertyName);
+  return DOMElement::hasProperty(exec, propertyName);
 }
 
 UString KJS::HTMLElement::toString(ExecState *exec) const
@@ -3105,11 +3105,11 @@ HTMLCollection::~HTMLCollection()
 
 // We have to implement hasProperty since we don't use a hashtable for 'selectedIndex' and 'length'
 // ## this breaks "for (..in..)" though.
-bool KJS::HTMLCollection::hasOwnProperty(ExecState *exec, const Identifier &p) const
+bool KJS::HTMLCollection::hasProperty(ExecState *exec, const Identifier &p) const
 {
   if (p == "selectedIndex" || p == lengthPropertyName)
     return true;
-  return DOMObject::hasOwnProperty(exec, p);
+  return DOMObject::hasProperty(exec, p);
 }
 
 Value KJS::HTMLCollection::tryGet(ExecState *exec, const Identifier &propertyName) const
index 2ba4d83f738deb9889ce89c6bc995faee999e2f0..4f51272cb0d69e2729b80222c47eeb12591c75c1 100644 (file)
@@ -50,7 +50,7 @@ namespace KJS {
     virtual Value tryGet(ExecState *exec, const Identifier &propertyName) const;
     virtual void tryPut(ExecState *exec, const Identifier &propertyName, const Value& value, int attr = None);
     void putValue(ExecState *exec, int token, const Value& value, int /*attr*/);
-    virtual bool hasOwnProperty(ExecState *exec, const Identifier &propertyName) const;
+    virtual bool hasProperty(ExecState *exec, const Identifier &propertyName) const;
     virtual const ClassInfo* classInfo() const { return &info; }
     static const ClassInfo info;
     enum { Title, Referrer, Domain, URL, Body, Location, Cookie,
@@ -66,7 +66,7 @@ namespace KJS {
     Value getValueProperty(ExecState *exec, int token) const;
     virtual void tryPut(ExecState *exec, const Identifier &propertyName, const Value& value, int attr = None);
     void putValue(ExecState *exec, int token, const Value& value, int);
-    virtual bool hasOwnProperty(ExecState *exec, const Identifier &propertyName) const;
+    virtual bool hasProperty(ExecState *exec, const Identifier &propertyName) const;
     virtual UString toString(ExecState *exec) const;
     virtual void pushEventHandlerScope(ExecState *exec, ScopeChain &scope) const;
     virtual Value call(ExecState *exec, Object &thisObj, const List&args);
@@ -173,7 +173,7 @@ namespace KJS {
     virtual Value tryCall(ExecState *exec, Object &thisObj, const List&args);
     virtual bool implementsCall() const { return true; }
     virtual bool toBoolean(ExecState *) const { return true; }
-    virtual bool hasOwnProperty(ExecState *exec, const Identifier &p) const;
+    virtual bool hasProperty(ExecState *exec, const Identifier &p) const;
     enum { Item, NamedItem, Tags };
     Value getNamedItems(ExecState *exec, const Identifier &propertyName) const;
     virtual const ClassInfo* classInfo() const { return &info; }
index b30e1d92c8ed38c240ca201b0d413f6fa2ad6cf1..e61659df0cb58e8b329ddbc069afd23a809690b0 100644 (file)
@@ -1113,7 +1113,7 @@ Value Window::get(ExecState *exec, const Identifier &p) const
   return Undefined();
 }
 
-bool Window::hasOwnProperty(ExecState *exec, const Identifier &p) const
+bool Window::hasProperty(ExecState *exec, const Identifier &p) const
 {
   // matches logic in get function above, but no need to handle numeric values (frame indices)
 
@@ -2906,7 +2906,7 @@ Value HistoryFunc::tryCall(ExecState *exec, Object &thisObj, const List &args)
 
 const ClassInfo Konqueror::info = { "Konqueror", 0, 0, 0 };
 
-bool Konqueror::hasOwnProperty(ExecState *exec, const Identifier &p) const
+bool Konqueror::hasProperty(ExecState *exec, const Identifier &p) const
 {
   if ( p.qstring().startsWith( "goHistory" ) ) return false;
 
index ccf4d2061493cff9f25db096aa1bbce47106dffe..b4def72ba581d68f40ccb2bc8976b117e61a2395 100644 (file)
@@ -92,7 +92,7 @@ namespace KJS {
     QGuardedPtr<KHTMLPart> part() const { return m_part; }
     virtual void mark();
     virtual Value get(ExecState *exec, const Identifier &propertyName) const;
-    virtual bool hasOwnProperty(ExecState *exec, const Identifier &propertyName) const;
+    virtual bool hasProperty(ExecState *exec, const Identifier &propertyName) const;
     virtual void put(ExecState *exec, const Identifier &propertyName, const Value &value, int attr = None);
     virtual bool toBoolean(ExecState *exec) const;
     int installTimeout(const UString &handler, int t, bool singleShot);
@@ -277,7 +277,7 @@ namespace KJS {
   public:
     Konqueror(KHTMLPart *p) : part(p) { }
     virtual Value get(ExecState *exec, const Identifier &propertyName) const;
-    virtual bool hasOwnProperty(ExecState *exec, const Identifier &p) const;
+    virtual bool hasProperty(ExecState *exec, const Identifier &p) const;
     virtual UString toString(ExecState *exec) const;
     virtual const ClassInfo* classInfo() const { return &info; }
     static const ClassInfo info;