Index: test/mjsunit/mirror-regexp.js |
diff --git a/test/mjsunit/mirror-regexp.js b/test/mjsunit/mirror-regexp.js |
index 882af8dd6ebff24db4bf7c087112e403713ea341..6c251d4ff6aeda18d6b6057f2538888a511ae39f 100644 |
--- a/test/mjsunit/mirror-regexp.js |
+++ b/test/mjsunit/mirror-regexp.js |
@@ -25,17 +25,19 @@ |
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
-// Flags: --expose-debug-as debug --harmony-regexps --harmony-unicode-regexps |
+// Flags: --expose-debug-as debug --harmony-unicode-regexps |
// Test the mirror object for regular expression values |
-var dont_enum = debug.PropertyAttribute.DontEnum; |
-var dont_delete = debug.PropertyAttribute.DontDelete; |
-var expected_prototype_attributes = { |
- 'source': dont_enum, |
- 'global': dont_enum, |
- 'ignoreCase': dont_enum, |
- 'multiline': dont_enum, |
- 'unicode' : dont_enum, |
+var all_attributes = debug.PropertyAttribute.ReadOnly | |
+ debug.PropertyAttribute.DontEnum | |
+ debug.PropertyAttribute.DontDelete; |
+var expected_attributes = { |
+ 'source': all_attributes, |
+ 'global': all_attributes, |
+ 'ignoreCase': all_attributes, |
+ 'multiline': all_attributes, |
+ 'unicode' : all_attributes, |
+ 'lastIndex': debug.PropertyAttribute.DontEnum | debug.PropertyAttribute.DontDelete |
}; |
function MirrorRefCache(json_refs) { |
@@ -68,12 +70,9 @@ |
assertTrue(mirror.isRegExp()); |
assertEquals('regexp', mirror.type()); |
assertFalse(mirror.isPrimitive()); |
- assertEquals(dont_enum | dont_delete, |
- mirror.property('lastIndex').attributes()); |
- var proto_mirror = mirror.protoObject(); |
- for (var p in expected_prototype_attributes) { |
- assertEquals(expected_prototype_attributes[p], |
- proto_mirror.property(p).attributes(), |
+ for (var p in expected_attributes) { |
+ assertEquals(expected_attributes[p], |
+ mirror.property(p).attributes(), |
p + ' attributes'); |
} |
@@ -84,12 +83,24 @@ |
var fromJSON = eval('(' + json + ')'); |
assertEquals('regexp', fromJSON.type); |
assertEquals('RegExp', fromJSON.className); |
- assertEquals('lastIndex', fromJSON.properties[0].name); |
- assertEquals(dont_enum | dont_delete, fromJSON.properties[0].attributes); |
- assertEquals(mirror.property('lastIndex').propertyType(), |
- fromJSON.properties[0].propertyType); |
- assertEquals(mirror.property('lastIndex').value().value(), |
- refs.lookup(fromJSON.properties[0].ref).value); |
+ for (var p in expected_attributes) { |
+ for (var i = 0; i < fromJSON.properties.length; i++) { |
+ if (fromJSON.properties[i].name == p) { |
+ assertEquals(expected_attributes[p], |
+ fromJSON.properties[i].attributes, |
+ 'Unexpected value for ' + p + ' attributes'); |
+ assertEquals(mirror.property(p).propertyType(), |
+ fromJSON.properties[i].propertyType, |
+ 'Unexpected value for ' + p + ' propertyType'); |
+ assertEquals(mirror.property(p).value().handle(), |
+ fromJSON.properties[i].ref, |
+ 'Unexpected handle for ' + p); |
+ assertEquals(mirror.property(p).value().value(), |
+ refs.lookup(fromJSON.properties[i].ref).value, |
+ 'Unexpected value for ' + p); |
+ } |
+ } |
+ } |
} |