[webkit-changes] cvs commit: WebCore/layout-tests/fast/js
hasOwnProperty-expected.txt hasOwnProperty.html
Maciej
mjs at opensource.apple.com
Mon Jun 20 14:59:40 PDT 2005
mjs 05/06/20 14:59:40
Modified: . ChangeLog
bindings runtime_array.cpp runtime_array.h
runtime_object.cpp runtime_object.h
bindings/objc objc_runtime.h objc_runtime.mm
kjs array_instance.h array_object.cpp function.cpp
function.h object.cpp object.h object_object.cpp
object_object.h string_object.cpp string_object.h
tests/mozilla expected.html
. ChangeLog
khtml/ecma kjs_binding.h kjs_css.cpp kjs_css.h kjs_dom.cpp
kjs_dom.h kjs_html.cpp kjs_html.h kjs_window.cpp
kjs_window.h
Added: layout-tests/fast/js hasOwnProperty-expected.txt
hasOwnProperty.html
Log:
JavaScriptCore:
Patch from Mark Rowe <opendarwin.org at bdash.net.nz>, reviewed by me.
- fixed http://bugzilla.opendarwin.org/attachment.cgi?id=2483
Test cases added:
* tests/mozilla/expected.html: Updated for two fixed tests.
- also added a layout test
* bindings/objc/objc_runtime.h:
* bindings/objc/objc_runtime.mm:
(ObjcFallbackObjectImp::hasOwnProperty):
* bindings/runtime_array.cpp:
(RuntimeArrayImp::hasOwnProperty):
* bindings/runtime_array.h:
* bindings/runtime_object.cpp:
(RuntimeObjectImp::hasOwnProperty):
* bindings/runtime_object.h:
* kjs/array_instance.h:
* kjs/array_object.cpp:
(ArrayInstanceImp::hasOwnProperty):
* kjs/function.cpp:
(KJS::FunctionImp::hasOwnProperty):
(KJS::ActivationImp::hasOwnProperty):
* kjs/function.h:
* kjs/object.cpp:
(KJS::ObjectImp::hasProperty):
(KJS::ObjectImp::hasOwnProperty):
* kjs/object.h:
(KJS::Object::hasOwnProperty):
* kjs/object_object.cpp:
(ObjectPrototypeImp::ObjectPrototypeImp):
(ObjectProtoFuncImp::call):
* kjs/object_object.h:
(KJS::ObjectProtoFuncImp::):
* kjs/string_object.cpp:
(StringInstanceImp::hasOwnProperty):
* kjs/string_object.h:
WebCore:
Patch from Mark Rowe <opendarwin.org at bdash.net.nz>, reviewed by me.
- fixed http://bugzilla.opendarwin.org/attachment.cgi?id=2483
Test cases added:
* layout-tests/fast/js/hasOwnProperty-expected.txt: Added.
* layout-tests/fast/js/hasOwnProperty.html: Added.
- also fixed two mozilla JS tests
* khtml/ecma/kjs_binding.h:
* khtml/ecma/kjs_css.cpp:
(KJS::DOMCSSStyleDeclaration::hasOwnProperty):
* khtml/ecma/kjs_css.h:
* khtml/ecma/kjs_dom.cpp:
(KJS::DOMNodeList::hasOwnProperty):
(KJS::DOMNamedNodeMap::hasOwnProperty):
* khtml/ecma/kjs_dom.h:
* khtml/ecma/kjs_html.cpp:
(KJS::HTMLDocument::hasOwnProperty):
(KJS::KJS::HTMLElement::hasOwnProperty):
(KJS::KJS::HTMLCollection::hasOwnProperty):
* khtml/ecma/kjs_html.h:
* khtml/ecma/kjs_window.cpp:
(KJS::Window::hasOwnProperty):
(KJS::Konqueror::hasOwnProperty):
* khtml/ecma/kjs_window.h:
Revision Changes Path
1.715 +40 -0 JavaScriptCore/ChangeLog
Index: ChangeLog
===================================================================
RCS file: /cvs/root/JavaScriptCore/ChangeLog,v
retrieving revision 1.714
retrieving revision 1.715
diff -u -r1.714 -r1.715
--- ChangeLog 19 Jun 2005 06:21:30 -0000 1.714
+++ ChangeLog 20 Jun 2005 21:59:29 -0000 1.715
@@ -1,3 +1,43 @@
+2005-06-20 Maciej Stachowiak <mjs at apple.com>
+
+ Patch from Mark Rowe <opendarwin.org at bdash.net.nz>, reviewed by me.
+
+ - fixed http://bugzilla.opendarwin.org/attachment.cgi?id=2483
+
+ Test cases added:
+ * tests/mozilla/expected.html: Updated for two fixed tests.
+ - also added a layout test
+
+ * bindings/objc/objc_runtime.h:
+ * bindings/objc/objc_runtime.mm:
+ (ObjcFallbackObjectImp::hasOwnProperty):
+ * bindings/runtime_array.cpp:
+ (RuntimeArrayImp::hasOwnProperty):
+ * bindings/runtime_array.h:
+ * bindings/runtime_object.cpp:
+ (RuntimeObjectImp::hasOwnProperty):
+ * bindings/runtime_object.h:
+ * kjs/array_instance.h:
+ * kjs/array_object.cpp:
+ (ArrayInstanceImp::hasOwnProperty):
+ * kjs/function.cpp:
+ (KJS::FunctionImp::hasOwnProperty):
+ (KJS::ActivationImp::hasOwnProperty):
+ * kjs/function.h:
+ * kjs/object.cpp:
+ (KJS::ObjectImp::hasProperty):
+ (KJS::ObjectImp::hasOwnProperty):
+ * kjs/object.h:
+ (KJS::Object::hasOwnProperty):
+ * kjs/object_object.cpp:
+ (ObjectPrototypeImp::ObjectPrototypeImp):
+ (ObjectProtoFuncImp::call):
+ * kjs/object_object.h:
+ (KJS::ObjectProtoFuncImp::):
+ * kjs/string_object.cpp:
+ (StringInstanceImp::hasOwnProperty):
+ * kjs/string_object.h:
+
2005-06-18 Darin Adler <darin at apple.com>
Reviewed by Eric Seidel.
1.5 +3 -3 JavaScriptCore/bindings/runtime_array.cpp
Index: runtime_array.cpp
===================================================================
RCS file: /cvs/root/JavaScriptCore/bindings/runtime_array.cpp,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- runtime_array.cpp 24 May 2004 22:19:02 -0000 1.4
+++ runtime_array.cpp 20 Jun 2005 21:59:29 -0000 1.5
@@ -96,7 +96,7 @@
}
-bool RuntimeArrayImp::hasProperty(ExecState *exec, const Identifier &propertyName) const
+bool RuntimeArrayImp::hasOwnProperty(ExecState *exec, const Identifier &propertyName) const
{
if (propertyName == lengthPropertyName)
return true;
@@ -109,10 +109,10 @@
return true;
}
- return ObjectImp::hasProperty(exec, propertyName);
+ return ObjectImp::hasOwnProperty(exec, propertyName);
}
-bool RuntimeArrayImp::hasProperty(ExecState *exec, unsigned index) const
+bool RuntimeArrayImp::hasOwnProperty(ExecState *exec, unsigned index) const
{
if (index >= getLength())
return false;
1.7 +2 -2 JavaScriptCore/bindings/runtime_array.h
Index: runtime_array.h
===================================================================
RCS file: /cvs/root/JavaScriptCore/bindings/runtime_array.h,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- runtime_array.h 20 Jan 2005 01:39:19 -0000 1.6
+++ runtime_array.h 20 Jun 2005 21:59:29 -0000 1.7
@@ -42,8 +42,8 @@
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 hasProperty(ExecState *exec, const Identifier &propertyName) const;
- virtual 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 deleteProperty(ExecState *exec, const Identifier &propertyName);
virtual bool deleteProperty(ExecState *exec, unsigned propertyName);
1.23 +1 -1 JavaScriptCore/bindings/runtime_object.cpp
Index: runtime_object.cpp
===================================================================
RCS file: /cvs/root/JavaScriptCore/bindings/runtime_object.cpp,v
retrieving revision 1.22
retrieving revision 1.23
diff -u -r1.22 -r1.23
--- runtime_object.cpp 26 Jan 2005 21:38:10 -0000 1.22
+++ runtime_object.cpp 20 Jun 2005 21:59:30 -0000 1.23
@@ -131,7 +131,7 @@
return result;
}
-bool RuntimeObjectImp::hasProperty(ExecState *exec,
+bool RuntimeObjectImp::hasOwnProperty(ExecState *exec,
const Identifier &propertyName) const
{
bool result = false;
1.11 +1 -1 JavaScriptCore/bindings/runtime_object.h
Index: runtime_object.h
===================================================================
RCS file: /cvs/root/JavaScriptCore/bindings/runtime_object.h,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- runtime_object.h 26 Jan 2005 21:38:10 -0000 1.10
+++ runtime_object.h 20 Jun 2005 21:59:30 -0000 1.11
@@ -48,7 +48,7 @@
virtual bool canPut(ExecState *exec, const Identifier &propertyName) const;
- virtual bool hasProperty(ExecState *exec,
+ virtual bool hasOwnProperty(ExecState *exec,
const Identifier &propertyName) const;
1.8 +1 -1 JavaScriptCore/bindings/objc/objc_runtime.h
Index: objc_runtime.h
===================================================================
RCS file: /cvs/root/JavaScriptCore/bindings/objc/objc_runtime.h,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- objc_runtime.h 21 Jan 2005 00:41:59 -0000 1.7
+++ objc_runtime.h 20 Jun 2005 21:59:30 -0000 1.8
@@ -179,7 +179,7 @@
virtual bool implementsCall() const;
virtual Value call(ExecState *exec, Object &thisObj, const List &args);
- virtual bool hasProperty(ExecState *exec,
+ virtual bool hasOwnProperty(ExecState *exec,
const Identifier &propertyName) const;
1.14 +1 -1 JavaScriptCore/bindings/objc/objc_runtime.mm
Index: objc_runtime.mm
===================================================================
RCS file: /cvs/root/JavaScriptCore/bindings/objc/objc_runtime.mm,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -r1.13 -r1.14
--- objc_runtime.mm 21 Jan 2005 00:41:59 -0000 1.13
+++ objc_runtime.mm 20 Jun 2005 21:59:30 -0000 1.14
@@ -332,7 +332,7 @@
return result;
}
-bool ObjcFallbackObjectImp::hasProperty(ExecState *exec,
+bool ObjcFallbackObjectImp::hasOwnProperty(ExecState *exec,
const Identifier &propertyName) const
{
return false;
1.10 +2 -2 JavaScriptCore/kjs/array_instance.h
Index: array_instance.h
===================================================================
RCS file: /cvs/root/JavaScriptCore/kjs/array_instance.h,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- array_instance.h 22 Jan 2003 00:11:43 -0000 1.9
+++ array_instance.h 20 Jun 2005 21:59:30 -0000 1.10
@@ -37,8 +37,8 @@
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 hasProperty(ExecState *exec, const Identifier &propertyName) const;
- virtual 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 deleteProperty(ExecState *exec, const Identifier &propertyName);
virtual bool deleteProperty(ExecState *exec, unsigned propertyName);
virtual ReferenceList propList(ExecState *exec, bool recursive);
1.40 +4 -4 JavaScriptCore/kjs/array_object.cpp
Index: array_object.cpp
===================================================================
RCS file: /cvs/root/JavaScriptCore/kjs/array_object.cpp,v
retrieving revision 1.39
retrieving revision 1.40
diff -u -r1.39 -r1.40
--- array_object.cpp 10 Aug 2004 18:43:51 -0000 1.39
+++ array_object.cpp 20 Jun 2005 21:59:30 -0000 1.40
@@ -138,7 +138,7 @@
ObjectImp::put(exec, Identifier::from(index), value, attr);
}
-bool ArrayInstanceImp::hasProperty(ExecState *exec, const Identifier &propertyName) const
+bool ArrayInstanceImp::hasOwnProperty(ExecState *exec, const Identifier &propertyName) const
{
if (propertyName == lengthPropertyName)
return true;
@@ -154,10 +154,10 @@
}
}
- return ObjectImp::hasProperty(exec, propertyName);
+ return ObjectImp::hasOwnProperty(exec, propertyName);
}
-bool ArrayInstanceImp::hasProperty(ExecState *exec, unsigned index) const
+bool ArrayInstanceImp::hasOwnProperty(ExecState *exec, unsigned index) const
{
if (index >= length)
return false;
@@ -166,7 +166,7 @@
return v && v != UndefinedImp::staticUndefined;
}
- return ObjectImp::hasProperty(exec, Identifier::from(index));
+ return ObjectImp::hasOwnProperty(exec, Identifier::from(index));
}
bool ArrayInstanceImp::deleteProperty(ExecState *exec, const Identifier &propertyName)
1.40 +4 -4 JavaScriptCore/kjs/function.cpp
Index: function.cpp
===================================================================
RCS file: /cvs/root/JavaScriptCore/kjs/function.cpp,v
retrieving revision 1.39
retrieving revision 1.40
diff -u -r1.39 -r1.40
--- function.cpp 14 Jun 2005 16:36:11 -0000 1.39
+++ function.cpp 20 Jun 2005 21:59:31 -0000 1.40
@@ -237,11 +237,11 @@
InternalFunctionImp::put(exec, propertyName, value, attr);
}
-bool FunctionImp::hasProperty(ExecState *exec, const Identifier &propertyName) const
+bool FunctionImp::hasOwnProperty(ExecState *exec, const Identifier &propertyName) const
{
if (propertyName == argumentsPropertyName || propertyName == lengthPropertyName)
return true;
- return InternalFunctionImp::hasProperty(exec, propertyName);
+ return InternalFunctionImp::hasOwnProperty(exec, propertyName);
}
bool FunctionImp::deleteProperty(ExecState *exec, const Identifier &propertyName)
@@ -357,11 +357,11 @@
return ObjectImp::get(exec, propertyName);
}
-bool ActivationImp::hasProperty(ExecState *exec, const Identifier &propertyName) const
+bool ActivationImp::hasOwnProperty(ExecState *exec, const Identifier &propertyName) const
{
if (propertyName == argumentsPropertyName)
return true;
- return ObjectImp::hasProperty(exec, propertyName);
+ return ObjectImp::hasOwnProperty(exec, propertyName);
}
bool ActivationImp::deleteProperty(ExecState *exec, const Identifier &propertyName)
1.21 +2 -2 JavaScriptCore/kjs/function.h
Index: function.h
===================================================================
RCS file: /cvs/root/JavaScriptCore/kjs/function.h,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -r1.20 -r1.21
--- function.h 14 Jun 2005 16:36:11 -0000 1.20
+++ function.h 20 Jun 2005 21:59:31 -0000 1.21
@@ -43,7 +43,7 @@
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 hasProperty(ExecState *exec, const Identifier &propertyName) const;
+ virtual bool hasOwnProperty(ExecState *exec, const Identifier &propertyName) const;
virtual bool deleteProperty(ExecState *exec, const Identifier &propertyName);
virtual bool implementsCall() const;
@@ -104,7 +104,7 @@
ActivationImp(FunctionImp *function, const List &arguments);
virtual Value get(ExecState *exec, const Identifier &propertyName) const;
- virtual bool hasProperty(ExecState *exec, const Identifier &propertyName) const;
+ virtual bool hasOwnProperty(ExecState *exec, const Identifier &propertyName) const;
virtual bool deleteProperty(ExecState *exec, const Identifier &propertyName);
virtual const ClassInfo *classInfo() const { return &info; }
1.42 +31 -9 JavaScriptCore/kjs/object.cpp
Index: object.cpp
===================================================================
RCS file: /cvs/root/JavaScriptCore/kjs/object.cpp,v
retrieving revision 1.41
retrieving revision 1.42
diff -u -r1.41 -r1.42
--- object.cpp 9 May 2005 23:57:33 -0000 1.41
+++ object.cpp 20 Jun 2005 21:59:31 -0000 1.42
@@ -282,30 +282,52 @@
// 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;
- if (_proto->dispatchType() != ObjectType) {
- return false;
- }
-
- // Look in the prototype
- return static_cast<ObjectImp *>(_proto)->hasProperty(exec, propertyName);
+ return false;
}
-bool ObjectImp::hasProperty(ExecState *exec, unsigned propertyName) const
+bool ObjectImp::hasOwnProperty(ExecState *exec, unsigned propertyName) const
{
- return hasProperty(exec, Identifier::from(propertyName));
+ return hasOwnProperty(exec, Identifier::from(propertyName));
}
+
// ECMA 8.6.2.5
bool ObjectImp::deleteProperty(ExecState */*exec*/, const Identifier &propertyName)
{
1.34 +24 -2 JavaScriptCore/kjs/object.h
Index: object.h
===================================================================
RCS file: /cvs/root/JavaScriptCore/kjs/object.h,v
retrieving revision 1.33
retrieving revision 1.34
diff -u -r1.33 -r1.34
--- object.h 9 May 2005 23:57:33 -0000 1.33
+++ object.h 20 Jun 2005 21:59:31 -0000 1.34
@@ -182,6 +182,18 @@
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.
*
* See ECMA 8.6.2.5
@@ -513,9 +525,13 @@
*
* @see Object::hasProperty()
*/
- virtual bool hasProperty(ExecState *exec,
+ bool hasProperty(ExecState *exec,
const Identifier &propertyName) const;
- virtual bool hasProperty(ExecState *exec, unsigned 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;
/**
* Implementation of the [[Delete]] internal property (implemented by all
@@ -693,6 +709,12 @@
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); }
1.7 +19 -9 JavaScriptCore/kjs/object_object.cpp
Index: object_object.cpp
===================================================================
RCS file: /cvs/root/JavaScriptCore/kjs/object_object.cpp,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- object_object.cpp 9 Apr 2004 20:07:47 -0000 1.6
+++ object_object.cpp 20 Jun 2005 21:59:31 -0000 1.7
@@ -37,9 +37,10 @@
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);
+ 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);
}
@@ -60,14 +61,23 @@
return true;
}
-// ECMA 15.2.4.2 + 15.2.4.3
+// ECMA 15.2.4.2, 15.2.4.4, 15.2.4.5
-Value ObjectProtoFuncImp::call(ExecState */*exec*/, Object &thisObj, const List &/*args*/)
+Value ObjectProtoFuncImp::call(ExecState *exec, Object &thisObj, const List &args)
{
- if (id == ValueOf)
- return thisObj;
- else /* ToString */
- return String("[object "+thisObj.className()+"]");
+ 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() + "]");
+ }
}
// ------------------------------ ObjectObjectImp --------------------------------
1.4 +1 -1 JavaScriptCore/kjs/object_object.h
Index: object_object.h
===================================================================
RCS file: /cvs/root/JavaScriptCore/kjs/object_object.h,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- object_object.h 15 Apr 2002 23:41:17 -0000 1.3
+++ object_object.h 20 Jun 2005 21:59:31 -0000 1.4
@@ -53,7 +53,7 @@
virtual bool implementsCall() const;
virtual Value call(ExecState *exec, Object &thisObj, const List &args);
- enum { ToString, ValueOf };
+ enum { ToString, ValueOf, HasOwnProperty };
private:
int id;
};
1.35 +2 -2 JavaScriptCore/kjs/string_object.cpp
Index: string_object.cpp
===================================================================
RCS file: /cvs/root/JavaScriptCore/kjs/string_object.cpp,v
retrieving revision 1.34
retrieving revision 1.35
diff -u -r1.34 -r1.35
--- string_object.cpp 29 Apr 2005 00:22:55 -0000 1.34
+++ string_object.cpp 20 Jun 2005 21:59:31 -0000 1.35
@@ -76,7 +76,7 @@
ObjectImp::put(exec, propertyName, value, attr);
}
-bool StringInstanceImp::hasProperty(ExecState *exec, const Identifier &propertyName) const
+bool StringInstanceImp::hasOwnProperty(ExecState *exec, const Identifier &propertyName) const
{
if (propertyName == lengthPropertyName)
return true;
@@ -89,7 +89,7 @@
return true;
}
- return ObjectImp::hasProperty(exec, propertyName);
+ return ObjectImp::hasOwnProperty(exec, propertyName);
}
bool StringInstanceImp::deleteProperty(ExecState *exec, const Identifier &propertyName)
1.8 +1 -1 JavaScriptCore/kjs/string_object.h
Index: string_object.h
===================================================================
RCS file: /cvs/root/JavaScriptCore/kjs/string_object.h,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- string_object.h 17 Dec 2004 00:10:25 -0000 1.7
+++ string_object.h 20 Jun 2005 21:59:31 -0000 1.8
@@ -34,7 +34,7 @@
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 hasProperty(ExecState *exec, const Identifier &propertyName) const;
+ virtual bool hasOwnProperty(ExecState *exec, const Identifier &propertyName) const;
virtual bool deleteProperty(ExecState *exec, const Identifier &propertyName);
virtual const ClassInfo *classInfo() const { return &info; }
1.15 +196 -212 JavaScriptCore/tests/mozilla/expected.html
Index: expected.html
===================================================================
RCS file: /cvs/root/JavaScriptCore/tests/mozilla/expected.html,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -r1.14 -r1.15
--- expected.html 17 Jun 2005 00:57:37 -0000 1.14
+++ expected.html 20 Jun 2005 21:59:33 -0000 1.15
@@ -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, 127 failures reported (13.2% 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, 24 seconds.<br>
-Tests completed on Thu Jun 16 17:32:42 2005.<br><br>
+967 test(s) selected, 962 test(s) completed, 125 failures reported (12.99% failed)<br>
+Engine command line: /Users/mjs/Work/symroots/testkjs <br>
+OS type: Darwin maciej-stachowiaks-powerbook-g4-17.local 8.0.0 Darwin Kernel Version 8.0.0: Sat Mar 26 14:15:22 PST 2005; root:xnu-792.obj~1/RELEASE_PPC Power Macintosh powerpc<br>
+Testcase execution time: 2 minutes, 25 seconds.<br>
+Tests completed on Mon Jun 20 01:31:55 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 @@
--> (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>
---> (Thu Jun 16 2005 17:31:53 GMT-0700).toLocaleTimeString() = 5:31:53 PM PDT FAILED! expected: 17:31:53<br>
---> (Fri Jun 17 2005 01:31:53 GMT-0700).toLocaleTimeString() = 1:31:53 AM PDT FAILED! expected: 01:31:53<br>
+--> (Mon Jun 20 2005 01:31:11 GMT-0700).toLocaleTimeString() = 1:31:11 AM PDT FAILED! expected: 01:31:11<br>
+--> (Mon Jun 20 2005 09:31:11 GMT-0700).toLocaleTimeString() = 9:31:11 AM PDT FAILED! expected: 09:31:11<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>
@@ -333,45 +333,31 @@
yylex: ERROR.<br>
Exception, line 83: SyntaxError - Parse error<br>
</tt><br>
-<a name='failure32'></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 name='failure32'></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='#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 185: 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/Function/scope-002.js'>ecma_3/Function/scope-002.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 168: TypeError - Value undefined (result of expression obj.hasOwnProperty) is not object.<br>
-</tt><br>
-<a name='failure34'></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='#failure33'>Previous Failure</a> | <a href='#failure35'>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='failure35'></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='#failure34'>Previous Failure</a> | <a href='#failure36'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
+<a name='failure33'></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='#failure32'>Previous Failure</a> | <a href='#failure34'>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='failure36'></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='#failure35'>Previous Failure</a> | <a href='#failure37'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
+<a name='failure34'></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='#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 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='failure37'></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='#failure36'>Previous Failure</a> | <a href='#failure38'>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-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='#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 error types<br>
Failure messages were:<br>
--> FAILED!: [reported from test()] Current object is: new Error()<br>
@@ -396,8 +382,8 @@
--> FAILED!: [reported from test()] Expected value 'Error', Actual value 'Object'<br>
--> FAILED!: [reported from test()] <br>
</tt><br>
-<a name='failure38'></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='#failure37'>Previous Failure</a> | <a href='#failure39'>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-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='#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 constructors<br>
Failure messages were:<br>
--> FAILED!: [reported from test()] Current constructor is: EvalError<br>
@@ -419,16 +405,16 @@
--> FAILED!: [reported from test()] Expected value 'Function', Actual value 'Error'<br>
--> FAILED!: [reported from test()] <br>
</tt><br>
-<a name='failure39'></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='#failure38'>Previous Failure</a> | <a href='#failure40'>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/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='#failure36'>Previous Failure</a> | <a href='#failure38'>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='failure40'></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='#failure39'>Previous Failure</a> | <a href='#failure41'>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/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='#failure37'>Previous Failure</a> | <a href='#failure39'>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>
@@ -453,8 +439,8 @@
--> FAILED!: [reported from test()] Actual: null<br>
--> FAILED!: [reported from test()] <br>
</tt><br>
-<a name='failure41'></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='#failure40'>Previous Failure</a> | <a href='#failure42'>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.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='#failure38'>Previous Failure</a> | <a href='#failure40'>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>
@@ -521,8 +507,8 @@
--> FAILED!: [reported from test()] Actual: ["Abc"]<br>
--> FAILED!: [reported from test()] <br>
</tt><br>
-<a name='failure42'></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='#failure41'>Previous Failure</a> | <a href='#failure43'>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/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='#failure39'>Previous Failure</a> | <a href='#failure41'>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>
@@ -533,8 +519,8 @@
--> FAILED!: [reported from test()] Actual: ["a"]<br>
--> FAILED!: [reported from test()] <br>
</tt><br>
-<a name='failure43'></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='#failure42'>Previous Failure</a> | <a href='#failure44'>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/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='#failure40'>Previous Failure</a> | <a href='#failure42'>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>
@@ -622,8 +608,8 @@
--> FAILED!: [reported from test()] Actual: ["aabbaa", "aa", "bb"]<br>
--> FAILED!: [reported from test()] <br>
</tt><br>
-<a name='failure44'></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='#failure43'>Previous Failure</a> | <a href='#failure45'>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-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='#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 40 of test -<br>
@@ -641,8 +627,8 @@
--> FAILED!: [reported from test()] Actual: null<br>
--> FAILED!: [reported from test()] <br>
</tt><br>
-<a name='failure45'></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='#failure44'>Previous Failure</a> | <a href='#failure46'>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/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='#failure42'>Previous Failure</a> | <a href='#failure44'>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>
@@ -744,8 +730,8 @@
--> FAILED!: [reported from test()] Actual: null<br>
--> FAILED!: [reported from test()] <br>
</tt><br>
-<a name='failure46'></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='#failure45'>Previous Failure</a> | <a href='#failure47'>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-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='#failure43'>Previous Failure</a> | <a href='#failure45'>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>
@@ -806,8 +792,8 @@
--> FAILED!: [reported from test()] Expected value 'SyntaxError', Actual value 'Did not generate ANY error!!!'<br>
--> FAILED!: [reported from test()] <br>
</tt><br>
-<a name='failure47'></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='#failure46'>Previous Failure</a> | <a href='#failure48'>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-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='#failure44'>Previous Failure</a> | <a href='#failure46'>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>
@@ -818,8 +804,8 @@
--> FAILED!: [reported from test()] }</span>'<br>
--> FAILED!: [reported from test()] <br>
</tt><br>
-<a name='failure48'></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='#failure47'>Previous Failure</a> | <a href='#failure49'>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-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='#failure45'>Previous Failure</a> | <a href='#failure47'>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>
@@ -858,8 +844,8 @@
--> FAILED!: [reported from test()] Actual: ["1.000,00", "", ",00"]<br>
--> FAILED!: [reported from test()] <br>
</tt><br>
-<a name='failure49'></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='#failure48'>Previous Failure</a> | <a href='#failure50'>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-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='#failure46'>Previous Failure</a> | <a href='#failure48'>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>
@@ -877,8 +863,8 @@
--> FAILED!: [reported from test()] Actual: null<br>
--> FAILED!: [reported from test()] <br>
</tt><br>
-<a name='failure50'></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='#failure49'>Previous Failure</a> | <a href='#failure51'>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-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='#failure47'>Previous Failure</a> | <a href='#failure49'>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>
@@ -896,8 +882,8 @@
--> FAILED!: [reported from test()] Actual: null<br>
--> FAILED!: [reported from test()] <br>
</tt><br>
-<a name='failure51'></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='#failure50'>Previous Failure</a> | <a href='#failure52'>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-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='#failure48'>Previous Failure</a> | <a href='#failure50'>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>
@@ -1018,47 +1004,47 @@
--> FAILED!: Actual: null<br>
--> FAILED!: <br>
</tt><br>
-<a name='failure52'></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='#failure51'>Previous Failure</a> | <a href='#failure53'>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/Statements/regress-194364.js'>ecma_3/Statements/regress-194364.js</a> failed</b> <br>
+ [ <a href='#failure49'>Previous Failure</a> | <a href='#failure51'>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='failure53'></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='#failure52'>Previous Failure</a> | <a href='#failure54'>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/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='#failure50'>Previous Failure</a> | <a href='#failure52'>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 error'<br>
--> FAILED!: [reported from test()] <br>
</tt><br>
-<a name='failure54'></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='#failure53'>Previous Failure</a> | <a href='#failure55'>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-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='#failure51'>Previous Failure</a> | <a href='#failure53'>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='failure55'></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='#failure54'>Previous Failure</a> | <a href='#failure56'>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-003.js'>ecma_3/Unicode/uc-003.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>
<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='failure56'></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='#failure55'>Previous Failure</a> | <a href='#failure57'>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-005.js'>ecma_3/Unicode/uc-005.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 118: SyntaxError - Parse error<br>
</tt><br>
-<a name='failure57'></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='#failure56'>Previous Failure</a> | <a href='#failure58'>Next Failure</a> | <a href='#tippy_top'>Top of Page</a> ]<br>
+<a name='failure55'></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='#failure54'>Previous Failure</a> | <a href='#failure56'>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>
@@ -1069,16 +1055,16 @@
--> var b = new Array(1000); b.toString() = ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, FAILED! expected: [1000]<br>
--> b.length = 1000 FAILED! expected: 1<br>
</tt><br>
-<a name='failure58'></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='#failure57'>Previous Failure</a> | <a href='#failure59'>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_2.js'>js1_2/Array/tostring_2.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>
--> a.toString() = FAILED! expected: []<br>
--> String( a ) = FAILED! expected: []<br>
--> a +'' = FAILED! expected: []<br>
</tt><br>
-<a name='failure59'></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='#failure58'>Previous Failure</a> | <a href='#failure60'>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/function/function-001-n.js'>js1_2/function/function-001-n.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>Expected exit code 3, got 0<br>
Testcase terminated with signal 0<br>
Complete testcase output was:<br>
@@ -1086,8 +1072,8 @@
--> eval("function f(){}function g(){}") = undefined FAILED! expected: error<br>
OK.<br>
</tt><br>
-<a name='failure60'></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='#failure59'>Previous Failure</a> | <a href='#failure61'>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_object.js'>js1_2/function/Function_object.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><br>
Failure messages were:<br>
--> f.name = undefined FAILED! expected: a_test_function<br>
@@ -1095,29 +1081,29 @@
--> (new Function()).name = undefined FAILED! expected: anonymous<br>
} FAILED! expected: <br>
</tt><br>
-<a name='failure61'></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='#failure60'>Previous Failure</a> | <a href='#failure62'>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/Number.js'>js1_2/function/Number.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>
--> Number([1,2,3]) = NaN FAILED! expected: 3<br>
</tt><br>
-<a name='failure62'></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='#failure61'>Previous Failure</a> | <a href='#failure63'>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/regexparg-1.js'>js1_2/function/regexparg-1.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>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='failure63'></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='#failure62'>Previous Failure</a> | <a href='#failure64'>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/String.js'>js1_2/function/String.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><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='failure64'></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='#failure63'>Previous Failure</a> | <a href='#failure65'>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/tostring-1.js'>js1_2/function/tostring-1.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>
} FAILED! expected: <br>
@@ -1126,8 +1112,8 @@
} FAILED! expected: <br>
} FAILED! expected: <br>
</tt><br>
-<a name='failure65'></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='#failure64'>Previous Failure</a> | <a href='#failure66'>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-2.js'>js1_2/function/tostring-2.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>
@@ -1140,29 +1126,29 @@
} FAILED! expected: <br>
} FAILED! expected: <br>
</tt><br>
-<a name='failure66'></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='#failure65'>Previous Failure</a> | <a href='#failure67'>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/Objects/toString-001.js'>js1_2/Objects/toString-001.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>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='failure67'></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='#failure66'>Previous Failure</a> | <a href='#failure68'>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/operator/equality.js'>js1_2/operator/equality.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><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='failure68'></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='#failure67'>Previous Failure</a> | <a href='#failure69'>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/regexp/beginLine.js'>js1_2/regexp/beginLine.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>
123xyz'.match(new RegExp('^\d+')) = null FAILED! expected: 123<br>
</tt><br>
-<a name='failure69'></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='#failure68'>Previous Failure</a> | <a href='#failure70'>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/compile.js'>js1_2/regexp/compile.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>Expected exit code 0, got 3<br>
Testcase terminated with signal 0<br>
Complete testcase output was:<br>
@@ -1170,14 +1156,14 @@
--> 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='failure70'></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='#failure69'>Previous Failure</a> | <a href='#failure71'>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/endLine.js'>js1_2/regexp/endLine.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><br>
Failure messages were:<br>
xyz'.match(new RegExp('\d+$')) = null FAILED! expected: 890<br>
</tt><br>
-<a name='failure71'></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='#failure70'>Previous Failure</a> | <a href='#failure72'>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/RegExp_input.js'>js1_2/regexp/RegExp_input.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>
--> RegExp.input = 'abcd12357efg'; /\d+/.exec() = null FAILED! expected: 12357<br>
@@ -1186,8 +1172,8 @@
--> 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='failure72'></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='#failure71'>Previous Failure</a> | <a href='#failure73'>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_as_array.js'>js1_2/regexp/RegExp_input_as_array.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['$_'] = 'abcd12357efg'; /\d+/.exec() = null FAILED! expected: 12357<br>
@@ -1196,15 +1182,15 @@
--> 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='failure73'></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='#failure72'>Previous Failure</a> | <a href='#failure74'>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_lastIndex.js'>js1_2/regexp/RegExp_lastIndex.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>
--> 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='failure74'></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='#failure73'>Previous Failure</a> | <a href='#failure75'>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_lastMatch.js'>js1_2/regexp/RegExp_lastMatch.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>
--> 'foo'.match(/foo/); RegExp.lastMatch = undefined FAILED! expected: foo<br>
@@ -1214,8 +1200,8 @@
--> '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='failure75'></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='#failure74'>Previous Failure</a> | <a href='#failure76'>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_as_array.js'>js1_2/regexp/RegExp_lastMatch_as_array.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['$&'] = undefined FAILED! expected: foo<br>
@@ -1225,8 +1211,8 @@
--> '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='failure76'></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='#failure75'>Previous Failure</a> | <a href='#failure77'>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_lastParen.js'>js1_2/regexp/RegExp_lastParen.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>
--> 'abcd'.match(/(abc)d/); RegExp.lastParen = undefined FAILED! expected: abc<br>
@@ -1239,8 +1225,8 @@
--> '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='failure77'></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='#failure76'>Previous Failure</a> | <a href='#failure78'>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_as_array.js'>js1_2/regexp/RegExp_lastParen_as_array.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['$+'] = undefined FAILED! expected: abc<br>
@@ -1253,8 +1239,8 @@
--> 'abcdefg'.match(new RegExp('(^a)bc')); RegExp['$+'] = undefined FAILED! expected: a<br>
--> 'abcdefg'.match(/bc/); RegExp['$+'] = undefined FAILED! expected: <br>
</tt><br>
-<a name='failure78'></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='#failure77'>Previous Failure</a> | <a href='#failure79'>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_leftContext.js'>js1_2/regexp/RegExp_leftContext.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>
--> 'abc123xyz'.match(/123/); RegExp.leftContext = undefined FAILED! expected: abc<br>
@@ -1265,8 +1251,8 @@
--> '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='failure79'></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='#failure78'>Previous Failure</a> | <a href='#failure80'>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_as_array.js'>js1_2/regexp/RegExp_leftContext_as_array.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['$`'] = undefined FAILED! expected: abc<br>
@@ -1277,8 +1263,8 @@
--> 'xxxx'.match(new RegExp('$')); RegExp['$`'] = undefined FAILED! expected: xxxx<br>
--> 'test'.match(new RegExp('^')); RegExp['$`'] = undefined FAILED! expected: <br>
</tt><br>
-<a name='failure80'></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='#failure79'>Previous Failure</a> | <a href='#failure81'>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_multiline.js'>js1_2/regexp/RegExp_multiline.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>
--> RegExp.multiline = undefined FAILED! expected: false<br>
@@ -1288,8 +1274,8 @@
--> (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='failure81'></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='#failure80'>Previous Failure</a> | <a href='#failure82'>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_as_array.js'>js1_2/regexp/RegExp_multiline_as_array.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['$*'] = undefined FAILED! expected: false<br>
@@ -1299,8 +1285,8 @@
--> (['$*'] == 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='failure82'></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='#failure81'>Previous Failure</a> | <a href='#failure83'>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_rightContext.js'>js1_2/regexp/RegExp_rightContext.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>
--> 'abc123xyz'.match(/123/); RegExp.rightContext = undefined FAILED! expected: xyz<br>
@@ -1311,8 +1297,8 @@
--> '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='failure83'></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='#failure82'>Previous Failure</a> | <a href='#failure84'>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_as_array.js'>js1_2/regexp/RegExp_rightContext_as_array.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['$''] = undefined FAILED! expected: xyz<br>
@@ -1323,24 +1309,24 @@
--> 'xxxx'.match(new RegExp('$')); RegExp['$''] = undefined FAILED! expected: <br>
--> 'test'.match(new RegExp('^')); RegExp['$''] = undefined FAILED! expected: test<br>
</tt><br>
-<a name='failure84'></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='#failure83'>Previous Failure</a> | <a href='#failure85'>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/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='#failure81'>Previous Failure</a> | <a href='#failure83'>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='failure85'></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='#failure84'>Previous Failure</a> | <a href='#failure86'>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-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='#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=9141<br>
Exception, line 74: TypeError - Object /(?:xx|x)*/ (result of expression (?:xx|x)*) does not allow calls.<br>
</tt><br>
-<a name='failure86'></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='#failure85'>Previous Failure</a> | <a href='#failure87'>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/simple_form.js'>js1_2/regexp/simple_form.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>
<tt>Expected exit code 0, got 3<br>
Testcase terminated with signal 0<br>
Complete testcase output was:<br>
@@ -1348,14 +1334,14 @@
--> 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='failure87'></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='#failure86'>Previous Failure</a> | <a href='#failure88'>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/special_characters.js'>js1_2/regexp/special_characters.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><br>
Failure messages were:<br>
--> 'ab a b'.match(/a{2}/) = null FAILED! expected: a<br>
</tt><br>
-<a name='failure88'></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='#failure87'>Previous Failure</a> | <a href='#failure89'>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/string_split.js'>js1_2/regexp/string_split.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>
--> 'abc'.split(/[a-z]/) = ,,, FAILED! expected: ,,<br>
@@ -1363,8 +1349,8 @@
--> 'abc'.split(new RegExp('[a-z]')) = ,,, FAILED! expected: ,,<br>
--> 'abc'.split(new RegExp('[a-z]')) = ,,, FAILED! expected: ,,<br>
</tt><br>
-<a name='failure89'></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='#failure88'>Previous Failure</a> | <a href='#failure90'>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/String/concat.js'>js1_2/String/concat.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>
--> aString.concat([]) = test string FAILED! expected: test string[]<br>
@@ -1372,29 +1358,29 @@
--> '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='failure90'></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='#failure89'>Previous Failure</a> | <a href='#failure91'>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/slice.js'>js1_2/String/slice.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>
--> exhaustive String.slice test 1 = false FAILED! expected: true<br>
--> exhaustive String.slice test 2 = false FAILED! expected: true<br>
</tt><br>
-<a name='failure91'></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='#failure90'>Previous Failure</a> | <a href='#failure92'>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/version120/boolean-001.js'>js1_2/version120/boolean-001.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>
--> new Boolean(false) = true FAILED! expected: false<br>
</tt><br>
-<a name='failure92'></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='#failure91'>Previous Failure</a> | <a href='#failure93'>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/regress-99663.js'>js1_2/version120/regress-99663.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>--> 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='failure93'></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='#failure92'>Previous Failure</a> | <a href='#failure94'>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_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='#failure90'>Previous Failure</a> | <a href='#failure92'>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>
@@ -1403,8 +1389,8 @@
--> eval("function f(){}function g(){}") = undefined FAILED! expected: error<br>
OK.<br>
</tt><br>
-<a name='failure94'></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='#failure93'>Previous Failure</a> | <a href='#failure95'>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/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='#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>
@@ -1413,28 +1399,28 @@
--> eval("function f(){}function g(){}") = undefined FAILED! expected: error<br>
OK.<br>
</tt><br>
-<a name='failure95'></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='#failure94'>Previous Failure</a> | <a href='#failure96'>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/script-001.js'>js1_3/Script/script-001.js</a> failed</b> <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 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='failure96'></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='#failure95'>Previous Failure</a> | <a href='#failure97'>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_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='#failure93'>Previous Failure</a> | <a href='#failure95'>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='failure97'></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='#failure96'>Previous Failure</a> | <a href='#failure98'>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-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='#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>
--> StripSpaces(Array.prototype.concat.toString()).substring(0,17) = (InternalFunction FAILED! expected: functionconcat(){<br>
</tt><br>
-<a name='failure98'></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='#failure97'>Previous Failure</a> | <a href='#failure99'>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_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='#failure95'>Previous Failure</a> | <a href='#failure97'>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>
@@ -1443,36 +1429,36 @@
--> --- NOTE: IN THIS TESTCASE, WE EXPECT EXIT CODE 3 ---<br>
OK.<br>
</tt><br>
-<a name='failure99'></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='#failure98'>Previous Failure</a> | <a href='#failure100'>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/Exceptions/catchguard-001.js'>js1_5/Exceptions/catchguard-001.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>
<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='failure100'></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='#failure99'>Previous Failure</a> | <a href='#failure101'>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-002.js'>js1_5/Exceptions/catchguard-002.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='failure101'></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='#failure100'>Previous Failure</a> | <a href='#failure102'>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-003.js'>js1_5/Exceptions/catchguard-003.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='failure102'></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='#failure101'>Previous Failure</a> | <a href='#failure103'>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/errstack-001.js'>js1_5/Exceptions/errstack-001.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 248: TypeError - Undefined value<br>
</tt><br>
-<a name='failure103'></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='#failure102'>Previous Failure</a> | <a href='#failure104'>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/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='#failure100'>Previous Failure</a> | <a href='#failure102'>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>
@@ -1497,8 +1483,8 @@
--> FAILED!: [reported from test()] Expected value '3', Actual value '0'<br>
--> FAILED!: [reported from test()] <br>
</tt><br>
-<a name='failure104'></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='#failure103'>Previous Failure</a> | <a href='#failure105'>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-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='#failure101'>Previous Failure</a> | <a href='#failure103'>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>
@@ -1506,99 +1492,99 @@
--> STATUS: Test (non-ECMA) Error object properties fileName, lineNumber<br>
Exception, line 66: TypeError - Undefined value<br>
</tt><br>
-<a name='failure105'></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='#failure104'>Previous Failure</a> | <a href='#failure106'>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/GetSet/getset-001.js'>js1_5/GetSet/getset-001.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>
<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='failure106'></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='#failure105'>Previous Failure</a> | <a href='#failure107'>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-002.js'>js1_5/GetSet/getset-002.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 29: SyntaxError - Parse error<br>
</tt><br>
-<a name='failure107'></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='#failure106'>Previous Failure</a> | <a href='#failure108'>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-003.js'>js1_5/GetSet/getset-003.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 48: SyntaxError - Parse error<br>
</tt><br>
-<a name='failure108'></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='#failure107'>Previous Failure</a> | <a href='#failure109'>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-004.js'>js1_5/GetSet/getset-004.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: TypeError - Value undefined (result of expression obj.__defineSetter__) is not object.<br>
</tt><br>
-<a name='failure109'></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='#failure108'>Previous Failure</a> | <a href='#failure110'>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-005.js'>js1_5/GetSet/getset-005.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 57: TypeError - Value undefined (result of expression obj.__defineSetter__) is not object.<br>
</tt><br>
-<a name='failure110'></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='#failure109'>Previous Failure</a> | <a href='#failure111'>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-006.js'>js1_5/GetSet/getset-006.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 62: TypeError - Value undefined (result of expression obj.__defineSetter__) is not object.<br>
</tt><br>
-<a name='failure111'></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='#failure110'>Previous Failure</a> | <a href='#failure112'>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/Object/regress-90596-001.js'>js1_5/Object/regress-90596-001.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 49: TypeError - Value undefined (result of expression obj.toSource) is not object.<br>
</tt><br>
-<a name='failure112'></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='#failure111'>Previous Failure</a> | <a href='#failure113'>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-002.js'>js1_5/Object/regress-90596-002.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 - Object (result of expression uneval) does not allow calls.<br>
</tt><br>
-<a name='failure113'></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='#failure112'>Previous Failure</a> | <a href='#failure114'>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-96284-001.js'>js1_5/Object/regress-96284-001.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 50: TypeError - Value undefined (result of expression obj1.toSource) is not object.<br>
</tt><br>
-<a name='failure114'></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='#failure113'>Previous Failure</a> | <a href='#failure115'>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-002.js'>js1_5/Object/regress-96284-002.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 - Object (result of expression uneval) does not allow calls.<br>
</tt><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>
+<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>
<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='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>
+<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>
<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='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>
+<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>
<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='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>
+<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>
<tt>--> STATUS: Testing F.toString()<br>
Failure messages were:<br>
--> FAILED!: [reported from test()] Section 2 of test -<br>
@@ -1608,15 +1594,15 @@
--> 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='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>
+<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>
<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='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>
+<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>
<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>
@@ -1666,16 +1652,16 @@
--> 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='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>
+<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>
<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='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>
+<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>
<tt>Expected exit code 0, got 3<br>
Testcase terminated with signal 0<br>
Complete testcase output was:<br>
@@ -1683,8 +1669,8 @@
--> 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='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>
+<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>
<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>
@@ -1692,16 +1678,16 @@
--> FAILED!: [reported from test()] Expected value '43', Actual value 'false'<br>
--> FAILED!: [reported from test()] <br>
</tt><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>
+<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>
<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='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>
+<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>
<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>
@@ -1716,15 +1702,15 @@
--> FAILED!: [reported from test()] }', Actual value '0'<br>
--> FAILED!: [reported from test()] <br>
</tt><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>
+<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>
<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='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> <br>
- [ <a href='#failure126'>Previous Failure</a> | <a href='#failure128'>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/scope-001.js'>js1_5/Scope/scope-001.js</a> failed</b> <br>
+ [ <a href='#failure124'>Previous Failure</a> | <a href='#failure126'>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>
@@ -1736,9 +1722,9 @@
<pre>
<a name='retest_list'></a>
<h2>Retest List</h2><br>
-# Retest List, kjs, generated Thu Jun 16 17:32:42 2005.
+# Retest List, kjs, generated Mon Jun 20 01:31:55 2005.
# Original test base was: All tests.
-# 962 of 967 test(s) were completed, 127 failures reported.
+# 962 of 967 test(s) were completed, 125 failures reported.
ecma/GlobalObject/15.1.2.2-2.js
ecma/LexicalConventions/7.7.3-1.js
ecma/Statements/12.7-1-n.js
@@ -1770,8 +1756,6 @@
ecma_3/Function/regress-131964.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
1.4288 +29 -0 WebCore/ChangeLog
Index: ChangeLog
===================================================================
RCS file: /cvs/root/WebCore/ChangeLog,v
retrieving revision 1.4287
retrieving revision 1.4288
diff -u -r1.4287 -r1.4288
--- ChangeLog 20 Jun 2005 18:19:58 -0000 1.4287
+++ ChangeLog 20 Jun 2005 21:59:34 -0000 1.4288
@@ -1,3 +1,32 @@
+2005-06-20 Maciej Stachowiak <mjs at apple.com>
+
+ Patch from Mark Rowe <opendarwin.org at bdash.net.nz>, reviewed by me.
+
+ - fixed http://bugzilla.opendarwin.org/attachment.cgi?id=2483
+
+ Test cases added:
+ * layout-tests/fast/js/hasOwnProperty-expected.txt: Added.
+ * layout-tests/fast/js/hasOwnProperty.html: Added.
+ - also fixed two mozilla JS tests
+
+ * khtml/ecma/kjs_binding.h:
+ * khtml/ecma/kjs_css.cpp:
+ (KJS::DOMCSSStyleDeclaration::hasOwnProperty):
+ * khtml/ecma/kjs_css.h:
+ * khtml/ecma/kjs_dom.cpp:
+ (KJS::DOMNodeList::hasOwnProperty):
+ (KJS::DOMNamedNodeMap::hasOwnProperty):
+ * khtml/ecma/kjs_dom.h:
+ * khtml/ecma/kjs_html.cpp:
+ (KJS::HTMLDocument::hasOwnProperty):
+ (KJS::KJS::HTMLElement::hasOwnProperty):
+ (KJS::KJS::HTMLCollection::hasOwnProperty):
+ * khtml/ecma/kjs_html.h:
+ * khtml/ecma/kjs_window.cpp:
+ (KJS::Window::hasOwnProperty):
+ (KJS::Konqueror::hasOwnProperty):
+ * khtml/ecma/kjs_window.h:
+
2005-06-20 Geoffrey Garen <ggaren at apple.com>
Changes by Darin. Layout tests by me. Reviewed by me.
1.26 +6 -6 WebCore/khtml/ecma/kjs_binding.h
Index: kjs_binding.h
===================================================================
RCS file: /cvs/root/WebCore/khtml/ecma/kjs_binding.h,v
retrieving revision 1.25
retrieving revision 1.26
diff -u -r1.25 -r1.26
--- kjs_binding.h 31 May 2005 01:20:46 -0000 1.25
+++ kjs_binding.h 20 Jun 2005 21:59:37 -0000 1.26
@@ -312,7 +312,7 @@
virtual const ClassInfo *classInfo() const { return &info; } \
static const ClassInfo info; \
Value get(ExecState *exec, const Identifier &propertyName) const; \
- bool hasProperty(ExecState *exec, const Identifier &propertyName) const; \
+ bool hasOwnProperty(ExecState *exec, const Identifier &propertyName) const; \
}; \
const ClassInfo ClassProto::info = { ClassName, 0, &ClassProto##Table, 0 };
@@ -322,9 +322,9 @@
/*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::hasProperty(ExecState *exec, const Identifier &propertyName) const \
+ bool ClassProto::hasOwnProperty(ExecState *exec, const Identifier &propertyName) const \
{ /*stupid but we need this to have a common macro for the declaration*/ \
- return ObjectImp::hasProperty(exec, propertyName); \
+ return ObjectImp::hasOwnProperty(exec, propertyName); \
}
#define IMPLEMENT_PROTOTYPE_WITH_PARENT(ClassProto,ClassFunc,ParentProto) \
@@ -336,11 +336,11 @@
/* Not found -> forward request to "parent" prototype */ \
return ParentProto::self(exec)->get( exec, propertyName ); \
} \
- bool ClassProto::hasProperty(ExecState *exec, const Identifier &propertyName) const \
+ bool ClassProto::hasOwnProperty(ExecState *exec, const Identifier &propertyName) const \
{ \
- if (ObjectImp::hasProperty(exec, propertyName)) \
+ if (ObjectImp::hasOwnProperty(exec, propertyName)) \
return true; \
- return ParentProto::self(exec)->hasProperty(exec, propertyName); \
+ return ParentProto::self(exec)->hasOwnProperty(exec, propertyName); \
}
#define IMPLEMENT_PROTOFUNC(ClassFunc) \
1.24 +2 -2 WebCore/khtml/ecma/kjs_css.cpp
Index: kjs_css.cpp
===================================================================
RCS file: /cvs/root/WebCore/khtml/ecma/kjs_css.cpp,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -r1.23 -r1.24
--- kjs_css.cpp 16 May 2005 19:19:38 -0000 1.23
+++ kjs_css.cpp 20 Jun 2005 21:59:37 -0000 1.24
@@ -133,13 +133,13 @@
ScriptInterpreter::forgetDOMObject(m_impl.get());
}
-bool DOMCSSStyleDeclaration::hasProperty(ExecState *exec, const Identifier &p) const
+bool DOMCSSStyleDeclaration::hasOwnProperty(ExecState *exec, const Identifier &p) const
{
if (p == "cssText")
return true;
if (isCSSPropertyName(p))
return true;
- return ObjectImp::hasProperty(exec, p);
+ return ObjectImp::hasOwnProperty(exec, p);
}
Value DOMCSSStyleDeclaration::tryGet(ExecState *exec, const Identifier &propertyName) const
1.13 +1 -1 WebCore/khtml/ecma/kjs_css.h
Index: kjs_css.h
===================================================================
RCS file: /cvs/root/WebCore/khtml/ecma/kjs_css.h,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- kjs_css.h 12 May 2005 17:11:21 -0000 1.12
+++ kjs_css.h 20 Jun 2005 21:59:37 -0000 1.13
@@ -51,7 +51,7 @@
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 hasProperty(ExecState *exec, const Identifier &propertyName) const;
+ virtual bool hasOwnProperty(ExecState *exec, const Identifier &propertyName) const;
virtual const ClassInfo *classInfo() const { return &info; }
static const ClassInfo info;
enum { CssText, Length, ParentRule,
1.75 +4 -4 WebCore/khtml/ecma/kjs_dom.cpp
Index: kjs_dom.cpp
===================================================================
RCS file: /cvs/root/WebCore/khtml/ecma/kjs_dom.cpp,v
retrieving revision 1.74
retrieving revision 1.75
diff -u -r1.74 -r1.75
--- kjs_dom.cpp 7 Jun 2005 22:12:57 -0000 1.74
+++ kjs_dom.cpp 20 Jun 2005 21:59:37 -0000 1.75
@@ -727,11 +727,11 @@
// We have to implement hasProperty since we don't use a hashtable for 'length' and 'item'
// ## this breaks "for (..in..)" though.
-bool DOMNodeList::hasProperty(ExecState *exec, const Identifier &p) const
+bool DOMNodeList::hasOwnProperty(ExecState *exec, const Identifier &p) const
{
if (p == lengthPropertyName || p == "item")
return true;
- return ObjectImp::hasProperty(exec, p);
+ return ObjectImp::hasOwnProperty(exec, p);
}
Value DOMNodeList::tryGet(ExecState *exec, const Identifier &p) const
@@ -1430,11 +1430,11 @@
// We have to implement hasProperty since we don't use a hashtable for 'length'
// ## this breaks "for (..in..)" though.
-bool DOMNamedNodeMap::hasProperty(ExecState *exec, const Identifier &p) const
+bool DOMNamedNodeMap::hasOwnProperty(ExecState *exec, const Identifier &p) const
{
if (p == lengthPropertyName)
return true;
- return DOMObject::hasProperty(exec, p);
+ return DOMObject::hasOwnProperty(exec, p);
}
Value DOMNamedNodeMap::tryGet(ExecState* exec, const Identifier &p) const
1.40 +2 -2 WebCore/khtml/ecma/kjs_dom.h
Index: kjs_dom.h
===================================================================
RCS file: /cvs/root/WebCore/khtml/ecma/kjs_dom.h,v
retrieving revision 1.39
retrieving revision 1.40
diff -u -r1.39 -r1.40
--- kjs_dom.h 31 May 2005 01:20:46 -0000 1.39
+++ kjs_dom.h 20 Jun 2005 21:59:37 -0000 1.40
@@ -91,7 +91,7 @@
public:
DOMNodeList(ExecState *, DOM::NodeListImpl *l) : m_impl(l) { }
~DOMNodeList();
- virtual bool hasProperty(ExecState *exec, const Identifier &p) const;
+ virtual bool hasOwnProperty(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 @@
public:
DOMNamedNodeMap(ExecState *, DOM::NamedNodeMapImpl *m);
~DOMNamedNodeMap();
- virtual bool hasProperty(ExecState *exec, const Identifier &p) const;
+ virtual bool hasOwnProperty(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; }
1.117 +6 -6 WebCore/khtml/ecma/kjs_html.cpp
Index: kjs_html.cpp
===================================================================
RCS file: /cvs/root/WebCore/khtml/ecma/kjs_html.cpp,v
retrieving revision 1.116
retrieving revision 1.117
diff -u -r1.116 -r1.117
--- kjs_html.cpp 20 Jun 2005 18:20:03 -0000 1.116
+++ kjs_html.cpp 20 Jun 2005 21:59:37 -0000 1.117
@@ -270,13 +270,13 @@
{
}
-bool HTMLDocument::hasProperty(ExecState *exec, const Identifier &p) const
+bool HTMLDocument::hasOwnProperty(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::hasProperty(exec, p) || doc->haveNamedImageOrForm(p.qstring());
+ return DOMDocument::hasOwnProperty(exec, p) || doc->haveNamedImageOrForm(p.qstring());
}
Value HTMLDocument::tryGet(ExecState *exec, const Identifier &propertyName) const
@@ -2025,7 +2025,7 @@
return Undefined();
}
-bool KJS::HTMLElement::hasProperty(ExecState *exec, const Identifier &propertyName) const
+bool KJS::HTMLElement::hasOwnProperty(ExecState *exec, const Identifier &propertyName) const
{
#ifdef KJS_VERBOSE
//kdDebug(6070) << "HTMLElement::hasProperty " << propertyName.qstring() << endl;
@@ -2056,7 +2056,7 @@
break;
}
- return DOMElement::hasProperty(exec, propertyName);
+ return DOMElement::hasOwnProperty(exec, propertyName);
}
UString KJS::HTMLElement::toString(ExecState *exec) const
@@ -3105,11 +3105,11 @@
// We have to implement hasProperty since we don't use a hashtable for 'selectedIndex' and 'length'
// ## this breaks "for (..in..)" though.
-bool KJS::HTMLCollection::hasProperty(ExecState *exec, const Identifier &p) const
+bool KJS::HTMLCollection::hasOwnProperty(ExecState *exec, const Identifier &p) const
{
if (p == "selectedIndex" || p == lengthPropertyName)
return true;
- return DOMObject::hasProperty(exec, p);
+ return DOMObject::hasOwnProperty(exec, p);
}
Value KJS::HTMLCollection::tryGet(ExecState *exec, const Identifier &propertyName) const
1.46 +3 -3 WebCore/khtml/ecma/kjs_html.h
Index: kjs_html.h
===================================================================
RCS file: /cvs/root/WebCore/khtml/ecma/kjs_html.h,v
retrieving revision 1.45
retrieving revision 1.46
diff -u -r1.45 -r1.46
--- kjs_html.h 19 Jun 2005 05:00:23 -0000 1.45
+++ kjs_html.h 20 Jun 2005 21:59:37 -0000 1.46
@@ -50,7 +50,7 @@
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 hasProperty(ExecState *exec, const Identifier &propertyName) const;
+ virtual bool hasOwnProperty(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 @@
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 hasProperty(ExecState *exec, const Identifier &propertyName) const;
+ virtual bool hasOwnProperty(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 @@
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 hasProperty(ExecState *exec, const Identifier &p) const;
+ virtual bool hasOwnProperty(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; }
1.160 +2 -2 WebCore/khtml/ecma/kjs_window.cpp
Index: kjs_window.cpp
===================================================================
RCS file: /cvs/root/WebCore/khtml/ecma/kjs_window.cpp,v
retrieving revision 1.159
retrieving revision 1.160
diff -u -r1.159 -r1.160
--- kjs_window.cpp 14 Jun 2005 00:29:40 -0000 1.159
+++ kjs_window.cpp 20 Jun 2005 21:59:38 -0000 1.160
@@ -1113,7 +1113,7 @@
return Undefined();
}
-bool Window::hasProperty(ExecState *exec, const Identifier &p) const
+bool Window::hasOwnProperty(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 @@
const ClassInfo Konqueror::info = { "Konqueror", 0, 0, 0 };
-bool Konqueror::hasProperty(ExecState *exec, const Identifier &p) const
+bool Konqueror::hasOwnProperty(ExecState *exec, const Identifier &p) const
{
if ( p.qstring().startsWith( "goHistory" ) ) return false;
1.42 +2 -2 WebCore/khtml/ecma/kjs_window.h
Index: kjs_window.h
===================================================================
RCS file: /cvs/root/WebCore/khtml/ecma/kjs_window.h,v
retrieving revision 1.41
retrieving revision 1.42
diff -u -r1.41 -r1.42
--- kjs_window.h 8 Jun 2005 08:39:20 -0000 1.41
+++ kjs_window.h 20 Jun 2005 21:59:38 -0000 1.42
@@ -92,7 +92,7 @@
QGuardedPtr<KHTMLPart> part() const { return m_part; }
virtual void mark();
virtual Value get(ExecState *exec, const Identifier &propertyName) const;
- virtual bool hasProperty(ExecState *exec, const Identifier &propertyName) const;
+ virtual bool hasOwnProperty(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 @@
public:
Konqueror(KHTMLPart *p) : part(p) { }
virtual Value get(ExecState *exec, const Identifier &propertyName) const;
- virtual bool hasProperty(ExecState *exec, const Identifier &p) const;
+ virtual bool hasOwnProperty(ExecState *exec, const Identifier &p) const;
virtual UString toString(ExecState *exec) const;
virtual const ClassInfo* classInfo() const { return &info; }
static const ClassInfo info;
1.1 WebCore/layout-tests/fast/js/hasOwnProperty-expected.txt
Index: hasOwnProperty-expected.txt
===================================================================
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
1.1 WebCore/layout-tests/fast/js/hasOwnProperty.html
Index: hasOwnProperty.html
===================================================================
<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>
More information about the webkit-changes
mailing list