Changeset 80378 in webkit


Ignore:
Timestamp:
Mar 4, 2011 2:34:48 PM (13 years ago)
Author:
barraclough@apple.com
Message:

Bug 55736 - Implement seal/freeze/preventExtensions for normal object types.
Provide basic functionallity from section 15.2.4 of ECMA-262.
This support will need expanding to cover arrays, too.

Reviewed by Sam Weinig.

Source/JavaScriptCore:

Shows a 0.5% progression on SunSpidey, this seems to be due to changing
ObjectConstructor to use a static table.

(JSC::ExecState::objectConstructorTable):

Add a static table for ObjectConstructor.

  • runtime/CommonIdentifiers.h:
  • runtime/JSGlobalData.cpp:

(JSC::JSGlobalData::JSGlobalData):
(JSC::JSGlobalData::~JSGlobalData):

Add a static table for ObjectConstructor.

  • runtime/JSGlobalData.h:
  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::reset):

Add a static table for ObjectConstructor.

  • runtime/JSObject.cpp:

(JSC::JSObject::seal):
(JSC::JSObject::freeze):
(JSC::JSObject::preventExtensions):

Transition the object's structure.

(JSC::JSObject::defineOwnProperty):

Check isExtensible.

  • runtime/JSObject.h:

(JSC::JSObject::isSealed):
(JSC::JSObject::isFrozen):
(JSC::JSObject::isExtensible):

These wrap method on structure.

(JSC::JSObject::putDirectInternal):

Check isExtensible.

  • runtime/ObjectConstructor.cpp:

(JSC::ObjectConstructor::ObjectConstructor):
(JSC::ObjectConstructor::getOwnPropertySlot):
(JSC::ObjectConstructor::getOwnPropertyDescriptor):

Change ObjectConstructor to use a static table.

(JSC::objectConstructorSeal):
(JSC::objectConstructorFreeze):
(JSC::objectConstructorPreventExtensions):
(JSC::objectConstructorIsSealed):
(JSC::objectConstructorIsFrozen):
(JSC::objectConstructorIsExtensible):

Add new methods on Object.

  • runtime/ObjectConstructor.h:

(JSC::ObjectConstructor::createStructure):

  • runtime/Structure.cpp:

(JSC::Structure::Structure):

init/propagate m_preventExtensions

(JSC::Structure::sealTransition):
(JSC::Structure::freezeTransition):
(JSC::Structure::preventExtensionsTransition):

transition the structure, materializing the property map, setting m_preventExtensions & changing attributes.

(JSC::Structure::isSealed):
(JSC::Structure::isFrozen):

check attributes to detect if object is sealed/frozen.

  • runtime/Structure.h:

(JSC::Structure::isExtensible):

checks the m_preventExtensions flag.

LayoutTests:

Update results - many more tests PASS.
Also adds a new testcase.

  • fast/js/Object-getOwnPropertyNames-expected.txt:
  • fast/js/script-tests/Object-getOwnPropertyNames.js:
  • ietestcenter/Javascript/15.2.3.10-0-1-expected.txt:
  • ietestcenter/Javascript/15.2.3.10-0-2-expected.txt:
  • ietestcenter/Javascript/15.2.3.10-1-expected.txt:
  • ietestcenter/Javascript/15.2.3.10-2-expected.txt:
  • ietestcenter/Javascript/15.2.3.11-0-1-expected.txt:
  • ietestcenter/Javascript/15.2.3.11-0-2-expected.txt:
  • ietestcenter/Javascript/15.2.3.11-1-expected.txt:
  • ietestcenter/Javascript/15.2.3.11-4-1-expected.txt:
  • ietestcenter/Javascript/15.2.3.11-4-10-expected.txt:
  • ietestcenter/Javascript/15.2.3.11-4-11-expected.txt:
  • ietestcenter/Javascript/15.2.3.11-4-12-expected.txt:
  • ietestcenter/Javascript/15.2.3.11-4-13-expected.txt:
  • ietestcenter/Javascript/15.2.3.11-4-14-expected.txt:
  • ietestcenter/Javascript/15.2.3.11-4-15-expected.txt:
  • ietestcenter/Javascript/15.2.3.11-4-16-expected.txt:
  • ietestcenter/Javascript/15.2.3.11-4-17-expected.txt:
  • ietestcenter/Javascript/15.2.3.11-4-18-expected.txt:
  • ietestcenter/Javascript/15.2.3.11-4-19-expected.txt:
  • ietestcenter/Javascript/15.2.3.11-4-2-expected.txt:
  • ietestcenter/Javascript/15.2.3.11-4-20-expected.txt:
  • ietestcenter/Javascript/15.2.3.11-4-21-expected.txt:
  • ietestcenter/Javascript/15.2.3.11-4-22-expected.txt:
  • ietestcenter/Javascript/15.2.3.11-4-23-expected.txt:
  • ietestcenter/Javascript/15.2.3.11-4-24-expected.txt:
  • ietestcenter/Javascript/15.2.3.11-4-25-expected.txt:
  • ietestcenter/Javascript/15.2.3.11-4-26-expected.txt:
  • ietestcenter/Javascript/15.2.3.11-4-27-expected.txt:
  • ietestcenter/Javascript/15.2.3.11-4-3-expected.txt:
  • ietestcenter/Javascript/15.2.3.11-4-4-expected.txt:
  • ietestcenter/Javascript/15.2.3.11-4-5-expected.txt:
  • ietestcenter/Javascript/15.2.3.11-4-6-expected.txt:
  • ietestcenter/Javascript/15.2.3.11-4-7-expected.txt:
  • ietestcenter/Javascript/15.2.3.11-4-8-expected.txt:
  • ietestcenter/Javascript/15.2.3.11-4-9-expected.txt:
  • ietestcenter/Javascript/15.2.3.12-0-1-expected.txt:
  • ietestcenter/Javascript/15.2.3.12-0-2-expected.txt:
  • ietestcenter/Javascript/15.2.3.12-1-expected.txt:
  • ietestcenter/Javascript/15.2.3.12-3-1-expected.txt:
  • ietestcenter/Javascript/15.2.3.12-3-10-expected.txt:
  • ietestcenter/Javascript/15.2.3.12-3-11-expected.txt:
  • ietestcenter/Javascript/15.2.3.12-3-12-expected.txt:
  • ietestcenter/Javascript/15.2.3.12-3-13-expected.txt:
  • ietestcenter/Javascript/15.2.3.12-3-14-expected.txt:
  • ietestcenter/Javascript/15.2.3.12-3-15-expected.txt:
  • ietestcenter/Javascript/15.2.3.12-3-16-expected.txt:
  • ietestcenter/Javascript/15.2.3.12-3-17-expected.txt:
  • ietestcenter/Javascript/15.2.3.12-3-18-expected.txt:
  • ietestcenter/Javascript/15.2.3.12-3-19-expected.txt:
  • ietestcenter/Javascript/15.2.3.12-3-2-expected.txt:
  • ietestcenter/Javascript/15.2.3.12-3-20-expected.txt:
  • ietestcenter/Javascript/15.2.3.12-3-21-expected.txt:
  • ietestcenter/Javascript/15.2.3.12-3-22-expected.txt:
  • ietestcenter/Javascript/15.2.3.12-3-23-expected.txt:
  • ietestcenter/Javascript/15.2.3.12-3-24-expected.txt:
  • ietestcenter/Javascript/15.2.3.12-3-25-expected.txt:
  • ietestcenter/Javascript/15.2.3.12-3-26-expected.txt:
  • ietestcenter/Javascript/15.2.3.12-3-27-expected.txt:
  • ietestcenter/Javascript/15.2.3.12-3-3-expected.txt:
  • ietestcenter/Javascript/15.2.3.12-3-4-expected.txt:
  • ietestcenter/Javascript/15.2.3.12-3-5-expected.txt:
  • ietestcenter/Javascript/15.2.3.12-3-6-expected.txt:
  • ietestcenter/Javascript/15.2.3.12-3-7-expected.txt:
  • ietestcenter/Javascript/15.2.3.12-3-8-expected.txt:
  • ietestcenter/Javascript/15.2.3.12-3-9-expected.txt:
  • ietestcenter/Javascript/15.2.3.13-0-1-expected.txt:
  • ietestcenter/Javascript/15.2.3.13-0-2-expected.txt:
  • ietestcenter/Javascript/15.2.3.13-0-3-expected.txt:
  • ietestcenter/Javascript/15.2.3.13-1-expected.txt:
  • ietestcenter/Javascript/15.2.3.13-2-1-expected.txt:
  • ietestcenter/Javascript/15.2.3.13-2-10-expected.txt:
  • ietestcenter/Javascript/15.2.3.13-2-11-expected.txt:
  • ietestcenter/Javascript/15.2.3.13-2-12-expected.txt:
  • ietestcenter/Javascript/15.2.3.13-2-13-expected.txt:
  • ietestcenter/Javascript/15.2.3.13-2-14-expected.txt:
  • ietestcenter/Javascript/15.2.3.13-2-15-expected.txt:
  • ietestcenter/Javascript/15.2.3.13-2-16-expected.txt:
  • ietestcenter/Javascript/15.2.3.13-2-17-expected.txt:
  • ietestcenter/Javascript/15.2.3.13-2-18-expected.txt:
  • ietestcenter/Javascript/15.2.3.13-2-19-expected.txt:
  • ietestcenter/Javascript/15.2.3.13-2-2-expected.txt:
  • ietestcenter/Javascript/15.2.3.13-2-20-expected.txt:
  • ietestcenter/Javascript/15.2.3.13-2-21-expected.txt:
  • ietestcenter/Javascript/15.2.3.13-2-3-expected.txt:
  • ietestcenter/Javascript/15.2.3.13-2-4-expected.txt:
  • ietestcenter/Javascript/15.2.3.13-2-5-expected.txt:
  • ietestcenter/Javascript/15.2.3.13-2-6-expected.txt:
  • ietestcenter/Javascript/15.2.3.13-2-7-expected.txt:
  • ietestcenter/Javascript/15.2.3.13-2-8-expected.txt:
  • ietestcenter/Javascript/15.2.3.13-2-9-expected.txt:
  • ietestcenter/Javascript/15.2.3.14-2-4-expected.txt:
  • ietestcenter/Javascript/15.2.3.14-2-5-expected.txt:
  • ietestcenter/Javascript/15.2.3.14-2-6-expected.txt:
  • ietestcenter/Javascript/15.2.3.3-4-20-expected.txt:
  • ietestcenter/Javascript/15.2.3.3-4-21-expected.txt:
  • ietestcenter/Javascript/15.2.3.3-4-22-expected.txt:
  • ietestcenter/Javascript/15.2.3.3-4-23-expected.txt:
  • ietestcenter/Javascript/15.2.3.3-4-24-expected.txt:
  • ietestcenter/Javascript/15.2.3.3-4-25-expected.txt:
  • ietestcenter/Javascript/15.2.3.4-4-2-expected.txt:
  • ietestcenter/Javascript/15.2.3.6-4-1-expected.txt:
  • ietestcenter/Javascript/15.2.3.8-0-1-expected.txt:
  • ietestcenter/Javascript/15.2.3.8-0-2-expected.txt:
  • ietestcenter/Javascript/15.2.3.8-1-expected.txt:
  • ietestcenter/Javascript/15.2.3.9-0-1-expected.txt:
  • ietestcenter/Javascript/15.2.3.9-0-2-expected.txt:
  • ietestcenter/Javascript/15.2.3.9-1-expected.txt:
Location:
trunk
Files:
3 added
127 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r80373 r80378  
     12011-03-03  Gavin Barraclough  <barraclough@apple.com>
     2
     3        Reviewed by Sam Weinig.
     4
     5        Bug 55736 - Implement seal/freeze/preventExtensions for normal object types.
     6        Provide basic functionallity from section 15.2.4 of ECMA-262.
     7        This support will need expanding to cover arrays, too.
     8
     9        Update results - many more tests PASS.
     10        Also adds a new testcase.
     11
     12        * fast/js/Object-getOwnPropertyNames-expected.txt:
     13        * fast/js/script-tests/Object-getOwnPropertyNames.js:
     14        * ietestcenter/Javascript/15.2.3.10-0-1-expected.txt:
     15        * ietestcenter/Javascript/15.2.3.10-0-2-expected.txt:
     16        * ietestcenter/Javascript/15.2.3.10-1-expected.txt:
     17        * ietestcenter/Javascript/15.2.3.10-2-expected.txt:
     18        * ietestcenter/Javascript/15.2.3.11-0-1-expected.txt:
     19        * ietestcenter/Javascript/15.2.3.11-0-2-expected.txt:
     20        * ietestcenter/Javascript/15.2.3.11-1-expected.txt:
     21        * ietestcenter/Javascript/15.2.3.11-4-1-expected.txt:
     22        * ietestcenter/Javascript/15.2.3.11-4-10-expected.txt:
     23        * ietestcenter/Javascript/15.2.3.11-4-11-expected.txt:
     24        * ietestcenter/Javascript/15.2.3.11-4-12-expected.txt:
     25        * ietestcenter/Javascript/15.2.3.11-4-13-expected.txt:
     26        * ietestcenter/Javascript/15.2.3.11-4-14-expected.txt:
     27        * ietestcenter/Javascript/15.2.3.11-4-15-expected.txt:
     28        * ietestcenter/Javascript/15.2.3.11-4-16-expected.txt:
     29        * ietestcenter/Javascript/15.2.3.11-4-17-expected.txt:
     30        * ietestcenter/Javascript/15.2.3.11-4-18-expected.txt:
     31        * ietestcenter/Javascript/15.2.3.11-4-19-expected.txt:
     32        * ietestcenter/Javascript/15.2.3.11-4-2-expected.txt:
     33        * ietestcenter/Javascript/15.2.3.11-4-20-expected.txt:
     34        * ietestcenter/Javascript/15.2.3.11-4-21-expected.txt:
     35        * ietestcenter/Javascript/15.2.3.11-4-22-expected.txt:
     36        * ietestcenter/Javascript/15.2.3.11-4-23-expected.txt:
     37        * ietestcenter/Javascript/15.2.3.11-4-24-expected.txt:
     38        * ietestcenter/Javascript/15.2.3.11-4-25-expected.txt:
     39        * ietestcenter/Javascript/15.2.3.11-4-26-expected.txt:
     40        * ietestcenter/Javascript/15.2.3.11-4-27-expected.txt:
     41        * ietestcenter/Javascript/15.2.3.11-4-3-expected.txt:
     42        * ietestcenter/Javascript/15.2.3.11-4-4-expected.txt:
     43        * ietestcenter/Javascript/15.2.3.11-4-5-expected.txt:
     44        * ietestcenter/Javascript/15.2.3.11-4-6-expected.txt:
     45        * ietestcenter/Javascript/15.2.3.11-4-7-expected.txt:
     46        * ietestcenter/Javascript/15.2.3.11-4-8-expected.txt:
     47        * ietestcenter/Javascript/15.2.3.11-4-9-expected.txt:
     48        * ietestcenter/Javascript/15.2.3.12-0-1-expected.txt:
     49        * ietestcenter/Javascript/15.2.3.12-0-2-expected.txt:
     50        * ietestcenter/Javascript/15.2.3.12-1-expected.txt:
     51        * ietestcenter/Javascript/15.2.3.12-3-1-expected.txt:
     52        * ietestcenter/Javascript/15.2.3.12-3-10-expected.txt:
     53        * ietestcenter/Javascript/15.2.3.12-3-11-expected.txt:
     54        * ietestcenter/Javascript/15.2.3.12-3-12-expected.txt:
     55        * ietestcenter/Javascript/15.2.3.12-3-13-expected.txt:
     56        * ietestcenter/Javascript/15.2.3.12-3-14-expected.txt:
     57        * ietestcenter/Javascript/15.2.3.12-3-15-expected.txt:
     58        * ietestcenter/Javascript/15.2.3.12-3-16-expected.txt:
     59        * ietestcenter/Javascript/15.2.3.12-3-17-expected.txt:
     60        * ietestcenter/Javascript/15.2.3.12-3-18-expected.txt:
     61        * ietestcenter/Javascript/15.2.3.12-3-19-expected.txt:
     62        * ietestcenter/Javascript/15.2.3.12-3-2-expected.txt:
     63        * ietestcenter/Javascript/15.2.3.12-3-20-expected.txt:
     64        * ietestcenter/Javascript/15.2.3.12-3-21-expected.txt:
     65        * ietestcenter/Javascript/15.2.3.12-3-22-expected.txt:
     66        * ietestcenter/Javascript/15.2.3.12-3-23-expected.txt:
     67        * ietestcenter/Javascript/15.2.3.12-3-24-expected.txt:
     68        * ietestcenter/Javascript/15.2.3.12-3-25-expected.txt:
     69        * ietestcenter/Javascript/15.2.3.12-3-26-expected.txt:
     70        * ietestcenter/Javascript/15.2.3.12-3-27-expected.txt:
     71        * ietestcenter/Javascript/15.2.3.12-3-3-expected.txt:
     72        * ietestcenter/Javascript/15.2.3.12-3-4-expected.txt:
     73        * ietestcenter/Javascript/15.2.3.12-3-5-expected.txt:
     74        * ietestcenter/Javascript/15.2.3.12-3-6-expected.txt:
     75        * ietestcenter/Javascript/15.2.3.12-3-7-expected.txt:
     76        * ietestcenter/Javascript/15.2.3.12-3-8-expected.txt:
     77        * ietestcenter/Javascript/15.2.3.12-3-9-expected.txt:
     78        * ietestcenter/Javascript/15.2.3.13-0-1-expected.txt:
     79        * ietestcenter/Javascript/15.2.3.13-0-2-expected.txt:
     80        * ietestcenter/Javascript/15.2.3.13-0-3-expected.txt:
     81        * ietestcenter/Javascript/15.2.3.13-1-expected.txt:
     82        * ietestcenter/Javascript/15.2.3.13-2-1-expected.txt:
     83        * ietestcenter/Javascript/15.2.3.13-2-10-expected.txt:
     84        * ietestcenter/Javascript/15.2.3.13-2-11-expected.txt:
     85        * ietestcenter/Javascript/15.2.3.13-2-12-expected.txt:
     86        * ietestcenter/Javascript/15.2.3.13-2-13-expected.txt:
     87        * ietestcenter/Javascript/15.2.3.13-2-14-expected.txt:
     88        * ietestcenter/Javascript/15.2.3.13-2-15-expected.txt:
     89        * ietestcenter/Javascript/15.2.3.13-2-16-expected.txt:
     90        * ietestcenter/Javascript/15.2.3.13-2-17-expected.txt:
     91        * ietestcenter/Javascript/15.2.3.13-2-18-expected.txt:
     92        * ietestcenter/Javascript/15.2.3.13-2-19-expected.txt:
     93        * ietestcenter/Javascript/15.2.3.13-2-2-expected.txt:
     94        * ietestcenter/Javascript/15.2.3.13-2-20-expected.txt:
     95        * ietestcenter/Javascript/15.2.3.13-2-21-expected.txt:
     96        * ietestcenter/Javascript/15.2.3.13-2-3-expected.txt:
     97        * ietestcenter/Javascript/15.2.3.13-2-4-expected.txt:
     98        * ietestcenter/Javascript/15.2.3.13-2-5-expected.txt:
     99        * ietestcenter/Javascript/15.2.3.13-2-6-expected.txt:
     100        * ietestcenter/Javascript/15.2.3.13-2-7-expected.txt:
     101        * ietestcenter/Javascript/15.2.3.13-2-8-expected.txt:
     102        * ietestcenter/Javascript/15.2.3.13-2-9-expected.txt:
     103        * ietestcenter/Javascript/15.2.3.14-2-4-expected.txt:
     104        * ietestcenter/Javascript/15.2.3.14-2-5-expected.txt:
     105        * ietestcenter/Javascript/15.2.3.14-2-6-expected.txt:
     106        * ietestcenter/Javascript/15.2.3.3-4-20-expected.txt:
     107        * ietestcenter/Javascript/15.2.3.3-4-21-expected.txt:
     108        * ietestcenter/Javascript/15.2.3.3-4-22-expected.txt:
     109        * ietestcenter/Javascript/15.2.3.3-4-23-expected.txt:
     110        * ietestcenter/Javascript/15.2.3.3-4-24-expected.txt:
     111        * ietestcenter/Javascript/15.2.3.3-4-25-expected.txt:
     112        * ietestcenter/Javascript/15.2.3.4-4-2-expected.txt:
     113        * ietestcenter/Javascript/15.2.3.6-4-1-expected.txt:
     114        * ietestcenter/Javascript/15.2.3.8-0-1-expected.txt:
     115        * ietestcenter/Javascript/15.2.3.8-0-2-expected.txt:
     116        * ietestcenter/Javascript/15.2.3.8-1-expected.txt:
     117        * ietestcenter/Javascript/15.2.3.9-0-1-expected.txt:
     118        * ietestcenter/Javascript/15.2.3.9-0-2-expected.txt:
     119        * ietestcenter/Javascript/15.2.3.9-1-expected.txt:
     120
    11212011-03-04  Pavel Feldman  <pfeldman@chromium.org>
    2122
  • trunk/LayoutTests/fast/js/Object-getOwnPropertyNames-expected.txt

    r72063 r80378  
    4141PASS getSortedOwnPropertyNames(encodeURI) is ['length', 'name']
    4242PASS getSortedOwnPropertyNames(encodeURIComponent) is ['length', 'name']
    43 PASS getSortedOwnPropertyNames(Object) is ['create', 'defineProperties', 'defineProperty', 'getOwnPropertyDescriptor', 'getOwnPropertyNames', 'getPrototypeOf', 'keys', 'length', 'name', 'prototype']
     43PASS getSortedOwnPropertyNames(Object) is ['create', 'defineProperties', 'defineProperty', 'freeze', 'getOwnPropertyDescriptor', 'getOwnPropertyNames', 'getPrototypeOf', 'isExtensible', 'isFrozen', 'isSealed', 'keys', 'length', 'name', 'preventExtensions', 'prototype', 'seal']
    4444PASS getSortedOwnPropertyNames(Object.prototype) is ['__defineGetter__', '__defineSetter__', '__lookupGetter__', '__lookupSetter__', 'constructor', 'hasOwnProperty', 'isPrototypeOf', 'propertyIsEnumerable', 'toLocaleString', 'toString', 'valueOf']
    4545PASS getSortedOwnPropertyNames(Function) is ['length', 'name', 'prototype']
  • trunk/LayoutTests/fast/js/script-tests/Object-getOwnPropertyNames.js

    r72063 r80378  
    4949    "encodeURIComponent": "['length', 'name']",
    5050// Built-in ECMA objects
    51     "Object": "['create', 'defineProperties', 'defineProperty', 'getOwnPropertyDescriptor', 'getOwnPropertyNames', 'getPrototypeOf', 'keys', 'length', 'name', 'prototype']",
     51    "Object": "['create', 'defineProperties', 'defineProperty', 'freeze', 'getOwnPropertyDescriptor', 'getOwnPropertyNames', 'getPrototypeOf', 'isExtensible', 'isFrozen', 'isSealed', 'keys', 'length', 'name', 'preventExtensions', 'prototype', 'seal']",
    5252    "Object.prototype": "['__defineGetter__', '__defineSetter__', '__lookupGetter__', '__lookupSetter__', 'constructor', 'hasOwnProperty', 'isPrototypeOf', 'propertyIsEnumerable', 'toLocaleString', 'toString', 'valueOf']",
    5353    "Function": "['length', 'name', 'prototype']",
  • trunk/LayoutTests/ietestcenter/Javascript/15.2.3.10-0-1-expected.txt

    r62810 r80378  
    55
    66PASS ES5Harness.preconditionPassed is true
    7 FAIL ES5Harness.testPassed should be true (of type boolean). Was undefined (of type undefined).
     7PASS ES5Harness.testPassed is true
    88PASS successfullyParsed is true
    99
  • trunk/LayoutTests/ietestcenter/Javascript/15.2.3.10-0-2-expected.txt

    r62810 r80378  
    44
    55
    6 FAIL ES5Harness.preconditionPassed should be true (of type boolean). Was undefined (of type undefined).
    7 FAIL ES5Harness.testPassed should be true (of type boolean). Was undefined (of type undefined).
     6PASS ES5Harness.preconditionPassed is true
     7PASS ES5Harness.testPassed is true
    88PASS successfullyParsed is true
    99
  • trunk/LayoutTests/ietestcenter/Javascript/15.2.3.10-1-expected.txt

    r62810 r80378  
    44
    55
    6 FAIL ES5Harness.preconditionPassed should be true (of type boolean). Was undefined (of type undefined).
    7 FAIL ES5Harness.testPassed should be true (of type boolean). Was undefined (of type undefined).
     6PASS ES5Harness.preconditionPassed is true
     7PASS ES5Harness.testPassed is true
    88PASS successfullyParsed is true
    99
  • trunk/LayoutTests/ietestcenter/Javascript/15.2.3.10-2-expected.txt

    r62810 r80378  
    44
    55
    6 FAIL ES5Harness.preconditionPassed should be true (of type boolean). Was undefined (of type undefined).
    7 FAIL ES5Harness.testPassed should be true (of type boolean). Was undefined (of type undefined).
     6PASS ES5Harness.preconditionPassed is true
     7PASS ES5Harness.testPassed is true
    88PASS successfullyParsed is true
    99
  • trunk/LayoutTests/ietestcenter/Javascript/15.2.3.11-0-1-expected.txt

    r62810 r80378  
    55
    66PASS ES5Harness.preconditionPassed is true
    7 FAIL ES5Harness.testPassed should be true (of type boolean). Was undefined (of type undefined).
     7PASS ES5Harness.testPassed is true
    88PASS successfullyParsed is true
    99
  • trunk/LayoutTests/ietestcenter/Javascript/15.2.3.11-0-2-expected.txt

    r62810 r80378  
    44
    55
    6 FAIL ES5Harness.preconditionPassed should be true (of type boolean). Was undefined (of type undefined).
    7 FAIL ES5Harness.testPassed should be true (of type boolean). Was undefined (of type undefined).
     6PASS ES5Harness.preconditionPassed is true
     7PASS ES5Harness.testPassed is true
    88PASS successfullyParsed is true
    99
  • trunk/LayoutTests/ietestcenter/Javascript/15.2.3.11-1-expected.txt

    r62810 r80378  
    44
    55
    6 FAIL ES5Harness.preconditionPassed should be true (of type boolean). Was undefined (of type undefined).
    7 FAIL ES5Harness.testPassed should be true (of type boolean). Was undefined (of type undefined).
     6PASS ES5Harness.preconditionPassed is true
     7PASS ES5Harness.testPassed is true
    88PASS successfullyParsed is true
    99
  • trunk/LayoutTests/ietestcenter/Javascript/15.2.3.11-4-1-expected.txt

    r62810 r80378  
    44
    55
    6 FAIL ES5Harness.preconditionPassed should be true (of type boolean). Was undefined (of type undefined).
    7 FAIL ES5Harness.testPassed should be true (of type boolean). Was undefined (of type undefined).
     6PASS ES5Harness.preconditionPassed is true
     7PASS ES5Harness.testPassed is true
    88PASS successfullyParsed is true
    99
  • trunk/LayoutTests/ietestcenter/Javascript/15.2.3.11-4-10-expected.txt

    r62810 r80378  
    44
    55
    6 FAIL ES5Harness.preconditionPassed should be true (of type boolean). Was undefined (of type undefined).
    7 FAIL ES5Harness.testPassed should be true (of type boolean). Was undefined (of type undefined).
     6PASS ES5Harness.preconditionPassed is true
     7PASS ES5Harness.testPassed is true
    88PASS successfullyParsed is true
    99
  • trunk/LayoutTests/ietestcenter/Javascript/15.2.3.11-4-11-expected.txt

    r62810 r80378  
    44
    55
    6 FAIL ES5Harness.preconditionPassed should be true (of type boolean). Was undefined (of type undefined).
    7 FAIL ES5Harness.testPassed should be true (of type boolean). Was undefined (of type undefined).
     6PASS ES5Harness.preconditionPassed is true
     7PASS ES5Harness.testPassed is true
    88PASS successfullyParsed is true
    99
  • trunk/LayoutTests/ietestcenter/Javascript/15.2.3.11-4-12-expected.txt

    r62810 r80378  
    44
    55
    6 FAIL ES5Harness.preconditionPassed should be true (of type boolean). Was undefined (of type undefined).
    7 FAIL ES5Harness.testPassed should be true (of type boolean). Was undefined (of type undefined).
     6PASS ES5Harness.preconditionPassed is true
     7PASS ES5Harness.testPassed is true
    88PASS successfullyParsed is true
    99
  • trunk/LayoutTests/ietestcenter/Javascript/15.2.3.11-4-13-expected.txt

    r62810 r80378  
    44
    55
    6 FAIL ES5Harness.preconditionPassed should be true (of type boolean). Was undefined (of type undefined).
    7 FAIL ES5Harness.testPassed should be true (of type boolean). Was undefined (of type undefined).
     6PASS ES5Harness.preconditionPassed is true
     7PASS ES5Harness.testPassed is true
    88PASS successfullyParsed is true
    99
  • trunk/LayoutTests/ietestcenter/Javascript/15.2.3.11-4-14-expected.txt

    r62810 r80378  
    44
    55
    6 FAIL ES5Harness.preconditionPassed should be true (of type boolean). Was undefined (of type undefined).
    7 FAIL ES5Harness.testPassed should be true (of type boolean). Was undefined (of type undefined).
     6PASS ES5Harness.preconditionPassed is true
     7PASS ES5Harness.testPassed is true
    88PASS successfullyParsed is true
    99
  • trunk/LayoutTests/ietestcenter/Javascript/15.2.3.11-4-15-expected.txt

    r62810 r80378  
    44
    55
    6 FAIL ES5Harness.preconditionPassed should be true (of type boolean). Was undefined (of type undefined).
    7 FAIL ES5Harness.testPassed should be true (of type boolean). Was undefined (of type undefined).
     6PASS ES5Harness.preconditionPassed is true
     7PASS ES5Harness.testPassed is true
    88PASS successfullyParsed is true
    99
  • trunk/LayoutTests/ietestcenter/Javascript/15.2.3.11-4-16-expected.txt

    r62810 r80378  
    44
    55
    6 FAIL ES5Harness.preconditionPassed should be true (of type boolean). Was undefined (of type undefined).
    7 FAIL ES5Harness.testPassed should be true (of type boolean). Was undefined (of type undefined).
     6PASS ES5Harness.preconditionPassed is true
     7PASS ES5Harness.testPassed is true
    88PASS successfullyParsed is true
    99
  • trunk/LayoutTests/ietestcenter/Javascript/15.2.3.11-4-17-expected.txt

    r62810 r80378  
    44
    55
    6 FAIL ES5Harness.preconditionPassed should be true (of type boolean). Was undefined (of type undefined).
    7 FAIL ES5Harness.testPassed should be true (of type boolean). Was undefined (of type undefined).
     6PASS ES5Harness.preconditionPassed is true
     7PASS ES5Harness.testPassed is true
    88PASS successfullyParsed is true
    99
  • trunk/LayoutTests/ietestcenter/Javascript/15.2.3.11-4-18-expected.txt

    r62810 r80378  
    44
    55
    6 FAIL ES5Harness.preconditionPassed should be true (of type boolean). Was undefined (of type undefined).
    7 FAIL ES5Harness.testPassed should be true (of type boolean). Was undefined (of type undefined).
     6PASS ES5Harness.preconditionPassed is true
     7PASS ES5Harness.testPassed is true
    88PASS successfullyParsed is true
    99
  • trunk/LayoutTests/ietestcenter/Javascript/15.2.3.11-4-19-expected.txt

    r62810 r80378  
    44
    55
    6 FAIL ES5Harness.preconditionPassed should be true (of type boolean). Was undefined (of type undefined).
    7 FAIL ES5Harness.testPassed should be true (of type boolean). Was undefined (of type undefined).
     6PASS ES5Harness.preconditionPassed is true
     7PASS ES5Harness.testPassed is true
    88PASS successfullyParsed is true
    99
  • trunk/LayoutTests/ietestcenter/Javascript/15.2.3.11-4-2-expected.txt

    r62810 r80378  
    44
    55
    6 FAIL ES5Harness.preconditionPassed should be true (of type boolean). Was undefined (of type undefined).
    7 FAIL ES5Harness.testPassed should be true (of type boolean). Was undefined (of type undefined).
     6PASS ES5Harness.preconditionPassed is true
     7PASS ES5Harness.testPassed is true
    88PASS successfullyParsed is true
    99
  • trunk/LayoutTests/ietestcenter/Javascript/15.2.3.11-4-20-expected.txt

    r62810 r80378  
    44
    55
    6 FAIL ES5Harness.preconditionPassed should be true (of type boolean). Was undefined (of type undefined).
    7 FAIL ES5Harness.testPassed should be true (of type boolean). Was undefined (of type undefined).
     6PASS ES5Harness.preconditionPassed is true
     7PASS ES5Harness.testPassed is true
    88PASS successfullyParsed is true
    99
  • trunk/LayoutTests/ietestcenter/Javascript/15.2.3.11-4-21-expected.txt

    r62810 r80378  
    44
    55
    6 FAIL ES5Harness.preconditionPassed should be true (of type boolean). Was undefined (of type undefined).
    7 FAIL ES5Harness.testPassed should be true (of type boolean). Was undefined (of type undefined).
     6PASS ES5Harness.preconditionPassed is true
     7PASS ES5Harness.testPassed is true
    88PASS successfullyParsed is true
    99
  • trunk/LayoutTests/ietestcenter/Javascript/15.2.3.11-4-22-expected.txt

    r62810 r80378  
    44
    55
    6 FAIL ES5Harness.preconditionPassed should be true (of type boolean). Was undefined (of type undefined).
    7 FAIL ES5Harness.testPassed should be true (of type boolean). Was undefined (of type undefined).
     6PASS ES5Harness.preconditionPassed is true
     7PASS ES5Harness.testPassed is true
    88PASS successfullyParsed is true
    99
  • trunk/LayoutTests/ietestcenter/Javascript/15.2.3.11-4-23-expected.txt

    r62810 r80378  
    44
    55
    6 FAIL ES5Harness.preconditionPassed should be true (of type boolean). Was undefined (of type undefined).
    7 FAIL ES5Harness.testPassed should be true (of type boolean). Was undefined (of type undefined).
     6PASS ES5Harness.preconditionPassed is true
     7PASS ES5Harness.testPassed is true
    88PASS successfullyParsed is true
    99
  • trunk/LayoutTests/ietestcenter/Javascript/15.2.3.11-4-24-expected.txt

    r62810 r80378  
    44
    55
    6 FAIL ES5Harness.preconditionPassed should be true (of type boolean). Was undefined (of type undefined).
    7 FAIL ES5Harness.testPassed should be true (of type boolean). Was undefined (of type undefined).
     6PASS ES5Harness.preconditionPassed is true
     7PASS ES5Harness.testPassed is true
    88PASS successfullyParsed is true
    99
  • trunk/LayoutTests/ietestcenter/Javascript/15.2.3.11-4-25-expected.txt

    r62810 r80378  
    44
    55
    6 FAIL ES5Harness.preconditionPassed should be true (of type boolean). Was undefined (of type undefined).
    7 FAIL ES5Harness.testPassed should be true (of type boolean). Was undefined (of type undefined).
     6PASS ES5Harness.preconditionPassed is true
     7PASS ES5Harness.testPassed is true
    88PASS successfullyParsed is true
    99
  • trunk/LayoutTests/ietestcenter/Javascript/15.2.3.11-4-26-expected.txt

    r62810 r80378  
    44
    55
    6 FAIL ES5Harness.preconditionPassed should be true (of type boolean). Was undefined (of type undefined).
    7 FAIL ES5Harness.testPassed should be true (of type boolean). Was undefined (of type undefined).
     6PASS ES5Harness.preconditionPassed is true
     7PASS ES5Harness.testPassed is true
    88PASS successfullyParsed is true
    99
  • trunk/LayoutTests/ietestcenter/Javascript/15.2.3.11-4-27-expected.txt

    r62810 r80378  
    44
    55
    6 FAIL ES5Harness.preconditionPassed should be true (of type boolean). Was undefined (of type undefined).
    7 FAIL ES5Harness.testPassed should be true (of type boolean). Was undefined (of type undefined).
     6PASS ES5Harness.preconditionPassed is true
     7PASS ES5Harness.testPassed is true
    88PASS successfullyParsed is true
    99
  • trunk/LayoutTests/ietestcenter/Javascript/15.2.3.11-4-3-expected.txt

    r62810 r80378  
    44
    55
    6 FAIL ES5Harness.preconditionPassed should be true (of type boolean). Was undefined (of type undefined).
    7 FAIL ES5Harness.testPassed should be true (of type boolean). Was undefined (of type undefined).
     6PASS ES5Harness.preconditionPassed is true
     7PASS ES5Harness.testPassed is true
    88PASS successfullyParsed is true
    99
  • trunk/LayoutTests/ietestcenter/Javascript/15.2.3.11-4-4-expected.txt

    r62810 r80378  
    44
    55
    6 FAIL ES5Harness.preconditionPassed should be true (of type boolean). Was undefined (of type undefined).
    7 FAIL ES5Harness.testPassed should be true (of type boolean). Was undefined (of type undefined).
     6PASS ES5Harness.preconditionPassed is true
     7PASS ES5Harness.testPassed is true
    88PASS successfullyParsed is true
    99
  • trunk/LayoutTests/ietestcenter/Javascript/15.2.3.11-4-5-expected.txt

    r62810 r80378  
    44
    55
    6 FAIL ES5Harness.preconditionPassed should be true (of type boolean). Was undefined (of type undefined).
    7 FAIL ES5Harness.testPassed should be true (of type boolean). Was undefined (of type undefined).
     6PASS ES5Harness.preconditionPassed is true
     7PASS ES5Harness.testPassed is true
    88PASS successfullyParsed is true
    99
  • trunk/LayoutTests/ietestcenter/Javascript/15.2.3.11-4-6-expected.txt

    r62810 r80378  
    44
    55
    6 FAIL ES5Harness.preconditionPassed should be true (of type boolean). Was undefined (of type undefined).
    7 FAIL ES5Harness.testPassed should be true (of type boolean). Was undefined (of type undefined).
     6PASS ES5Harness.preconditionPassed is true
     7PASS ES5Harness.testPassed is true
    88PASS successfullyParsed is true
    99
  • trunk/LayoutTests/ietestcenter/Javascript/15.2.3.11-4-7-expected.txt

    r62810 r80378  
    44
    55
    6 FAIL ES5Harness.preconditionPassed should be true (of type boolean). Was undefined (of type undefined).
    7 FAIL ES5Harness.testPassed should be true (of type boolean). Was undefined (of type undefined).
     6PASS ES5Harness.preconditionPassed is true
     7PASS ES5Harness.testPassed is true
    88PASS successfullyParsed is true
    99
  • trunk/LayoutTests/ietestcenter/Javascript/15.2.3.11-4-8-expected.txt

    r62810 r80378  
    44
    55
    6 FAIL ES5Harness.preconditionPassed should be true (of type boolean). Was undefined (of type undefined).
    7 FAIL ES5Harness.testPassed should be true (of type boolean). Was undefined (of type undefined).
     6PASS ES5Harness.preconditionPassed is true
     7PASS ES5Harness.testPassed is true
    88PASS successfullyParsed is true
    99
  • trunk/LayoutTests/ietestcenter/Javascript/15.2.3.11-4-9-expected.txt

    r62810 r80378  
    44
    55
    6 FAIL ES5Harness.preconditionPassed should be true (of type boolean). Was undefined (of type undefined).
    7 FAIL ES5Harness.testPassed should be true (of type boolean). Was undefined (of type undefined).
     6PASS ES5Harness.preconditionPassed is true
     7PASS ES5Harness.testPassed is true
    88PASS successfullyParsed is true
    99
  • trunk/LayoutTests/ietestcenter/Javascript/15.2.3.12-0-1-expected.txt

    r62810 r80378  
    55
    66PASS ES5Harness.preconditionPassed is true
    7 FAIL ES5Harness.testPassed should be true (of type boolean). Was undefined (of type undefined).
     7PASS ES5Harness.testPassed is true
    88PASS successfullyParsed is true
    99
  • trunk/LayoutTests/ietestcenter/Javascript/15.2.3.12-0-2-expected.txt

    r62810 r80378  
    44
    55
    6 FAIL ES5Harness.preconditionPassed should be true (of type boolean). Was undefined (of type undefined).
    7 FAIL ES5Harness.testPassed should be true (of type boolean). Was undefined (of type undefined).
     6PASS ES5Harness.preconditionPassed is true
     7PASS ES5Harness.testPassed is true
    88PASS successfullyParsed is true
    99
  • trunk/LayoutTests/ietestcenter/Javascript/15.2.3.12-1-expected.txt

    r62810 r80378  
    44
    55
    6 FAIL ES5Harness.preconditionPassed should be true (of type boolean). Was undefined (of type undefined).
    7 FAIL ES5Harness.testPassed should be true (of type boolean). Was undefined (of type undefined).
     6PASS ES5Harness.preconditionPassed is true
     7PASS ES5Harness.testPassed is true
    88PASS successfullyParsed is true
    99
  • trunk/LayoutTests/ietestcenter/Javascript/15.2.3.12-3-1-expected.txt

    r62810 r80378  
    44
    55
    6 FAIL ES5Harness.preconditionPassed should be true (of type boolean). Was undefined (of type undefined).
    7 FAIL ES5Harness.testPassed should be true (of type boolean). Was undefined (of type undefined).
     6PASS ES5Harness.preconditionPassed is true
     7PASS ES5Harness.testPassed is true
    88PASS successfullyParsed is true
    99
  • trunk/LayoutTests/ietestcenter/Javascript/15.2.3.12-3-10-expected.txt

    r62810 r80378  
    44
    55
    6 FAIL ES5Harness.preconditionPassed should be true (of type boolean). Was undefined (of type undefined).
    7 FAIL ES5Harness.testPassed should be true (of type boolean). Was undefined (of type undefined).
     6PASS ES5Harness.preconditionPassed is true
     7PASS ES5Harness.testPassed is true
    88PASS successfullyParsed is true
    99
  • trunk/LayoutTests/ietestcenter/Javascript/15.2.3.12-3-11-expected.txt

    r62810 r80378  
    44
    55
    6 FAIL ES5Harness.preconditionPassed should be true (of type boolean). Was undefined (of type undefined).
    7 FAIL ES5Harness.testPassed should be true (of type boolean). Was undefined (of type undefined).
     6PASS ES5Harness.preconditionPassed is true
     7PASS ES5Harness.testPassed is true
    88PASS successfullyParsed is true
    99
  • trunk/LayoutTests/ietestcenter/Javascript/15.2.3.12-3-12-expected.txt

    r62810 r80378  
    44
    55
    6 FAIL ES5Harness.preconditionPassed should be true (of type boolean). Was undefined (of type undefined).
    7 FAIL ES5Harness.testPassed should be true (of type boolean). Was undefined (of type undefined).
     6PASS ES5Harness.preconditionPassed is true
     7PASS ES5Harness.testPassed is true
    88PASS successfullyParsed is true
    99
  • trunk/LayoutTests/ietestcenter/Javascript/15.2.3.12-3-13-expected.txt

    r62810 r80378  
    44
    55
    6 FAIL ES5Harness.preconditionPassed should be true (of type boolean). Was undefined (of type undefined).
    7 FAIL ES5Harness.testPassed should be true (of type boolean). Was undefined (of type undefined).
     6PASS ES5Harness.preconditionPassed is true
     7PASS ES5Harness.testPassed is true
    88PASS successfullyParsed is true
    99
  • trunk/LayoutTests/ietestcenter/Javascript/15.2.3.12-3-14-expected.txt

    r62810 r80378  
    44
    55
    6 FAIL ES5Harness.preconditionPassed should be true (of type boolean). Was undefined (of type undefined).
    7 FAIL ES5Harness.testPassed should be true (of type boolean). Was undefined (of type undefined).
     6PASS ES5Harness.preconditionPassed is true
     7PASS ES5Harness.testPassed is true
    88PASS successfullyParsed is true
    99
  • trunk/LayoutTests/ietestcenter/Javascript/15.2.3.12-3-15-expected.txt

    r62810 r80378  
    44
    55
    6 FAIL ES5Harness.preconditionPassed should be true (of type boolean). Was undefined (of type undefined).
    7 FAIL ES5Harness.testPassed should be true (of type boolean). Was undefined (of type undefined).
     6PASS ES5Harness.preconditionPassed is true
     7PASS ES5Harness.testPassed is true
    88PASS successfullyParsed is true
    99
  • trunk/LayoutTests/ietestcenter/Javascript/15.2.3.12-3-16-expected.txt

    r62810 r80378  
    44
    55
    6 FAIL ES5Harness.preconditionPassed should be true (of type boolean). Was undefined (of type undefined).
    7 FAIL ES5Harness.testPassed should be true (of type boolean). Was undefined (of type undefined).
     6PASS ES5Harness.preconditionPassed is true
     7PASS ES5Harness.testPassed is true
    88PASS successfullyParsed is true
    99
  • trunk/LayoutTests/ietestcenter/Javascript/15.2.3.12-3-17-expected.txt

    r62810 r80378  
    44
    55
    6 FAIL ES5Harness.preconditionPassed should be true (of type boolean). Was undefined (of type undefined).
    7 FAIL ES5Harness.testPassed should be true (of type boolean). Was undefined (of type undefined).
     6PASS ES5Harness.preconditionPassed is true
     7PASS ES5Harness.testPassed is true
    88PASS successfullyParsed is true
    99
  • trunk/LayoutTests/ietestcenter/Javascript/15.2.3.12-3-18-expected.txt

    r62810 r80378  
    44
    55
    6 FAIL ES5Harness.preconditionPassed should be true (of type boolean). Was undefined (of type undefined).
    7 FAIL ES5Harness.testPassed should be true (of type boolean). Was undefined (of type undefined).
     6PASS ES5Harness.preconditionPassed is true
     7PASS ES5Harness.testPassed is true
    88PASS successfullyParsed is true
    99
  • trunk/LayoutTests/ietestcenter/Javascript/15.2.3.12-3-19-expected.txt

    r62810 r80378  
    44
    55
    6 FAIL ES5Harness.preconditionPassed should be true (of type boolean). Was undefined (of type undefined).
    7 FAIL ES5Harness.testPassed should be true (of type boolean). Was undefined (of type undefined).
     6PASS ES5Harness.preconditionPassed is true
     7PASS ES5Harness.testPassed is true
    88PASS successfullyParsed is true
    99
  • trunk/LayoutTests/ietestcenter/Javascript/15.2.3.12-3-2-expected.txt

    r62810 r80378  
    44
    55
    6 FAIL ES5Harness.preconditionPassed should be true (of type boolean). Was undefined (of type undefined).
    7 FAIL ES5Harness.testPassed should be true (of type boolean). Was undefined (of type undefined).
     6PASS ES5Harness.preconditionPassed is true
     7PASS ES5Harness.testPassed is true
    88PASS successfullyParsed is true
    99
  • trunk/LayoutTests/ietestcenter/Javascript/15.2.3.12-3-20-expected.txt

    r62810 r80378  
    44
    55
    6 FAIL ES5Harness.preconditionPassed should be true (of type boolean). Was undefined (of type undefined).
    7 FAIL ES5Harness.testPassed should be true (of type boolean). Was undefined (of type undefined).
     6PASS ES5Harness.preconditionPassed is true
     7PASS ES5Harness.testPassed is true
    88PASS successfullyParsed is true
    99
  • trunk/LayoutTests/ietestcenter/Javascript/15.2.3.12-3-21-expected.txt

    r62810 r80378  
    44
    55
    6 FAIL ES5Harness.preconditionPassed should be true (of type boolean). Was undefined (of type undefined).
    7 FAIL ES5Harness.testPassed should be true (of type boolean). Was undefined (of type undefined).
     6PASS ES5Harness.preconditionPassed is true
     7PASS ES5Harness.testPassed is true
    88PASS successfullyParsed is true
    99
  • trunk/LayoutTests/ietestcenter/Javascript/15.2.3.12-3-22-expected.txt

    r62810 r80378  
    44
    55
    6 FAIL ES5Harness.preconditionPassed should be true (of type boolean). Was undefined (of type undefined).
    7 FAIL ES5Harness.testPassed should be true (of type boolean). Was undefined (of type undefined).
     6PASS ES5Harness.preconditionPassed is true
     7PASS ES5Harness.testPassed is true
    88PASS successfullyParsed is true
    99
  • trunk/LayoutTests/ietestcenter/Javascript/15.2.3.12-3-23-expected.txt

    r62810 r80378  
    44
    55
    6 FAIL ES5Harness.preconditionPassed should be true (of type boolean). Was undefined (of type undefined).
    7 FAIL ES5Harness.testPassed should be true (of type boolean). Was undefined (of type undefined).
     6PASS ES5Harness.preconditionPassed is true
     7PASS ES5Harness.testPassed is true
    88PASS successfullyParsed is true
    99
  • trunk/LayoutTests/ietestcenter/Javascript/15.2.3.12-3-24-expected.txt

    r62810 r80378  
    44
    55
    6 FAIL ES5Harness.preconditionPassed should be true (of type boolean). Was undefined (of type undefined).
    7 FAIL ES5Harness.testPassed should be true (of type boolean). Was undefined (of type undefined).
     6PASS ES5Harness.preconditionPassed is true
     7PASS ES5Harness.testPassed is true
    88PASS successfullyParsed is true
    99
  • trunk/LayoutTests/ietestcenter/Javascript/15.2.3.12-3-25-expected.txt

    r62810 r80378  
    44
    55
    6 FAIL ES5Harness.preconditionPassed should be true (of type boolean). Was undefined (of type undefined).
    7 FAIL ES5Harness.testPassed should be true (of type boolean). Was undefined (of type undefined).
     6PASS ES5Harness.preconditionPassed is true
     7PASS ES5Harness.testPassed is true
    88PASS successfullyParsed is true
    99
  • trunk/LayoutTests/ietestcenter/Javascript/15.2.3.12-3-26-expected.txt

    r62810 r80378  
    44
    55
    6 FAIL ES5Harness.preconditionPassed should be true (of type boolean). Was undefined (of type undefined).
    7 FAIL ES5Harness.testPassed should be true (of type boolean). Was undefined (of type undefined).
     6PASS ES5Harness.preconditionPassed is true
     7PASS ES5Harness.testPassed is true
    88PASS successfullyParsed is true
    99
  • trunk/LayoutTests/ietestcenter/Javascript/15.2.3.12-3-27-expected.txt

    r62810 r80378  
    44
    55
    6 FAIL ES5Harness.preconditionPassed should be true (of type boolean). Was undefined (of type undefined).
    7 FAIL ES5Harness.testPassed should be true (of type boolean). Was undefined (of type undefined).
     6PASS ES5Harness.preconditionPassed is true
     7PASS ES5Harness.testPassed is true
    88PASS successfullyParsed is true
    99
  • trunk/LayoutTests/ietestcenter/Javascript/15.2.3.12-3-3-expected.txt

    r62810 r80378  
    44
    55
    6 FAIL ES5Harness.preconditionPassed should be true (of type boolean). Was undefined (of type undefined).
    7 FAIL ES5Harness.testPassed should be true (of type boolean). Was undefined (of type undefined).
     6PASS ES5Harness.preconditionPassed is true
     7PASS ES5Harness.testPassed is true
    88PASS successfullyParsed is true
    99
  • trunk/LayoutTests/ietestcenter/Javascript/15.2.3.12-3-4-expected.txt

    r62810 r80378  
    44
    55
    6 FAIL ES5Harness.preconditionPassed should be true (of type boolean). Was undefined (of type undefined).
    7 FAIL ES5Harness.testPassed should be true (of type boolean). Was undefined (of type undefined).
     6PASS ES5Harness.preconditionPassed is true
     7PASS ES5Harness.testPassed is true
    88PASS successfullyParsed is true
    99
  • trunk/LayoutTests/ietestcenter/Javascript/15.2.3.12-3-5-expected.txt

    r62810 r80378  
    44
    55
    6 FAIL ES5Harness.preconditionPassed should be true (of type boolean). Was undefined (of type undefined).
    7 FAIL ES5Harness.testPassed should be true (of type boolean). Was undefined (of type undefined).
     6PASS ES5Harness.preconditionPassed is true
     7PASS ES5Harness.testPassed is true
    88PASS successfullyParsed is true
    99
  • trunk/LayoutTests/ietestcenter/Javascript/15.2.3.12-3-6-expected.txt

    r62810 r80378  
    44
    55
    6 FAIL ES5Harness.preconditionPassed should be true (of type boolean). Was undefined (of type undefined).
    7 FAIL ES5Harness.testPassed should be true (of type boolean). Was undefined (of type undefined).
     6PASS ES5Harness.preconditionPassed is true
     7PASS ES5Harness.testPassed is true
    88PASS successfullyParsed is true
    99
  • trunk/LayoutTests/ietestcenter/Javascript/15.2.3.12-3-7-expected.txt

    r62810 r80378  
    44
    55
    6 FAIL ES5Harness.preconditionPassed should be true (of type boolean). Was undefined (of type undefined).
    7 FAIL ES5Harness.testPassed should be true (of type boolean). Was undefined (of type undefined).
     6PASS ES5Harness.preconditionPassed is true
     7PASS ES5Harness.testPassed is true
    88PASS successfullyParsed is true
    99
  • trunk/LayoutTests/ietestcenter/Javascript/15.2.3.12-3-8-expected.txt

    r62810 r80378  
    44
    55
    6 FAIL ES5Harness.preconditionPassed should be true (of type boolean). Was undefined (of type undefined).
    7 FAIL ES5Harness.testPassed should be true (of type boolean). Was undefined (of type undefined).
     6PASS ES5Harness.preconditionPassed is true
     7PASS ES5Harness.testPassed is true
    88PASS successfullyParsed is true
    99
  • trunk/LayoutTests/ietestcenter/Javascript/15.2.3.12-3-9-expected.txt

    r62810 r80378  
    44
    55
    6 FAIL ES5Harness.preconditionPassed should be true (of type boolean). Was undefined (of type undefined).
    7 FAIL ES5Harness.testPassed should be true (of type boolean). Was undefined (of type undefined).
     6PASS ES5Harness.preconditionPassed is true
     7PASS ES5Harness.testPassed is true
    88PASS successfullyParsed is true
    99
  • trunk/LayoutTests/ietestcenter/Javascript/15.2.3.13-0-1-expected.txt

    r62810 r80378  
    55
    66PASS ES5Harness.preconditionPassed is true
    7 FAIL ES5Harness.testPassed should be true (of type boolean). Was undefined (of type undefined).
     7PASS ES5Harness.testPassed is true
    88PASS successfullyParsed is true
    99
  • trunk/LayoutTests/ietestcenter/Javascript/15.2.3.13-0-2-expected.txt

    r62810 r80378  
    44
    55
    6 FAIL ES5Harness.preconditionPassed should be true (of type boolean). Was undefined (of type undefined).
    7 FAIL ES5Harness.testPassed should be true (of type boolean). Was undefined (of type undefined).
     6PASS ES5Harness.preconditionPassed is true
     7PASS ES5Harness.testPassed is true
    88PASS successfullyParsed is true
    99
  • trunk/LayoutTests/ietestcenter/Javascript/15.2.3.13-0-3-expected.txt

    r62810 r80378  
    44
    55
    6 FAIL ES5Harness.preconditionPassed should be true (of type boolean). Was undefined (of type undefined).
    7 FAIL ES5Harness.testPassed should be true (of type boolean). Was undefined (of type undefined).
     6PASS ES5Harness.preconditionPassed is true
     7PASS ES5Harness.testPassed is true
    88PASS successfullyParsed is true
    99
  • trunk/LayoutTests/ietestcenter/Javascript/15.2.3.13-1-expected.txt

    r62810 r80378  
    44
    55
    6 FAIL ES5Harness.preconditionPassed should be true (of type boolean). Was undefined (of type undefined).
    7 FAIL ES5Harness.testPassed should be true (of type boolean). Was undefined (of type undefined).
     6PASS ES5Harness.preconditionPassed is true
     7PASS ES5Harness.testPassed is true
    88PASS successfullyParsed is true
    99
  • trunk/LayoutTests/ietestcenter/Javascript/15.2.3.13-2-1-expected.txt

    r62810 r80378  
    44
    55
    6 FAIL ES5Harness.preconditionPassed should be true (of type boolean). Was undefined (of type undefined).
    7 FAIL ES5Harness.testPassed should be true (of type boolean). Was undefined (of type undefined).
     6PASS ES5Harness.preconditionPassed is true
     7PASS ES5Harness.testPassed is true
    88PASS successfullyParsed is true
    99
  • trunk/LayoutTests/ietestcenter/Javascript/15.2.3.13-2-10-expected.txt

    r62810 r80378  
    44
    55
    6 FAIL ES5Harness.preconditionPassed should be true (of type boolean). Was undefined (of type undefined).
    7 FAIL ES5Harness.testPassed should be true (of type boolean). Was undefined (of type undefined).
     6PASS ES5Harness.preconditionPassed is true
     7PASS ES5Harness.testPassed is true
    88PASS successfullyParsed is true
    99
  • trunk/LayoutTests/ietestcenter/Javascript/15.2.3.13-2-11-expected.txt

    r62810 r80378  
    44
    55
    6 FAIL ES5Harness.preconditionPassed should be true (of type boolean). Was undefined (of type undefined).
    7 FAIL ES5Harness.testPassed should be true (of type boolean). Was undefined (of type undefined).
     6PASS ES5Harness.preconditionPassed is true
     7PASS ES5Harness.testPassed is true
    88PASS successfullyParsed is true
    99
  • trunk/LayoutTests/ietestcenter/Javascript/15.2.3.13-2-12-expected.txt

    r62810 r80378  
    44
    55
    6 FAIL ES5Harness.preconditionPassed should be true (of type boolean). Was undefined (of type undefined).
    7 FAIL ES5Harness.testPassed should be true (of type boolean). Was undefined (of type undefined).
     6PASS ES5Harness.preconditionPassed is true
     7PASS ES5Harness.testPassed is true
    88PASS successfullyParsed is true
    99
  • trunk/LayoutTests/ietestcenter/Javascript/15.2.3.13-2-13-expected.txt

    r62810 r80378  
    44
    55
    6 FAIL ES5Harness.preconditionPassed should be true (of type boolean). Was undefined (of type undefined).
    7 FAIL ES5Harness.testPassed should be true (of type boolean). Was undefined (of type undefined).
     6PASS ES5Harness.preconditionPassed is true
     7PASS ES5Harness.testPassed is true
    88PASS successfullyParsed is true
    99
  • trunk/LayoutTests/ietestcenter/Javascript/15.2.3.13-2-14-expected.txt

    r62810 r80378  
    44
    55
    6 FAIL ES5Harness.preconditionPassed should be true (of type boolean). Was undefined (of type undefined).
    7 FAIL ES5Harness.testPassed should be true (of type boolean). Was undefined (of type undefined).
     6PASS ES5Harness.preconditionPassed is true
     7PASS ES5Harness.testPassed is true
    88PASS successfullyParsed is true
    99
  • trunk/LayoutTests/ietestcenter/Javascript/15.2.3.13-2-15-expected.txt

    r62810 r80378  
    44
    55
    6 FAIL ES5Harness.preconditionPassed should be true (of type boolean). Was undefined (of type undefined).
    7 FAIL ES5Harness.testPassed should be true (of type boolean). Was undefined (of type undefined).
     6PASS ES5Harness.preconditionPassed is true
     7PASS ES5Harness.testPassed is true
    88PASS successfullyParsed is true
    99
  • trunk/LayoutTests/ietestcenter/Javascript/15.2.3.13-2-16-expected.txt

    r62810 r80378  
    44
    55
    6 FAIL ES5Harness.preconditionPassed should be true (of type boolean). Was undefined (of type undefined).
    7 FAIL ES5Harness.testPassed should be true (of type boolean). Was undefined (of type undefined).
     6PASS ES5Harness.preconditionPassed is true
     7PASS ES5Harness.testPassed is true
    88PASS successfullyParsed is true
    99
  • trunk/LayoutTests/ietestcenter/Javascript/15.2.3.13-2-17-expected.txt

    r62810 r80378  
    44
    55
    6 FAIL ES5Harness.preconditionPassed should be true (of type boolean). Was undefined (of type undefined).
    7 FAIL ES5Harness.testPassed should be true (of type boolean). Was undefined (of type undefined).
     6PASS ES5Harness.preconditionPassed is true
     7PASS ES5Harness.testPassed is true
    88PASS successfullyParsed is true
    99
  • trunk/LayoutTests/ietestcenter/Javascript/15.2.3.13-2-18-expected.txt

    r62810 r80378  
    44
    55
    6 FAIL ES5Harness.preconditionPassed should be true (of type boolean). Was undefined (of type undefined).
    7 FAIL ES5Harness.testPassed should be true (of type boolean). Was undefined (of type undefined).
     6PASS ES5Harness.preconditionPassed is true
     7PASS ES5Harness.testPassed is true
    88PASS successfullyParsed is true
    99
  • trunk/LayoutTests/ietestcenter/Javascript/15.2.3.13-2-19-expected.txt

    r62810 r80378  
    44
    55
    6 FAIL ES5Harness.preconditionPassed should be true (of type boolean). Was undefined (of type undefined).
    7 FAIL ES5Harness.testPassed should be true (of type boolean). Was undefined (of type undefined).
     6PASS ES5Harness.preconditionPassed is true
     7PASS ES5Harness.testPassed is true
    88PASS successfullyParsed is true
    99
  • trunk/LayoutTests/ietestcenter/Javascript/15.2.3.13-2-2-expected.txt

    r62810 r80378  
    44
    55
    6 FAIL ES5Harness.preconditionPassed should be true (of type boolean). Was undefined (of type undefined).
    7 FAIL ES5Harness.testPassed should be true (of type boolean). Was undefined (of type undefined).
     6PASS ES5Harness.preconditionPassed is true
     7PASS ES5Harness.testPassed is true
    88PASS successfullyParsed is true
    99
  • trunk/LayoutTests/ietestcenter/Javascript/15.2.3.13-2-20-expected.txt

    r62810 r80378  
    44
    55
    6 FAIL ES5Harness.preconditionPassed should be true (of type boolean). Was undefined (of type undefined).
    7 FAIL ES5Harness.testPassed should be true (of type boolean). Was undefined (of type undefined).
     6PASS ES5Harness.preconditionPassed is true
     7PASS ES5Harness.testPassed is true
    88PASS successfullyParsed is true
    99
  • trunk/LayoutTests/ietestcenter/Javascript/15.2.3.13-2-21-expected.txt

    r62810 r80378  
    44
    55
    6 FAIL ES5Harness.preconditionPassed should be true (of type boolean). Was undefined (of type undefined).
    7 FAIL ES5Harness.testPassed should be true (of type boolean). Was undefined (of type undefined).
     6PASS ES5Harness.preconditionPassed is true
     7PASS ES5Harness.testPassed is true
    88PASS successfullyParsed is true
    99
  • trunk/LayoutTests/ietestcenter/Javascript/15.2.3.13-2-3-expected.txt

    r62810 r80378  
    44
    55
    6 FAIL ES5Harness.preconditionPassed should be true (of type boolean). Was undefined (of type undefined).
    7 FAIL ES5Harness.testPassed should be true (of type boolean). Was undefined (of type undefined).
     6PASS ES5Harness.preconditionPassed is true
     7PASS ES5Harness.testPassed is true
    88PASS successfullyParsed is true
    99
  • trunk/LayoutTests/ietestcenter/Javascript/15.2.3.13-2-4-expected.txt

    r62810 r80378  
    44
    55
    6 FAIL ES5Harness.preconditionPassed should be true (of type boolean). Was undefined (of type undefined).
    7 FAIL ES5Harness.testPassed should be true (of type boolean). Was undefined (of type undefined).
     6PASS ES5Harness.preconditionPassed is true
     7PASS ES5Harness.testPassed is true
    88PASS successfullyParsed is true
    99
  • trunk/LayoutTests/ietestcenter/Javascript/15.2.3.13-2-5-expected.txt

    r62810 r80378  
    44
    55
    6 FAIL ES5Harness.preconditionPassed should be true (of type boolean). Was undefined (of type undefined).
    7 FAIL ES5Harness.testPassed should be true (of type boolean). Was undefined (of type undefined).
     6PASS ES5Harness.preconditionPassed is true
     7PASS ES5Harness.testPassed is true
    88PASS successfullyParsed is true
    99
  • trunk/LayoutTests/ietestcenter/Javascript/15.2.3.13-2-6-expected.txt

    r62810 r80378  
    44
    55
    6 FAIL ES5Harness.preconditionPassed should be true (of type boolean). Was undefined (of type undefined).
    7 FAIL ES5Harness.testPassed should be true (of type boolean). Was undefined (of type undefined).
     6PASS ES5Harness.preconditionPassed is true
     7PASS ES5Harness.testPassed is true
    88PASS successfullyParsed is true
    99
  • trunk/LayoutTests/ietestcenter/Javascript/15.2.3.13-2-7-expected.txt

    r62810 r80378  
    44
    55
    6 FAIL ES5Harness.preconditionPassed should be true (of type boolean). Was undefined (of type undefined).
    7 FAIL ES5Harness.testPassed should be true (of type boolean). Was undefined (of type undefined).
     6PASS ES5Harness.preconditionPassed is true
     7PASS ES5Harness.testPassed is true
    88PASS successfullyParsed is true
    99
  • trunk/LayoutTests/ietestcenter/Javascript/15.2.3.13-2-8-expected.txt

    r62810 r80378  
    44
    55
    6 FAIL ES5Harness.preconditionPassed should be true (of type boolean). Was undefined (of type undefined).
    7 FAIL ES5Harness.testPassed should be true (of type boolean). Was undefined (of type undefined).
     6PASS ES5Harness.preconditionPassed is true
     7PASS ES5Harness.testPassed is true
    88PASS successfullyParsed is true
    99
  • trunk/LayoutTests/ietestcenter/Javascript/15.2.3.13-2-9-expected.txt

    r62810 r80378  
    44
    55
    6 FAIL ES5Harness.preconditionPassed should be true (of type boolean). Was undefined (of type undefined).
    7 FAIL ES5Harness.testPassed should be true (of type boolean). Was undefined (of type undefined).
     6PASS ES5Harness.preconditionPassed is true
     7PASS ES5Harness.testPassed is true
    88PASS successfullyParsed is true
    99
  • trunk/LayoutTests/ietestcenter/Javascript/15.2.3.14-2-4-expected.txt

    r62810 r80378  
    44
    55
    6 FAIL ES5Harness.preconditionPassed should be true (of type boolean). Was undefined (of type undefined).
    7 FAIL ES5Harness.testPassed should be true (of type boolean). Was undefined (of type undefined).
     6PASS ES5Harness.preconditionPassed is true
     7PASS ES5Harness.testPassed is true
    88PASS successfullyParsed is true
    99
  • trunk/LayoutTests/ietestcenter/Javascript/15.2.3.14-2-5-expected.txt

    r62810 r80378  
    44
    55
    6 FAIL ES5Harness.preconditionPassed should be true (of type boolean). Was undefined (of type undefined).
    7 FAIL ES5Harness.testPassed should be true (of type boolean). Was undefined (of type undefined).
     6PASS ES5Harness.preconditionPassed is true
     7PASS ES5Harness.testPassed is true
    88PASS successfullyParsed is true
    99
  • trunk/LayoutTests/ietestcenter/Javascript/15.2.3.14-2-6-expected.txt

    r62810 r80378  
    44
    55
    6 FAIL ES5Harness.preconditionPassed should be true (of type boolean). Was undefined (of type undefined).
    7 FAIL ES5Harness.testPassed should be true (of type boolean). Was undefined (of type undefined).
     6PASS ES5Harness.preconditionPassed is true
     7PASS ES5Harness.testPassed is true
    88PASS successfullyParsed is true
    99
  • trunk/LayoutTests/ietestcenter/Javascript/15.2.3.3-4-20-expected.txt

    r62810 r80378  
    55
    66PASS ES5Harness.preconditionPassed is true
    7 FAIL ES5Harness.testPassed should be true. Was false.
     7PASS ES5Harness.testPassed is true
    88PASS successfullyParsed is true
    99
  • trunk/LayoutTests/ietestcenter/Javascript/15.2.3.3-4-21-expected.txt

    r62810 r80378  
    55
    66PASS ES5Harness.preconditionPassed is true
    7 FAIL ES5Harness.testPassed should be true. Was false.
     7PASS ES5Harness.testPassed is true
    88PASS successfullyParsed is true
    99
  • trunk/LayoutTests/ietestcenter/Javascript/15.2.3.3-4-22-expected.txt

    r62810 r80378  
    55
    66PASS ES5Harness.preconditionPassed is true
    7 FAIL ES5Harness.testPassed should be true. Was false.
     7PASS ES5Harness.testPassed is true
    88PASS successfullyParsed is true
    99
  • trunk/LayoutTests/ietestcenter/Javascript/15.2.3.3-4-23-expected.txt

    r62810 r80378  
    55
    66PASS ES5Harness.preconditionPassed is true
    7 FAIL ES5Harness.testPassed should be true. Was false.
     7PASS ES5Harness.testPassed is true
    88PASS successfullyParsed is true
    99
  • trunk/LayoutTests/ietestcenter/Javascript/15.2.3.3-4-24-expected.txt

    r62810 r80378  
    55
    66PASS ES5Harness.preconditionPassed is true
    7 FAIL ES5Harness.testPassed should be true. Was false.
     7PASS ES5Harness.testPassed is true
    88PASS successfullyParsed is true
    99
  • trunk/LayoutTests/ietestcenter/Javascript/15.2.3.3-4-25-expected.txt

    r62810 r80378  
    55
    66PASS ES5Harness.preconditionPassed is true
    7 FAIL ES5Harness.testPassed should be true. Was false.
     7PASS ES5Harness.testPassed is true
    88PASS successfullyParsed is true
    99
  • trunk/LayoutTests/ietestcenter/Javascript/15.2.3.4-4-2-expected.txt

    r62810 r80378  
    55
    66PASS ES5Harness.preconditionPassed is true
    7 FAIL ES5Harness.testPassed should be true. Was false.
     7PASS ES5Harness.testPassed is true
    88PASS successfullyParsed is true
    99
  • trunk/LayoutTests/ietestcenter/Javascript/15.2.3.6-4-1-expected.txt

    r62810 r80378  
    44
    55
    6 FAIL ES5Harness.preconditionPassed should be true (of type boolean). Was undefined (of type undefined).
     6PASS ES5Harness.preconditionPassed is true
    77FAIL ES5Harness.testPassed should be true (of type boolean). Was undefined (of type undefined).
    88PASS successfullyParsed is true
  • trunk/LayoutTests/ietestcenter/Javascript/15.2.3.8-0-1-expected.txt

    r62810 r80378  
    55
    66PASS ES5Harness.preconditionPassed is true
    7 FAIL ES5Harness.testPassed should be true (of type boolean). Was undefined (of type undefined).
     7PASS ES5Harness.testPassed is true
    88PASS successfullyParsed is true
    99
  • trunk/LayoutTests/ietestcenter/Javascript/15.2.3.8-0-2-expected.txt

    r62810 r80378  
    44
    55
    6 FAIL ES5Harness.preconditionPassed should be true (of type boolean). Was undefined (of type undefined).
    7 FAIL ES5Harness.testPassed should be true (of type boolean). Was undefined (of type undefined).
     6PASS ES5Harness.preconditionPassed is true
     7PASS ES5Harness.testPassed is true
    88PASS successfullyParsed is true
    99
  • trunk/LayoutTests/ietestcenter/Javascript/15.2.3.8-1-expected.txt

    r62810 r80378  
    44
    55
    6 FAIL ES5Harness.preconditionPassed should be true (of type boolean). Was undefined (of type undefined).
    7 FAIL ES5Harness.testPassed should be true (of type boolean). Was undefined (of type undefined).
     6PASS ES5Harness.preconditionPassed is true
     7PASS ES5Harness.testPassed is true
    88PASS successfullyParsed is true
    99
  • trunk/LayoutTests/ietestcenter/Javascript/15.2.3.9-0-1-expected.txt

    r62810 r80378  
    55
    66PASS ES5Harness.preconditionPassed is true
    7 FAIL ES5Harness.testPassed should be true (of type boolean). Was undefined (of type undefined).
     7PASS ES5Harness.testPassed is true
    88PASS successfullyParsed is true
    99
  • trunk/LayoutTests/ietestcenter/Javascript/15.2.3.9-0-2-expected.txt

    r62810 r80378  
    44
    55
    6 FAIL ES5Harness.preconditionPassed should be true (of type boolean). Was undefined (of type undefined).
    7 FAIL ES5Harness.testPassed should be true (of type boolean). Was undefined (of type undefined).
     6PASS ES5Harness.preconditionPassed is true
     7PASS ES5Harness.testPassed is true
    88PASS successfullyParsed is true
    99
  • trunk/LayoutTests/ietestcenter/Javascript/15.2.3.9-1-expected.txt

    r62810 r80378  
    44
    55
    6 FAIL ES5Harness.preconditionPassed should be true (of type boolean). Was undefined (of type undefined).
    7 FAIL ES5Harness.testPassed should be true (of type boolean). Was undefined (of type undefined).
     6PASS ES5Harness.preconditionPassed is true
     7PASS ES5Harness.testPassed is true
    88PASS successfullyParsed is true
    99
  • trunk/Source/JavaScriptCore/Android.mk

    r79177 r80378  
    201201                                MathObject.lut.h \
    202202                                NumberConstructor.lut.h \
     203                                ObjectConstructor.lut.h \
    203204                                RegExpConstructor.lut.h \
    204205                                RegExpObject.lut.h \
  • trunk/Source/JavaScriptCore/ChangeLog

    r80374 r80378  
     12011-03-03  Gavin Barraclough  <barraclough@apple.com>
     2
     3        Reviewed by Sam Weinig.
     4
     5        Bug 55736 - Implement seal/freeze/preventExtensions for normal object types.
     6        Provide basic functionallity from section 15.2.4 of ECMA-262.
     7        This support will need expanding to cover arrays, too.
     8
     9        Shows a 0.5% progression on SunSpidey, this seems to be due to changing
     10        ObjectConstructor to use a static table.
     11
     12        * DerivedSources.make:
     13        * JavaScriptCore.exp:
     14        * interpreter/CallFrame.h:
     15        (JSC::ExecState::objectConstructorTable):
     16            Add a static table for ObjectConstructor.
     17        * runtime/CommonIdentifiers.h:
     18        * runtime/JSGlobalData.cpp:
     19        (JSC::JSGlobalData::JSGlobalData):
     20        (JSC::JSGlobalData::~JSGlobalData):
     21            Add a static table for ObjectConstructor.
     22        * runtime/JSGlobalData.h:
     23        * runtime/JSGlobalObject.cpp:
     24        (JSC::JSGlobalObject::reset):
     25            Add a static table for ObjectConstructor.
     26        * runtime/JSObject.cpp:
     27        (JSC::JSObject::seal):
     28        (JSC::JSObject::freeze):
     29        (JSC::JSObject::preventExtensions):
     30            Transition the object's structure.
     31        (JSC::JSObject::defineOwnProperty):
     32            Check isExtensible.
     33        * runtime/JSObject.h:
     34        (JSC::JSObject::isSealed):
     35        (JSC::JSObject::isFrozen):
     36        (JSC::JSObject::isExtensible):
     37            These wrap method on structure.
     38        (JSC::JSObject::putDirectInternal):
     39            Check isExtensible.
     40        * runtime/ObjectConstructor.cpp:
     41        (JSC::ObjectConstructor::ObjectConstructor):
     42        (JSC::ObjectConstructor::getOwnPropertySlot):
     43        (JSC::ObjectConstructor::getOwnPropertyDescriptor):
     44            Change ObjectConstructor to use a static table.
     45        (JSC::objectConstructorSeal):
     46        (JSC::objectConstructorFreeze):
     47        (JSC::objectConstructorPreventExtensions):
     48        (JSC::objectConstructorIsSealed):
     49        (JSC::objectConstructorIsFrozen):
     50        (JSC::objectConstructorIsExtensible):
     51            Add new methods on Object.
     52        * runtime/ObjectConstructor.h:
     53        (JSC::ObjectConstructor::createStructure):
     54        * runtime/Structure.cpp:
     55        (JSC::Structure::Structure):
     56            init/propagate  m_preventExtensions
     57        (JSC::Structure::sealTransition):
     58        (JSC::Structure::freezeTransition):
     59        (JSC::Structure::preventExtensionsTransition):
     60            transition the structure, materializing the property map, setting m_preventExtensions & changing attributes.
     61        (JSC::Structure::isSealed):
     62        (JSC::Structure::isFrozen):
     63            check attributes to detect if object is sealed/frozen.
     64        * runtime/Structure.h:
     65        (JSC::Structure::isExtensible):
     66            checks the m_preventExtensions flag.
     67
    1682011-03-04  Steve Falkenburg  <sfalken@apple.com>
    269
  • trunk/Source/JavaScriptCore/DerivedSources.make

    r78211 r80378  
    4545    MathObject.lut.h \
    4646    NumberConstructor.lut.h \
     47    ObjectConstructor.lut.h \
    4748    RegExpConstructor.lut.h \
    4849    RegExpJitTables.h \
  • trunk/Source/JavaScriptCore/DerivedSources.pro

    r78211 r80378  
    2020    runtime/MathObject.cpp \
    2121    runtime/NumberConstructor.cpp \
     22    runtime/ObjectConstructor.cpp \
    2223    runtime/RegExpConstructor.cpp \
    2324    runtime/RegExpObject.cpp \
  • trunk/Source/JavaScriptCore/GNUmakefile.am

    r80254 r80378  
    4646        Source/JavaScriptCore/runtime/MathObject.lut.h \
    4747        Source/JavaScriptCore/runtime/NumberConstructor.lut.h \
     48        Source/JavaScriptCore/runtime/ObjectConstructor.lut.h \
    4849        Source/JavaScriptCore/runtime/RegExpConstructor.lut.h \
    4950        Source/JavaScriptCore/runtime/RegExpObject.lut.h \
  • trunk/Source/JavaScriptCore/JavaScriptCore.exp

    r80303 r80378  
     1__ZN3JSC22objectConstructorTableE
    12_JSCheckScriptSyntax
    23_JSClassCreate
  • trunk/Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj

    r80323 r80378  
    25382538                        buildConfigurationList = 149C277108902AFE008A9EFC /* Build configuration list for PBXProject "JavaScriptCore" */;
    25392539                        compatibilityVersion = "Xcode 3.1";
     2540                        developmentRegion = English;
    25402541                        hasScannedForEncodings = 1;
    25412542                        knownRegions = (
  • trunk/Source/JavaScriptCore/interpreter/CallFrame.h

    r79904 r80378  
    8181        static const HashTable* mathTable(CallFrame* callFrame) { return callFrame->globalData().mathTable; }
    8282        static const HashTable* numberTable(CallFrame* callFrame) { return callFrame->globalData().numberTable; }
     83        static const HashTable* objectConstructorTable(CallFrame* callFrame) { return callFrame->globalData().objectConstructorTable; }
    8384        static const HashTable* regExpTable(CallFrame* callFrame) { return callFrame->globalData().regExpTable; }
    8485        static const HashTable* regExpConstructorTable(CallFrame* callFrame) { return callFrame->globalData().regExpConstructorTable; }
  • trunk/Source/JavaScriptCore/runtime/CommonIdentifiers.h

    r76248 r80378  
    4040    macro(configurable) \
    4141    macro(constructor) \
    42     macro(create) \
    43     macro(defineProperty) \
    44     macro(defineProperties) \
    4542    macro(enumerable) \
    4643    macro(eval) \
     
    4946    macro(global) \
    5047    macro(get) \
    51     macro(getPrototypeOf) \
    52     macro(getOwnPropertyDescriptor) \
    53     macro(getOwnPropertyNames) \
    5448    macro(hasOwnProperty) \
    5549    macro(ignoreCase) \
     
    5852    macro(isArray) \
    5953    macro(isPrototypeOf) \
    60     macro(keys) \
    6154    macro(length) \
    6255    macro(message) \
  • trunk/Source/JavaScriptCore/runtime/JSGlobalData.cpp

    r80006 r80378  
    7676extern JSC_CONST_HASHTABLE HashTable mathTable;
    7777extern JSC_CONST_HASHTABLE HashTable numberTable;
     78extern JSC_CONST_HASHTABLE HashTable objectConstructorTable;
    7879extern JSC_CONST_HASHTABLE HashTable regExpTable;
    7980extern JSC_CONST_HASHTABLE HashTable regExpConstructorTable;
     
    120121    , mathTable(fastNew<HashTable>(JSC::mathTable))
    121122    , numberTable(fastNew<HashTable>(JSC::numberTable))
     123    , objectConstructorTable(fastNew<HashTable>(JSC::objectConstructorTable))
    122124    , regExpTable(fastNew<HashTable>(JSC::regExpTable))
    123125    , regExpConstructorTable(fastNew<HashTable>(JSC::regExpConstructorTable))
     
    205207    mathTable->deleteTable();
    206208    numberTable->deleteTable();
     209    objectConstructorTable->deleteTable();
    207210    regExpTable->deleteTable();
    208211    regExpConstructorTable->deleteTable();
     
    214217    fastDelete(const_cast<HashTable*>(mathTable));
    215218    fastDelete(const_cast<HashTable*>(numberTable));
     219    fastDelete(const_cast<HashTable*>(objectConstructorTable));
    216220    fastDelete(const_cast<HashTable*>(regExpTable));
    217221    fastDelete(const_cast<HashTable*>(regExpConstructorTable));
  • trunk/Source/JavaScriptCore/runtime/JSGlobalData.h

    r79967 r80378  
    140140        const HashTable* mathTable;
    141141        const HashTable* numberTable;
     142        const HashTable* objectConstructorTable;
    142143        const HashTable* regExpTable;
    143144        const HashTable* regExpConstructorTable;
  • trunk/Source/JavaScriptCore/runtime/JSGlobalObject.cpp

    r80328 r80378  
    222222    // Constructors
    223223
    224     JSCell* objectConstructor = new (exec) ObjectConstructor(exec, this, ObjectConstructor::createStructure(d()->functionPrototype.get()), d()->objectPrototype.get(), d()->functionStructure.get());
     224    JSCell* objectConstructor = new (exec) ObjectConstructor(exec, this, ObjectConstructor::createStructure(d()->functionPrototype.get()), d()->objectPrototype.get());
    225225    JSCell* functionConstructor = new (exec) FunctionConstructor(exec, this, FunctionConstructor::createStructure(d()->functionPrototype.get()), d()->functionPrototype.get());
    226226    JSCell* arrayConstructor = new (exec) ArrayConstructor(exec, this, ArrayConstructor::createStructure(d()->functionPrototype.get()), d()->arrayPrototype.get(), d()->functionStructure.get());
  • trunk/Source/JavaScriptCore/runtime/JSObject.cpp

    r80303 r80378  
    510510}
    511511
     512void JSObject::seal()
     513{
     514    setStructure(Structure::sealTransition(m_structure));
     515}
     516
     517void JSObject::freeze()
     518{
     519    setStructure(Structure::freezeTransition(m_structure));
     520}
     521
     522void JSObject::preventExtensions()
     523{
     524    if (isExtensible())
     525        setStructure(Structure::preventExtensionsTransition(m_structure));
     526}
     527
    512528void JSObject::removeDirect(const Identifier& propertyName)
    513529{
     
    646662    PropertyDescriptor current;
    647663    if (!getOwnPropertyDescriptor(exec, propertyName, current)) {
     664        // unless extensions are prevented!
     665        if (!isExtensible())
     666            return false;
    648667        PropertyDescriptor oldDescriptor;
    649668        oldDescriptor.setValue(jsUndefined());
  • trunk/Source/JavaScriptCore/runtime/JSObject.h

    r80006 r80378  
    211211        virtual bool isErrorInstance() const { return false; }
    212212
     213        void seal();
     214        void freeze();
     215        void preventExtensions();
     216        bool isSealed() { return m_structure->isSealed(); }
     217        bool isFrozen() { return m_structure->isFrozen(); }
     218        bool isExtensible() { return m_structure->isExtensible(); }
     219
    213220        virtual ComplType exceptionType() const { return Throw; }
    214221
     
    571578            return true;
    572579        }
     580
     581        if (!isExtensible())
     582            return false;
    573583
    574584        size_t currentCapacity = m_structure->propertyStorageCapacity();
     
    633643    }
    634644
     645    if (!isExtensible())
     646        return false;
     647
    635648    RefPtr<Structure> structure = Structure::addPropertyTransition(m_structure, propertyName, attributes, specificFunction, offset);
    636649
  • trunk/Source/JavaScriptCore/runtime/ObjectConstructor.cpp

    r79177 r80378  
    2727#include "JSArray.h"
    2828#include "JSGlobalObject.h"
     29#include "Lookup.h"
    2930#include "ObjectPrototype.h"
    3031#include "PropertyDescriptor.h"
     
    4243static EncodedJSValue JSC_HOST_CALL objectConstructorDefineProperties(ExecState*);
    4344static EncodedJSValue JSC_HOST_CALL objectConstructorCreate(ExecState*);
    44 
    45 ObjectConstructor::ObjectConstructor(ExecState* exec, JSGlobalObject* globalObject, NonNullPassRefPtr<Structure> structure, ObjectPrototype* objectPrototype, Structure* functionStructure)
     45static EncodedJSValue JSC_HOST_CALL objectConstructorSeal(ExecState*);
     46static EncodedJSValue JSC_HOST_CALL objectConstructorFreeze(ExecState*);
     47static EncodedJSValue JSC_HOST_CALL objectConstructorPreventExtensions(ExecState*);
     48static EncodedJSValue JSC_HOST_CALL objectConstructorIsSealed(ExecState*);
     49static EncodedJSValue JSC_HOST_CALL objectConstructorIsFrozen(ExecState*);
     50static EncodedJSValue JSC_HOST_CALL objectConstructorIsExtensible(ExecState*);
     51
     52}
     53
     54#include "ObjectConstructor.lut.h"
     55
     56namespace JSC {
     57
     58const ClassInfo ObjectConstructor::s_info = { "Function", &InternalFunction::s_info, 0, ExecState::objectConstructorTable };
     59
     60/* Source for ObjectConstructor.lut.h
     61@begin objectConstructorTable
     62  getPrototypeOf            objectConstructorGetPrototypeOf             DontEnum|Function 1
     63  getOwnPropertyDescriptor  objectConstructorGetOwnPropertyDescriptor   DontEnum|Function 2
     64  getOwnPropertyNames       objectConstructorGetOwnPropertyNames        DontEnum|Function 1
     65  keys                      objectConstructorKeys                       DontEnum|Function 1
     66  defineProperty            objectConstructorDefineProperty             DontEnum|Function 3
     67  defineProperties          objectConstructorDefineProperties           DontEnum|Function 2
     68  create                    objectConstructorCreate                     DontEnum|Function 2
     69  seal                      objectConstructorSeal                       DontEnum|Function 1
     70  freeze                    objectConstructorFreeze                     DontEnum|Function 1
     71  preventExtensions         objectConstructorPreventExtensions          DontEnum|Function 1
     72  isSealed                  objectConstructorIsSealed                   DontEnum|Function 1
     73  isFrozen                  objectConstructorIsFrozen                   DontEnum|Function 1
     74  isExtensible              objectConstructorIsExtensible               DontEnum|Function 1
     75@end
     76*/
     77
     78ObjectConstructor::ObjectConstructor(ExecState* exec, JSGlobalObject* globalObject, NonNullPassRefPtr<Structure> structure, ObjectPrototype* objectPrototype)
    4679    : InternalFunction(&exec->globalData(), globalObject, structure, Identifier(exec, "Object"))
    4780{
    4881    // ECMA 15.2.3.1
    4982    putDirectWithoutTransition(exec->globalData(), exec->propertyNames().prototype, objectPrototype, DontEnum | DontDelete | ReadOnly);
    50    
    5183    // no. of arguments for constructor
    5284    putDirectWithoutTransition(exec->globalData(), exec->propertyNames().length, jsNumber(1), ReadOnly | DontEnum | DontDelete);
    53    
    54     putDirectFunctionWithoutTransition(exec, new (exec) JSFunction(exec, globalObject, functionStructure, 1, exec->propertyNames().getPrototypeOf, objectConstructorGetPrototypeOf), DontEnum);
    55     putDirectFunctionWithoutTransition(exec, new (exec) JSFunction(exec, globalObject, functionStructure, 2, exec->propertyNames().getOwnPropertyDescriptor, objectConstructorGetOwnPropertyDescriptor), DontEnum);
    56     putDirectFunctionWithoutTransition(exec, new (exec) JSFunction(exec, globalObject, functionStructure, 1, exec->propertyNames().getOwnPropertyNames, objectConstructorGetOwnPropertyNames), DontEnum);
    57     putDirectFunctionWithoutTransition(exec, new (exec) JSFunction(exec, globalObject, functionStructure, 1, exec->propertyNames().keys, objectConstructorKeys), DontEnum);
    58     putDirectFunctionWithoutTransition(exec, new (exec) JSFunction(exec, globalObject, functionStructure, 3, exec->propertyNames().defineProperty, objectConstructorDefineProperty), DontEnum);
    59     putDirectFunctionWithoutTransition(exec, new (exec) JSFunction(exec, globalObject, functionStructure, 2, exec->propertyNames().defineProperties, objectConstructorDefineProperties), DontEnum);
    60     putDirectFunctionWithoutTransition(exec, new (exec) JSFunction(exec, globalObject, functionStructure, 2, exec->propertyNames().create, objectConstructorCreate), DontEnum);
     85}
     86
     87bool ObjectConstructor::getOwnPropertySlot(ExecState* exec, const Identifier& propertyName, PropertySlot &slot)
     88{
     89    return getStaticFunctionSlot<JSObject>(exec, ExecState::objectConstructorTable(exec), this, propertyName, slot);
     90}
     91
     92bool ObjectConstructor::getOwnPropertyDescriptor(ExecState* exec, const Identifier& propertyName, PropertyDescriptor& descriptor)
     93{
     94    return getStaticFunctionDescriptor<JSObject>(exec, ExecState::objectConstructorTable(exec), this, propertyName, descriptor);
    6195}
    6296
     
    317351}
    318352
     353EncodedJSValue JSC_HOST_CALL objectConstructorSeal(ExecState* exec)
     354{
     355    JSValue obj = exec->argument(0);
     356    if (!obj.isObject())
     357        return throwVMError(exec, createTypeError(exec, "Object.seal can only be called on Objects."));
     358    asObject(obj)->seal();
     359    return JSValue::encode(obj);
     360}
     361
     362EncodedJSValue JSC_HOST_CALL objectConstructorFreeze(ExecState* exec)
     363{
     364    JSValue obj = exec->argument(0);
     365    if (!obj.isObject())
     366        return throwVMError(exec, createTypeError(exec, "Object.freeze can only be called on Objects."));
     367    asObject(obj)->freeze();
     368    return JSValue::encode(obj);
     369}
     370
     371EncodedJSValue JSC_HOST_CALL objectConstructorPreventExtensions(ExecState* exec)
     372{
     373    JSValue obj = exec->argument(0);
     374    if (!obj.isObject())
     375        return throwVMError(exec, createTypeError(exec, "Object.preventExtensions can only be called on Objects."));
     376    asObject(obj)->preventExtensions();
     377    return JSValue::encode(obj);
     378}
     379
     380EncodedJSValue JSC_HOST_CALL objectConstructorIsSealed(ExecState* exec)
     381{
     382    JSValue obj = exec->argument(0);
     383    if (!obj.isObject())
     384        return throwVMError(exec, createTypeError(exec, "Object.isSealed can only be called on Objects."));
     385    return JSValue::encode(jsBoolean(asObject(obj)->isSealed()));
     386}
     387
     388EncodedJSValue JSC_HOST_CALL objectConstructorIsFrozen(ExecState* exec)
     389{
     390    JSValue obj = exec->argument(0);
     391    if (!obj.isObject())
     392        return throwVMError(exec, createTypeError(exec, "Object.isFrozen can only be called on Objects."));
     393    return JSValue::encode(jsBoolean(asObject(obj)->isFrozen()));
     394}
     395
     396EncodedJSValue JSC_HOST_CALL objectConstructorIsExtensible(ExecState* exec)
     397{
     398    JSValue obj = exec->argument(0);
     399    if (!obj.isObject())
     400        return throwVMError(exec, createTypeError(exec, "Object.isExtensible can only be called on Objects."));
     401    return JSValue::encode(jsBoolean(asObject(obj)->isExtensible()));
     402}
     403
    319404} // namespace JSC
  • trunk/Source/JavaScriptCore/runtime/ObjectConstructor.h

    r79177 r80378  
    3030    class ObjectConstructor : public InternalFunction {
    3131    public:
    32         ObjectConstructor(ExecState*, JSGlobalObject*, NonNullPassRefPtr<Structure>, ObjectPrototype*, Structure* functionStructure);
     32        ObjectConstructor(ExecState*, JSGlobalObject*, NonNullPassRefPtr<Structure>, ObjectPrototype*);
     33
     34        virtual bool getOwnPropertySlot(ExecState*, const Identifier&, PropertySlot&);
     35        virtual bool getOwnPropertyDescriptor(ExecState*, const Identifier&, PropertyDescriptor&);
     36
     37        static const ClassInfo s_info;
     38
     39        static PassRefPtr<Structure> createStructure(JSValue prototype)
     40        {
     41            return Structure::create(prototype, TypeInfo(ObjectType, StructureFlags), AnonymousSlotCount, &s_info);
     42        }
     43
     44    protected:
     45        static const unsigned StructureFlags = OverridesGetOwnPropertySlot | InternalFunction::StructureFlags;
    3346
    3447    private:
  • trunk/Source/JavaScriptCore/runtime/Structure.cpp

    r79963 r80378  
    204204    , m_specificFunctionThrashCount(0)
    205205    , m_anonymousSlotCount(anonymousSlotCount)
     206    , m_preventExtensions(false)
    206207{
    207208    ASSERT(m_prototype);
     
    237238    , m_specificFunctionThrashCount(previous->m_specificFunctionThrashCount)
    238239    , m_anonymousSlotCount(previous->anonymousSlotCount())
     240    , m_preventExtensions(previous->m_preventExtensions)
    239241{
    240242    ASSERT(m_prototype);
     
    518520{
    519521    return toDictionaryTransition(structure, UncachedDictionaryKind);
     522}
     523
     524// In future we may want to cache this transition.
     525PassRefPtr<Structure> Structure::sealTransition(Structure* structure)
     526{
     527    RefPtr<Structure> transition = preventExtensionsTransition(structure);
     528
     529    if (transition->m_propertyTable) {
     530        PropertyTable::iterator end = transition->m_propertyTable->end();
     531        for (PropertyTable::iterator iter = transition->m_propertyTable->begin(); iter != end; ++iter)
     532            iter->attributes |= DontDelete;
     533    }
     534
     535    return transition.release();
     536}
     537
     538// In future we may want to cache this transition.
     539PassRefPtr<Structure> Structure::freezeTransition(Structure* structure)
     540{
     541    RefPtr<Structure> transition = preventExtensionsTransition(structure);
     542
     543    if (transition->m_propertyTable) {
     544        PropertyTable::iterator end = transition->m_propertyTable->end();
     545        for (PropertyTable::iterator iter = transition->m_propertyTable->begin(); iter != end; ++iter)
     546            iter->attributes |= (DontDelete | ReadOnly);
     547    }
     548
     549    return transition.release();
     550}
     551
     552// In future we may want to cache this transition.
     553PassRefPtr<Structure> Structure::preventExtensionsTransition(Structure* structure)
     554{
     555    RefPtr<Structure> transition = create(structure);
     556
     557    // Don't set m_offset, as one can not transition to this.
     558
     559    structure->materializePropertyMapIfNecessary();
     560    transition->m_propertyTable = structure->copyPropertyTable();
     561    transition->m_isPinnedPropertyTable = true;
     562    transition->m_preventExtensions = true;
     563
     564    ASSERT(structure->anonymousSlotCount() == transition->anonymousSlotCount());
     565    return transition.release();
     566}
     567
     568// In future we may want to cache this property.
     569bool Structure::isSealed()
     570{
     571    if (isExtensible())
     572        return false;
     573
     574    materializePropertyMapIfNecessary();
     575    if (!m_propertyTable)
     576        return true;
     577
     578    PropertyTable::iterator end = m_propertyTable->end();
     579    for (PropertyTable::iterator iter = m_propertyTable->begin(); iter != end; ++iter) {
     580        if ((iter->attributes & DontDelete) != DontDelete)
     581            return false;
     582    }
     583    return true;
     584}
     585
     586// In future we may want to cache this property.
     587bool Structure::isFrozen()
     588{
     589    if (isExtensible())
     590        return false;
     591
     592    materializePropertyMapIfNecessary();
     593    if (!m_propertyTable)
     594        return true;
     595
     596    PropertyTable::iterator end = m_propertyTable->end();
     597    for (PropertyTable::iterator iter = m_propertyTable->begin(); iter != end; ++iter) {
     598        if ((iter->attributes & (DontDelete | ReadOnly)) != (DontDelete | ReadOnly))
     599            return false;
     600    }
     601    return true;
    520602}
    521603
  • trunk/Source/JavaScriptCore/runtime/Structure.h

    r79963 r80378  
    7777        static PassRefPtr<Structure> toCacheableDictionaryTransition(Structure*);
    7878        static PassRefPtr<Structure> toUncacheableDictionaryTransition(Structure*);
     79        static PassRefPtr<Structure> sealTransition(Structure*);
     80        static PassRefPtr<Structure> freezeTransition(Structure*);
     81        static PassRefPtr<Structure> preventExtensionsTransition(Structure*);
     82
     83        bool isSealed();
     84        bool isFrozen();
     85        bool isExtensible() const { return !m_preventExtensions; }
    7986
    8087        PassRefPtr<Structure> flattenDictionaryStructure(JSGlobalData&, JSObject*);
     
    217224        unsigned m_specificFunctionThrashCount : 2;
    218225        unsigned m_anonymousSlotCount : 5;
    219         // 5 free bits
     226        unsigned m_preventExtensions : 1;
     227        // 4 free bits
    220228    };
    221229
Note: See TracChangeset for help on using the changeset viewer.