[Swfdec] 13 commits - libswfdec/swfdec_as_array.c libswfdec/swfdec_xml.c libswfdec/swfdec_xml_node.c test/trace

Pekka Lampila medar at kemper.freedesktop.org
Thu Dec 20 08:27:39 PST 2007


 libswfdec/swfdec_as_array.c            |   88 +-
 libswfdec/swfdec_xml.c                 |   17 
 libswfdec/swfdec_xml_node.c            |   23 
 test/trace/Makefile.am                 |   28 
 test/trace/array-no-object-5.swf       |binary
 test/trace/array-no-object-5.swf.trace |   14 
 test/trace/array-no-object-6.swf       |binary
 test/trace/array-no-object-6.swf.trace |   14 
 test/trace/array-no-object-7.swf       |binary
 test/trace/array-no-object-7.swf.trace |   14 
 test/trace/array-no-object-8.swf       |binary
 test/trace/array-no-object-8.swf.trace |   14 
 test/trace/array-no-object.as          |   29 
 test/trace/array-sort-on-5.swf         |binary
 test/trace/array-sort-on-5.swf.trace   |    5 
 test/trace/array-sort-on-6.swf         |binary
 test/trace/array-sort-on-6.swf.trace   |    5 
 test/trace/array-sort-on-7.swf         |binary
 test/trace/array-sort-on-7.swf.trace   |    5 
 test/trace/array-sort-on-8.swf         |binary
 test/trace/array-sort-on-8.swf.trace   |    5 
 test/trace/array-sort-on.as            |   30 
 test/trace/array2-5.swf                |binary
 test/trace/array2-5.swf.trace          | 1095 ++++++++++++++--------------
 test/trace/array2-6.swf                |binary
 test/trace/array2-6.swf.trace          |   29 
 test/trace/array2-7.swf                |binary
 test/trace/array2-7.swf.trace          |   29 
 test/trace/array2-8.swf                |binary
 test/trace/array2-8.swf.trace          |   29 
 test/trace/array2.as                   |   50 +
 test/trace/xml-errors-5.swf            |binary
 test/trace/xml-errors-5.swf.trace      |   24 
 test/trace/xml-errors-6.swf            |binary
 test/trace/xml-errors-6.swf.trace      |   24 
 test/trace/xml-errors-7.swf            |binary
 test/trace/xml-errors-7.swf.trace      |   24 
 test/trace/xml-errors-8.swf            |binary
 test/trace/xml-errors-8.swf.trace      |   84 ++
 test/trace/xml-errors.as               |   10 
 test/trace/xml-escape-8.swf            |binary
 test/trace/xml-escape-8.swf.trace      |    6 
 test/trace/xml-init-5.swf              |binary
 test/trace/xml-init-5.swf.trace        |    2 
 test/trace/xml-init-6.swf              |binary
 test/trace/xml-init-6.swf.trace        |    2 
 test/trace/xml-init-7.swf              |binary
 test/trace/xml-init-7.swf.trace        |    2 
 test/trace/xml-init-8.swf              |binary
 test/trace/xml-init-8.swf.trace        |    2 
 test/trace/xml-init.as                 |    3 
 test/trace/xml-node-5.swf              |binary
 test/trace/xml-node-5.swf.trace        |   99 +-
 test/trace/xml-node-6.swf              |binary
 test/trace/xml-node-6.swf.trace        |   97 +-
 test/trace/xml-node-7.swf              |binary
 test/trace/xml-node-7.swf.trace        |   97 +-
 test/trace/xml-node-8.swf              |binary
 test/trace/xml-node-8.swf.trace        |  660 +++++++++++++++++
 test/trace/xml-other-5.swf             |binary
 test/trace/xml-other-5.swf.trace       |  384 +++++-----
 test/trace/xml-other-6.swf             |binary
 test/trace/xml-other-6.swf.trace       |  384 +++++-----
 test/trace/xml-other-7.swf             |binary
 test/trace/xml-other-7.swf.trace       |  392 +++++-----
 test/trace/xml-other-8.swf             |binary
 test/trace/xml-other-8.swf.trace       | 1254 +++++++++++++++++++++++++++++++++
 test/trace/xml-parse-8.swf             |binary
 test/trace/xml-parse-8.swf.trace       |  860 ++++++++++++++++++++++
 69 files changed, 4647 insertions(+), 1286 deletions(-)

New commits:
commit c37b5932f62f2eadabf3b5b88892e11793cef1fd
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date:   Thu Dec 20 16:53:31 2007 +0200

    Improve XML tests
    
    Added tests that run on version 8 where missing
    Expanded xml-errors test
    Expanded xml-init test

diff --git a/test/trace/Makefile.am b/test/trace/Makefile.am
index 000b0b2..83df525 100644
--- a/test/trace/Makefile.am
+++ b/test/trace/Makefile.am
@@ -3075,6 +3075,8 @@ EXTRA_DIST = \
 	xml-errors-6.swf.trace \
 	xml-errors-7.swf \
 	xml-errors-7.swf.trace \
+	xml-errors-8.swf \
+	xml-errors-8.swf.trace \
 	xml-escape.as \
 	xml-escape-5.swf \
 	xml-escape-5.swf.trace \
@@ -3082,6 +3084,8 @@ EXTRA_DIST = \
 	xml-escape-6.swf.trace \
 	xml-escape-7.swf \
 	xml-escape-7.swf.trace \
+	xml-escape-8.swf \
+	xml-escape-8.swf.trace \
 	xml-init.as \
 	xml-init-5.swf \
 	xml-init-5.swf.trace \
@@ -3098,6 +3102,8 @@ EXTRA_DIST = \
 	xml-node-6.swf.trace \
 	xml-node-7.swf \
 	xml-node-7.swf.trace \
+	xml-node-8.swf \
+	xml-node-8.swf.trace \
 	xml-node-init.as \
 	xml-node-init-5.swf \
 	xml-node-init-5.swf.trace \
@@ -3114,11 +3120,15 @@ EXTRA_DIST = \
 	xml-other-6.swf.trace \
 	xml-other-7.swf \
 	xml-other-7.swf.trace \
+	xml-other-8.swf \
+	xml-other-8.swf.trace \
 	xml-parse.as \
 	xml-parse-6.swf \
 	xml-parse-6.swf.trace \
 	xml-parse-7.swf \
 	xml-parse-7.swf.trace \
+	xml-parse-8.swf \
+	xml-parse-8.swf.trace \
 	xml-parse-1.xml \
 	xml-parse-2.xml \
 	xml-properties.as \
diff --git a/test/trace/xml-errors-5.swf b/test/trace/xml-errors-5.swf
index 0099b85..ffaade2 100644
Binary files a/test/trace/xml-errors-5.swf and b/test/trace/xml-errors-5.swf differ
diff --git a/test/trace/xml-errors-5.swf.trace b/test/trace/xml-errors-5.swf.trace
index fe8c6e9..d621e14 100644
--- a/test/trace/xml-errors-5.swf.trace
+++ b/test/trace/xml-errors-5.swf.trace
@@ -58,3 +58,27 @@ Testing: <a A='x></a><b/>
 Testing: <a/><!-- <b/>
 <a />
 -5
+Testing: <>a
+
+-6
+Testing: </>a
+
+-6
+Testing: <a
+
+-6
+Testing: <a/
+
+-6
+Testing: </a
+
+-6
+Testing: </a b='c'
+
+-6
+Testing: <a b='c'
+
+-6
+Testing: <a ='b'/>
+
+-6
diff --git a/test/trace/xml-errors-6.swf b/test/trace/xml-errors-6.swf
index 1b741a9..97c8d47 100644
Binary files a/test/trace/xml-errors-6.swf and b/test/trace/xml-errors-6.swf differ
diff --git a/test/trace/xml-errors-6.swf.trace b/test/trace/xml-errors-6.swf.trace
index fe8c6e9..d621e14 100644
--- a/test/trace/xml-errors-6.swf.trace
+++ b/test/trace/xml-errors-6.swf.trace
@@ -58,3 +58,27 @@ Testing: <a A='x></a><b/>
 Testing: <a/><!-- <b/>
 <a />
 -5
+Testing: <>a
+
+-6
+Testing: </>a
+
+-6
+Testing: <a
+
+-6
+Testing: <a/
+
+-6
+Testing: </a
+
+-6
+Testing: </a b='c'
+
+-6
+Testing: <a b='c'
+
+-6
+Testing: <a ='b'/>
+
+-6
diff --git a/test/trace/xml-errors-7.swf b/test/trace/xml-errors-7.swf
index c7a4152..ad75ef6 100644
Binary files a/test/trace/xml-errors-7.swf and b/test/trace/xml-errors-7.swf differ
diff --git a/test/trace/xml-errors-7.swf.trace b/test/trace/xml-errors-7.swf.trace
index fe8c6e9..d621e14 100644
--- a/test/trace/xml-errors-7.swf.trace
+++ b/test/trace/xml-errors-7.swf.trace
@@ -58,3 +58,27 @@ Testing: <a A='x></a><b/>
 Testing: <a/><!-- <b/>
 <a />
 -5
+Testing: <>a
+
+-6
+Testing: </>a
+
+-6
+Testing: <a
+
+-6
+Testing: <a/
+
+-6
+Testing: </a
+
+-6
+Testing: </a b='c'
+
+-6
+Testing: <a b='c'
+
+-6
+Testing: <a ='b'/>
+
+-6
diff --git a/test/trace/xml-errors-8.swf b/test/trace/xml-errors-8.swf
new file mode 100644
index 0000000..db7740b
Binary files /dev/null and b/test/trace/xml-errors-8.swf differ
diff --git a/test/trace/xml-errors-8.swf.trace b/test/trace/xml-errors-8.swf.trace
new file mode 100644
index 0000000..d621e14
--- /dev/null
+++ b/test/trace/xml-errors-8.swf.trace
@@ -0,0 +1,84 @@
+Testing: <a><b/></a>
+<a><b /></a>
+0
+Testing: <a/><?xml A
+<a />
+-3
+Testing: <a/><?xml A ?><b/><?xml B
+<?xml A ?><a /><b />
+-3
+Testing: <a/><!DOCTYPE A
+<a />
+-4
+Testing: <a/><!DOCTYPE A><b/><!DOCTYPE B
+<!DOCTYPE A><a /><b />
+-4
+Testing: <a>
+<a />
+-9
+Testing: <a><b><c/></a>
+<a><b><c /></b></a>
+-9
+Testing: <b><c/></a>
+<b><c /></b>
+-10
+Testing: <a><b></a><c/>
+<a><b /></a>
+-9
+Testing: <a><b></c><d/></b></a>
+<a><b /></a>
+-10
+Testing: </a>
+
+-10
+Testing: <a></b><c/></a>
+<a />
+-10
+Testing: <a></b></a><c/>
+<a />
+-10
+Testing: <a/ ></a/>
+<a/ />
+-10
+Testing: <a>&</a>
+<a>&amp;</a>
+0
+Testing: <a A='&'/>
+<a A="&amp;" />
+0
+Testing: <a A/><b/>
+
+-6
+Testing: <a A=x></a><b/>
+
+-6
+Testing: <a A='x></a><b/>
+
+-8
+Testing: <a/><!-- <b/>
+<a />
+-5
+Testing: <>a
+
+-6
+Testing: </>a
+
+-6
+Testing: <a
+
+-6
+Testing: <a/
+
+-6
+Testing: </a
+
+-6
+Testing: </a b='c'
+
+-6
+Testing: <a b='c'
+
+-6
+Testing: <a ='b'/>
+
+-6
diff --git a/test/trace/xml-errors.as b/test/trace/xml-errors.as
index da3d191..368e34e 100644
--- a/test/trace/xml-errors.as
+++ b/test/trace/xml-errors.as
@@ -20,7 +20,15 @@ var tests = [
   "<a A/><b/>",		// invalid attributes
   "<a A=x></a><b/>",
   "<a A='x></a><b/>",
-  "<a/><!-- <b/>"	// comment not closed
+  "<a/><!-- <b/>",	// comment not closed
+  "<>a",		// empty tag
+  "</>a",
+  "<a",			// non terminated tag
+  "<a/",
+  "</a",
+  "</a b='c'",
+  "<a b='c'",
+  "<a ='b'/>"		// empty attribute
 ];
 
 for (var i = 0; i < tests.length; i++) {
diff --git a/test/trace/xml-escape-8.swf b/test/trace/xml-escape-8.swf
new file mode 100644
index 0000000..800eaa3
Binary files /dev/null and b/test/trace/xml-escape-8.swf differ
diff --git a/test/trace/xml-escape-8.swf.trace b/test/trace/xml-escape-8.swf.trace
new file mode 100644
index 0000000..2a18abc
--- /dev/null
+++ b/test/trace/xml-escape-8.swf.trace
@@ -0,0 +1,6 @@
+t&quot;&apos;e&amp;s;:&apos;&apos;at
+te&amp;lt;st
+undefined
+ma&apos;ny
+hmm&amp;amp;hrr
+non breaking space:  
diff --git a/test/trace/xml-init-5.swf b/test/trace/xml-init-5.swf
index e91b01f..83678fb 100644
Binary files a/test/trace/xml-init-5.swf and b/test/trace/xml-init-5.swf differ
diff --git a/test/trace/xml-init-5.swf.trace b/test/trace/xml-init-5.swf.trace
index 97f3544..8851e73 100644
--- a/test/trace/xml-init-5.swf.trace
+++ b/test/trace/xml-init-5.swf.trace
@@ -1,3 +1,5 @@
 Check when XML's native properties are initialized
 undefined
 undefined
+undefined
+undefined
diff --git a/test/trace/xml-init-6.swf b/test/trace/xml-init-6.swf
index d201c57..f8d6fce 100644
Binary files a/test/trace/xml-init-6.swf and b/test/trace/xml-init-6.swf differ
diff --git a/test/trace/xml-init-6.swf.trace b/test/trace/xml-init-6.swf.trace
index f5be65a..5a9395c 100644
--- a/test/trace/xml-init-6.swf.trace
+++ b/test/trace/xml-init-6.swf.trace
@@ -1,3 +1,5 @@
 Check when XML's native properties are initialized
 false
 true
+undefined
+false
diff --git a/test/trace/xml-init-7.swf b/test/trace/xml-init-7.swf
index 90c0127..2718d7b 100644
Binary files a/test/trace/xml-init-7.swf and b/test/trace/xml-init-7.swf differ
diff --git a/test/trace/xml-init-7.swf.trace b/test/trace/xml-init-7.swf.trace
index f5be65a..5a9395c 100644
--- a/test/trace/xml-init-7.swf.trace
+++ b/test/trace/xml-init-7.swf.trace
@@ -1,3 +1,5 @@
 Check when XML's native properties are initialized
 false
 true
+undefined
+false
diff --git a/test/trace/xml-init-8.swf b/test/trace/xml-init-8.swf
index 583a4e7..c3cfbfc 100644
Binary files a/test/trace/xml-init-8.swf and b/test/trace/xml-init-8.swf differ
diff --git a/test/trace/xml-init-8.swf.trace b/test/trace/xml-init-8.swf.trace
index f5be65a..5a9395c 100644
--- a/test/trace/xml-init-8.swf.trace
+++ b/test/trace/xml-init-8.swf.trace
@@ -1,3 +1,5 @@
 Check when XML's native properties are initialized
 false
 true
+undefined
+false
diff --git a/test/trace/xml-init.as b/test/trace/xml-init.as
index aca54db..f87243a 100644
--- a/test/trace/xml-init.as
+++ b/test/trace/xml-init.as
@@ -15,5 +15,8 @@ trace ("Check when XML's native properties are initialized");
 check_and_reset ();
 var tmp = new XML ();
 check_and_reset ();
+var tmp = _global.XML;
+trace (tmp ());
+check_and_reset ();
 
 loadMovie ("FSCommand:quit", "");
diff --git a/test/trace/xml-node-5.swf b/test/trace/xml-node-5.swf
index cd16455..f86c7c3 100644
Binary files a/test/trace/xml-node-5.swf and b/test/trace/xml-node-5.swf differ
diff --git a/test/trace/xml-node-5.swf.trace b/test/trace/xml-node-5.swf.trace
index 801ebec..eb42aef 100644
--- a/test/trace/xml-node-5.swf.trace
+++ b/test/trace/xml-node-5.swf.trace
@@ -24,16 +24,17 @@ valueOf called with
 19: valueOf!
 20: valueOf!
 21: valueOf!
-21: toString!
 22: valueOf!
+22: toString!
 23: valueOf!
-23: toString!
 24: valueOf!
 24: toString!
 25: valueOf!
 25: toString!
 26: valueOf!
 26: toString!
+27: valueOf!
+27: toString!
 <root><a /><b />c<d /></root>
 <a />,<b />,c,<d />
 <a />,<b />,c,<d />,fake
@@ -166,6 +167,9 @@ true
 _level0
 
 _level0
+äöü
+
+äöü
 _level0
 
 _level0
@@ -270,9 +274,9 @@ _level0
 
 _level0
 20: toString!
-[type Object]
+äöü
 
-[type Object]
+äöü
 21: toString!
 [type Object]
 
@@ -297,6 +301,10 @@ _level0
 [type Object]
 
 [type Object]
+27: toString!
+[type Object]
+
+[type Object]
 nsa
 null
 nsdefault_at_child
@@ -415,226 +423,237 @@ Creating with: (19) _level0 (string)
 <_level0 />
 _level0
 value
-Creating with: (20) _level0 (movieclip)
+Creating with: (20) äöü (string)
+<äöü />
+äöü
+value
+Creating with: (21) _level0 (movieclip)
 <_level0 />
 _level0
 value
-Creating with: (21) [object Object] (object)
+Creating with: (22) [object Object] (object)
 <[object Object] />
 [object Object]
 value
-Creating with: (22)  (undefined)
+Creating with: (23)  (undefined)
 [type Object]
 [type Object]
 [type Object]
-Creating with: (23) [type Object] (object)
+Creating with: (24) [type Object] (object)
 toString called
 <[type Object] />
 toString called
 [type Object]
 valueOf called
 value
-Creating with: (24) [type Object] (object)
+Creating with: (25) [type Object] (object)
 toString called with 
 <[type Object] />
 toString called with 
 [type Object]
 value
-Creating with: (25) [object Object] (object)
+Creating with: (26) [object Object] (object)
 <[object Object] />
 [object Object]
 valueOf called with 
 value
-Creating with: (26)  (object)
+Creating with: (27)  (object)
 <[type Object] />
 [type Object]
 value
-Creating with: (27)  (object)
+Creating with: (28)  (object)
 0: toString!
 <[type Object] />
 0: toString!
 [type Object]
 0: valueOf!
 value
-Creating with: (28) null (object)
+Creating with: (29) null (object)
 1: toString!
 <[type Object] />
 1: toString!
 [type Object]
 1: valueOf!
 value
-Creating with: (29) true (object)
+Creating with: (30) true (object)
 2: toString!
 <[type Object] />
 2: toString!
 [type Object]
 2: valueOf!
 <value />
-Creating with: (30) false (object)
+Creating with: (31) false (object)
 3: toString!
 <[type Object] />
 3: toString!
 [type Object]
 3: valueOf!
 value
-Creating with: (31) 0 (object)
+Creating with: (32) 0 (object)
 4: toString!
 <[type Object] />
 4: toString!
 [type Object]
 4: valueOf!
 value
-Creating with: (32) 1 (object)
+Creating with: (33) 1 (object)
 5: toString!
 <[type Object] />
 5: toString!
 [type Object]
 5: valueOf!
 <value />
-Creating with: (33) 0.5 (object)
+Creating with: (34) 0.5 (object)
 6: toString!
 <[type Object] />
 6: toString!
 [type Object]
 6: valueOf!
 value
-Creating with: (34) -1 (object)
+Creating with: (35) -1 (object)
 7: toString!
 <[type Object] />
 7: toString!
 [type Object]
 7: valueOf!
 value
-Creating with: (35) -0.5 (object)
+Creating with: (36) -0.5 (object)
 8: toString!
 <[type Object] />
 8: toString!
 [type Object]
 8: valueOf!
 value
-Creating with: (36) Infinity (object)
+Creating with: (37) Infinity (object)
 9: toString!
 <[type Object] />
 9: toString!
 [type Object]
 9: valueOf!
 value
-Creating with: (37) -Infinity (object)
+Creating with: (38) -Infinity (object)
 10: toString!
 <[type Object] />
 10: toString!
 [type Object]
 10: valueOf!
 value
-Creating with: (38) NaN (object)
+Creating with: (39) NaN (object)
 11: toString!
 <[type Object] />
 11: toString!
 [type Object]
 11: valueOf!
 value
-Creating with: (39)  (object)
+Creating with: (40)  (object)
 12: toString!
 < />
 12: toString!
 
 12: valueOf!
 value
-Creating with: (40) 0 (object)
+Creating with: (41) 0 (object)
 13: toString!
 <0 />
 13: toString!
 0
 13: valueOf!
 value
-Creating with: (41) -0 (object)
+Creating with: (42) -0 (object)
 14: toString!
 <-0 />
 14: toString!
 -0
 14: valueOf!
 value
-Creating with: (42) 0.0 (object)
+Creating with: (43) 0.0 (object)
 15: toString!
 <0.0 />
 15: toString!
 0.0
 15: valueOf!
 value
-Creating with: (43) 1 (object)
+Creating with: (44) 1 (object)
 16: toString!
 <1 />
 16: toString!
 1
 16: valueOf!
 <value />
-Creating with: (44) Hello World! (object)
+Creating with: (45) Hello World! (object)
 17: toString!
 <Hello World! />
 17: toString!
 Hello World!
 17: valueOf!
 value
-Creating with: (45) true (object)
+Creating with: (46) true (object)
 18: toString!
 <true />
 18: toString!
 true
 18: valueOf!
 value
-Creating with: (46) _level0 (object)
+Creating with: (47) _level0 (object)
 19: toString!
 <_level0 />
 19: toString!
 _level0
 19: valueOf!
 value
-Creating with: (47) _level0 (object)
+Creating with: (48) äöü (object)
 20: toString!
-<[type Object] />
+<äöü />
 20: toString!
-[type Object]
+äöü
 20: valueOf!
 value
-Creating with: (48) [type Object] (object)
+Creating with: (49) _level0 (object)
 21: toString!
 <[type Object] />
 21: toString!
 [type Object]
 21: valueOf!
 value
-Creating with: (49)  (object)
+Creating with: (50) [type Object] (object)
 22: toString!
 <[type Object] />
 22: toString!
 [type Object]
 22: valueOf!
 value
-Creating with: (50) [type Object] (object)
+Creating with: (51)  (object)
 23: toString!
 <[type Object] />
 23: toString!
 [type Object]
 23: valueOf!
 value
-Creating with: (51) [type Object] (object)
+Creating with: (52) [type Object] (object)
 24: toString!
 <[type Object] />
 24: toString!
 [type Object]
 24: valueOf!
 value
-Creating with: (52) [type Object] (object)
+Creating with: (53) [type Object] (object)
 25: toString!
 <[type Object] />
 25: toString!
 [type Object]
 25: valueOf!
 value
-Creating with: (53) [type Object] (object)
+Creating with: (54) [type Object] (object)
 26: toString!
 <[type Object] />
 26: toString!
 [type Object]
 26: valueOf!
 value
+Creating with: (55) [type Object] (object)
+27: toString!
+<[type Object] />
+27: toString!
+[type Object]
+27: valueOf!
+value
diff --git a/test/trace/xml-node-6.swf b/test/trace/xml-node-6.swf
index d559b58..4cd44fb 100644
Binary files a/test/trace/xml-node-6.swf and b/test/trace/xml-node-6.swf differ
diff --git a/test/trace/xml-node-6.swf.trace b/test/trace/xml-node-6.swf.trace
index 539af0e..ec9c7ba 100644
--- a/test/trace/xml-node-6.swf.trace
+++ b/test/trace/xml-node-6.swf.trace
@@ -24,7 +24,6 @@ valueOf called with
 19: valueOf!
 20: valueOf!
 21: valueOf!
-21: toString!
 22: valueOf!
 22: toString!
 23: valueOf!
@@ -35,6 +34,8 @@ valueOf called with
 25: toString!
 26: valueOf!
 26: toString!
+27: valueOf!
+27: toString!
 <root><a /><b />c<d /></root>
 <a />,<b />,c,<d />
 <a />,<b />,c,<d />,fake
@@ -167,6 +168,9 @@ true
 _level0
 
 _level0
+äöü
+
+äöü
 _level0
 
 _level0
@@ -271,9 +275,9 @@ _level0
 
 _level0
 20: toString!
-[type Object]
+äöü
 
-[type Object]
+äöü
 21: toString!
 [type Object]
 
@@ -298,6 +302,10 @@ _level0
 [type Object]
 
 [type Object]
+27: toString!
+[type Object]
+
+[type Object]
 nsa
 null
 nsdefault_at_child
@@ -416,226 +424,237 @@ Creating with: (19) _level0 (string)
 <_level0 />
 _level0
 value
-Creating with: (20) _level0 (movieclip)
+Creating with: (20) äöü (string)
+<äöü />
+äöü
+value
+Creating with: (21) _level0 (movieclip)
 <_level0 />
 _level0
 value
-Creating with: (21) [object Object] (object)
+Creating with: (22) [object Object] (object)
 <[object Object] />
 [object Object]
 value
-Creating with: (22) [type Function] (function)
+Creating with: (23) [type Function] (function)
 <[type Function] />
 [type Function]
 value
-Creating with: (23) [type Object] (object)
+Creating with: (24) [type Object] (object)
 toString called
 <[type Object] />
 toString called
 [type Object]
 valueOf called
 value
-Creating with: (24) [type Object] (object)
+Creating with: (25) [type Object] (object)
 toString called with 
 <[type Object] />
 toString called with 
 [type Object]
 value
-Creating with: (25) [object Object] (object)
+Creating with: (26) [object Object] (object)
 <[object Object] />
 [object Object]
 valueOf called with 
 value
-Creating with: (26)  (object)
+Creating with: (27)  (object)
 <[type Object] />
 [type Object]
 value
-Creating with: (27)  (object)
+Creating with: (28)  (object)
 0: toString!
 <[type Object] />
 0: toString!
 [type Object]
 0: valueOf!
 value
-Creating with: (28) null (object)
+Creating with: (29) null (object)
 1: toString!
 <[type Object] />
 1: toString!
 [type Object]
 1: valueOf!
 value
-Creating with: (29) true (object)
+Creating with: (30) true (object)
 2: toString!
 <[type Object] />
 2: toString!
 [type Object]
 2: valueOf!
 <value />
-Creating with: (30) false (object)
+Creating with: (31) false (object)
 3: toString!
 <[type Object] />
 3: toString!
 [type Object]
 3: valueOf!
 value
-Creating with: (31) 0 (object)
+Creating with: (32) 0 (object)
 4: toString!
 <[type Object] />
 4: toString!
 [type Object]
 4: valueOf!
 value
-Creating with: (32) 1 (object)
+Creating with: (33) 1 (object)
 5: toString!
 <[type Object] />
 5: toString!
 [type Object]
 5: valueOf!
 <value />
-Creating with: (33) 0.5 (object)
+Creating with: (34) 0.5 (object)
 6: toString!
 <[type Object] />
 6: toString!
 [type Object]
 6: valueOf!
 value
-Creating with: (34) -1 (object)
+Creating with: (35) -1 (object)
 7: toString!
 <[type Object] />
 7: toString!
 [type Object]
 7: valueOf!
 value
-Creating with: (35) -0.5 (object)
+Creating with: (36) -0.5 (object)
 8: toString!
 <[type Object] />
 8: toString!
 [type Object]
 8: valueOf!
 value
-Creating with: (36) Infinity (object)
+Creating with: (37) Infinity (object)
 9: toString!
 <[type Object] />
 9: toString!
 [type Object]
 9: valueOf!
 value
-Creating with: (37) -Infinity (object)
+Creating with: (38) -Infinity (object)
 10: toString!
 <[type Object] />
 10: toString!
 [type Object]
 10: valueOf!
 value
-Creating with: (38) NaN (object)
+Creating with: (39) NaN (object)
 11: toString!
 <[type Object] />
 11: toString!
 [type Object]
 11: valueOf!
 value
-Creating with: (39)  (object)
+Creating with: (40)  (object)
 12: toString!
 < />
 12: toString!
 
 12: valueOf!
 value
-Creating with: (40) 0 (object)
+Creating with: (41) 0 (object)
 13: toString!
 <0 />
 13: toString!
 0
 13: valueOf!
 value
-Creating with: (41) -0 (object)
+Creating with: (42) -0 (object)
 14: toString!
 <-0 />
 14: toString!
 -0
 14: valueOf!
 value
-Creating with: (42) 0.0 (object)
+Creating with: (43) 0.0 (object)
 15: toString!
 <0.0 />
 15: toString!
 0.0
 15: valueOf!
 value
-Creating with: (43) 1 (object)
+Creating with: (44) 1 (object)
 16: toString!
 <1 />
 16: toString!
 1
 16: valueOf!
 <value />
-Creating with: (44) Hello World! (object)
+Creating with: (45) Hello World! (object)
 17: toString!
 <Hello World! />
 17: toString!
 Hello World!
 17: valueOf!
 value
-Creating with: (45) true (object)
+Creating with: (46) true (object)
 18: toString!
 <true />
 18: toString!
 true
 18: valueOf!
 value
-Creating with: (46) _level0 (object)
+Creating with: (47) _level0 (object)
 19: toString!
 <_level0 />
 19: toString!
 _level0
 19: valueOf!
 value
-Creating with: (47) _level0 (object)
+Creating with: (48) äöü (object)
 20: toString!
-<[type Object] />
+<äöü />
 20: toString!
-[type Object]
+äöü
 20: valueOf!
 value
-Creating with: (48) [type Object] (object)
+Creating with: (49) _level0 (object)
 21: toString!
 <[type Object] />
 21: toString!
 [type Object]
 21: valueOf!
 value
-Creating with: (49) [type Object] (object)
+Creating with: (50) [type Object] (object)
 22: toString!
 <[type Object] />
 22: toString!
 [type Object]
 22: valueOf!
 value
-Creating with: (50) [type Object] (object)
+Creating with: (51) [type Object] (object)
 23: toString!
 <[type Object] />
 23: toString!
 [type Object]
 23: valueOf!
 value
-Creating with: (51) [type Object] (object)
+Creating with: (52) [type Object] (object)
 24: toString!
 <[type Object] />
 24: toString!
 [type Object]
 24: valueOf!
 value
-Creating with: (52) [type Object] (object)
+Creating with: (53) [type Object] (object)
 25: toString!
 <[type Object] />
 25: toString!
 [type Object]
 25: valueOf!
 value
-Creating with: (53) [type Object] (object)
+Creating with: (54) [type Object] (object)
 26: toString!
 <[type Object] />
 26: toString!
 [type Object]
 26: valueOf!
 value
+Creating with: (55) [type Object] (object)
+27: toString!
+<[type Object] />
+27: toString!
+[type Object]
+27: valueOf!
+value
diff --git a/test/trace/xml-node-7.swf b/test/trace/xml-node-7.swf
index cd12a80..7468261 100644
Binary files a/test/trace/xml-node-7.swf and b/test/trace/xml-node-7.swf differ
diff --git a/test/trace/xml-node-7.swf.trace b/test/trace/xml-node-7.swf.trace
index 7370418..e7909dc 100644
--- a/test/trace/xml-node-7.swf.trace
+++ b/test/trace/xml-node-7.swf.trace
@@ -24,7 +24,6 @@ valueOf called with
 19: valueOf!
 20: valueOf!
 21: valueOf!
-21: toString!
 22: valueOf!
 22: toString!
 23: valueOf!
@@ -35,6 +34,8 @@ valueOf called with
 25: toString!
 26: valueOf!
 26: toString!
+27: valueOf!
+27: toString!
 <root><a /><b />c<d /></root>
 <a />,<b />,c,<d />
 <a />,<b />,c,<d />,fake
@@ -167,6 +168,9 @@ true
 _level0
 
 _level0
+äöü
+
+äöü
 _level0
 
 _level0
@@ -271,9 +275,9 @@ _level0
 
 _level0
 20: toString!
-[type Object]
+äöü
 
-[type Object]
+äöü
 21: toString!
 [type Object]
 
@@ -298,6 +302,10 @@ _level0
 [type Object]
 
 [type Object]
+27: toString!
+[type Object]
+
+[type Object]
 nsa
 null
 nsdefault_at_child
@@ -416,226 +424,237 @@ Creating with: (19) _level0 (string)
 <_level0 />
 _level0
 value
-Creating with: (20) _level0 (movieclip)
+Creating with: (20) äöü (string)
+<äöü />
+äöü
+value
+Creating with: (21) _level0 (movieclip)
 <_level0 />
 _level0
 value
-Creating with: (21) [object Object] (object)
+Creating with: (22) [object Object] (object)
 <[object Object] />
 [object Object]
 value
-Creating with: (22) [type Function] (function)
+Creating with: (23) [type Function] (function)
 <[type Function] />
 [type Function]
 value
-Creating with: (23) [type Object] (object)
+Creating with: (24) [type Object] (object)
 toString called
 <[type Object] />
 toString called
 [type Object]
 valueOf called
 value
-Creating with: (24) [type Object] (object)
+Creating with: (25) [type Object] (object)
 toString called with 
 <[type Object] />
 toString called with 
 [type Object]
 value
-Creating with: (25) [object Object] (object)
+Creating with: (26) [object Object] (object)
 <[object Object] />
 [object Object]
 valueOf called with 
 value
-Creating with: (26) undefined (object)
+Creating with: (27) undefined (object)
 <[type Object] />
 [type Object]
 value
-Creating with: (27) undefined (object)
+Creating with: (28) undefined (object)
 0: toString!
 <[type Object] />
 0: toString!
 [type Object]
 0: valueOf!
 value
-Creating with: (28) null (object)
+Creating with: (29) null (object)
 1: toString!
 <[type Object] />
 1: toString!
 [type Object]
 1: valueOf!
 value
-Creating with: (29) true (object)
+Creating with: (30) true (object)
 2: toString!
 <[type Object] />
 2: toString!
 [type Object]
 2: valueOf!
 <value />
-Creating with: (30) false (object)
+Creating with: (31) false (object)
 3: toString!
 <[type Object] />
 3: toString!
 [type Object]
 3: valueOf!
 value
-Creating with: (31) 0 (object)
+Creating with: (32) 0 (object)
 4: toString!
 <[type Object] />
 4: toString!
 [type Object]
 4: valueOf!
 value
-Creating with: (32) 1 (object)
+Creating with: (33) 1 (object)
 5: toString!
 <[type Object] />
 5: toString!
 [type Object]
 5: valueOf!
 <value />
-Creating with: (33) 0.5 (object)
+Creating with: (34) 0.5 (object)
 6: toString!
 <[type Object] />
 6: toString!
 [type Object]
 6: valueOf!
 value
-Creating with: (34) -1 (object)
+Creating with: (35) -1 (object)
 7: toString!
 <[type Object] />
 7: toString!
 [type Object]
 7: valueOf!
 value
-Creating with: (35) -0.5 (object)
+Creating with: (36) -0.5 (object)
 8: toString!
 <[type Object] />
 8: toString!
 [type Object]
 8: valueOf!
 value
-Creating with: (36) Infinity (object)
+Creating with: (37) Infinity (object)
 9: toString!
 <[type Object] />
 9: toString!
 [type Object]
 9: valueOf!
 value
-Creating with: (37) -Infinity (object)
+Creating with: (38) -Infinity (object)
 10: toString!
 <[type Object] />
 10: toString!
 [type Object]
 10: valueOf!
 value
-Creating with: (38) NaN (object)
+Creating with: (39) NaN (object)
 11: toString!
 <[type Object] />
 11: toString!
 [type Object]
 11: valueOf!
 value
-Creating with: (39)  (object)
+Creating with: (40)  (object)
 12: toString!
 < />
 12: toString!
 
 12: valueOf!
 value
-Creating with: (40) 0 (object)
+Creating with: (41) 0 (object)
 13: toString!
 <0 />
 13: toString!
 0
 13: valueOf!
 value
-Creating with: (41) -0 (object)
+Creating with: (42) -0 (object)
 14: toString!
 <-0 />
 14: toString!
 -0
 14: valueOf!
 value
-Creating with: (42) 0.0 (object)
+Creating with: (43) 0.0 (object)
 15: toString!
 <0.0 />
 15: toString!
 0.0
 15: valueOf!
 value
-Creating with: (43) 1 (object)
+Creating with: (44) 1 (object)
 16: toString!
 <1 />
 16: toString!
 1
 16: valueOf!
 <value />
-Creating with: (44) Hello World! (object)
+Creating with: (45) Hello World! (object)
 17: toString!
 <Hello World! />
 17: toString!
 Hello World!
 17: valueOf!
 value
-Creating with: (45) true (object)
+Creating with: (46) true (object)
 18: toString!
 <true />
 18: toString!
 true
 18: valueOf!
 value
-Creating with: (46) _level0 (object)
+Creating with: (47) _level0 (object)
 19: toString!
 <_level0 />
 19: toString!
 _level0
 19: valueOf!
 value
-Creating with: (47) _level0 (object)
+Creating with: (48) äöü (object)
 20: toString!
-<[type Object] />
+<äöü />
 20: toString!
-[type Object]
+äöü
 20: valueOf!
 value
-Creating with: (48) [type Object] (object)
+Creating with: (49) _level0 (object)
 21: toString!
 <[type Object] />
 21: toString!
 [type Object]
 21: valueOf!
 value
-Creating with: (49) [type Object] (object)
+Creating with: (50) [type Object] (object)
 22: toString!
 <[type Object] />
 22: toString!
 [type Object]
 22: valueOf!
 value
-Creating with: (50) [type Object] (object)
+Creating with: (51) [type Object] (object)
 23: toString!
 <[type Object] />
 23: toString!
 [type Object]
 23: valueOf!
 value
-Creating with: (51) [type Object] (object)
+Creating with: (52) [type Object] (object)
 24: toString!
 <[type Object] />
 24: toString!
 [type Object]
 24: valueOf!
 value
-Creating with: (52) [type Object] (object)
+Creating with: (53) [type Object] (object)
 25: toString!
 <[type Object] />
 25: toString!
 [type Object]
 25: valueOf!
 value
-Creating with: (53) [type Object] (object)
+Creating with: (54) [type Object] (object)
 26: toString!
 <[type Object] />
 26: toString!
 [type Object]
 26: valueOf!
 value
+Creating with: (55) [type Object] (object)
+27: toString!
+<[type Object] />
+27: toString!
+[type Object]
+27: valueOf!
+value
diff --git a/test/trace/xml-node-8.swf b/test/trace/xml-node-8.swf
new file mode 100644
index 0000000..fd31c1a
Binary files /dev/null and b/test/trace/xml-node-8.swf differ
diff --git a/test/trace/xml-node-8.swf.trace b/test/trace/xml-node-8.swf.trace
new file mode 100644
index 0000000..0377d98
--- /dev/null
+++ b/test/trace/xml-node-8.swf.trace
@@ -0,0 +1,660 @@
+valueOf called
+toString called
+toString called with 
+valueOf called with 
+0: valueOf!
+1: valueOf!
+2: valueOf!
+3: valueOf!
+4: valueOf!
+5: valueOf!
+6: valueOf!
+7: valueOf!
+8: valueOf!
+9: valueOf!
+10: valueOf!
+11: valueOf!
+12: valueOf!
+13: valueOf!
+14: valueOf!
+15: valueOf!
+16: valueOf!
+17: valueOf!
+18: valueOf!
+19: valueOf!
+20: valueOf!
+21: valueOf!
+22: valueOf!
+22: toString!
+23: valueOf!
+23: toString!
+24: valueOf!
+24: toString!
+25: valueOf!
+25: toString!
+26: valueOf!
+26: toString!
+27: valueOf!
+27: toString!
+<root><a /><b />c<d /></root>
+<a />,<b />,c,<d />
+<a />,<b />,c,<d />,fake
+<b />,c,<d />
+<b />,c,<d />,<fake />
+<b />,c,<d />,<e />
+fake,c,<d />,<e />
+<b />,c,<d />,<f />,<e />
+parent
+firstchild
+lastchild
+nextsibling
+previoussibling
+true
+parent
+firstchild
+lastchild
+nextsibling
+previoussibling
+true
+null
+null
+null
+null
+null
+false
+null
+null
+null
+null
+null
+false
+
+
+<a />,<b />,c,<d />
+<a />,<b />,c,<d />
+a:b
+a
+b
+c:d
+c
+d
+c:d
+c
+d
+c:d
+c
+d
+
+
+
+:
+
+:
+:b
+
+b
+a:
+
+a:
+a::b
+a
+:b
+a::
+a
+:
+::b
+
+:b
+::
+
+:
+::
+
+:
+null
+
+null
+true
+
+true
+false
+
+false
+0
+
+0
+1
+
+1
+0.5
+
+0.5
+-1
+
+-1
+-0.5
+
+-0.5
+Infinity
+
+Infinity
+-Infinity
+
+-Infinity
+NaN
+
+NaN
+
+
+
+0
+
+0
+-0
+
+-0
+0.0
+
+0.0
+1
+
+1
+Hello World!
+
+Hello World!
+true
+
+true
+_level0
+
+_level0
+äöü
+
+äöü
+_level0
+
+_level0
+[object Object]
+
+[object Object]
+[type Function]
+
+[type Function]
+toString called
+[type Object]
+
+[type Object]
+toString called with 
+[type Object]
+
+[type Object]
+[object Object]
+
+[object Object]
+[type Object]
+
+[type Object]
+0: toString!
+[type Object]
+
+[type Object]
+1: toString!
+[type Object]
+
+[type Object]
+2: toString!
+[type Object]
+
+[type Object]
+3: toString!
+[type Object]
+
+[type Object]
+4: toString!
+[type Object]
+
+[type Object]
+5: toString!
+[type Object]
+
+[type Object]
+6: toString!
+[type Object]
+
+[type Object]
+7: toString!
+[type Object]
+
+[type Object]
+8: toString!
+[type Object]
+
+[type Object]
+9: toString!
+[type Object]
+
+[type Object]
+10: toString!
+[type Object]
+
+[type Object]
+11: toString!
+[type Object]
+
+[type Object]
+12: toString!
+
+
+
+13: toString!
+0
+
+0
+14: toString!
+-0
+
+-0
+15: toString!
+0.0
+
+0.0
+16: toString!
+1
+
+1
+17: toString!
+Hello World!
+
+Hello World!
+18: toString!
+true
+
+true
+19: toString!
+_level0
+
+_level0
+20: toString!
+äöü
+
+äöü
+21: toString!
+[type Object]
+
+[type Object]
+22: toString!
+[type Object]
+
+[type Object]
+23: toString!
+[type Object]
+
+[type Object]
+24: toString!
+[type Object]
+
+[type Object]
+25: toString!
+[type Object]
+
+[type Object]
+26: toString!
+[type Object]
+
+[type Object]
+27: toString!
+[type Object]
+
+[type Object]
+nsa
+null
+nsdefault_at_child
+nsa
+
+null
+nsdefault_at_child
+nsa
+
+null
+nsdefault
+nsa
+
+null
+nsdefault
+nsa
+nsa
+&=&&a=a&b=b&c=&g=&
+&=&&a=a&b=b&c=&d=d&g=&
+&=&&a=A&b=b&c=&d=d&g=&
+&=&&a=A&c=&d=d&g=&
+"="&&=&&&amp;=&amp;&'='&a=A&c=&d=d&g=&
+<root><a /><b />c<d /></root>
+<root><a /><b />c<d /></root>
+
+<root><a /><b />c<d /></root>
+<root><a /><b />c<d /></root>
+<root><a /><b />c<d /></root>
+<root><a /><b />c<d /></root>
+<root><a /><b />c<f /><d /></root>
+<root><a /><b />c<f /><d /><g /></root>
+<root><a /><b />c<f /><d /><g /></root>
+<root><a /><b />c<f /><d /><g /></root>
+g
+root
+undefined
+<name />
+value
+Creating with: (0) undefined (undefined)
+[type Object]
+[type Object]
+[type Object]
+Creating with: (1) null (null)
+<null />
+null
+value
+Creating with: (2) true (boolean)
+<true />
+true
+<value />
+Creating with: (3) false (boolean)
+<false />
+false
+value
+Creating with: (4) 0 (number)
+<0 />
+0
+value
+Creating with: (5) 1 (number)
+<1 />
+1
+<value />
+Creating with: (6) 0.5 (number)
+<0.5 />
+0.5
+value
+Creating with: (7) -1 (number)
+<-1 />
+-1
+value
+Creating with: (8) -0.5 (number)
+<-0.5 />
+-0.5
+value
+Creating with: (9) Infinity (number)
+<Infinity />
+Infinity
+value
+Creating with: (10) -Infinity (number)
+<-Infinity />
+-Infinity
+value
+Creating with: (11) NaN (number)
+<NaN />
+NaN
+value
+Creating with: (12)  (string)
+< />
+
+value
+Creating with: (13) 0 (string)
+<0 />
+0
+value
+Creating with: (14) -0 (string)
+<-0 />
+-0
+value
+Creating with: (15) 0.0 (string)
+<0.0 />
+0.0
+value
+Creating with: (16) 1 (string)
+<1 />
+1
+<value />
+Creating with: (17) Hello World! (string)
+<Hello World! />
+Hello World!
+value
+Creating with: (18) true (string)
+<true />
+true
+value
+Creating with: (19) _level0 (string)
+<_level0 />
+_level0
+value
+Creating with: (20) äöü (string)
+<äöü />
+äöü
+value
+Creating with: (21) _level0 (movieclip)
+<_level0 />
+_level0
+value
+Creating with: (22) [object Object] (object)
+<[object Object] />
+[object Object]
+value
+Creating with: (23) [type Function] (function)
+<[type Function] />
+[type Function]
+value
+Creating with: (24) [type Object] (object)
+toString called
+<[type Object] />
+toString called
+[type Object]
+valueOf called
+value
+Creating with: (25) [type Object] (object)
+toString called with 
+<[type Object] />
+toString called with 
+[type Object]
+value
+Creating with: (26) [object Object] (object)
+<[object Object] />
+[object Object]
+valueOf called with 
+value
+Creating with: (27) undefined (object)
+<[type Object] />
+[type Object]
+value
+Creating with: (28) undefined (object)
+0: toString!
+<[type Object] />
+0: toString!
+[type Object]
+0: valueOf!
+value
+Creating with: (29) null (object)
+1: toString!
+<[type Object] />
+1: toString!
+[type Object]
+1: valueOf!
+value
+Creating with: (30) true (object)
+2: toString!
+<[type Object] />
+2: toString!
+[type Object]
+2: valueOf!
+<value />
+Creating with: (31) false (object)
+3: toString!
+<[type Object] />
+3: toString!
+[type Object]
+3: valueOf!
+value
+Creating with: (32) 0 (object)
+4: toString!
+<[type Object] />
+4: toString!
+[type Object]
+4: valueOf!
+value
+Creating with: (33) 1 (object)
+5: toString!
+<[type Object] />
+5: toString!
+[type Object]
+5: valueOf!
+<value />
+Creating with: (34) 0.5 (object)
+6: toString!
+<[type Object] />
+6: toString!
+[type Object]
+6: valueOf!
+value
+Creating with: (35) -1 (object)
+7: toString!
+<[type Object] />
+7: toString!
+[type Object]
+7: valueOf!
+value
+Creating with: (36) -0.5 (object)
+8: toString!
+<[type Object] />
+8: toString!
+[type Object]
+8: valueOf!
+value
+Creating with: (37) Infinity (object)
+9: toString!
+<[type Object] />
+9: toString!
+[type Object]
+9: valueOf!
+value
+Creating with: (38) -Infinity (object)
+10: toString!
+<[type Object] />
+10: toString!
+[type Object]
+10: valueOf!
+value
+Creating with: (39) NaN (object)
+11: toString!
+<[type Object] />
+11: toString!
+[type Object]
+11: valueOf!
+value
+Creating with: (40)  (object)
+12: toString!
+< />
+12: toString!
+
+12: valueOf!
+value
+Creating with: (41) 0 (object)
+13: toString!
+<0 />
+13: toString!
+0
+13: valueOf!
+value
+Creating with: (42) -0 (object)
+14: toString!
+<-0 />
+14: toString!
+-0
+14: valueOf!
+value
+Creating with: (43) 0.0 (object)
+15: toString!
+<0.0 />
+15: toString!
+0.0
+15: valueOf!
+value
+Creating with: (44) 1 (object)
+16: toString!
+<1 />
+16: toString!
+1
+16: valueOf!
+<value />
+Creating with: (45) Hello World! (object)
+17: toString!
+<Hello World! />
+17: toString!
+Hello World!
+17: valueOf!
+value
+Creating with: (46) true (object)
+18: toString!
+<true />
+18: toString!
+true
+18: valueOf!
+value
+Creating with: (47) _level0 (object)
+19: toString!
+<_level0 />
+19: toString!
+_level0
+19: valueOf!
+value
+Creating with: (48) äöü (object)
+20: toString!
+<äöü />
+20: toString!
+äöü
+20: valueOf!
+value
+Creating with: (49) _level0 (object)
+21: toString!
+<[type Object] />
+21: toString!
+[type Object]
+21: valueOf!
+value
+Creating with: (50) [type Object] (object)
+22: toString!
+<[type Object] />
+22: toString!
+[type Object]
+22: valueOf!
+value
+Creating with: (51) [type Object] (object)
+23: toString!
+<[type Object] />
+23: toString!
+[type Object]
+23: valueOf!
+value
+Creating with: (52) [type Object] (object)
+24: toString!
+<[type Object] />
+24: toString!
+[type Object]
+24: valueOf!
+value
+Creating with: (53) [type Object] (object)
+25: toString!
+<[type Object] />
+25: toString!
+[type Object]
+25: valueOf!
+value
+Creating with: (54) [type Object] (object)
+26: toString!
+<[type Object] />
+26: toString!
+[type Object]
+26: valueOf!
+value
+Creating with: (55) [type Object] (object)
+27: toString!
+<[type Object] />
+27: toString!
+[type Object]
+27: valueOf!
+value
diff --git a/test/trace/xml-other-5.swf b/test/trace/xml-other-5.swf
index e35cfcb..1c9be7a 100644
Binary files a/test/trace/xml-other-5.swf and b/test/trace/xml-other-5.swf differ
diff --git a/test/trace/xml-other-5.swf.trace b/test/trace/xml-other-5.swf.trace
index e77c2a0..50b924f 100644
--- a/test/trace/xml-other-5.swf.trace
+++ b/test/trace/xml-other-5.swf.trace
@@ -24,16 +24,17 @@ valueOf called with
 19: valueOf!
 20: valueOf!
 21: valueOf!
-21: toString!
 22: valueOf!
+22: toString!
 23: valueOf!
-23: toString!
 24: valueOf!
 24: toString!
 25: valueOf!
 25: toString!
 26: valueOf!
 26: toString!
+27: valueOf!
+27: toString!
 <root />
 
 <root />
@@ -77,103 +78,108 @@ Constructing with: (18) true (string)
 true
 Constructing with: (19) _level0 (string)
 _level0
-Constructing with: (20) _level0 (movieclip)
+Constructing with: (20) äöü (string)
+äöü
+Constructing with: (21) _level0 (movieclip)
 _level0
-Constructing with: (21) [object Object] (object)
+Constructing with: (22) [object Object] (object)
 [object Object]
-Constructing with: (22)  (undefined)
+Constructing with: (23)  (undefined)
 
-Constructing with: (23) [type Object] (object)
+Constructing with: (24) [type Object] (object)
 toString called
 [type Object]
-Constructing with: (24) [type Object] (object)
+Constructing with: (25) [type Object] (object)
 toString called with 
 [type Object]
-Constructing with: (25) [object Object] (object)
+Constructing with: (26) [object Object] (object)
 [object Object]
-Constructing with: (26)  (object)
-[type Object]
 Constructing with: (27)  (object)
+[type Object]
+Constructing with: (28)  (object)
 0: toString!
 [type Object]
-Constructing with: (28) null (object)
+Constructing with: (29) null (object)
 1: toString!
 [type Object]
-Constructing with: (29) true (object)
+Constructing with: (30) true (object)
 2: toString!
 [type Object]
-Constructing with: (30) false (object)
+Constructing with: (31) false (object)
 3: toString!
 [type Object]
-Constructing with: (31) 0 (object)
+Constructing with: (32) 0 (object)
 4: toString!
 [type Object]
-Constructing with: (32) 1 (object)
+Constructing with: (33) 1 (object)
 5: toString!
 [type Object]
-Constructing with: (33) 0.5 (object)
+Constructing with: (34) 0.5 (object)
 6: toString!
 [type Object]
-Constructing with: (34) -1 (object)
+Constructing with: (35) -1 (object)
 7: toString!
 [type Object]
-Constructing with: (35) -0.5 (object)
+Constructing with: (36) -0.5 (object)
 8: toString!
 [type Object]
-Constructing with: (36) Infinity (object)
+Constructing with: (37) Infinity (object)
 9: toString!
 [type Object]
-Constructing with: (37) -Infinity (object)
+Constructing with: (38) -Infinity (object)
 10: toString!
 [type Object]
-Constructing with: (38) NaN (object)
+Constructing with: (39) NaN (object)
 11: toString!
 [type Object]
-Constructing with: (39)  (object)
+Constructing with: (40)  (object)
 12: toString!
 
-Constructing with: (40) 0 (object)
+Constructing with: (41) 0 (object)
 13: toString!
 0
-Constructing with: (41) -0 (object)
+Constructing with: (42) -0 (object)
 14: toString!
 -0
-Constructing with: (42) 0.0 (object)
+Constructing with: (43) 0.0 (object)
 15: toString!
 0.0
-Constructing with: (43) 1 (object)
+Constructing with: (44) 1 (object)
 16: toString!
 1
-Constructing with: (44) Hello World! (object)
+Constructing with: (45) Hello World! (object)
 17: toString!
 Hello World!
-Constructing with: (45) true (object)
+Constructing with: (46) true (object)
 18: toString!
 true
-Constructing with: (46) _level0 (object)
+Constructing with: (47) _level0 (object)
 19: toString!
 _level0
-Constructing with: (47) _level0 (object)
+Constructing with: (48) äöü (object)
 20: toString!
-[type Object]
-Constructing with: (48) [type Object] (object)
+äöü
+Constructing with: (49) _level0 (object)
 21: toString!
 [type Object]
-Constructing with: (49)  (object)
+Constructing with: (50) [type Object] (object)
 22: toString!
 [type Object]
-Constructing with: (50) [type Object] (object)
+Constructing with: (51)  (object)
 23: toString!
 [type Object]
-Constructing with: (51) [type Object] (object)
+Constructing with: (52) [type Object] (object)
 24: toString!
 [type Object]
-Constructing with: (52) [type Object] (object)
+Constructing with: (53) [type Object] (object)
 25: toString!
 [type Object]
-Constructing with: (53) [type Object] (object)
+Constructing with: (54) [type Object] (object)
 26: toString!
 [type Object]
+Constructing with: (55) [type Object] (object)
+27: toString!
+[type Object]
 undefined
 <?xml XML decl ?><!DOCTYPE doctype decl>
 
@@ -250,137 +256,144 @@ true
 Constructing with: (19) _level0 (string)
 undefined
 _level0
-Constructing with: (20) _level0 (movieclip)
+Constructing with: (20) äöü (string)
+undefined
+äöü
+Constructing with: (21) _level0 (movieclip)
 undefined
 _level0
-Constructing with: (21) [object Object] (object)
+Constructing with: (22) [object Object] (object)
 undefined
 [object Object]
-Constructing with: (22)  (undefined)
+Constructing with: (23)  (undefined)
 undefined
 [object Object]
-Constructing with: (23) [type Object] (object)
+Constructing with: (24) [type Object] (object)
 toString called
 undefined
 [type Object]
-Constructing with: (24) [type Object] (object)
+Constructing with: (25) [type Object] (object)
 toString called with 
 undefined
 [type Object]
-Constructing with: (25) [object Object] (object)
+Constructing with: (26) [object Object] (object)
 undefined
 [object Object]
-Constructing with: (26)  (object)
+Constructing with: (27)  (object)
 undefined
 [type Object]
-Constructing with: (27)  (object)
+Constructing with: (28)  (object)
 0: toString!
 undefined
 [type Object]
-Constructing with: (28) null (object)
+Constructing with: (29) null (object)
 1: toString!
 undefined
 [type Object]
-Constructing with: (29) true (object)
+Constructing with: (30) true (object)
 2: toString!
 undefined
 [type Object]
-Constructing with: (30) false (object)
+Constructing with: (31) false (object)
 3: toString!
 undefined
 [type Object]
-Constructing with: (31) 0 (object)
+Constructing with: (32) 0 (object)
 4: toString!
 undefined
 [type Object]
-Constructing with: (32) 1 (object)
+Constructing with: (33) 1 (object)
 5: toString!
 undefined
 [type Object]
-Constructing with: (33) 0.5 (object)
+Constructing with: (34) 0.5 (object)
 6: toString!
 undefined
 [type Object]
-Constructing with: (34) -1 (object)
+Constructing with: (35) -1 (object)
 7: toString!
 undefined
 [type Object]
-Constructing with: (35) -0.5 (object)
+Constructing with: (36) -0.5 (object)
 8: toString!
 undefined
 [type Object]
-Constructing with: (36) Infinity (object)
+Constructing with: (37) Infinity (object)
 9: toString!
 undefined
 [type Object]
-Constructing with: (37) -Infinity (object)
+Constructing with: (38) -Infinity (object)
 10: toString!
 undefined
 [type Object]
-Constructing with: (38) NaN (object)
+Constructing with: (39) NaN (object)
 11: toString!
 undefined
 [type Object]
-Constructing with: (39)  (object)
+Constructing with: (40)  (object)
 12: toString!
 undefined
 
-Constructing with: (40) 0 (object)
+Constructing with: (41) 0 (object)
 13: toString!
 undefined
 0
-Constructing with: (41) -0 (object)
+Constructing with: (42) -0 (object)
 14: toString!
 undefined
 -0
-Constructing with: (42) 0.0 (object)
+Constructing with: (43) 0.0 (object)
 15: toString!
 undefined
 0.0
-Constructing with: (43) 1 (object)
+Constructing with: (44) 1 (object)
 16: toString!
 undefined
 1
-Constructing with: (44) Hello World! (object)
+Constructing with: (45) Hello World! (object)
 17: toString!
 undefined
 Hello World!
-Constructing with: (45) true (object)
+Constructing with: (46) true (object)
 18: toString!
 undefined
 true
-Constructing with: (46) _level0 (object)
+Constructing with: (47) _level0 (object)
 19: toString!
 undefined
 _level0
-Constructing with: (47) _level0 (object)
+Constructing with: (48) äöü (object)
 20: toString!
 undefined
-[type Object]
-Constructing with: (48) [type Object] (object)
+äöü
+Constructing with: (49) _level0 (object)
 21: toString!
 undefined
 [type Object]
-Constructing with: (49)  (object)
+Constructing with: (50) [type Object] (object)
 22: toString!
 undefined
 [type Object]
-Constructing with: (50) [type Object] (object)
+Constructing with: (51)  (object)
 23: toString!
 undefined
 [type Object]
-Constructing with: (51) [type Object] (object)
+Constructing with: (52) [type Object] (object)
 24: toString!
 undefined
 [type Object]
-Constructing with: (52) [type Object] (object)
+Constructing with: (53) [type Object] (object)
 25: toString!
 undefined
 [type Object]
-Constructing with: (53) [type Object] (object)
+Constructing with: (54) [type Object] (object)
 26: toString!
 undefined
 [type Object]
+Constructing with: (55) [type Object] (object)
+27: toString!
+undefined
+[type Object]
 <root />
 <name />
 <root />
@@ -450,166 +463,174 @@ true
 Creating with: (19) _level0 (string)
 <_level0 />
 _level0
-Creating with: (20) _level0 (movieclip)
+Creating with: (20) äöü (string)
+<äöü />
+äöü
+Creating with: (21) _level0 (movieclip)
 <_level0 />
 _level0
-Creating with: (21) [object Object] (object)
+Creating with: (22) [object Object] (object)
 <[object Object] />
 [object Object]
-Creating with: (22)  (undefined)
+Creating with: (23)  (undefined)
 undefined
 undefined
-Creating with: (23) [type Object] (object)
+Creating with: (24) [type Object] (object)
 toString called
 <[type Object] />
 toString called
 [type Object]
-Creating with: (24) [type Object] (object)
+Creating with: (25) [type Object] (object)
 toString called with 
 <[type Object] />
 toString called with 
 [type Object]
-Creating with: (25) [object Object] (object)
+Creating with: (26) [object Object] (object)
 <[object Object] />
 [object Object]
-Creating with: (26)  (object)
+Creating with: (27)  (object)
 <[type Object] />
 [type Object]
-Creating with: (27)  (object)
+Creating with: (28)  (object)
 0: toString!
 <[type Object] />
 0: toString!
 [type Object]
-Creating with: (28) null (object)
+Creating with: (29) null (object)
 1: toString!
 <[type Object] />
 1: toString!
 [type Object]
-Creating with: (29) true (object)
+Creating with: (30) true (object)
 2: toString!
 <[type Object] />
 2: toString!
 [type Object]
-Creating with: (30) false (object)
+Creating with: (31) false (object)
 3: toString!
 <[type Object] />
 3: toString!
 [type Object]
-Creating with: (31) 0 (object)
+Creating with: (32) 0 (object)
 4: toString!
 <[type Object] />
 4: toString!
 [type Object]
-Creating with: (32) 1 (object)
+Creating with: (33) 1 (object)
 5: toString!
 <[type Object] />
 5: toString!
 [type Object]
-Creating with: (33) 0.5 (object)
+Creating with: (34) 0.5 (object)
 6: toString!
 <[type Object] />
 6: toString!
 [type Object]
-Creating with: (34) -1 (object)
+Creating with: (35) -1 (object)
 7: toString!
 <[type Object] />
 7: toString!
 [type Object]
-Creating with: (35) -0.5 (object)
+Creating with: (36) -0.5 (object)
 8: toString!
 <[type Object] />
 8: toString!
 [type Object]
-Creating with: (36) Infinity (object)
+Creating with: (37) Infinity (object)
 9: toString!
 <[type Object] />
 9: toString!
 [type Object]
-Creating with: (37) -Infinity (object)
+Creating with: (38) -Infinity (object)
 10: toString!
 <[type Object] />
 10: toString!
 [type Object]
-Creating with: (38) NaN (object)
+Creating with: (39) NaN (object)
 11: toString!
 <[type Object] />
 11: toString!
 [type Object]
-Creating with: (39)  (object)
+Creating with: (40)  (object)
 12: toString!
 < />
 12: toString!
 
-Creating with: (40) 0 (object)
+Creating with: (41) 0 (object)
 13: toString!
 <0 />
 13: toString!
 0
-Creating with: (41) -0 (object)
+Creating with: (42) -0 (object)
 14: toString!
 <-0 />
 14: toString!
 -0
-Creating with: (42) 0.0 (object)
+Creating with: (43) 0.0 (object)
 15: toString!
 <0.0 />
 15: toString!
 0.0
-Creating with: (43) 1 (object)
+Creating with: (44) 1 (object)
 16: toString!
 <1 />
 16: toString!
 1
-Creating with: (44) Hello World! (object)
+Creating with: (45) Hello World! (object)
 17: toString!
 <Hello World! />
 17: toString!
 Hello World!
-Creating with: (45) true (object)
+Creating with: (46) true (object)
 18: toString!
 <true />
 18: toString!
 true
-Creating with: (46) _level0 (object)
+Creating with: (47) _level0 (object)
 19: toString!
 <_level0 />
 19: toString!
 _level0
-Creating with: (47) _level0 (object)
+Creating with: (48) äöü (object)
 20: toString!
-<[type Object] />
+<äöü />
 20: toString!
-[type Object]
-Creating with: (48) [type Object] (object)
+äöü
+Creating with: (49) _level0 (object)
 21: toString!
 <[type Object] />
 21: toString!
 [type Object]
-Creating with: (49)  (object)
+Creating with: (50) [type Object] (object)
 22: toString!
 <[type Object] />
 22: toString!
 [type Object]
-Creating with: (50) [type Object] (object)
+Creating with: (51)  (object)
 23: toString!
 <[type Object] />
 23: toString!
 [type Object]
-Creating with: (51) [type Object] (object)
+Creating with: (52) [type Object] (object)
 24: toString!
 <[type Object] />
 24: toString!
 [type Object]
-Creating with: (52) [type Object] (object)
+Creating with: (53) [type Object] (object)
 25: toString!
 <[type Object] />
 25: toString!
 [type Object]
-Creating with: (53) [type Object] (object)
+Creating with: (54) [type Object] (object)
 26: toString!
 <[type Object] />
 26: toString!
 [type Object]
+Creating with: (55) [type Object] (object)
+27: toString!
+<[type Object] />
+27: toString!
+[type Object]
 application/x-www-form-urlencoded
 <!DOCTYPE doctype declaration >
 false
@@ -696,28 +717,28 @@ Infinity
 Infinity
 true
 true
--2147483648
+0
 Infinity
 Testing with: (10) -Infinity (number)
 -Infinity
 -Infinity
 true
 true
--2147483648
+0
 -Infinity
 Testing with: (11) NaN (number)
 NaN
 NaN
 false
 false
--2147483648
+0
 NaN
 Testing with: (12)  (string)
 
 
 false
 false
--2147483648
+0
 
 Testing with: (13) 0 (string)
 0
@@ -752,44 +773,51 @@ Hello World!
 Hello World!
 false
 false
--2147483648
+0
 Hello World!
 Testing with: (18) true (string)
 true
 true
 false
 false
--2147483648
+0
 true
 Testing with: (19) _level0 (string)
 _level0
 _level0
 false
 false
--2147483648
+0
 _level0
-Testing with: (20) _level0 (movieclip)
+Testing with: (20) äöü (string)
+äöü
+äöü
+false
+false
+0
+äöü
+Testing with: (21) _level0 (movieclip)
 _level0
 _level0
 true
 true
--2147483648
+0
 _level0
-Testing with: (21) [object Object] (object)
+Testing with: (22) [object Object] (object)
 [object Object]
 [object Object]
 true
 true
--2147483648
+0
 [object Object]
-Testing with: (22)  (undefined)
+Testing with: (23)  (undefined)
 [object Object]
 [object Object]
 true
 true
--2147483648
+0
 [object Object]
-Testing with: (23) [type Object] (object)
+Testing with: (24) [type Object] (object)
 toString called
 [type Object]
 toString called
@@ -800,10 +828,10 @@ toString called
 true
 toString called
 valueOf called
--2147483648
+0
 toString called
 [type Object]
-Testing with: (24) [type Object] (object)
+Testing with: (25) [type Object] (object)
 toString called with 
 [type Object]
 toString called with 
@@ -813,25 +841,25 @@ true
 toString called with 
 true
 toString called with 
--2147483648
+0
 toString called with 
 [type Object]
-Testing with: (25) [object Object] (object)
+Testing with: (26) [object Object] (object)
 [object Object]
 [object Object]
 true
 true
 valueOf called with 
--2147483648
+0
 [object Object]
-Testing with: (26)  (object)
+Testing with: (27)  (object)
 [type Object]
 [type Object]
 true
 true
 0
 [type Object]
-Testing with: (27)  (object)
+Testing with: (28)  (object)
 0: toString!
 [type Object]
 0: toString!
@@ -845,7 +873,7 @@ true
 0
 0: toString!
 [type Object]
-Testing with: (28) null (object)
+Testing with: (29) null (object)
 1: toString!
 [type Object]
 1: toString!
@@ -859,7 +887,7 @@ true
 0
 1: toString!
 [type Object]
-Testing with: (29) true (object)
+Testing with: (30) true (object)
 2: toString!
 [type Object]
 2: toString!
@@ -873,7 +901,7 @@ true
 1
 2: toString!
 [type Object]
-Testing with: (30) false (object)
+Testing with: (31) false (object)
 3: toString!
 [type Object]
 3: toString!
@@ -887,7 +915,7 @@ true
 0
 3: toString!
 [type Object]
-Testing with: (31) 0 (object)
+Testing with: (32) 0 (object)
 4: toString!
 [type Object]
 4: toString!
@@ -901,7 +929,7 @@ true
 0
 4: toString!
 [type Object]
-Testing with: (32) 1 (object)
+Testing with: (33) 1 (object)
 5: toString!
 [type Object]
 5: toString!
@@ -915,7 +943,7 @@ true
 1
 5: toString!
 [type Object]
-Testing with: (33) 0.5 (object)
+Testing with: (34) 0.5 (object)
 6: toString!
 [type Object]
 6: toString!
@@ -929,7 +957,7 @@ true
 0
 6: toString!
 [type Object]
-Testing with: (34) -1 (object)
+Testing with: (35) -1 (object)
 7: toString!
 [type Object]
 7: toString!
@@ -943,7 +971,7 @@ true
 -1
 7: toString!
 [type Object]
-Testing with: (35) -0.5 (object)
+Testing with: (36) -0.5 (object)
 8: toString!
 [type Object]
 8: toString!
@@ -957,7 +985,7 @@ true
 0
 8: toString!
 [type Object]
-Testing with: (36) Infinity (object)
+Testing with: (37) Infinity (object)
 9: toString!
 [type Object]
 9: toString!
@@ -968,10 +996,10 @@ true
 true
 9: toString!
 9: valueOf!
--2147483648
+0
 9: toString!
 [type Object]
-Testing with: (37) -Infinity (object)
+Testing with: (38) -Infinity (object)
 10: toString!
 [type Object]
 10: toString!
@@ -982,10 +1010,10 @@ true
 true
 10: toString!
 10: valueOf!
--2147483648
+0
 10: toString!
 [type Object]
-Testing with: (38) NaN (object)
+Testing with: (39) NaN (object)
 11: toString!
 [type Object]
 11: toString!
@@ -996,10 +1024,10 @@ true
 true
 11: toString!
 11: valueOf!
--2147483648
+0
 11: toString!
 [type Object]
-Testing with: (39)  (object)
+Testing with: (40)  (object)
 12: toString!
 
 12: toString!
@@ -1010,10 +1038,10 @@ true
 true
 12: toString!
 12: valueOf!
--2147483648
+0
 12: toString!
 
-Testing with: (40) 0 (object)
+Testing with: (41) 0 (object)
 13: toString!
 0
 13: toString!
@@ -1027,7 +1055,7 @@ true
 0
 13: toString!
 0
-Testing with: (41) -0 (object)
+Testing with: (42) -0 (object)
 14: toString!
 -0
 14: toString!
@@ -1041,7 +1069,7 @@ true
 0
 14: toString!
 -0
-Testing with: (42) 0.0 (object)
+Testing with: (43) 0.0 (object)
 15: toString!
 0.0
 15: toString!
@@ -1055,7 +1083,7 @@ true
 0
 15: toString!
 0.0
-Testing with: (43) 1 (object)
+Testing with: (44) 1 (object)
 16: toString!
 1
 16: toString!
@@ -1069,7 +1097,7 @@ true
 1
 16: toString!
 1
-Testing with: (44) Hello World! (object)
+Testing with: (45) Hello World! (object)
 17: toString!
 Hello World!
 17: toString!
@@ -1080,10 +1108,10 @@ true
 true
 17: toString!
 17: valueOf!
--2147483648
+0
 17: toString!
 Hello World!
-Testing with: (45) true (object)
+Testing with: (46) true (object)
 18: toString!
 true
 18: toString!
@@ -1094,10 +1122,10 @@ true
 true
 18: toString!
 18: valueOf!
--2147483648
+0
 18: toString!
 true
-Testing with: (46) _level0 (object)
+Testing with: (47) _level0 (object)
 19: toString!
 _level0
 19: toString!
@@ -1108,24 +1136,24 @@ true
 true
 19: toString!
 19: valueOf!
--2147483648
+0
 19: toString!
 _level0
-Testing with: (47) _level0 (object)
+Testing with: (48) äöü (object)
 20: toString!
-[type Object]
+äöü
 20: toString!
-[type Object]
+äöü
 20: toString!
 true
 20: toString!
 true
 20: toString!
 20: valueOf!
--2147483648
+0
 20: toString!
-[type Object]
-Testing with: (48) [type Object] (object)
+äöü
+Testing with: (49) _level0 (object)
 21: toString!
 [type Object]
 21: toString!
@@ -1136,10 +1164,10 @@ true
 true
 21: toString!
 21: valueOf!
--2147483648
+0
 21: toString!
 [type Object]
-Testing with: (49)  (object)
+Testing with: (50) [type Object] (object)
 22: toString!
 [type Object]
 22: toString!
@@ -1153,7 +1181,7 @@ true
 0
 22: toString!
 [type Object]
-Testing with: (50) [type Object] (object)
+Testing with: (51)  (object)
 23: toString!
 [type Object]
 23: toString!
@@ -1164,10 +1192,10 @@ true
 true
 23: toString!
 23: valueOf!
--2147483648
+0
 23: toString!
 [type Object]
-Testing with: (51) [type Object] (object)
+Testing with: (52) [type Object] (object)
 24: toString!
 [type Object]
 24: toString!
@@ -1178,10 +1206,10 @@ true
 true
 24: toString!
 24: valueOf!
--2147483648
+0
 24: toString!
 [type Object]
-Testing with: (52) [type Object] (object)
+Testing with: (53) [type Object] (object)
 25: toString!
 [type Object]
 25: toString!
@@ -1192,10 +1220,10 @@ true
 true
 25: toString!
 25: valueOf!
--2147483648
+0
 25: toString!
 [type Object]
-Testing with: (53) [type Object] (object)
+Testing with: (54) [type Object] (object)
 26: toString!
 [type Object]
 26: toString!
@@ -1206,6 +1234,20 @@ true
 true
 26: toString!
 26: valueOf!
--2147483648
+0
 26: toString!
 [type Object]
+Testing with: (55) [type Object] (object)
+27: toString!
+[type Object]
+27: toString!
+[type Object]
+27: toString!
+true
+27: toString!
+true
+27: toString!
+27: valueOf!
+0
+27: toString!
+[type Object]
diff --git a/test/trace/xml-other-6.swf b/test/trace/xml-other-6.swf
index 8a6c7a2..58b1be0 100644
Binary files a/test/trace/xml-other-6.swf and b/test/trace/xml-other-6.swf differ
diff --git a/test/trace/xml-other-6.swf.trace b/test/trace/xml-other-6.swf.trace
index 29d67b4..c23bea4 100644
--- a/test/trace/xml-other-6.swf.trace
+++ b/test/trace/xml-other-6.swf.trace
@@ -24,7 +24,6 @@ valueOf called with
 19: valueOf!
 20: valueOf!
 21: valueOf!
-21: toString!
 22: valueOf!
 22: toString!
 23: valueOf!
@@ -35,6 +34,8 @@ valueOf called with
 25: toString!
 26: valueOf!
 26: toString!
+27: valueOf!
+27: toString!
 <root />
 
 <root />
@@ -78,103 +79,108 @@ Constructing with: (18) true (string)
 true
 Constructing with: (19) _level0 (string)
 _level0
-Constructing with: (20) _level0 (movieclip)
+Constructing with: (20) äöü (string)
+äöü
+Constructing with: (21) _level0 (movieclip)
 _level0
-Constructing with: (21) [object Object] (object)
+Constructing with: (22) [object Object] (object)
 [object Object]
-Constructing with: (22) [type Function] (function)
+Constructing with: (23) [type Function] (function)
 [type Function]
-Constructing with: (23) [type Object] (object)
+Constructing with: (24) [type Object] (object)
 toString called
 [type Object]
-Constructing with: (24) [type Object] (object)
+Constructing with: (25) [type Object] (object)
 toString called with 
 [type Object]
-Constructing with: (25) [object Object] (object)
+Constructing with: (26) [object Object] (object)
 [object Object]
-Constructing with: (26)  (object)
-[type Object]
 Constructing with: (27)  (object)
+[type Object]
+Constructing with: (28)  (object)
 0: toString!
 [type Object]
-Constructing with: (28) null (object)
+Constructing with: (29) null (object)
 1: toString!
 [type Object]
-Constructing with: (29) true (object)
+Constructing with: (30) true (object)
 2: toString!
 [type Object]
-Constructing with: (30) false (object)
+Constructing with: (31) false (object)
 3: toString!
 [type Object]
-Constructing with: (31) 0 (object)
+Constructing with: (32) 0 (object)
 4: toString!
 [type Object]
-Constructing with: (32) 1 (object)
+Constructing with: (33) 1 (object)
 5: toString!
 [type Object]
-Constructing with: (33) 0.5 (object)
+Constructing with: (34) 0.5 (object)
 6: toString!
 [type Object]
-Constructing with: (34) -1 (object)
+Constructing with: (35) -1 (object)
 7: toString!
 [type Object]
-Constructing with: (35) -0.5 (object)
+Constructing with: (36) -0.5 (object)
 8: toString!
 [type Object]
-Constructing with: (36) Infinity (object)
+Constructing with: (37) Infinity (object)
 9: toString!
 [type Object]
-Constructing with: (37) -Infinity (object)
+Constructing with: (38) -Infinity (object)
 10: toString!
 [type Object]
-Constructing with: (38) NaN (object)
+Constructing with: (39) NaN (object)
 11: toString!
 [type Object]
-Constructing with: (39)  (object)
+Constructing with: (40)  (object)
 12: toString!
 
-Constructing with: (40) 0 (object)
+Constructing with: (41) 0 (object)
 13: toString!
 0
-Constructing with: (41) -0 (object)
+Constructing with: (42) -0 (object)
 14: toString!
 -0
-Constructing with: (42) 0.0 (object)
+Constructing with: (43) 0.0 (object)
 15: toString!
 0.0
-Constructing with: (43) 1 (object)
+Constructing with: (44) 1 (object)
 16: toString!
 1
-Constructing with: (44) Hello World! (object)
+Constructing with: (45) Hello World! (object)
 17: toString!
 Hello World!
-Constructing with: (45) true (object)
+Constructing with: (46) true (object)
 18: toString!
 true
-Constructing with: (46) _level0 (object)
+Constructing with: (47) _level0 (object)
 19: toString!
 _level0
-Constructing with: (47) _level0 (object)
+Constructing with: (48) äöü (object)
 20: toString!
-[type Object]
-Constructing with: (48) [type Object] (object)
+äöü
+Constructing with: (49) _level0 (object)
 21: toString!
 [type Object]
-Constructing with: (49) [type Object] (object)
+Constructing with: (50) [type Object] (object)
 22: toString!
 [type Object]
-Constructing with: (50) [type Object] (object)
+Constructing with: (51) [type Object] (object)
 23: toString!
 [type Object]
-Constructing with: (51) [type Object] (object)
+Constructing with: (52) [type Object] (object)
 24: toString!
 [type Object]
-Constructing with: (52) [type Object] (object)
+Constructing with: (53) [type Object] (object)
 25: toString!
 [type Object]
-Constructing with: (53) [type Object] (object)
+Constructing with: (54) [type Object] (object)
 26: toString!
 [type Object]
+Constructing with: (55) [type Object] (object)
+27: toString!
+[type Object]
 undefined
 <?xml XML decl ?><!DOCTYPE doctype decl>
 
@@ -251,137 +257,144 @@ true
 Constructing with: (19) _level0 (string)
 undefined
 _level0
-Constructing with: (20) _level0 (movieclip)
+Constructing with: (20) äöü (string)
+undefined
+äöü
+Constructing with: (21) _level0 (movieclip)
 undefined
 _level0
-Constructing with: (21) [object Object] (object)
+Constructing with: (22) [object Object] (object)
 undefined
 [object Object]
-Constructing with: (22) [type Function] (function)
+Constructing with: (23) [type Function] (function)
 undefined
 [type Function]
-Constructing with: (23) [type Object] (object)
+Constructing with: (24) [type Object] (object)
 toString called
 undefined
 [type Object]
-Constructing with: (24) [type Object] (object)
+Constructing with: (25) [type Object] (object)
 toString called with 
 undefined
 [type Object]
-Constructing with: (25) [object Object] (object)
+Constructing with: (26) [object Object] (object)
 undefined
 [object Object]
-Constructing with: (26)  (object)
+Constructing with: (27)  (object)
 undefined
 [type Object]
-Constructing with: (27)  (object)
+Constructing with: (28)  (object)
 0: toString!
 undefined
 [type Object]
-Constructing with: (28) null (object)
+Constructing with: (29) null (object)
 1: toString!
 undefined
 [type Object]
-Constructing with: (29) true (object)
+Constructing with: (30) true (object)
 2: toString!
 undefined
 [type Object]
-Constructing with: (30) false (object)
+Constructing with: (31) false (object)
 3: toString!
 undefined
 [type Object]
-Constructing with: (31) 0 (object)
+Constructing with: (32) 0 (object)
 4: toString!
 undefined
 [type Object]
-Constructing with: (32) 1 (object)
+Constructing with: (33) 1 (object)
 5: toString!
 undefined
 [type Object]
-Constructing with: (33) 0.5 (object)
+Constructing with: (34) 0.5 (object)
 6: toString!
 undefined
 [type Object]
-Constructing with: (34) -1 (object)
+Constructing with: (35) -1 (object)
 7: toString!
 undefined
 [type Object]
-Constructing with: (35) -0.5 (object)
+Constructing with: (36) -0.5 (object)
 8: toString!
 undefined
 [type Object]
-Constructing with: (36) Infinity (object)
+Constructing with: (37) Infinity (object)
 9: toString!
 undefined
 [type Object]
-Constructing with: (37) -Infinity (object)
+Constructing with: (38) -Infinity (object)
 10: toString!
 undefined
 [type Object]
-Constructing with: (38) NaN (object)
+Constructing with: (39) NaN (object)
 11: toString!
 undefined
 [type Object]
-Constructing with: (39)  (object)
+Constructing with: (40)  (object)
 12: toString!
 undefined
 
-Constructing with: (40) 0 (object)
+Constructing with: (41) 0 (object)
 13: toString!
 undefined
 0
-Constructing with: (41) -0 (object)
+Constructing with: (42) -0 (object)
 14: toString!
 undefined
 -0
-Constructing with: (42) 0.0 (object)
+Constructing with: (43) 0.0 (object)
 15: toString!
 undefined
 0.0
-Constructing with: (43) 1 (object)
+Constructing with: (44) 1 (object)
 16: toString!
 undefined
 1
-Constructing with: (44) Hello World! (object)
+Constructing with: (45) Hello World! (object)
 17: toString!
 undefined
 Hello World!
-Constructing with: (45) true (object)
+Constructing with: (46) true (object)
 18: toString!
 undefined
 true
-Constructing with: (46) _level0 (object)
+Constructing with: (47) _level0 (object)
 19: toString!
 undefined
 _level0
-Constructing with: (47) _level0 (object)
+Constructing with: (48) äöü (object)
 20: toString!
 undefined
-[type Object]
-Constructing with: (48) [type Object] (object)
+äöü
+Constructing with: (49) _level0 (object)
 21: toString!
 undefined
 [type Object]
-Constructing with: (49) [type Object] (object)
+Constructing with: (50) [type Object] (object)
 22: toString!
 undefined
 [type Object]
-Constructing with: (50) [type Object] (object)
+Constructing with: (51) [type Object] (object)
 23: toString!
 undefined
 [type Object]
-Constructing with: (51) [type Object] (object)
+Constructing with: (52) [type Object] (object)
 24: toString!
 undefined
 [type Object]
-Constructing with: (52) [type Object] (object)
+Constructing with: (53) [type Object] (object)
 25: toString!
 undefined
 [type Object]
-Constructing with: (53) [type Object] (object)
+Constructing with: (54) [type Object] (object)
 26: toString!
 undefined
 [type Object]
+Constructing with: (55) [type Object] (object)
+27: toString!
+undefined
+[type Object]
 <root />
 <name />
 <root />
@@ -451,166 +464,174 @@ true
 Creating with: (19) _level0 (string)
 <_level0 />
 _level0
-Creating with: (20) _level0 (movieclip)
+Creating with: (20) äöü (string)
+<äöü />
+äöü
+Creating with: (21) _level0 (movieclip)
 <_level0 />
 _level0
-Creating with: (21) [object Object] (object)
+Creating with: (22) [object Object] (object)
 <[object Object] />
 [object Object]
-Creating with: (22) [type Function] (function)
+Creating with: (23) [type Function] (function)
 <[type Function] />
 [type Function]
-Creating with: (23) [type Object] (object)
+Creating with: (24) [type Object] (object)
 toString called
 <[type Object] />
 toString called
 [type Object]
-Creating with: (24) [type Object] (object)
+Creating with: (25) [type Object] (object)
 toString called with 
 <[type Object] />
 toString called with 
 [type Object]
-Creating with: (25) [object Object] (object)
+Creating with: (26) [object Object] (object)
 <[object Object] />
 [object Object]
-Creating with: (26)  (object)
+Creating with: (27)  (object)
 <[type Object] />
 [type Object]
-Creating with: (27)  (object)
+Creating with: (28)  (object)
 0: toString!
 <[type Object] />
 0: toString!
 [type Object]
-Creating with: (28) null (object)
+Creating with: (29) null (object)
 1: toString!
 <[type Object] />
 1: toString!
 [type Object]
-Creating with: (29) true (object)
+Creating with: (30) true (object)
 2: toString!
 <[type Object] />
 2: toString!
 [type Object]
-Creating with: (30) false (object)
+Creating with: (31) false (object)
 3: toString!
 <[type Object] />
 3: toString!
 [type Object]
-Creating with: (31) 0 (object)
+Creating with: (32) 0 (object)
 4: toString!
 <[type Object] />
 4: toString!
 [type Object]
-Creating with: (32) 1 (object)
+Creating with: (33) 1 (object)
 5: toString!
 <[type Object] />
 5: toString!
 [type Object]
-Creating with: (33) 0.5 (object)
+Creating with: (34) 0.5 (object)
 6: toString!
 <[type Object] />
 6: toString!
 [type Object]
-Creating with: (34) -1 (object)
+Creating with: (35) -1 (object)
 7: toString!
 <[type Object] />
 7: toString!
 [type Object]
-Creating with: (35) -0.5 (object)
+Creating with: (36) -0.5 (object)
 8: toString!
 <[type Object] />
 8: toString!
 [type Object]
-Creating with: (36) Infinity (object)
+Creating with: (37) Infinity (object)
 9: toString!
 <[type Object] />
 9: toString!
 [type Object]
-Creating with: (37) -Infinity (object)
+Creating with: (38) -Infinity (object)
 10: toString!
 <[type Object] />
 10: toString!
 [type Object]
-Creating with: (38) NaN (object)
+Creating with: (39) NaN (object)
 11: toString!
 <[type Object] />
 11: toString!
 [type Object]
-Creating with: (39)  (object)
+Creating with: (40)  (object)
 12: toString!
 < />
 12: toString!
 
-Creating with: (40) 0 (object)
+Creating with: (41) 0 (object)
 13: toString!
 <0 />
 13: toString!
 0
-Creating with: (41) -0 (object)
+Creating with: (42) -0 (object)
 14: toString!
 <-0 />
 14: toString!
 -0
-Creating with: (42) 0.0 (object)
+Creating with: (43) 0.0 (object)
 15: toString!
 <0.0 />
 15: toString!
 0.0
-Creating with: (43) 1 (object)
+Creating with: (44) 1 (object)
 16: toString!
 <1 />
 16: toString!
 1
-Creating with: (44) Hello World! (object)
+Creating with: (45) Hello World! (object)
 17: toString!
 <Hello World! />
 17: toString!
 Hello World!
-Creating with: (45) true (object)
+Creating with: (46) true (object)
 18: toString!
 <true />
 18: toString!
 true
-Creating with: (46) _level0 (object)
+Creating with: (47) _level0 (object)
 19: toString!
 <_level0 />
 19: toString!
 _level0
-Creating with: (47) _level0 (object)
+Creating with: (48) äöü (object)
 20: toString!
-<[type Object] />
+<äöü />
 20: toString!
-[type Object]
-Creating with: (48) [type Object] (object)
+äöü
+Creating with: (49) _level0 (object)
 21: toString!
 <[type Object] />
 21: toString!
 [type Object]
-Creating with: (49) [type Object] (object)
+Creating with: (50) [type Object] (object)
 22: toString!
 <[type Object] />
 22: toString!
 [type Object]
-Creating with: (50) [type Object] (object)
+Creating with: (51) [type Object] (object)
 23: toString!
 <[type Object] />
 23: toString!
 [type Object]
-Creating with: (51) [type Object] (object)
+Creating with: (52) [type Object] (object)
 24: toString!
 <[type Object] />
 24: toString!
 [type Object]
-Creating with: (52) [type Object] (object)
+Creating with: (53) [type Object] (object)
 25: toString!
 <[type Object] />
 25: toString!
 [type Object]
-Creating with: (53) [type Object] (object)
+Creating with: (54) [type Object] (object)
 26: toString!
 <[type Object] />
 26: toString!
 [type Object]
+Creating with: (55) [type Object] (object)
+27: toString!
+<[type Object] />
+27: toString!
+[type Object]
 application/x-www-form-urlencoded
 <!DOCTYPE doctype declaration >
 false
@@ -697,28 +718,28 @@ Infinity
 Infinity
 true
 true
--2147483648
+0
 Infinity
 Testing with: (10) -Infinity (number)
 -Infinity
 -Infinity
 true
 true
--2147483648
+0
 -Infinity
 Testing with: (11) NaN (number)
 NaN
 NaN
 false
 false
--2147483648
+0
 NaN
 Testing with: (12)  (string)
 
 
 false
 false
--2147483648
+0
 
 Testing with: (13) 0 (string)
 0
@@ -753,44 +774,51 @@ Hello World!
 Hello World!
 false
 false
--2147483648
+0
 Hello World!
 Testing with: (18) true (string)
 true
 true
 false
 false
--2147483648
+0
 true
 Testing with: (19) _level0 (string)
 _level0
 _level0
 false
 false
--2147483648
+0
 _level0
-Testing with: (20) _level0 (movieclip)
+Testing with: (20) äöü (string)
+äöü
+äöü
+false
+false
+0
+äöü
+Testing with: (21) _level0 (movieclip)
 _level0
 _level0
 true
 true
--2147483648
+0
 _level0
-Testing with: (21) [object Object] (object)
+Testing with: (22) [object Object] (object)
 [object Object]
 [object Object]
 true
 true
--2147483648
+0
 [object Object]
-Testing with: (22) [type Function] (function)
+Testing with: (23) [type Function] (function)
 [type Function]
 [type Function]
 true
 true
--2147483648
+0
 [type Function]
-Testing with: (23) [type Object] (object)
+Testing with: (24) [type Object] (object)
 toString called
 [type Object]
 toString called
@@ -801,10 +829,10 @@ toString called
 true
 toString called
 valueOf called
--2147483648
+0
 toString called
 [type Object]
-Testing with: (24) [type Object] (object)
+Testing with: (25) [type Object] (object)
 toString called with 
 [type Object]
 toString called with 
@@ -814,25 +842,25 @@ true
 toString called with 
 true
 toString called with 
--2147483648
+0
 toString called with 
 [type Object]
-Testing with: (25) [object Object] (object)
+Testing with: (26) [object Object] (object)
 [object Object]
 [object Object]
 true
 true
 valueOf called with 
--2147483648
+0
 [object Object]
-Testing with: (26)  (object)
+Testing with: (27)  (object)
 [type Object]
 [type Object]
 true
 true
 0
 [type Object]
-Testing with: (27)  (object)
+Testing with: (28)  (object)
 0: toString!
 [type Object]
 0: toString!
@@ -846,7 +874,7 @@ true
 0
 0: toString!
 [type Object]
-Testing with: (28) null (object)
+Testing with: (29) null (object)
 1: toString!
 [type Object]
 1: toString!
@@ -860,7 +888,7 @@ true
 0
 1: toString!
 [type Object]
-Testing with: (29) true (object)
+Testing with: (30) true (object)
 2: toString!
 [type Object]
 2: toString!
@@ -874,7 +902,7 @@ true
 1
 2: toString!
 [type Object]
-Testing with: (30) false (object)
+Testing with: (31) false (object)
 3: toString!
 [type Object]
 3: toString!
@@ -888,7 +916,7 @@ true
 0
 3: toString!
 [type Object]
-Testing with: (31) 0 (object)
+Testing with: (32) 0 (object)
 4: toString!
 [type Object]
 4: toString!
@@ -902,7 +930,7 @@ true
 0
 4: toString!
 [type Object]
-Testing with: (32) 1 (object)
+Testing with: (33) 1 (object)
 5: toString!
 [type Object]
 5: toString!
@@ -916,7 +944,7 @@ true
 1
 5: toString!
 [type Object]
-Testing with: (33) 0.5 (object)
+Testing with: (34) 0.5 (object)
 6: toString!
 [type Object]
 6: toString!
@@ -930,7 +958,7 @@ true
 0
 6: toString!
 [type Object]
-Testing with: (34) -1 (object)
+Testing with: (35) -1 (object)
 7: toString!
 [type Object]
 7: toString!
@@ -944,7 +972,7 @@ true
 -1
 7: toString!
 [type Object]
-Testing with: (35) -0.5 (object)
+Testing with: (36) -0.5 (object)
 8: toString!
 [type Object]
 8: toString!
@@ -958,7 +986,7 @@ true
 0
 8: toString!
 [type Object]
-Testing with: (36) Infinity (object)
+Testing with: (37) Infinity (object)
 9: toString!
 [type Object]
 9: toString!
@@ -969,10 +997,10 @@ true
 true
 9: toString!
 9: valueOf!
--2147483648
+0
 9: toString!
 [type Object]
-Testing with: (37) -Infinity (object)
+Testing with: (38) -Infinity (object)
 10: toString!
 [type Object]
 10: toString!
@@ -983,10 +1011,10 @@ true
 true
 10: toString!
 10: valueOf!
--2147483648
+0
 10: toString!
 [type Object]
-Testing with: (38) NaN (object)
+Testing with: (39) NaN (object)
 11: toString!
 [type Object]
 11: toString!
@@ -997,10 +1025,10 @@ true
 true
 11: toString!
 11: valueOf!
--2147483648
+0
 11: toString!
 [type Object]
-Testing with: (39)  (object)
+Testing with: (40)  (object)
 12: toString!
 
 12: toString!
@@ -1011,10 +1039,10 @@ true
 true
 12: toString!
 12: valueOf!
--2147483648
+0
 12: toString!
 
-Testing with: (40) 0 (object)
+Testing with: (41) 0 (object)
 13: toString!
 0
 13: toString!
@@ -1028,7 +1056,7 @@ true
 0
 13: toString!
 0
-Testing with: (41) -0 (object)
+Testing with: (42) -0 (object)
 14: toString!
 -0
 14: toString!
@@ -1042,7 +1070,7 @@ true
 0
 14: toString!
 -0
-Testing with: (42) 0.0 (object)
+Testing with: (43) 0.0 (object)
 15: toString!
 0.0
 15: toString!
@@ -1056,7 +1084,7 @@ true
 0
 15: toString!
 0.0
-Testing with: (43) 1 (object)
+Testing with: (44) 1 (object)
 16: toString!
 1
 16: toString!
@@ -1070,7 +1098,7 @@ true
 1
 16: toString!
 1
-Testing with: (44) Hello World! (object)
+Testing with: (45) Hello World! (object)
 17: toString!
 Hello World!
 17: toString!
@@ -1081,10 +1109,10 @@ true
 true
 17: toString!
 17: valueOf!
--2147483648
+0
 17: toString!
 Hello World!
-Testing with: (45) true (object)
+Testing with: (46) true (object)
 18: toString!
 true
 18: toString!
@@ -1095,10 +1123,10 @@ true
 true
 18: toString!
 18: valueOf!
--2147483648
+0
 18: toString!
 true
-Testing with: (46) _level0 (object)
+Testing with: (47) _level0 (object)
 19: toString!
 _level0
 19: toString!
@@ -1109,24 +1137,24 @@ true
 true
 19: toString!
 19: valueOf!
--2147483648
+0
 19: toString!
 _level0
-Testing with: (47) _level0 (object)
+Testing with: (48) äöü (object)
 20: toString!
-[type Object]
+äöü
 20: toString!
-[type Object]
+äöü
 20: toString!
 true
 20: toString!
 true
 20: toString!
 20: valueOf!
--2147483648
+0
 20: toString!
-[type Object]
-Testing with: (48) [type Object] (object)
+äöü
+Testing with: (49) _level0 (object)
 21: toString!
 [type Object]
 21: toString!
@@ -1137,10 +1165,10 @@ true
 true
 21: toString!
 21: valueOf!
--2147483648
+0
 21: toString!
 [type Object]
-Testing with: (49) [type Object] (object)
+Testing with: (50) [type Object] (object)
 22: toString!
 [type Object]
 22: toString!
@@ -1151,10 +1179,10 @@ true
 true
 22: toString!
 22: valueOf!
--2147483648
+0
 22: toString!
 [type Object]
-Testing with: (50) [type Object] (object)
+Testing with: (51) [type Object] (object)
 23: toString!
 [type Object]
 23: toString!
@@ -1165,10 +1193,10 @@ true
 true
 23: toString!
 23: valueOf!
--2147483648
+0
 23: toString!
 [type Object]
-Testing with: (51) [type Object] (object)
+Testing with: (52) [type Object] (object)
 24: toString!
 [type Object]
 24: toString!
@@ -1179,10 +1207,10 @@ true
 true
 24: toString!
 24: valueOf!
--2147483648
+0
 24: toString!
 [type Object]
-Testing with: (52) [type Object] (object)
+Testing with: (53) [type Object] (object)
 25: toString!
 [type Object]
 25: toString!
@@ -1193,10 +1221,10 @@ true
 true
 25: toString!
 25: valueOf!
--2147483648
+0
 25: toString!
 [type Object]
-Testing with: (53) [type Object] (object)
+Testing with: (54) [type Object] (object)
 26: toString!
 [type Object]
 26: toString!
@@ -1207,6 +1235,20 @@ true
 true
 26: toString!
 26: valueOf!
--2147483648
+0
 26: toString!
 [type Object]
+Testing with: (55) [type Object] (object)
+27: toString!
+[type Object]
+27: toString!
+[type Object]
+27: toString!
+true
+27: toString!
+true
+27: toString!
+27: valueOf!
+0
+27: toString!
+[type Object]
diff --git a/test/trace/xml-other-7.swf b/test/trace/xml-other-7.swf
index a8a1282..20c48df 100644
Binary files a/test/trace/xml-other-7.swf and b/test/trace/xml-other-7.swf differ
diff --git a/test/trace/xml-other-7.swf.trace b/test/trace/xml-other-7.swf.trace
index cdba84e..5e0a83c 100644
--- a/test/trace/xml-other-7.swf.trace
+++ b/test/trace/xml-other-7.swf.trace
@@ -24,7 +24,6 @@ valueOf called with
 19: valueOf!
 20: valueOf!
 21: valueOf!
-21: toString!
 22: valueOf!
 22: toString!
 23: valueOf!
@@ -35,6 +34,8 @@ valueOf called with
 25: toString!
 26: valueOf!
 26: toString!
+27: valueOf!
+27: toString!
 <root />
 
 <root />
@@ -78,103 +79,108 @@ Constructing with: (18) true (string)
 true
 Constructing with: (19) _level0 (string)
 _level0
-Constructing with: (20) _level0 (movieclip)
+Constructing with: (20) äöü (string)
+äöü
+Constructing with: (21) _level0 (movieclip)
 _level0
-Constructing with: (21) [object Object] (object)
+Constructing with: (22) [object Object] (object)
 [object Object]
-Constructing with: (22) [type Function] (function)
+Constructing with: (23) [type Function] (function)
 [type Function]
-Constructing with: (23) [type Object] (object)
+Constructing with: (24) [type Object] (object)
 toString called
 [type Object]
-Constructing with: (24) [type Object] (object)
+Constructing with: (25) [type Object] (object)
 toString called with 
 [type Object]
-Constructing with: (25) [object Object] (object)
+Constructing with: (26) [object Object] (object)
 [object Object]
-Constructing with: (26) undefined (object)
-[type Object]
 Constructing with: (27) undefined (object)
+[type Object]
+Constructing with: (28) undefined (object)
 0: toString!
 [type Object]
-Constructing with: (28) null (object)
+Constructing with: (29) null (object)
 1: toString!
 [type Object]
-Constructing with: (29) true (object)
+Constructing with: (30) true (object)
 2: toString!
 [type Object]
-Constructing with: (30) false (object)
+Constructing with: (31) false (object)
 3: toString!
 [type Object]
-Constructing with: (31) 0 (object)
+Constructing with: (32) 0 (object)
 4: toString!
 [type Object]
-Constructing with: (32) 1 (object)
+Constructing with: (33) 1 (object)
 5: toString!
 [type Object]
-Constructing with: (33) 0.5 (object)
+Constructing with: (34) 0.5 (object)
 6: toString!
 [type Object]
-Constructing with: (34) -1 (object)
+Constructing with: (35) -1 (object)
 7: toString!
 [type Object]
-Constructing with: (35) -0.5 (object)
+Constructing with: (36) -0.5 (object)
 8: toString!
 [type Object]
-Constructing with: (36) Infinity (object)
+Constructing with: (37) Infinity (object)
 9: toString!
 [type Object]
-Constructing with: (37) -Infinity (object)
+Constructing with: (38) -Infinity (object)
 10: toString!
 [type Object]
-Constructing with: (38) NaN (object)
+Constructing with: (39) NaN (object)
 11: toString!
 [type Object]
-Constructing with: (39)  (object)
+Constructing with: (40)  (object)
 12: toString!
 
-Constructing with: (40) 0 (object)
+Constructing with: (41) 0 (object)
 13: toString!
 0
-Constructing with: (41) -0 (object)
+Constructing with: (42) -0 (object)
 14: toString!
 -0
-Constructing with: (42) 0.0 (object)
+Constructing with: (43) 0.0 (object)
 15: toString!
 0.0
-Constructing with: (43) 1 (object)
+Constructing with: (44) 1 (object)
 16: toString!
 1
-Constructing with: (44) Hello World! (object)
+Constructing with: (45) Hello World! (object)
 17: toString!
 Hello World!
-Constructing with: (45) true (object)
+Constructing with: (46) true (object)
 18: toString!
 true
-Constructing with: (46) _level0 (object)
+Constructing with: (47) _level0 (object)
 19: toString!
 _level0
-Constructing with: (47) _level0 (object)
+Constructing with: (48) äöü (object)
 20: toString!
-[type Object]
-Constructing with: (48) [type Object] (object)
+äöü
+Constructing with: (49) _level0 (object)
 21: toString!
 [type Object]
-Constructing with: (49) [type Object] (object)
+Constructing with: (50) [type Object] (object)
 22: toString!
 [type Object]
-Constructing with: (50) [type Object] (object)
+Constructing with: (51) [type Object] (object)
 23: toString!
 [type Object]
-Constructing with: (51) [type Object] (object)
+Constructing with: (52) [type Object] (object)
 24: toString!
 [type Object]
-Constructing with: (52) [type Object] (object)
+Constructing with: (53) [type Object] (object)
 25: toString!
 [type Object]
-Constructing with: (53) [type Object] (object)
+Constructing with: (54) [type Object] (object)
 26: toString!
 [type Object]
+Constructing with: (55) [type Object] (object)
+27: toString!
+[type Object]
 undefined
 <?xml XML decl ?><!DOCTYPE doctype decl>
 
@@ -251,137 +257,144 @@ true
 Constructing with: (19) _level0 (string)
 undefined
 _level0
-Constructing with: (20) _level0 (movieclip)
+Constructing with: (20) äöü (string)
+undefined
+äöü
+Constructing with: (21) _level0 (movieclip)
 undefined
 _level0
-Constructing with: (21) [object Object] (object)
+Constructing with: (22) [object Object] (object)
 undefined
 [object Object]
-Constructing with: (22) [type Function] (function)
+Constructing with: (23) [type Function] (function)
 undefined
 [type Function]
-Constructing with: (23) [type Object] (object)
+Constructing with: (24) [type Object] (object)
 toString called
 undefined
 [type Object]
-Constructing with: (24) [type Object] (object)
+Constructing with: (25) [type Object] (object)
 toString called with 
 undefined
 [type Object]
-Constructing with: (25) [object Object] (object)
+Constructing with: (26) [object Object] (object)
 undefined
 [object Object]
-Constructing with: (26) undefined (object)
+Constructing with: (27) undefined (object)
 undefined
 [type Object]
-Constructing with: (27) undefined (object)
+Constructing with: (28) undefined (object)
 0: toString!
 undefined
 [type Object]
-Constructing with: (28) null (object)
+Constructing with: (29) null (object)
 1: toString!
 undefined
 [type Object]
-Constructing with: (29) true (object)
+Constructing with: (30) true (object)
 2: toString!
 undefined
 [type Object]
-Constructing with: (30) false (object)
+Constructing with: (31) false (object)
 3: toString!
 undefined
 [type Object]
-Constructing with: (31) 0 (object)
+Constructing with: (32) 0 (object)
 4: toString!
 undefined
 [type Object]
-Constructing with: (32) 1 (object)
+Constructing with: (33) 1 (object)
 5: toString!
 undefined
 [type Object]
-Constructing with: (33) 0.5 (object)
+Constructing with: (34) 0.5 (object)
 6: toString!
 undefined
 [type Object]
-Constructing with: (34) -1 (object)
+Constructing with: (35) -1 (object)
 7: toString!
 undefined
 [type Object]
-Constructing with: (35) -0.5 (object)
+Constructing with: (36) -0.5 (object)
 8: toString!
 undefined
 [type Object]
-Constructing with: (36) Infinity (object)
+Constructing with: (37) Infinity (object)
 9: toString!
 undefined
 [type Object]
-Constructing with: (37) -Infinity (object)
+Constructing with: (38) -Infinity (object)
 10: toString!
 undefined
 [type Object]
-Constructing with: (38) NaN (object)
+Constructing with: (39) NaN (object)
 11: toString!
 undefined
 [type Object]
-Constructing with: (39)  (object)
+Constructing with: (40)  (object)
 12: toString!
 undefined
 
-Constructing with: (40) 0 (object)
+Constructing with: (41) 0 (object)
 13: toString!
 undefined
 0
-Constructing with: (41) -0 (object)
+Constructing with: (42) -0 (object)
 14: toString!
 undefined
 -0
-Constructing with: (42) 0.0 (object)
+Constructing with: (43) 0.0 (object)
 15: toString!
 undefined
 0.0
-Constructing with: (43) 1 (object)
+Constructing with: (44) 1 (object)
 16: toString!
 undefined
 1
-Constructing with: (44) Hello World! (object)
+Constructing with: (45) Hello World! (object)
 17: toString!
 undefined
 Hello World!
-Constructing with: (45) true (object)
+Constructing with: (46) true (object)
 18: toString!
 undefined
 true
-Constructing with: (46) _level0 (object)
+Constructing with: (47) _level0 (object)
 19: toString!
 undefined
 _level0
-Constructing with: (47) _level0 (object)
+Constructing with: (48) äöü (object)
 20: toString!
 undefined
-[type Object]
-Constructing with: (48) [type Object] (object)
+äöü
+Constructing with: (49) _level0 (object)
 21: toString!
 undefined
 [type Object]
-Constructing with: (49) [type Object] (object)
+Constructing with: (50) [type Object] (object)
 22: toString!
 undefined
 [type Object]
-Constructing with: (50) [type Object] (object)
+Constructing with: (51) [type Object] (object)
 23: toString!
 undefined
 [type Object]
-Constructing with: (51) [type Object] (object)
+Constructing with: (52) [type Object] (object)
 24: toString!
 undefined
 [type Object]
-Constructing with: (52) [type Object] (object)
+Constructing with: (53) [type Object] (object)
 25: toString!
 undefined
 [type Object]
-Constructing with: (53) [type Object] (object)
+Constructing with: (54) [type Object] (object)
 26: toString!
 undefined
 [type Object]
+Constructing with: (55) [type Object] (object)
+27: toString!
+undefined
+[type Object]
 <root />
 <name />
 <root />
@@ -451,166 +464,174 @@ true
 Creating with: (19) _level0 (string)
 <_level0 />
 _level0
-Creating with: (20) _level0 (movieclip)
+Creating with: (20) äöü (string)
+<äöü />
+äöü
+Creating with: (21) _level0 (movieclip)
 <_level0 />
 _level0
-Creating with: (21) [object Object] (object)
+Creating with: (22) [object Object] (object)
 <[object Object] />
 [object Object]
-Creating with: (22) [type Function] (function)
+Creating with: (23) [type Function] (function)
 <[type Function] />
 [type Function]
-Creating with: (23) [type Object] (object)
+Creating with: (24) [type Object] (object)
 toString called
 <[type Object] />
 toString called
 [type Object]
-Creating with: (24) [type Object] (object)
+Creating with: (25) [type Object] (object)
 toString called with 
 <[type Object] />
 toString called with 
 [type Object]
-Creating with: (25) [object Object] (object)
+Creating with: (26) [object Object] (object)
 <[object Object] />
 [object Object]
-Creating with: (26) undefined (object)
+Creating with: (27) undefined (object)
 <[type Object] />
 [type Object]
-Creating with: (27) undefined (object)
+Creating with: (28) undefined (object)
 0: toString!
 <[type Object] />
 0: toString!
 [type Object]
-Creating with: (28) null (object)
+Creating with: (29) null (object)
 1: toString!
 <[type Object] />
 1: toString!
 [type Object]
-Creating with: (29) true (object)
+Creating with: (30) true (object)
 2: toString!
 <[type Object] />
 2: toString!
 [type Object]
-Creating with: (30) false (object)
+Creating with: (31) false (object)
 3: toString!
 <[type Object] />
 3: toString!
 [type Object]
-Creating with: (31) 0 (object)
+Creating with: (32) 0 (object)
 4: toString!
 <[type Object] />
 4: toString!
 [type Object]
-Creating with: (32) 1 (object)
+Creating with: (33) 1 (object)
 5: toString!
 <[type Object] />
 5: toString!
 [type Object]
-Creating with: (33) 0.5 (object)
+Creating with: (34) 0.5 (object)
 6: toString!
 <[type Object] />
 6: toString!
 [type Object]
-Creating with: (34) -1 (object)
+Creating with: (35) -1 (object)
 7: toString!
 <[type Object] />
 7: toString!
 [type Object]
-Creating with: (35) -0.5 (object)
+Creating with: (36) -0.5 (object)
 8: toString!
 <[type Object] />
 8: toString!
 [type Object]
-Creating with: (36) Infinity (object)
+Creating with: (37) Infinity (object)
 9: toString!
 <[type Object] />
 9: toString!
 [type Object]
-Creating with: (37) -Infinity (object)
+Creating with: (38) -Infinity (object)
 10: toString!
 <[type Object] />
 10: toString!
 [type Object]
-Creating with: (38) NaN (object)
+Creating with: (39) NaN (object)
 11: toString!
 <[type Object] />
 11: toString!
 [type Object]
-Creating with: (39)  (object)
+Creating with: (40)  (object)
 12: toString!
 < />
 12: toString!
 
-Creating with: (40) 0 (object)
+Creating with: (41) 0 (object)
 13: toString!
 <0 />
 13: toString!
 0
-Creating with: (41) -0 (object)
+Creating with: (42) -0 (object)
 14: toString!
 <-0 />
 14: toString!
 -0
-Creating with: (42) 0.0 (object)
+Creating with: (43) 0.0 (object)
 15: toString!
 <0.0 />
 15: toString!
 0.0
-Creating with: (43) 1 (object)
+Creating with: (44) 1 (object)
 16: toString!
 <1 />
 16: toString!
 1
-Creating with: (44) Hello World! (object)
+Creating with: (45) Hello World! (object)
 17: toString!
 <Hello World! />
 17: toString!
 Hello World!
-Creating with: (45) true (object)
+Creating with: (46) true (object)
 18: toString!
 <true />
 18: toString!
 true
-Creating with: (46) _level0 (object)
+Creating with: (47) _level0 (object)
 19: toString!
 <_level0 />
 19: toString!
 _level0
-Creating with: (47) _level0 (object)
+Creating with: (48) äöü (object)
 20: toString!
-<[type Object] />
+<äöü />
 20: toString!
-[type Object]
-Creating with: (48) [type Object] (object)
+äöü
+Creating with: (49) _level0 (object)
 21: toString!
 <[type Object] />
 21: toString!
 [type Object]
-Creating with: (49) [type Object] (object)
+Creating with: (50) [type Object] (object)
 22: toString!
 <[type Object] />
 22: toString!
 [type Object]
-Creating with: (50) [type Object] (object)
+Creating with: (51) [type Object] (object)
 23: toString!
 <[type Object] />
 23: toString!
 [type Object]
-Creating with: (51) [type Object] (object)
+Creating with: (52) [type Object] (object)
 24: toString!
 <[type Object] />
 24: toString!
 [type Object]
-Creating with: (52) [type Object] (object)
+Creating with: (53) [type Object] (object)
 25: toString!
 <[type Object] />
 25: toString!
 [type Object]
-Creating with: (53) [type Object] (object)
+Creating with: (54) [type Object] (object)
 26: toString!
 <[type Object] />
 26: toString!
 [type Object]
+Creating with: (55) [type Object] (object)
+27: toString!
+<[type Object] />
+27: toString!
+[type Object]
 application/x-www-form-urlencoded
 <!DOCTYPE doctype declaration >
 false
@@ -641,7 +662,7 @@ null
 null
 false
 false
--2147483648
+0
 null
 Testing with: (2) true (boolean)
 true
@@ -697,28 +718,28 @@ Infinity
 Infinity
 true
 true
--2147483648
+0
 Infinity
 Testing with: (10) -Infinity (number)
 -Infinity
 -Infinity
 true
 true
--2147483648
+0
 -Infinity
 Testing with: (11) NaN (number)
 NaN
 NaN
 false
 false
--2147483648
+0
 NaN
 Testing with: (12)  (string)
 
 
 false
 false
--2147483648
+0
 
 Testing with: (13) 0 (string)
 0
@@ -753,44 +774,51 @@ Hello World!
 Hello World!
 true
 true
--2147483648
+0
 Hello World!
 Testing with: (18) true (string)
 true
 true
 true
 true
--2147483648
+0
 true
 Testing with: (19) _level0 (string)
 _level0
 _level0
 true
 true
--2147483648
+0
 _level0
-Testing with: (20) _level0 (movieclip)
+Testing with: (20) äöü (string)
+äöü
+äöü
+true
+true
+0
+äöü
+Testing with: (21) _level0 (movieclip)
 _level0
 _level0
 true
 true
--2147483648
+0
 _level0
-Testing with: (21) [object Object] (object)
+Testing with: (22) [object Object] (object)
 [object Object]
 [object Object]
 true
 true
--2147483648
+0
 [object Object]
-Testing with: (22) [type Function] (function)
+Testing with: (23) [type Function] (function)
 [type Function]
 [type Function]
 true
 true
--2147483648
+0
 [type Function]
-Testing with: (23) [type Object] (object)
+Testing with: (24) [type Object] (object)
 toString called
 [type Object]
 toString called
@@ -801,10 +829,10 @@ toString called
 true
 toString called
 valueOf called
--2147483648
+0
 toString called
 [type Object]
-Testing with: (24) [type Object] (object)
+Testing with: (25) [type Object] (object)
 toString called with 
 [type Object]
 toString called with 
@@ -814,25 +842,25 @@ true
 toString called with 
 true
 toString called with 
--2147483648
+0
 toString called with 
 [type Object]
-Testing with: (25) [object Object] (object)
+Testing with: (26) [object Object] (object)
 [object Object]
 [object Object]
 true
 true
 valueOf called with 
--2147483648
+0
 [object Object]
-Testing with: (26) undefined (object)
+Testing with: (27) undefined (object)
 [type Object]
 [type Object]
 true
 true
--2147483648
+0
 [type Object]
-Testing with: (27) undefined (object)
+Testing with: (28) undefined (object)
 0: toString!
 [type Object]
 0: toString!
@@ -843,10 +871,10 @@ true
 true
 0: toString!
 0: valueOf!
--2147483648
+0
 0: toString!
 [type Object]
-Testing with: (28) null (object)
+Testing with: (29) null (object)
 1: toString!
 [type Object]
 1: toString!
@@ -857,10 +885,10 @@ true
 true
 1: toString!
 1: valueOf!
--2147483648
+0
 1: toString!
 [type Object]
-Testing with: (29) true (object)
+Testing with: (30) true (object)
 2: toString!
 [type Object]
 2: toString!
@@ -874,7 +902,7 @@ true
 1
 2: toString!
 [type Object]
-Testing with: (30) false (object)
+Testing with: (31) false (object)
 3: toString!
 [type Object]
 3: toString!
@@ -888,7 +916,7 @@ true
 0
 3: toString!
 [type Object]
-Testing with: (31) 0 (object)
+Testing with: (32) 0 (object)
 4: toString!
 [type Object]
 4: toString!
@@ -902,7 +930,7 @@ true
 0
 4: toString!
 [type Object]
-Testing with: (32) 1 (object)
+Testing with: (33) 1 (object)
 5: toString!
 [type Object]
 5: toString!
@@ -916,7 +944,7 @@ true
 1
 5: toString!
 [type Object]
-Testing with: (33) 0.5 (object)
+Testing with: (34) 0.5 (object)
 6: toString!
 [type Object]
 6: toString!
@@ -930,7 +958,7 @@ true
 0
 6: toString!
 [type Object]
-Testing with: (34) -1 (object)
+Testing with: (35) -1 (object)
 7: toString!
 [type Object]
 7: toString!
@@ -944,7 +972,7 @@ true
 -1
 7: toString!
 [type Object]
-Testing with: (35) -0.5 (object)
+Testing with: (36) -0.5 (object)
 8: toString!
 [type Object]
 8: toString!
@@ -958,7 +986,7 @@ true
 0
 8: toString!
 [type Object]
-Testing with: (36) Infinity (object)
+Testing with: (37) Infinity (object)
 9: toString!
 [type Object]
 9: toString!
@@ -969,10 +997,10 @@ true
 true
 9: toString!
 9: valueOf!
--2147483648
+0
 9: toString!
 [type Object]
-Testing with: (37) -Infinity (object)
+Testing with: (38) -Infinity (object)
 10: toString!
 [type Object]
 10: toString!
@@ -983,10 +1011,10 @@ true
 true
 10: toString!
 10: valueOf!
--2147483648
+0
 10: toString!
 [type Object]
-Testing with: (38) NaN (object)
+Testing with: (39) NaN (object)
 11: toString!
 [type Object]
 11: toString!
@@ -997,10 +1025,10 @@ true
 true
 11: toString!
 11: valueOf!
--2147483648
+0
 11: toString!
 [type Object]
-Testing with: (39)  (object)
+Testing with: (40)  (object)
 12: toString!
 
 12: toString!
@@ -1011,10 +1039,10 @@ true
 true
 12: toString!
 12: valueOf!
--2147483648
+0
 12: toString!
 
-Testing with: (40) 0 (object)
+Testing with: (41) 0 (object)
 13: toString!
 0
 13: toString!
@@ -1028,7 +1056,7 @@ true
 0
 13: toString!
 0
-Testing with: (41) -0 (object)
+Testing with: (42) -0 (object)
 14: toString!
 -0
 14: toString!
@@ -1042,7 +1070,7 @@ true
 0
 14: toString!
 -0
-Testing with: (42) 0.0 (object)
+Testing with: (43) 0.0 (object)
 15: toString!
 0.0
 15: toString!
@@ -1056,7 +1084,7 @@ true
 0
 15: toString!
 0.0
-Testing with: (43) 1 (object)
+Testing with: (44) 1 (object)
 16: toString!
 1
 16: toString!
@@ -1070,7 +1098,7 @@ true
 1
 16: toString!
 1
-Testing with: (44) Hello World! (object)
+Testing with: (45) Hello World! (object)
 17: toString!
 Hello World!
 17: toString!
@@ -1081,10 +1109,10 @@ true
 true
 17: toString!
 17: valueOf!
--2147483648
+0
 17: toString!
 Hello World!
-Testing with: (45) true (object)
+Testing with: (46) true (object)
 18: toString!
 true
 18: toString!
@@ -1095,10 +1123,10 @@ true
 true
 18: toString!
 18: valueOf!
--2147483648
+0
 18: toString!
 true
-Testing with: (46) _level0 (object)
+Testing with: (47) _level0 (object)
 19: toString!
 _level0
 19: toString!
@@ -1109,24 +1137,24 @@ true
 true
 19: toString!
 19: valueOf!
--2147483648
+0
 19: toString!
 _level0
-Testing with: (47) _level0 (object)
+Testing with: (48) äöü (object)
 20: toString!
-[type Object]
+äöü
 20: toString!
-[type Object]
+äöü
 20: toString!
 true
 20: toString!
 true
 20: toString!
 20: valueOf!
--2147483648
+0
 20: toString!
-[type Object]
-Testing with: (48) [type Object] (object)
+äöü
+Testing with: (49) _level0 (object)
 21: toString!
 [type Object]
 21: toString!
@@ -1137,10 +1165,10 @@ true
 true
 21: toString!
 21: valueOf!
--2147483648
+0
 21: toString!
 [type Object]
-Testing with: (49) [type Object] (object)
+Testing with: (50) [type Object] (object)
 22: toString!
 [type Object]
 22: toString!
@@ -1151,10 +1179,10 @@ true
 true
 22: toString!
 22: valueOf!
--2147483648
+0
 22: toString!
 [type Object]
-Testing with: (50) [type Object] (object)
+Testing with: (51) [type Object] (object)
 23: toString!
 [type Object]
 23: toString!
@@ -1165,10 +1193,10 @@ true
 true
 23: toString!
 23: valueOf!
--2147483648
+0
 23: toString!
 [type Object]
-Testing with: (51) [type Object] (object)
+Testing with: (52) [type Object] (object)
 24: toString!
 [type Object]
 24: toString!
@@ -1179,10 +1207,10 @@ true
 true
 24: toString!
 24: valueOf!
--2147483648
+0
 24: toString!
 [type Object]
-Testing with: (52) [type Object] (object)
+Testing with: (53) [type Object] (object)
 25: toString!
 [type Object]
 25: toString!
@@ -1193,10 +1221,10 @@ true
 true
 25: toString!
 25: valueOf!
--2147483648
+0
 25: toString!
 [type Object]
-Testing with: (53) [type Object] (object)
+Testing with: (54) [type Object] (object)
 26: toString!
 [type Object]
 26: toString!
@@ -1207,6 +1235,20 @@ true
 true
 26: toString!
 26: valueOf!
--2147483648
+0
 26: toString!
 [type Object]
+Testing with: (55) [type Object] (object)
+27: toString!
+[type Object]
+27: toString!
+[type Object]
+27: toString!
+true
+27: toString!
+true
+27: toString!
+27: valueOf!
+0
+27: toString!
+[type Object]
diff --git a/test/trace/xml-other-8.swf b/test/trace/xml-other-8.swf
new file mode 100644
index 0000000..7aa66a2
Binary files /dev/null and b/test/trace/xml-other-8.swf differ
diff --git a/test/trace/xml-other-8.swf.trace b/test/trace/xml-other-8.swf.trace
new file mode 100644
index 0000000..5e0a83c
--- /dev/null
+++ b/test/trace/xml-other-8.swf.trace
@@ -0,0 +1,1254 @@
+valueOf called
+toString called
+toString called with 
+valueOf called with 
+0: valueOf!
+1: valueOf!
+2: valueOf!
+3: valueOf!
+4: valueOf!
+5: valueOf!
+6: valueOf!
+7: valueOf!
+8: valueOf!
+9: valueOf!
+10: valueOf!
+11: valueOf!
+12: valueOf!
+13: valueOf!
+14: valueOf!
+15: valueOf!
+16: valueOf!
+17: valueOf!
+18: valueOf!
+19: valueOf!
+20: valueOf!
+21: valueOf!
+22: valueOf!
+22: toString!
+23: valueOf!
+23: toString!
+24: valueOf!
+24: toString!
+25: valueOf!
+25: toString!
+26: valueOf!
+26: toString!
+27: valueOf!
+27: toString!
+<root />
+
+<root />
+Constructing with: (0) undefined (undefined)
+
+Constructing with: (1) null (null)
+null
+Constructing with: (2) true (boolean)
+true
+Constructing with: (3) false (boolean)
+false
+Constructing with: (4) 0 (number)
+0
+Constructing with: (5) 1 (number)
+1
+Constructing with: (6) 0.5 (number)
+0.5
+Constructing with: (7) -1 (number)
+-1
+Constructing with: (8) -0.5 (number)
+-0.5
+Constructing with: (9) Infinity (number)
+Infinity
+Constructing with: (10) -Infinity (number)
+-Infinity
+Constructing with: (11) NaN (number)
+NaN
+Constructing with: (12)  (string)
+
+Constructing with: (13) 0 (string)
+0
+Constructing with: (14) -0 (string)
+-0
+Constructing with: (15) 0.0 (string)
+0.0
+Constructing with: (16) 1 (string)
+1
+Constructing with: (17) Hello World! (string)
+Hello World!
+Constructing with: (18) true (string)
+true
+Constructing with: (19) _level0 (string)
+_level0
+Constructing with: (20) äöü (string)
+äöü
+Constructing with: (21) _level0 (movieclip)
+_level0
+Constructing with: (22) [object Object] (object)
+[object Object]
+Constructing with: (23) [type Function] (function)
+[type Function]
+Constructing with: (24) [type Object] (object)
+toString called
+[type Object]
+Constructing with: (25) [type Object] (object)
+toString called with 
+[type Object]
+Constructing with: (26) [object Object] (object)
+[object Object]
+Constructing with: (27) undefined (object)
+[type Object]
+Constructing with: (28) undefined (object)
+0: toString!
+[type Object]
+Constructing with: (29) null (object)
+1: toString!
+[type Object]
+Constructing with: (30) true (object)
+2: toString!
+[type Object]
+Constructing with: (31) false (object)
+3: toString!
+[type Object]
+Constructing with: (32) 0 (object)
+4: toString!
+[type Object]
+Constructing with: (33) 1 (object)
+5: toString!
+[type Object]
+Constructing with: (34) 0.5 (object)
+6: toString!
+[type Object]
+Constructing with: (35) -1 (object)
+7: toString!
+[type Object]
+Constructing with: (36) -0.5 (object)
+8: toString!
+[type Object]
+Constructing with: (37) Infinity (object)
+9: toString!
+[type Object]
+Constructing with: (38) -Infinity (object)
+10: toString!
+[type Object]
+Constructing with: (39) NaN (object)
+11: toString!
+[type Object]
+Constructing with: (40)  (object)
+12: toString!
+
+Constructing with: (41) 0 (object)
+13: toString!
+0
+Constructing with: (42) -0 (object)
+14: toString!
+-0
+Constructing with: (43) 0.0 (object)
+15: toString!
+0.0
+Constructing with: (44) 1 (object)
+16: toString!
+1
+Constructing with: (45) Hello World! (object)
+17: toString!
+Hello World!
+Constructing with: (46) true (object)
+18: toString!
+true
+Constructing with: (47) _level0 (object)
+19: toString!
+_level0
+Constructing with: (48) äöü (object)
+20: toString!
+äöü
+Constructing with: (49) _level0 (object)
+21: toString!
+[type Object]
+Constructing with: (50) [type Object] (object)
+22: toString!
+[type Object]
+Constructing with: (51) [type Object] (object)
+23: toString!
+[type Object]
+Constructing with: (52) [type Object] (object)
+24: toString!
+[type Object]
+Constructing with: (53) [type Object] (object)
+25: toString!
+[type Object]
+Constructing with: (54) [type Object] (object)
+26: toString!
+[type Object]
+Constructing with: (55) [type Object] (object)
+27: toString!
+[type Object]
+undefined
+<?xml XML decl ?><!DOCTYPE doctype decl>
+
+
+<element>
+  text  more text
+  <child_element attribute="value" />
+</element>
+    
+Constructing with: (0) undefined (undefined)
+undefined
+<?xml XML decl ?><!DOCTYPE doctype decl>
+
+
+<element>
+  text  more text
+  <child_element attribute="value" />
+</element>
+    
+Constructing with: (1) null (null)
+undefined
+null
+Constructing with: (2) true (boolean)
+undefined
+true
+Constructing with: (3) false (boolean)
+undefined
+false
+Constructing with: (4) 0 (number)
+undefined
+0
+Constructing with: (5) 1 (number)
+undefined
+1
+Constructing with: (6) 0.5 (number)
+undefined
+0.5
+Constructing with: (7) -1 (number)
+undefined
+-1
+Constructing with: (8) -0.5 (number)
+undefined
+-0.5
+Constructing with: (9) Infinity (number)
+undefined
+Infinity
+Constructing with: (10) -Infinity (number)
+undefined
+-Infinity
+Constructing with: (11) NaN (number)
+undefined
+NaN
+Constructing with: (12)  (string)
+undefined
+
+Constructing with: (13) 0 (string)
+undefined
+0
+Constructing with: (14) -0 (string)
+undefined
+-0
+Constructing with: (15) 0.0 (string)
+undefined
+0.0
+Constructing with: (16) 1 (string)
+undefined
+1
+Constructing with: (17) Hello World! (string)
+undefined
+Hello World!
+Constructing with: (18) true (string)
+undefined
+true
+Constructing with: (19) _level0 (string)
+undefined
+_level0
+Constructing with: (20) äöü (string)
+undefined
+äöü
+Constructing with: (21) _level0 (movieclip)
+undefined
+_level0
+Constructing with: (22) [object Object] (object)
+undefined
+[object Object]
+Constructing with: (23) [type Function] (function)
+undefined
+[type Function]
+Constructing with: (24) [type Object] (object)
+toString called
+undefined
+[type Object]
+Constructing with: (25) [type Object] (object)
+toString called with 
+undefined
+[type Object]
+Constructing with: (26) [object Object] (object)
+undefined
+[object Object]
+Constructing with: (27) undefined (object)
+undefined
+[type Object]
+Constructing with: (28) undefined (object)
+0: toString!
+undefined
+[type Object]
+Constructing with: (29) null (object)
+1: toString!
+undefined
+[type Object]
+Constructing with: (30) true (object)
+2: toString!
+undefined
+[type Object]
+Constructing with: (31) false (object)
+3: toString!
+undefined
+[type Object]
+Constructing with: (32) 0 (object)
+4: toString!
+undefined
+[type Object]
+Constructing with: (33) 1 (object)
+5: toString!
+undefined
+[type Object]
+Constructing with: (34) 0.5 (object)
+6: toString!
+undefined
+[type Object]
+Constructing with: (35) -1 (object)
+7: toString!
+undefined
+[type Object]
+Constructing with: (36) -0.5 (object)
+8: toString!
+undefined
+[type Object]
+Constructing with: (37) Infinity (object)
+9: toString!
+undefined
+[type Object]
+Constructing with: (38) -Infinity (object)
+10: toString!
+undefined
+[type Object]
+Constructing with: (39) NaN (object)
+11: toString!
+undefined
+[type Object]
+Constructing with: (40)  (object)
+12: toString!
+undefined
+
+Constructing with: (41) 0 (object)
+13: toString!
+undefined
+0
+Constructing with: (42) -0 (object)
+14: toString!
+undefined
+-0
+Constructing with: (43) 0.0 (object)
+15: toString!
+undefined
+0.0
+Constructing with: (44) 1 (object)
+16: toString!
+undefined
+1
+Constructing with: (45) Hello World! (object)
+17: toString!
+undefined
+Hello World!
+Constructing with: (46) true (object)
+18: toString!
+undefined
+true
+Constructing with: (47) _level0 (object)
+19: toString!
+undefined
+_level0
+Constructing with: (48) äöü (object)
+20: toString!
+undefined
+äöü
+Constructing with: (49) _level0 (object)
+21: toString!
+undefined
+[type Object]
+Constructing with: (50) [type Object] (object)
+22: toString!
+undefined
+[type Object]
+Constructing with: (51) [type Object] (object)
+23: toString!
+undefined
+[type Object]
+Constructing with: (52) [type Object] (object)
+24: toString!
+undefined
+[type Object]
+Constructing with: (53) [type Object] (object)
+25: toString!
+undefined
+[type Object]
+Constructing with: (54) [type Object] (object)
+26: toString!
+undefined
+[type Object]
+Constructing with: (55) [type Object] (object)
+27: toString!
+undefined
+[type Object]
+<root />
+<name />
+<root />
+value
+<root />
+undefined
+undefined
+<name />
+value
+Creating with: (0) undefined (undefined)
+undefined
+undefined
+Creating with: (1) null (null)
+<null />
+null
+Creating with: (2) true (boolean)
+<true />
+true
+Creating with: (3) false (boolean)
+<false />
+false
+Creating with: (4) 0 (number)
+<0 />
+0
+Creating with: (5) 1 (number)
+<1 />
+1
+Creating with: (6) 0.5 (number)
+<0.5 />
+0.5
+Creating with: (7) -1 (number)
+<-1 />
+-1
+Creating with: (8) -0.5 (number)
+<-0.5 />
+-0.5
+Creating with: (9) Infinity (number)
+<Infinity />
+Infinity
+Creating with: (10) -Infinity (number)
+<-Infinity />
+-Infinity
+Creating with: (11) NaN (number)
+<NaN />
+NaN
+Creating with: (12)  (string)
+< />
+
+Creating with: (13) 0 (string)
+<0 />
+0
+Creating with: (14) -0 (string)
+<-0 />
+-0
+Creating with: (15) 0.0 (string)
+<0.0 />
+0.0
+Creating with: (16) 1 (string)
+<1 />
+1
+Creating with: (17) Hello World! (string)
+<Hello World! />
+Hello World!
+Creating with: (18) true (string)
+<true />
+true
+Creating with: (19) _level0 (string)
+<_level0 />
+_level0
+Creating with: (20) äöü (string)
+<äöü />
+äöü
+Creating with: (21) _level0 (movieclip)
+<_level0 />
+_level0
+Creating with: (22) [object Object] (object)
+<[object Object] />
+[object Object]
+Creating with: (23) [type Function] (function)
+<[type Function] />
+[type Function]
+Creating with: (24) [type Object] (object)
+toString called
+<[type Object] />
+toString called
+[type Object]
+Creating with: (25) [type Object] (object)
+toString called with 
+<[type Object] />
+toString called with 
+[type Object]
+Creating with: (26) [object Object] (object)
+<[object Object] />
+[object Object]
+Creating with: (27) undefined (object)
+<[type Object] />
+[type Object]
+Creating with: (28) undefined (object)
+0: toString!
+<[type Object] />
+0: toString!
+[type Object]
+Creating with: (29) null (object)
+1: toString!
+<[type Object] />
+1: toString!
+[type Object]
+Creating with: (30) true (object)
+2: toString!
+<[type Object] />
+2: toString!
+[type Object]
+Creating with: (31) false (object)
+3: toString!
+<[type Object] />
+3: toString!
+[type Object]
+Creating with: (32) 0 (object)
+4: toString!
+<[type Object] />
+4: toString!
+[type Object]
+Creating with: (33) 1 (object)
+5: toString!
+<[type Object] />
+5: toString!
+[type Object]
+Creating with: (34) 0.5 (object)
+6: toString!
+<[type Object] />
+6: toString!
+[type Object]
+Creating with: (35) -1 (object)
+7: toString!
+<[type Object] />
+7: toString!
+[type Object]
+Creating with: (36) -0.5 (object)
+8: toString!
+<[type Object] />
+8: toString!
+[type Object]
+Creating with: (37) Infinity (object)
+9: toString!
+<[type Object] />
+9: toString!
+[type Object]
+Creating with: (38) -Infinity (object)
+10: toString!
+<[type Object] />
+10: toString!
+[type Object]
+Creating with: (39) NaN (object)
+11: toString!
+<[type Object] />
+11: toString!
+[type Object]
+Creating with: (40)  (object)
+12: toString!
+< />
+12: toString!
+
+Creating with: (41) 0 (object)
+13: toString!
+<0 />
+13: toString!
+0
+Creating with: (42) -0 (object)
+14: toString!
+<-0 />
+14: toString!
+-0
+Creating with: (43) 0.0 (object)
+15: toString!
+<0.0 />
+15: toString!
+0.0
+Creating with: (44) 1 (object)
+16: toString!
+<1 />
+16: toString!
+1
+Creating with: (45) Hello World! (object)
+17: toString!
+<Hello World! />
+17: toString!
+Hello World!
+Creating with: (46) true (object)
+18: toString!
+<true />
+18: toString!
+true
+Creating with: (47) _level0 (object)
+19: toString!
+<_level0 />
+19: toString!
+_level0
+Creating with: (48) äöü (object)
+20: toString!
+<äöü />
+20: toString!
+äöü
+Creating with: (49) _level0 (object)
+21: toString!
+<[type Object] />
+21: toString!
+[type Object]
+Creating with: (50) [type Object] (object)
+22: toString!
+<[type Object] />
+22: toString!
+[type Object]
+Creating with: (51) [type Object] (object)
+23: toString!
+<[type Object] />
+23: toString!
+[type Object]
+Creating with: (52) [type Object] (object)
+24: toString!
+<[type Object] />
+24: toString!
+[type Object]
+Creating with: (53) [type Object] (object)
+25: toString!
+<[type Object] />
+25: toString!
+[type Object]
+Creating with: (54) [type Object] (object)
+26: toString!
+<[type Object] />
+26: toString!
+[type Object]
+Creating with: (55) [type Object] (object)
+27: toString!
+<[type Object] />
+27: toString!
+[type Object]
+application/x-www-form-urlencoded
+<!DOCTYPE doctype declaration >
+false
+undefined
+0
+<?xml XML declaration ?>
+application/x-www-form-urlencoded
+undefined
+false
+undefined
+0
+undefined
+application/x-www-form-urlencoded
+undefined
+false
+undefined
+0
+undefined
+Testing with: (0) undefined (undefined)
+application/x-www-form-urlencoded
+undefined
+false
+undefined
+0
+undefined
+Testing with: (1) null (null)
+null
+null
+false
+false
+0
+null
+Testing with: (2) true (boolean)
+true
+true
+true
+true
+1
+true
+Testing with: (3) false (boolean)
+false
+false
+false
+false
+0
+false
+Testing with: (4) 0 (number)
+0
+0
+false
+false
+0
+0
+Testing with: (5) 1 (number)
+1
+1
+true
+true
+1
+1
+Testing with: (6) 0.5 (number)
+0.5
+0.5
+true
+true
+0
+0.5
+Testing with: (7) -1 (number)
+-1
+-1
+true
+true
+-1
+-1
+Testing with: (8) -0.5 (number)
+-0.5
+-0.5
+true
+true
+0
+-0.5
+Testing with: (9) Infinity (number)
+Infinity
+Infinity
+true
+true
+0
+Infinity
+Testing with: (10) -Infinity (number)
+-Infinity
+-Infinity
+true
+true
+0
+-Infinity
+Testing with: (11) NaN (number)
+NaN
+NaN
+false
+false
+0
+NaN
+Testing with: (12)  (string)
+
+
+false
+false
+0
+
+Testing with: (13) 0 (string)
+0
+0
+true
+true
+0
+0
+Testing with: (14) -0 (string)
+-0
+-0
+true
+true
+0
+-0
+Testing with: (15) 0.0 (string)
+0.0
+0.0
+true
+true
+0
+0.0
+Testing with: (16) 1 (string)
+1
+1
+true
+true
+1
+1
+Testing with: (17) Hello World! (string)
+Hello World!
+Hello World!
+true
+true
+0
+Hello World!
+Testing with: (18) true (string)
+true
+true
+true
+true
+0
+true
+Testing with: (19) _level0 (string)
+_level0
+_level0
+true
+true
+0
+_level0
+Testing with: (20) äöü (string)
+äöü
+äöü
+true
+true
+0
+äöü
+Testing with: (21) _level0 (movieclip)
+_level0
+_level0
+true
+true
+0
+_level0
+Testing with: (22) [object Object] (object)
+[object Object]
+[object Object]
+true
+true
+0
+[object Object]
+Testing with: (23) [type Function] (function)
+[type Function]
+[type Function]
+true
+true
+0
+[type Function]
+Testing with: (24) [type Object] (object)
+toString called
+[type Object]
+toString called
+[type Object]
+toString called
+true
+toString called
+true
+toString called
+valueOf called
+0
+toString called
+[type Object]
+Testing with: (25) [type Object] (object)
+toString called with 
+[type Object]
+toString called with 
+[type Object]
+toString called with 
+true
+toString called with 
+true
+toString called with 
+0
+toString called with 
+[type Object]
+Testing with: (26) [object Object] (object)
+[object Object]
+[object Object]
+true
+true
+valueOf called with 
+0
+[object Object]
+Testing with: (27) undefined (object)
+[type Object]
+[type Object]
+true
+true
+0
+[type Object]
+Testing with: (28) undefined (object)
+0: toString!
+[type Object]
+0: toString!
+[type Object]
+0: toString!
+true
+0: toString!
+true
+0: toString!
+0: valueOf!
+0
+0: toString!
+[type Object]
+Testing with: (29) null (object)
+1: toString!
+[type Object]
+1: toString!
+[type Object]
+1: toString!
+true
+1: toString!
+true
+1: toString!
+1: valueOf!
+0
+1: toString!
+[type Object]
+Testing with: (30) true (object)
+2: toString!
+[type Object]
+2: toString!
+[type Object]
+2: toString!
+true
+2: toString!
+true
+2: toString!
+2: valueOf!
+1
+2: toString!
+[type Object]
+Testing with: (31) false (object)
+3: toString!
+[type Object]
+3: toString!
+[type Object]
+3: toString!
+true
+3: toString!
+true
+3: toString!
+3: valueOf!
+0
+3: toString!
+[type Object]
+Testing with: (32) 0 (object)
+4: toString!
+[type Object]
+4: toString!
+[type Object]
+4: toString!
+true
+4: toString!
+true
+4: toString!
+4: valueOf!
+0
+4: toString!
+[type Object]
+Testing with: (33) 1 (object)
+5: toString!
+[type Object]
+5: toString!
+[type Object]
+5: toString!
+true
+5: toString!
+true
+5: toString!
+5: valueOf!
+1
+5: toString!
+[type Object]
+Testing with: (34) 0.5 (object)
+6: toString!
+[type Object]
+6: toString!
+[type Object]
+6: toString!
+true
+6: toString!
+true
+6: toString!
+6: valueOf!
+0
+6: toString!
+[type Object]
+Testing with: (35) -1 (object)
+7: toString!
+[type Object]
+7: toString!
+[type Object]
+7: toString!
+true
+7: toString!
+true
+7: toString!
+7: valueOf!
+-1
+7: toString!
+[type Object]
+Testing with: (36) -0.5 (object)
+8: toString!
+[type Object]
+8: toString!
+[type Object]
+8: toString!
+true
+8: toString!
+true
+8: toString!
+8: valueOf!
+0
+8: toString!
+[type Object]
+Testing with: (37) Infinity (object)
+9: toString!
+[type Object]
+9: toString!
+[type Object]
+9: toString!
+true
+9: toString!
+true
+9: toString!
+9: valueOf!
+0
+9: toString!
+[type Object]
+Testing with: (38) -Infinity (object)
+10: toString!
+[type Object]
+10: toString!
+[type Object]
+10: toString!
+true
+10: toString!
+true
+10: toString!
+10: valueOf!
+0
+10: toString!
+[type Object]
+Testing with: (39) NaN (object)
+11: toString!
+[type Object]
+11: toString!
+[type Object]
+11: toString!
+true
+11: toString!
+true
+11: toString!
+11: valueOf!
+0
+11: toString!
+[type Object]
+Testing with: (40)  (object)
+12: toString!
+
+12: toString!
+
+12: toString!
+true
+12: toString!
+true
+12: toString!
+12: valueOf!
+0
+12: toString!
+
+Testing with: (41) 0 (object)
+13: toString!
+0
+13: toString!
+0
+13: toString!
+true
+13: toString!
+true
+13: toString!
+13: valueOf!
+0
+13: toString!
+0
+Testing with: (42) -0 (object)
+14: toString!
+-0
+14: toString!
+-0
+14: toString!
+true
+14: toString!
+true
+14: toString!
+14: valueOf!
+0
+14: toString!
+-0
+Testing with: (43) 0.0 (object)
+15: toString!
+0.0
+15: toString!
+0.0
+15: toString!
+true
+15: toString!
+true
+15: toString!
+15: valueOf!
+0
+15: toString!
+0.0
+Testing with: (44) 1 (object)
+16: toString!
+1
+16: toString!
+1
+16: toString!
+true
+16: toString!
+true
+16: toString!
+16: valueOf!
+1
+16: toString!
+1
+Testing with: (45) Hello World! (object)
+17: toString!
+Hello World!
+17: toString!
+Hello World!
+17: toString!
+true
+17: toString!
+true
+17: toString!
+17: valueOf!
+0
+17: toString!
+Hello World!
+Testing with: (46) true (object)
+18: toString!
+true
+18: toString!
+true
+18: toString!
+true
+18: toString!
+true
+18: toString!
+18: valueOf!
+0
+18: toString!
+true
+Testing with: (47) _level0 (object)
+19: toString!
+_level0
+19: toString!
+_level0
+19: toString!
+true
+19: toString!
+true
+19: toString!
+19: valueOf!
+0
+19: toString!
+_level0
+Testing with: (48) äöü (object)
+20: toString!
+äöü
+20: toString!
+äöü
+20: toString!
+true
+20: toString!
+true
+20: toString!
+20: valueOf!
+0
+20: toString!
+äöü
+Testing with: (49) _level0 (object)
+21: toString!
+[type Object]
+21: toString!
+[type Object]
+21: toString!
+true
+21: toString!
+true
+21: toString!
+21: valueOf!
+0
+21: toString!
+[type Object]
+Testing with: (50) [type Object] (object)
+22: toString!
+[type Object]
+22: toString!
+[type Object]
+22: toString!
+true
+22: toString!
+true
+22: toString!
+22: valueOf!
+0
+22: toString!
+[type Object]
+Testing with: (51) [type Object] (object)
+23: toString!
+[type Object]
+23: toString!
+[type Object]
+23: toString!
+true
+23: toString!
+true
+23: toString!
+23: valueOf!
+0
+23: toString!
+[type Object]
+Testing with: (52) [type Object] (object)
+24: toString!
+[type Object]
+24: toString!
+[type Object]
+24: toString!
+true
+24: toString!
+true
+24: toString!
+24: valueOf!
+0
+24: toString!
+[type Object]
+Testing with: (53) [type Object] (object)
+25: toString!
+[type Object]
+25: toString!
+[type Object]
+25: toString!
+true
+25: toString!
+true
+25: toString!
+25: valueOf!
+0
+25: toString!
+[type Object]
+Testing with: (54) [type Object] (object)
+26: toString!
+[type Object]
+26: toString!
+[type Object]
+26: toString!
+true
+26: toString!
+true
+26: toString!
+26: valueOf!
+0
+26: toString!
+[type Object]
+Testing with: (55) [type Object] (object)
+27: toString!
+[type Object]
+27: toString!
+[type Object]
+27: toString!
+true
+27: toString!
+true
+27: toString!
+27: valueOf!
+0
+27: toString!
+[type Object]
diff --git a/test/trace/xml-parse-8.swf b/test/trace/xml-parse-8.swf
new file mode 100644
index 0000000..5e24f0c
Binary files /dev/null and b/test/trace/xml-parse-8.swf differ
diff --git a/test/trace/xml-parse-8.swf.trace b/test/trace/xml-parse-8.swf.trace
new file mode 100644
index 0000000..924e689
--- /dev/null
+++ b/test/trace/xml-parse-8.swf.trace
@@ -0,0 +1,860 @@
+### Running tests without ignoreWhite...
+Loading: xml-parse-1.xml
+Success: true
+---
+452
+452
+docTypeDecl: %3C%21DOCTYPE%0A%20html%20PUBLIC%20%22%2D%2F%2FW3C%2F%2FDTD%20XHTML%201%2E1%2F%2FEN%22%0A%20%22http%3A%2F%2Fwww%2Ew3%2Eorg%2FTR%2Fxhtml11%2FDTD%2Fxhtml11%2Edtd%22%3E
+ignoreWhite: true
+loaded: true
+status: 0
+xmlDecl: <?xml version="1.0" encoding="UTF-8"?>
+---
+attributes: 0: 
+localName: null
+namespaceURI: null
+nodeName: null
+nodeType: 1
+nodeValue: null
+prefix: null
+parentNode: undefined
+firstChild: TAG(1): 'html'
+lastChild: TAG(1): 'html'
+nextSibling: undefined
+previousSibling: undefined
+childNodes: 1: TAG(1): 'html'
+---
+attributes: 1: xmlns=http%3A%2F%2Fwww%2Ew3%2Eorg%2F1999%2Fxhtml
+localName: html
+namespaceURI: http://www.w3.org/1999/xhtml
+nodeName: html
+nodeType: 1
+nodeValue: null
+prefix: 
+parentNode: TAG(1): 'null'
+firstChild: TAG(1): 'head'
+lastChild: TAG(1): 'body'
+nextSibling: undefined
+previousSibling: undefined
+childNodes: 2: TAG(1): 'head',TAG(1): 'body'
+---
+attributes: 0: 
+localName: head
+namespaceURI: http://www.w3.org/1999/xhtml
+nodeName: head
+nodeType: 1
+nodeValue: null
+prefix: 
+parentNode: TAG(1): 'html'
+firstChild: TAG(1): 'title'
+lastChild: TAG(1): 'link'
+nextSibling: TAG(1): 'body'
+previousSibling: undefined
+childNodes: 2: TAG(1): 'title',TAG(1): 'link'
+---
+attributes: 0: 
+localName: title
+namespaceURI: http://www.w3.org/1999/xhtml
+nodeName: title
+nodeType: 1
+nodeValue: null
+prefix: 
+parentNode: TAG(1): 'head'
+firstChild: TEXT(3): 'Title is something'
+lastChild: TEXT(3): 'Title is something'
+nextSibling: TAG(1): 'link'
+previousSibling: undefined
+childNodes: 1: TEXT(3): 'Title is something'
+---
+attributes: 0: 
+localName: null
+namespaceURI: null
+nodeName: null
+nodeType: 3
+nodeValue: Title is something
+prefix: null
+parentNode: TAG(1): 'title'
+firstChild: undefined
+lastChild: undefined
+nextSibling: undefined
+previousSibling: undefined
+childNodes: 0: 
+---
+attributes: 4: href=style%2Ecss&media=screen&rel=stylesheet&type=text%2Fcss
+localName: link
+namespaceURI: http://www.w3.org/1999/xhtml
+nodeName: link
+nodeType: 1
+nodeValue: null
+prefix: 
+parentNode: TAG(1): 'head'
+firstChild: undefined
+lastChild: undefined
+nextSibling: undefined
+previousSibling: TAG(1): 'title'
+childNodes: 0: 
+---
+attributes: 0: 
+localName: body
+namespaceURI: http://www.w3.org/1999/xhtml
+nodeName: body
+nodeType: 1
+nodeValue: null
+prefix: 
+parentNode: TAG(1): 'html'
+firstChild: TAG(1): 'h1'
+lastChild: TAG(1): 'p'
+nextSibling: undefined
+previousSibling: TAG(1): 'head'
+childNodes: 2: TAG(1): 'h1',TAG(1): 'p'
+---
+attributes: 1: id=main%5Ftopic
+localName: h1
+namespaceURI: http://www.w3.org/1999/xhtml
+nodeName: h1
+nodeType: 1
+nodeValue: null
+prefix: 
+parentNode: TAG(1): 'body'
+firstChild: TEXT(3): 'Main topic'
+lastChild: TEXT(3): 'Main topic'
+nextSibling: TAG(1): 'p'
+previousSibling: undefined
+childNodes: 1: TEXT(3): 'Main topic'
+---
+attributes: 0: 
+localName: null
+namespaceURI: null
+nodeName: null
+nodeType: 3
+nodeValue: Main topic
+prefix: null
+parentNode: TAG(1): 'h1'
+firstChild: undefined
+lastChild: undefined
+nextSibling: undefined
+previousSibling: undefined
+childNodes: 0: 
+---
+attributes: 2: class=some%5Ftext&id=first%5Ftext%5Fblock
+localName: p
+namespaceURI: http://www.w3.org/1999/xhtml
+nodeName: p
+nodeType: 1
+nodeValue: null
+prefix: 
+parentNode: TAG(1): 'body'
+firstChild: TEXT(3): 'Some text'
+lastChild: TEXT(3): 'Some text'
+nextSibling: undefined
+previousSibling: TAG(1): 'h1'
+childNodes: 1: TEXT(3): 'Some text'
+---
+attributes: 0: 
+localName: null
+namespaceURI: null
+nodeName: null
+nodeType: 3
+nodeValue: Some text
+prefix: null
+parentNode: TAG(1): 'p'
+firstChild: undefined
+lastChild: undefined
+nextSibling: undefined
+previousSibling: undefined
+childNodes: 0: 
+---
+Loading: xml-parse-2.xml
+Success: true
+---
+820
+820
+docTypeDecl: <!DOCTYPE foo [ <!ENTITY greeting "hello"> ]>
+ignoreWhite: true
+loaded: true
+status: -9
+xmlDecl: <?xml version="1.0" encoding="UTF-8" ?>
+---
+attributes: 0: 
+localName: null
+namespaceURI: null
+nodeName: null
+nodeType: 1
+nodeValue: null
+prefix: null
+parentNode: undefined
+firstChild: TEXT(3): 'cruft '
+lastChild: TAG(1): 'end_not_missing'
+nextSibling: undefined
+previousSibling: undefined
+childNodes: 8: TEXT(3): 'cruft ',TAG(1): 'normal',TAG(1): 'entities',TAG(1): '俄語',TAG(1): 'comment_inside_text',TAG(1): 'no_comment_inside_text',TAG(1): 'unescaped',TAG(1): 'end_not_missing'
+---
+attributes: 0: 
+localName: null
+namespaceURI: null
+nodeName: null
+nodeType: 3
+nodeValue: cruft 
+prefix: null
+parentNode: TAG(1): 'null'
+firstChild: undefined
+lastChild: undefined
+nextSibling: TAG(1): 'normal'
+previousSibling: undefined
+childNodes: 0: 
+---
+attributes: 0: 
+localName: normal
+namespaceURI: 
+nodeName: normal
+nodeType: 1
+nodeValue: null
+prefix: 
+parentNode: TAG(1): 'null'
+firstChild: TEXT(3): '%0A%20%20text%0A%20%20'
+lastChild: TEXT(3): '%0A%20%20even%20more%20text%0A'
+nextSibling: TAG(1): 'entities'
+previousSibling: TEXT(3): 'cruft '
+childNodes: 5: TEXT(3): '%0A%20%20text%0A%20%20',TAG(1): 'child',TEXT(3): '%0A%20%20more%20text%0A%20%20',TAG(1): 'empty_element',TEXT(3): '%0A%20%20even%20more%20text%0A'
+---
+attributes: 0: 
+localName: null
+namespaceURI: null
+nodeName: null
+nodeType: 3
+nodeValue: %0A%20%20text%0A%20%20
+prefix: null
+parentNode: TAG(1): 'normal'
+firstChild: undefined
+lastChild: undefined
+nextSibling: TAG(1): 'child'
+previousSibling: undefined
+childNodes: 0: 
+---
+attributes: 2: attribute=value&second%5Fattribute=second%20value
+localName: child
+namespaceURI: 
+nodeName: child
+nodeType: 1
+nodeValue: null
+prefix: 
+parentNode: TAG(1): 'normal'
+firstChild: TEXT(3): '%0A%20%20%20%20child%20text%0A%20%20'
+lastChild: TEXT(3): '%0A%20%20%20%20child%20text%0A%20%20'
+nextSibling: TEXT(3): '%0A%20%20more%20text%0A%20%20'
+previousSibling: TEXT(3): '%0A%20%20text%0A%20%20'
+childNodes: 1: TEXT(3): '%0A%20%20%20%20child%20text%0A%20%20'
+---
+attributes: 0: 
+localName: null
+namespaceURI: null
+nodeName: null
+nodeType: 3
+nodeValue: %0A%20%20%20%20child%20text%0A%20%20
+prefix: null
+parentNode: TAG(1): 'child'
+firstChild: undefined
+lastChild: undefined
+nextSibling: undefined
+previousSibling: undefined
+childNodes: 0: 
+---
+attributes: 0: 
+localName: null
+namespaceURI: null
+nodeName: null
+nodeType: 3
+nodeValue: %0A%20%20more%20text%0A%20%20
+prefix: null
+parentNode: TAG(1): 'normal'
+firstChild: undefined
+lastChild: undefined
+nextSibling: TAG(1): 'empty_element'
+previousSibling: TAG(1): 'child'
+childNodes: 0: 
+---
+attributes: 1: empty%5Fattribute=
+localName: empty_element
+namespaceURI: 
+nodeName: empty_element
+nodeType: 1
+nodeValue: null
+prefix: 
+parentNode: TAG(1): 'normal'
+firstChild: undefined
+lastChild: undefined
+nextSibling: TEXT(3): '%0A%20%20even%20more%20text%0A'
+previousSibling: TEXT(3): '%0A%20%20more%20text%0A%20%20'
+childNodes: 0: 
+---
+attributes: 0: 
+localName: null
+namespaceURI: null
+nodeName: null
+nodeType: 3
+nodeValue: %0A%20%20even%20more%20text%0A
+prefix: null
+parentNode: TAG(1): 'normal'
+firstChild: undefined
+lastChild: undefined
+nextSibling: undefined
+previousSibling: TAG(1): 'empty_element'
+childNodes: 0: 
+---
+attributes: 1: entities%5Fattribute=%3C%20%3E%20%22%20%27%20%26%20%C2%A0
+localName: entities
+namespaceURI: 
+nodeName: entities
+nodeType: 1
+nodeValue: null
+prefix: 
+parentNode: TAG(1): 'null'
+firstChild: TEXT(3): '%0A%20%20%3C%20%3E%20%22%20%27%20%26%20%C2%A0%0A'
+lastChild: TEXT(3): '%0A%20%20%3C%20%3E%20%22%20%27%20%26%20%C2%A0%0A'
+nextSibling: TAG(1): '俄語'
+previousSibling: TAG(1): 'normal'
+childNodes: 1: TEXT(3): '%0A%20%20%3C%20%3E%20%22%20%27%20%26%20%C2%A0%0A'
+---
+attributes: 0: 
+localName: null
+namespaceURI: null
+nodeName: null
+nodeType: 3
+nodeValue: %0A%20%20%3C%20%3E%20%22%20%27%20%26%20%C2%A0%0A
+prefix: null
+parentNode: TAG(1): 'entities'
+firstChild: undefined
+lastChild: undefined
+nextSibling: undefined
+previousSibling: undefined
+childNodes: 0: 
+---
+attributes: 0: 
+localName: 俄語
+namespaceURI: 
+nodeName: 俄語
+nodeType: 1
+nodeValue: null
+prefix: 
+parentNode: TAG(1): 'null'
+firstChild: TEXT(3): 'Данные'
+lastChild: TEXT(3): 'Данные'
+nextSibling: TAG(1): 'comment_inside_text'
+previousSibling: TAG(1): 'entities'
+childNodes: 1: TEXT(3): 'Данные'
+---
+attributes: 0: 
+localName: null
+namespaceURI: null
+nodeName: null
+nodeType: 3
+nodeValue: Данные
+prefix: null
+parentNode: TAG(1): '俄語'
+firstChild: undefined
+lastChild: undefined
+nextSibling: undefined
+previousSibling: undefined
+childNodes: 0: 
+---
+attributes: 0: 
+localName: comment_inside_text
+namespaceURI: 
+nodeName: comment_inside_text
+nodeType: 1
+nodeValue: null
+prefix: 
+parentNode: TAG(1): 'null'
+firstChild: TEXT(3): 'comment '
+lastChild: TEXT(3): 'text'
+nextSibling: TAG(1): 'no_comment_inside_text'
+previousSibling: TAG(1): '俄語'
+childNodes: 2: TEXT(3): 'comment ',TEXT(3): 'text'
+---
+attributes: 0: 
+localName: null
+namespaceURI: null
+nodeName: null
+nodeType: 3
+nodeValue: comment 
+prefix: null
+parentNode: TAG(1): 'comment_inside_text'
+firstChild: undefined
+lastChild: undefined
+nextSibling: TEXT(3): 'text'
+previousSibling: undefined
+childNodes: 0: 
+---
+attributes: 0: 
+localName: null
+namespaceURI: null
+nodeName: null
+nodeType: 3
+nodeValue: text
+prefix: null
+parentNode: TAG(1): 'comment_inside_text'
+firstChild: undefined
+lastChild: undefined
+nextSibling: undefined
+previousSibling: TEXT(3): 'comment '
+childNodes: 0: 
+---
+attributes: 0: 
+localName: no_comment_inside_text
+namespaceURI: 
+nodeName: no_comment_inside_text
+nodeType: 1
+nodeValue: null
+prefix: 
+parentNode: TAG(1): 'null'
+firstChild: TEXT(3): 'comment text'
+lastChild: TEXT(3): 'comment text'
+nextSibling: TAG(1): 'unescaped'
+previousSibling: TAG(1): 'comment_inside_text'
+childNodes: 1: TEXT(3): 'comment text'
+---
+attributes: 0: 
+localName: null
+namespaceURI: null
+nodeName: null
+nodeType: 3
+nodeValue: comment text
+prefix: null
+parentNode: TAG(1): 'no_comment_inside_text'
+firstChild: undefined
+lastChild: undefined
+nextSibling: undefined
+previousSibling: undefined
+childNodes: 0: 
+---
+attributes: 1: entities=%3E%20%27%20%26%20%C2%A0%28nbsp%29
+localName: unescaped
+namespaceURI: 
+nodeName: unescaped
+nodeType: 1
+nodeValue: null
+prefix: 
+parentNode: TAG(1): 'null'
+firstChild: TEXT(3): '%0A%20%20%3E%20%22%20%27%20%26%20%C2%A0%28nbsp%29%0A'
+lastChild: TEXT(3): '%0A%20%20%3E%20%22%20%27%20%26%20%C2%A0%28nbsp%29%0A'
+nextSibling: TAG(1): 'end_not_missing'
+previousSibling: TAG(1): 'no_comment_inside_text'
+childNodes: 1: TEXT(3): '%0A%20%20%3E%20%22%20%27%20%26%20%C2%A0%28nbsp%29%0A'
+---
+attributes: 0: 
+localName: null
+namespaceURI: null
+nodeName: null
+nodeType: 3
+nodeValue: %0A%20%20%3E%20%22%20%27%20%26%20%C2%A0%28nbsp%29%0A
+prefix: null
+parentNode: TAG(1): 'unescaped'
+firstChild: undefined
+lastChild: undefined
+nextSibling: undefined
+previousSibling: undefined
+childNodes: 0: 
+---
+attributes: 0: 
+localName: end_not_missing
+namespaceURI: 
+nodeName: end_not_missing
+nodeType: 1
+nodeValue: null
+prefix: 
+parentNode: TAG(1): 'null'
+firstChild: TEXT(3): '%0A%20%20text%0A%20%20'
+lastChild: TAG(1): 'end_missing'
+nextSibling: undefined
+previousSibling: TAG(1): 'unescaped'
+childNodes: 2: TEXT(3): '%0A%20%20text%0A%20%20',TAG(1): 'end_missing'
+---
+attributes: 0: 
+localName: null
+namespaceURI: null
+nodeName: null
+nodeType: 3
+nodeValue: %0A%20%20text%0A%20%20
+prefix: null
+parentNode: TAG(1): 'end_not_missing'
+firstChild: undefined
+lastChild: undefined
+nextSibling: TAG(1): 'end_missing'
+previousSibling: undefined
+childNodes: 0: 
+---
+attributes: 0: 
+localName: end_missing
+namespaceURI: 
+nodeName: end_missing
+nodeType: 1
+nodeValue: null
+prefix: 
+parentNode: TAG(1): 'end_not_missing'
+firstChild: TEXT(3): '%0A%20%20%20%20text%0A'
+lastChild: TEXT(3): '%0A%20%20%20%20text%0A'
+nextSibling: undefined
+previousSibling: TEXT(3): '%0A%20%20text%0A%20%20'
+childNodes: 1: TEXT(3): '%0A%20%20%20%20text%0A'
+---
+attributes: 0: 
+localName: null
+namespaceURI: null
+nodeName: null
+nodeType: 3
+nodeValue: %0A%20%20%20%20text%0A
+prefix: null
+parentNode: TAG(1): 'end_missing'
+firstChild: undefined
+lastChild: undefined
+nextSibling: undefined
+previousSibling: undefined
+childNodes: 0: 
+---
+Loading: xml-parse-3.xml
+Success: false
+---
+0
+undefined
+docTypeDecl: <!DOCTYPE foo [ <!ENTITY greeting "hello"> ]>
+ignoreWhite: true
+loaded: false
+status: -9
+xmlDecl: <?xml version="1.0" encoding="UTF-8" ?>
+---
+attributes: 0: 
+localName: null
+namespaceURI: null
+nodeName: null
+nodeType: 1
+nodeValue: null
+prefix: null
+parentNode: undefined
+firstChild: TEXT(3): 'cruft '
+lastChild: TAG(1): 'end_not_missing'
+nextSibling: undefined
+previousSibling: undefined
+childNodes: 8: TEXT(3): 'cruft ',TAG(1): 'normal',TAG(1): 'entities',TAG(1): '俄語',TAG(1): 'comment_inside_text',TAG(1): 'no_comment_inside_text',TAG(1): 'unescaped',TAG(1): 'end_not_missing'
+---
+attributes: 0: 
+localName: null
+namespaceURI: null
+nodeName: null
+nodeType: 3
+nodeValue: cruft 
+prefix: null
+parentNode: TAG(1): 'null'
+firstChild: undefined
+lastChild: undefined
+nextSibling: TAG(1): 'normal'
+previousSibling: undefined
+childNodes: 0: 
+---
+attributes: 0: 
+localName: normal
+namespaceURI: 
+nodeName: normal
+nodeType: 1
+nodeValue: null
+prefix: 
+parentNode: TAG(1): 'null'
+firstChild: TEXT(3): '%0A%20%20text%0A%20%20'
+lastChild: TEXT(3): '%0A%20%20even%20more%20text%0A'
+nextSibling: TAG(1): 'entities'
+previousSibling: TEXT(3): 'cruft '
+childNodes: 5: TEXT(3): '%0A%20%20text%0A%20%20',TAG(1): 'child',TEXT(3): '%0A%20%20more%20text%0A%20%20',TAG(1): 'empty_element',TEXT(3): '%0A%20%20even%20more%20text%0A'
+---
+attributes: 0: 
+localName: null
+namespaceURI: null
+nodeName: null
+nodeType: 3
+nodeValue: %0A%20%20text%0A%20%20
+prefix: null
+parentNode: TAG(1): 'normal'
+firstChild: undefined
+lastChild: undefined
+nextSibling: TAG(1): 'child'
+previousSibling: undefined
+childNodes: 0: 
+---
+attributes: 2: attribute=value&second%5Fattribute=second%20value
+localName: child
+namespaceURI: 
+nodeName: child
+nodeType: 1
+nodeValue: null
+prefix: 
+parentNode: TAG(1): 'normal'
+firstChild: TEXT(3): '%0A%20%20%20%20child%20text%0A%20%20'
+lastChild: TEXT(3): '%0A%20%20%20%20child%20text%0A%20%20'
+nextSibling: TEXT(3): '%0A%20%20more%20text%0A%20%20'
+previousSibling: TEXT(3): '%0A%20%20text%0A%20%20'
+childNodes: 1: TEXT(3): '%0A%20%20%20%20child%20text%0A%20%20'
+---
+attributes: 0: 
+localName: null
+namespaceURI: null
+nodeName: null
+nodeType: 3
+nodeValue: %0A%20%20%20%20child%20text%0A%20%20
+prefix: null
+parentNode: TAG(1): 'child'
+firstChild: undefined
+lastChild: undefined
+nextSibling: undefined
+previousSibling: undefined
+childNodes: 0: 
+---
+attributes: 0: 
+localName: null
+namespaceURI: null
+nodeName: null
+nodeType: 3
+nodeValue: %0A%20%20more%20text%0A%20%20
+prefix: null
+parentNode: TAG(1): 'normal'
+firstChild: undefined
+lastChild: undefined
+nextSibling: TAG(1): 'empty_element'
+previousSibling: TAG(1): 'child'
+childNodes: 0: 
+---
+attributes: 1: empty%5Fattribute=
+localName: empty_element
+namespaceURI: 
+nodeName: empty_element
+nodeType: 1
+nodeValue: null
+prefix: 
+parentNode: TAG(1): 'normal'
+firstChild: undefined
+lastChild: undefined
+nextSibling: TEXT(3): '%0A%20%20even%20more%20text%0A'
+previousSibling: TEXT(3): '%0A%20%20more%20text%0A%20%20'
+childNodes: 0: 
+---
+attributes: 0: 
+localName: null
+namespaceURI: null
+nodeName: null
+nodeType: 3
+nodeValue: %0A%20%20even%20more%20text%0A
+prefix: null
+parentNode: TAG(1): 'normal'
+firstChild: undefined
+lastChild: undefined
+nextSibling: undefined
+previousSibling: TAG(1): 'empty_element'
+childNodes: 0: 
+---
+attributes: 1: entities%5Fattribute=%3C%20%3E%20%22%20%27%20%26%20%C2%A0
+localName: entities
+namespaceURI: 
+nodeName: entities
+nodeType: 1
+nodeValue: null
+prefix: 
+parentNode: TAG(1): 'null'
+firstChild: TEXT(3): '%0A%20%20%3C%20%3E%20%22%20%27%20%26%20%C2%A0%0A'
+lastChild: TEXT(3): '%0A%20%20%3C%20%3E%20%22%20%27%20%26%20%C2%A0%0A'
+nextSibling: TAG(1): '俄語'
+previousSibling: TAG(1): 'normal'
+childNodes: 1: TEXT(3): '%0A%20%20%3C%20%3E%20%22%20%27%20%26%20%C2%A0%0A'
+---
+attributes: 0: 
+localName: null
+namespaceURI: null
+nodeName: null
+nodeType: 3
+nodeValue: %0A%20%20%3C%20%3E%20%22%20%27%20%26%20%C2%A0%0A
+prefix: null
+parentNode: TAG(1): 'entities'
+firstChild: undefined
+lastChild: undefined
+nextSibling: undefined
+previousSibling: undefined
+childNodes: 0: 
+---
+attributes: 0: 
+localName: 俄語
+namespaceURI: 
+nodeName: 俄語
+nodeType: 1
+nodeValue: null
+prefix: 
+parentNode: TAG(1): 'null'
+firstChild: TEXT(3): 'Данные'
+lastChild: TEXT(3): 'Данные'
+nextSibling: TAG(1): 'comment_inside_text'
+previousSibling: TAG(1): 'entities'
+childNodes: 1: TEXT(3): 'Данные'
+---
+attributes: 0: 
+localName: null
+namespaceURI: null
+nodeName: null
+nodeType: 3
+nodeValue: Данные
+prefix: null
+parentNode: TAG(1): '俄語'
+firstChild: undefined
+lastChild: undefined
+nextSibling: undefined
+previousSibling: undefined
+childNodes: 0: 
+---
+attributes: 0: 
+localName: comment_inside_text
+namespaceURI: 
+nodeName: comment_inside_text
+nodeType: 1
+nodeValue: null
+prefix: 
+parentNode: TAG(1): 'null'
+firstChild: TEXT(3): 'comment '
+lastChild: TEXT(3): 'text'
+nextSibling: TAG(1): 'no_comment_inside_text'
+previousSibling: TAG(1): '俄語'
+childNodes: 2: TEXT(3): 'comment ',TEXT(3): 'text'
+---
+attributes: 0: 
+localName: null
+namespaceURI: null
+nodeName: null
+nodeType: 3
+nodeValue: comment 
+prefix: null
+parentNode: TAG(1): 'comment_inside_text'
+firstChild: undefined
+lastChild: undefined
+nextSibling: TEXT(3): 'text'
+previousSibling: undefined
+childNodes: 0: 
+---
+attributes: 0: 
+localName: null
+namespaceURI: null
+nodeName: null
+nodeType: 3
+nodeValue: text
+prefix: null
+parentNode: TAG(1): 'comment_inside_text'
+firstChild: undefined
+lastChild: undefined
+nextSibling: undefined
+previousSibling: TEXT(3): 'comment '
+childNodes: 0: 
+---
+attributes: 0: 
+localName: no_comment_inside_text
+namespaceURI: 
+nodeName: no_comment_inside_text
+nodeType: 1
+nodeValue: null
+prefix: 
+parentNode: TAG(1): 'null'
+firstChild: TEXT(3): 'comment text'
+lastChild: TEXT(3): 'comment text'
+nextSibling: TAG(1): 'unescaped'
+previousSibling: TAG(1): 'comment_inside_text'
+childNodes: 1: TEXT(3): 'comment text'
+---
+attributes: 0: 
+localName: null
+namespaceURI: null
+nodeName: null
+nodeType: 3
+nodeValue: comment text
+prefix: null
+parentNode: TAG(1): 'no_comment_inside_text'
+firstChild: undefined
+lastChild: undefined
+nextSibling: undefined
+previousSibling: undefined
+childNodes: 0: 
+---
+attributes: 1: entities=%3E%20%27%20%26%20%C2%A0%28nbsp%29
+localName: unescaped
+namespaceURI: 
+nodeName: unescaped
+nodeType: 1
+nodeValue: null
+prefix: 
+parentNode: TAG(1): 'null'
+firstChild: TEXT(3): '%0A%20%20%3E%20%22%20%27%20%26%20%C2%A0%28nbsp%29%0A'
+lastChild: TEXT(3): '%0A%20%20%3E%20%22%20%27%20%26%20%C2%A0%28nbsp%29%0A'
+nextSibling: TAG(1): 'end_not_missing'
+previousSibling: TAG(1): 'no_comment_inside_text'
+childNodes: 1: TEXT(3): '%0A%20%20%3E%20%22%20%27%20%26%20%C2%A0%28nbsp%29%0A'
+---
+attributes: 0: 
+localName: null
+namespaceURI: null
+nodeName: null
+nodeType: 3
+nodeValue: %0A%20%20%3E%20%22%20%27%20%26%20%C2%A0%28nbsp%29%0A
+prefix: null
+parentNode: TAG(1): 'unescaped'
+firstChild: undefined
+lastChild: undefined
+nextSibling: undefined
+previousSibling: undefined
+childNodes: 0: 
+---
+attributes: 0: 
+localName: end_not_missing
+namespaceURI: 
+nodeName: end_not_missing
+nodeType: 1
+nodeValue: null
+prefix: 
+parentNode: TAG(1): 'null'
+firstChild: TEXT(3): '%0A%20%20text%0A%20%20'
+lastChild: TAG(1): 'end_missing'
+nextSibling: undefined
+previousSibling: TAG(1): 'unescaped'
+childNodes: 2: TEXT(3): '%0A%20%20text%0A%20%20',TAG(1): 'end_missing'
+---
+attributes: 0: 
+localName: null
+namespaceURI: null
+nodeName: null
+nodeType: 3
+nodeValue: %0A%20%20text%0A%20%20
+prefix: null
+parentNode: TAG(1): 'end_not_missing'
+firstChild: undefined
+lastChild: undefined
+nextSibling: TAG(1): 'end_missing'
+previousSibling: undefined
+childNodes: 0: 
+---
+attributes: 0: 
+localName: end_missing
+namespaceURI: 
+nodeName: end_missing
+nodeType: 1
+nodeValue: null
+prefix: 
+parentNode: TAG(1): 'end_not_missing'
+firstChild: TEXT(3): '%0A%20%20%20%20text%0A'
+lastChild: TEXT(3): '%0A%20%20%20%20text%0A'
+nextSibling: undefined
+previousSibling: TEXT(3): '%0A%20%20text%0A%20%20'
+childNodes: 1: TEXT(3): '%0A%20%20%20%20text%0A'
+---
+attributes: 0: 
+localName: null
+namespaceURI: null
+nodeName: null
+nodeType: 3
+nodeValue: %0A%20%20%20%20text%0A
+prefix: null
+parentNode: TAG(1): 'end_missing'
+firstChild: undefined
+lastChild: undefined
+nextSibling: undefined
+previousSibling: undefined
+childNodes: 0: 
+---
commit e7a99e89c7b79a588620743d69d5a62b1e484bdc
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date:   Thu Dec 20 16:49:08 2007 +0200

    Fix XML.status' set function

diff --git a/libswfdec/swfdec_xml.c b/libswfdec/swfdec_xml.c
index 3acf0f3..cbecf86 100644
--- a/libswfdec/swfdec_xml.c
+++ b/libswfdec/swfdec_xml.c
@@ -348,19 +348,12 @@ swfdec_xml_set_status (SwfdecAsContext *cx, SwfdecAsObject *object,
   if (argc < 1)
     return;
 
-  // special case
-  if (SWFDEC_AS_VALUE_IS_UNDEFINED (&argv[0]))
-    return;
-
-  // special case, call toString of objects
-  if (SWFDEC_AS_VALUE_IS_OBJECT (&argv[0]))
-    swfdec_as_value_to_string (cx, &argv[0]);
-
+  swfdec_as_value_to_string (cx, &argv[0]);
   d = swfdec_as_value_to_number (cx, &argv[0]);
   if (!isfinite (d))
-    SWFDEC_XML (object)->status = G_MININT32;
+    SWFDEC_XML (object)->status = 0;
   else
-    SWFDEC_XML (object)->status = (int) d;
+    SWFDEC_XML (object)->status = d;
 }
 
 static const char *
commit 92fb23847d15f6f8fe3a6ce6f291ff03ced1858c
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date:   Thu Dec 20 16:35:53 2007 +0200

    Don't allow creation of loops in XMLNode when version is 8

diff --git a/libswfdec/swfdec_xml_node.c b/libswfdec/swfdec_xml_node.c
index 99d7f3e..5c74870 100644
--- a/libswfdec/swfdec_xml_node.c
+++ b/libswfdec/swfdec_xml_node.c
@@ -742,6 +742,15 @@ swfdec_xml_node_insertAt (SwfdecXmlNode *node, SwfdecXmlNode *child, gint32 ind)
   g_assert (SWFDEC_IS_VALID_XML_NODE (child));
   g_assert (ind >= 0);
 
+  if (SWFDEC_AS_OBJECT (node)->context->version >= 8) {
+    SwfdecXmlNode *parent = node;
+    while (parent != NULL) {
+      if (parent == child)
+	return;
+      parent = parent->parent;
+    }
+  }
+
   // remove the previous parent of the child
   swfdec_xml_node_removeNode (child);
 
@@ -799,22 +808,12 @@ swfdec_xml_node_insertBefore (SwfdecAsContext *cx, SwfdecAsObject *object,
 void
 swfdec_xml_node_appendChild (SwfdecXmlNode *node, SwfdecXmlNode *child)
 {
-  SwfdecAsValue val;
-
   g_return_if_fail (SWFDEC_IS_VALID_XML_NODE (node));
   g_return_if_fail (SWFDEC_IS_VALID_XML_NODE (child));
   g_return_if_fail (node->children != NULL);
 
-  // remove the previous parent of the child
-  swfdec_xml_node_removeNode (child);
-
-  // append child to node's childNodes array
-  SWFDEC_AS_VALUE_SET_OBJECT (&val, SWFDEC_AS_OBJECT (child));
-  swfdec_as_array_push (node->children, &val);
-  swfdec_xml_node_update_childNodes (node);
-
-  // set node as parent of child
-  child->parent = node;
+  swfdec_xml_node_insertAt (node, child,
+      swfdec_as_array_get_length (node->children));
 }
 
 SWFDEC_AS_NATIVE (253, 4, swfdec_xml_node_do_appendChild)
commit 5dbab5d073bc0ce86ee47830d91a5ae30c3fdc78
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date:   Thu Dec 20 16:17:56 2007 +0200

    Remove an unnecessary SWFDEC_FIXME

diff --git a/libswfdec/swfdec_xml.c b/libswfdec/swfdec_xml.c
index 926e7ac..3acf0f3 100644
--- a/libswfdec/swfdec_xml.c
+++ b/libswfdec/swfdec_xml.c
@@ -822,10 +822,8 @@ void
 swfdec_xml_construct (SwfdecAsContext *cx, SwfdecAsObject *object,
     guint argc, SwfdecAsValue *argv, SwfdecAsValue *ret)
 {
-  if (!swfdec_as_context_is_constructing (cx)) {
-    SWFDEC_FIXME ("What do we do if not constructing?");
+  if (!swfdec_as_context_is_constructing (cx))
     return;
-  }
 
   g_assert (SWFDEC_IS_XML (object));
 
commit ec918d4614e81ece24caa5d64da06163e29342b9
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date:   Thu Dec 20 13:31:20 2007 +0200

    Add array-sort-on test

diff --git a/test/trace/Makefile.am b/test/trace/Makefile.am
index 774f5b7..000b0b2 100644
--- a/test/trace/Makefile.am
+++ b/test/trace/Makefile.am
@@ -139,6 +139,15 @@ EXTRA_DIST = \
 	array-properties-7.swf.trace \
 	array-properties-8.swf \
 	array-properties-8.swf.trace \
+	array-sort-on.as \
+	array-sort-on-5.swf \
+	array-sort-on-5.swf.trace \
+	array-sort-on-6.swf \
+	array-sort-on-6.swf.trace \
+	array-sort-on-7.swf \
+	array-sort-on-7.swf.trace \
+	array-sort-on-8.swf \
+	array-sort-on-8.swf.trace \
 	array2.as \
 	array2-5.swf \
 	array2-5.swf.trace \
diff --git a/test/trace/array-sort-on-5.swf b/test/trace/array-sort-on-5.swf
new file mode 100644
index 0000000..4708517
Binary files /dev/null and b/test/trace/array-sort-on-5.swf differ
diff --git a/test/trace/array-sort-on-5.swf.trace b/test/trace/array-sort-on-5.swf.trace
new file mode 100644
index 0000000..331f298
--- /dev/null
+++ b/test/trace/array-sort-on-5.swf.trace
@@ -0,0 +1,5 @@
+a,b,c
+undefined
+b,a,c
+a,b,c,d,e
+b,a,d,c,e
diff --git a/test/trace/array-sort-on-6.swf b/test/trace/array-sort-on-6.swf
new file mode 100644
index 0000000..e8be64e
Binary files /dev/null and b/test/trace/array-sort-on-6.swf differ
diff --git a/test/trace/array-sort-on-6.swf.trace b/test/trace/array-sort-on-6.swf.trace
new file mode 100644
index 0000000..331f298
--- /dev/null
+++ b/test/trace/array-sort-on-6.swf.trace
@@ -0,0 +1,5 @@
+a,b,c
+undefined
+b,a,c
+a,b,c,d,e
+b,a,d,c,e
diff --git a/test/trace/array-sort-on-7.swf b/test/trace/array-sort-on-7.swf
new file mode 100644
index 0000000..7cf6538
Binary files /dev/null and b/test/trace/array-sort-on-7.swf differ
diff --git a/test/trace/array-sort-on-7.swf.trace b/test/trace/array-sort-on-7.swf.trace
new file mode 100644
index 0000000..331f298
--- /dev/null
+++ b/test/trace/array-sort-on-7.swf.trace
@@ -0,0 +1,5 @@
+a,b,c
+undefined
+b,a,c
+a,b,c,d,e
+b,a,d,c,e
diff --git a/test/trace/array-sort-on-8.swf b/test/trace/array-sort-on-8.swf
new file mode 100644
index 0000000..31a1b54
Binary files /dev/null and b/test/trace/array-sort-on-8.swf differ
diff --git a/test/trace/array-sort-on-8.swf.trace b/test/trace/array-sort-on-8.swf.trace
new file mode 100644
index 0000000..331f298
--- /dev/null
+++ b/test/trace/array-sort-on-8.swf.trace
@@ -0,0 +1,5 @@
+a,b,c
+undefined
+b,a,c
+a,b,c,d,e
+b,a,d,c,e
diff --git a/test/trace/array-sort-on.as b/test/trace/array-sort-on.as
new file mode 100644
index 0000000..95b7a21
--- /dev/null
+++ b/test/trace/array-sort-on.as
@@ -0,0 +1,30 @@
+// makeswf -v 7 -r 1 -o array-sort-on-7.swf array-sort-on.as
+
+var a = new Array ();
+a[0] = { a: 2 };
+a[1] = { a: 1 };
+a[2] = { a: 3 };
+a[0].toString = function () { return "a"; };
+a[1].toString = function () { return "b"; };
+a[2].toString = function () { return "c"; };
+
+trace (a);
+trace (a.sortOn ());
+trace (a.sortOn ("a"));
+
+var a = new Array ();
+a[0] = { a: 2, b: 1, c: 1 };
+a[1] = { a: 1, b: 4, c: 2 };
+a[2] = { a: 3, b: 2, c: 3 };
+a[3] = { a: 2, b: 2, c: 3 };
+a[4] = { a: 3, b: 2, c: 4 };
+a[0].toString = function () { return "a"; };
+a[1].toString = function () { return "b"; };
+a[2].toString = function () { return "c"; };
+a[3].toString = function () { return "d"; };
+a[4].toString = function () { return "e"; };
+
+trace (a);
+trace (a.sortOn (["a", "b", "c"]));
+
+loadMovie ("FSCommand:quit", "");
commit 6205c8de468e18e130e423fffdec6d7e5391ecae
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date:   Thu Dec 20 13:30:55 2007 +0200

    Expand array2 test somewhat and make it work correctly in version 5

diff --git a/test/trace/array2-5.swf b/test/trace/array2-5.swf
index 50d48ba..c14828b 100644
Binary files a/test/trace/array2-5.swf and b/test/trace/array2-5.swf differ
diff --git a/test/trace/array2-5.swf.trace b/test/trace/array2-5.swf.trace
index 6768915..3aa5771 100644
--- a/test/trace/array2-5.swf.trace
+++ b/test/trace/array2-5.swf.trace
@@ -1,569 +1,576 @@
-[, , , , , , , , , , , , , , , , , , , ]
-[]
-[]
-[]
-[]
-[]
-[]
-[]
-[, , , , , , , , , , , , ]
-[, , , , , , , , , , , , , ]
+## Static properties
+1
+2
+4
+8
+16
+3
+16
+## Contructor
+# Normal usage
 []
 [, , , , ]
-[[], [], []]
+[1, b, [object Object]]
 []
 [, , , , ]
-[[], [], []]
+[1, b, [object Object]]
 []
-[[], [], []]
-[, , , , , , , , , , , , , , ]
+[1, b, [object Object]]
+# Special cases
 [, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]
 []
-[[]]
-[[]]
-[[]]
+[3]
+[3]
+[3]
 [, , ]
 [, , ]
 [, , ]
-[[], [[], [], [[], []]]]
-[, , , , , , , , ]
-[, , , , , , , , , , , , , ]
-[]
-[]
-[]
-[]
-[]
-[]
+[[], [a, b, [1, 2]]]
+## length
+# Normal usage
+4
+3
+1337
+0
+[]
+10
 [, , , , , , , , , ]
-[, , , , , , , , , , , , , , ]
-[, , , , , , , , , []]
+# Special cases
+[, , , , , , , , , 1]
 [, , , , ]
 undefined
 [, , , , , , , , , ]
 []
+-4
 []
+-1
+[1, b, c, , ]
+3.4
+[1, b, c, , ]
+3.5
+[1, b, c, , ]
+3.6
 []
+[object Object]
 []
-[[], [], [], , ]
-[]
-[[], [], [], , ]
-[]
-[[], [], [], , ]
-[]
-[]
-[]
-[]
-[, , ]
-[[], [], []]
-[]
+har
+[1, b, c]
+3
 []
 null
 []
 undefined
-[, , , , , , , , , , ]
-[, , , , , , , , , , , , , ]
-[, , , , ]
-[, , , , , , , , , , , , , , ]
-[]
-[, , , , , , , , , , , , , , , , , , ]
-[, , , , , , ]
-[, , , , , , , , , , , , , ]
-[, , , , ]
-[, , , , ]
-[, , , , , , , , , , , , , , ]
-[]
-[]
-[, , , , , , ]
-[, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]
-[, , , , , , , , , , ]
-[, , ]
-[, , , , , , , , ]
-[, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]
-[, , , , , , , , , , , , , , , , , , ]
-[, , , , , , , , , , , , , , , , , , ]
-[, , , , , , ]
-[, , , , , , , , , , , , , ]
-[]
-[[], [], [], []]
-[]
-[[], [], [], [], []]
-[, , , , , , , , , , , , , , ]
-[]
-[[], [], [], [], []]
-[]
-[[], [], [], [], []]
-[]
-[[], [], [], [], [], [[], [], []]]
-[]
+## toString
+# Normal usage
+a,b,c
+# Special cases
+
+,,,,,,,,,,,,,,,,,,,
+## join
+# Normal usage
+a,b,c
+a:b:c
+# Special cases
+
+
+131b313
+1[object Object]b[object Object]3
+1nullbnull3
+1b3
+1lalblal3
+1[object Object]b[object Object]3
+,,,,,,,,,,,,,,,,,,,
+:::::::::::::::::::
+## Push
+# Normal usage
+4
+[1, 2, 3, 4]
+5
+[1, 2, 3, 4, a]
+# Special cases
+5
+[1, 2, 3, 4, 5]
+5
+[1, 2, 3, 4, 5]
+6
+[1, 2, 3, 4, 5, [a, b, c]]
+1
 undefined
-[[, , , , , , ]]
-[]
+[weirder]
+0
 undefined
 []
-[]
-[[]]
-[]
-[, , , , , []]
-[]
-[]
-[]
-[, , , , , ]
-[, , , , , , , , , , , , , ]
-[]
-[[], [], []]
-[]
-[[], []]
-[, , , , , , , , , , , , , , ]
+1
+[6]
+6
+[, , , , , 6]
+-2
+x
+-2
+## Pop
+# Normal usage
+4
+[1, b, c]
+c
+[1, b]
+# Special cases
 undefined
 []
 undefined
 []
-[]
-[[], [], []]
-[]
-[[], []]
-[, , , , , , , , , ]
-[, , , , , , , , , , , , , ]
-[]
-[[], [], [], []]
-[]
-[[], [], [], [], []]
-[, , , , , , , , , , , , , , ]
-[]
-[[], [], [], [], []]
-[]
-[[], [], [], [], []]
-[]
-[[[], [], []], [], [], [], [], []]
-[]
-[[]]
-[]
-[[], , , , , ]
-[, , , , , , , ]
-[, , , , , , , , , , , , , ]
-[]
-[[], [], []]
-[]
-[[], []]
-[, , , , , , , , , , , , , , ]
+4
+[1, b, c]
+c
+[1, b]
+## Unshift
+# Normal usage
+4
+[4, 1, 2, 3]
+5
+[a, 4, 1, 2, 3]
+# Special cases
+5
+[4, 5, 1, 2, 3]
+5
+[4, 5, 1, 2, 3]
+6
+[[a, b, c], 4, 5, 1, 2, 3]
+1
+[6]
+6
+[6, , , , , ]
+## Shift
+# Normal usage
+1
+[b, c, 4]
+b
+[c, 4]
+# Special cases
 undefined
 []
+1
+[b, c, 4]
+b
+[c, 4]
+## Reverse
+# Normal usage
+[4, c, b, 1]
+[4, c, b, 1]
+[c, [object Object], 1]
+[c, [object Object], 1]
+# Special cases
+[]
+[]
+[a]
+[a]
+[[[a], b]]
+[[[a], b]]
+[4, c, b, 1]
+[4, c, b, 1]
+[4, c, b, 1]
+[4, c, b, 1]
+## Concat
+# Normal usage
+[1, b, c, 4, 1, [object Object], c]
+[1, b, c, 4]
+[1, [object Object], c]
+[1, b, c, 4, 1, [object Object], c]
+[1, b, c, 4]
+# Special cases
+[]
+[]
+[]
+[1, b, c, 4, 1, b, c, 4]
+[1, b, c, 4]
+[1, [b, c], 4, [1, [object Object]], c]
+[1, [b, c], 4]
+[[1, [object Object]], c]
+## Slice
+# Normal usage
+[b, c]
+[1, b, c, 4]
+[1, b]
+[1, b, c, 4]
+[c, 4]
+[1, b, c, 4]
+# Special cases
+[1, b, c, 4]
+[1, b, c, 4]
+[1, b, c, 4]
+[1, b, c, 4]
+[1, b]
+[1, b, c, 4]
+[4]
+[1, b, c, 4]
+[]
+[1, b, c, 4]
+[]
+[1, b, c, 4]
+[1, b, c, 4]
+[1, b, c, 4]
+[b]
+[1, b, c, 4]
+[b]
+[1, b, c, 4]
+## Splice
+# Normal usage
+[b, c, 4]
+[1]
+[1]
+[b, c, 4]
+[b, c]
+[1, [object Object], 3, 4]
+# Special cases
+undefined
 []
-[[], [], []]
-[]
-[[], []]
-[, , , , , , , , , ]
-[, , , , , , , , , , , , , ]
-[[], [], [], []]
-[[], [], [], []]
-[[], [], []]
-[[], [], []]
-[, , , , , , , , , , , , , , ]
-[]
-[]
-[[]]
-[[]]
-[[[[]], []]]
-[[[[]], []]]
-[[], [], [], []]
-[[], [], [], []]
-[[], [], [], []]
-[[], [], [], []]
-[, , , , , , , , ]
-[, , , , , , , , , , , , , ]
-[[], [], [], [], [], [], []]
-[[], [], [], []]
-[[], [], []]
-[[], [], [], [], [], [], []]
-[[], [], [], []]
-[, , , , , , , , , , , , , , ]
-[]
-[]
-[]
-[[], [], [], [], [], [], [], []]
-[[], [], [], []]
-[[], [[], []], [], [[], []], []]
-[[], [[], []], []]
-[[[], []], []]
-[, , , , , , , ]
-[, , , , , , , , , , , , , ]
-[[], []]
-[[], [], [], []]
-[[], []]
-[[], [], [], []]
-[[], []]
-[[], [], [], []]
-[, , , , , , , , , , , , , , ]
-[[], [], [], []]
-[[], [], [], []]
-[[], [], [], []]
-[[], [], [], []]
-[[], []]
-[[], [], [], []]
-[[]]
-[[], [], [], []]
-[]
-[[], [], [], []]
-[]
-[[], [], [], []]
-[[], [], [], []]
-[[], [], [], []]
-[[]]
-[[], [], [], []]
-[[]]
-[[], [], [], []]
-[, , , , , , , , ]
-[, , , , , , , , , , , , , ]
-[[], [], []]
-[[]]
-[[]]
-[[], [], []]
-[[], []]
-[[], [], [], []]
-[, , , , , , , , , , , , , , ]
-[]
-[]
-[]
-[[], []]
-[, , , , , , ]
-[, , , , , , , , , , , , , ]
-[, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]
-[[], [], [], [], [], [], []]
-[[], [], [], [], [], [], []]
-[, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]
-[[], [], [], [], [], [], []]
-[[], [], [], [], [], [], []]
-[, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]
-[[], [], [], [], [], [], []]
-[[], [], [], [], [], [], []]
-[, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]
-[[], [], [], [], [], [], []]
-[[], [], [], [], [], [], []]
-[, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]
-[[], [], [], [], [], [], []]
-[[], [], [], [], [], [], []]
-[, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]
-[[], [], [], [], [], [], []]
-[[], [], [], [], [], [], []]
-[, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]
-[[], [], [], [], [], [], []]
-[[], [], [], [], [], [], []]
-[, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]
-[[], [], [], [], [], [], []]
-[[], [], [], [], [], [], []]
-[, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]
-[[], [], [], [], [], [], []]
-[[], [], [], [], [], [], []]
-[, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]
-[[], [], [], [], [], [], []]
-[[], [], [], [], [], [], []]
-[, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]
-[[], [], [], [], [], [], []]
-[[], [], [], [], [], [], []]
-[, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]
-[[], [], [], [], [], [], []]
-[[], [], [], [], [], [], []]
-[, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]
-[[], [], [], [], [], [], []]
-[[], [], [], [], [], [], []]
-[, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]
-[[], [], [], [], [], [], []]
-[[], [], [], [], [], [], []]
-[, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]
-[[], [], [], [], [], [], []]
-[[], [], [], [], [], [], []]
-[, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]
-[[], [], [], [], [], [], []]
-[[], [], [], [], [], [], []]
-[, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]
-[[], [], [], [], [], [], []]
-[[], [], [], [], [], [], []]
-[, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]
-[[], [], [], [], [], [], []]
-[[], [], [], [], [], [], []]
-[, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]
-[[], [], [], [], [], [], []]
-[[], [], [], [], [], [], []]
-[, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]
-[[], [], [], [], [], [], []]
-[[], [], [], [], [], [], []]
-[, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]
-[[], [], [], [], [], [], []]
-[[], [], [], [], [], [], []]
-[, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]
-[[], [], [], [], [], [], []]
-[[], [], [], [], [], [], []]
-[, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]
-[[], [], [], [], [], [], []]
-[[], [], [], [], [], [], []]
-[, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]
-[[], [], [], [], [], [], []]
-[[], [], [], [], [], [], []]
-[, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]
-[[], [], [], [], [], [], []]
-[[], [], [], [], [], [], []]
-[, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]
-[[], [], [], [], [], [], []]
-[[], [], [], [], [], [], []]
-[, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]
-[[], [], [], [], [], [], []]
-[[], [], [], [], [], [], []]
-[, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]
-[[], [], [], [], [], [], []]
-[[], [], [], [], [], [], []]
-[, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]
-[[], [], [], [], [], [], []]
-[[], [], [], [], [], [], []]
-[, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]
-[[], [], [], [], [], [], []]
-[[], [], [], [], [], [], []]
-[, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]
-[[], [], [], [], [], [], []]
-[[], [], [], [], [], [], []]
-[, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]
-[[], [], [], [], [], [], []]
-[[], [], [], [], [], [], []]
-[, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]
-[, , , , , , , , , [], [], [], [], [], [], []]
-[, , , , , , , , , [], [], [], [], [], [], []]
-[, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]
-[, , , , , , , , , [], [], [], [], [], [], []]
-[, , , , , , , , , [], [], [], [], [], [], []]
-[, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]
-[[], [], [], [], [], [], [], , , , , , , , , ]
-[[], [], [], [], [], [], [], , , , , , , , , ]
-[, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]
-[[], [], [], [], [], [], [], , , , , , , , , ]
-[[], [], [], [], [], [], [], , , , , , , , , ]
-[, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]
-[]
-[, [], , [], [], [], , , , , [], , [], , , []]
-[, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]
-[]
-[, [], , [], [], [], , , , , [], , [], , , []]
-[, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]
-[]
-[, [], , [], [], [], , , , , [], , [], , , []]
-[, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]
-[]
-[, [], , [], [], [], , , , , [], , [], , , []]
-[, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]
-[, , , , , , , , , [], [], [], [], [], [], []]
-[, , , , , , , , , [], [], [], [], [], [], []]
-[, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]
-[, , , , , , , , , [], [], [], [], [], [], []]
-[, , , , , , , , , [], [], [], [], [], [], []]
-[, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]
-[[], [], [], [], [], [], [], , , , , , , , , ]
-[[], [], [], [], [], [], [], , , , , , , , , ]
-[, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]
-[[], [], [], [], [], [], [], , , , , , , , , ]
-[[], [], [], [], [], [], [], , , , , , , , , ]
-[, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]
-[]
-[, [], , [], [], [], , , , , [], , [], , , []]
-[, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]
-[]
-[, [], , [], [], [], , , , , [], , [], , , []]
-[, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]
-[]
-[, [], , [], [], [], , , , , [], , [], , , []]
-[, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]
-[]
-[, [], , [], [], [], , , , , [], , [], , , []]
-[, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]
-[]
-[[], [], [], [], [], [], []]
-[, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]
-[]
-[[], [], [], [], [], [], []]
-[, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]
-[]
-[[], [], [], [], [], [], []]
-[, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]
-[]
-[[], [], [], [], [], [], []]
-[, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]
-[]
-[[], [], [], [], [], [], []]
-[, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]
-[]
-[[], [], [], [], [], [], []]
-[, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]
-[]
-[[], [], [], [], [], [], []]
-[, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]
-[]
-[[], [], [], [], [], [], []]
-[, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]
-[]
-[[], [], [], [], [], [], []]
-[, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]
-[]
-[[], [], [], [], [], [], []]
-[, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]
-[]
-[[], [], [], [], [], [], []]
-[, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]
-[]
-[[], [], [], [], [], [], []]
-[, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]
-[]
-[[], [], [], [], [], [], []]
-[, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]
-[]
-[[], [], [], [], [], [], []]
-[, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]
-[]
-[[], [], [], [], [], [], []]
-[, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]
-[]
-[[], [], [], [], [], [], []]
-[, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]
-[]
-[[], [], [], [], [], [], []]
-[, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]
-[]
-[[], [], [], [], [], [], []]
-[, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]
-[]
-[[], [], [], [], [], [], []]
-[, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]
-[]
-[[], [], [], [], [], [], []]
-[, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]
-[]
-[[], [], [], [], [], [], []]
-[, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]
-[]
-[[], [], [], [], [], [], []]
-[, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]
 []
-[[], [], [], [], [], [], []]
-[, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]
 []
-[[], [], [], [], [], [], []]
-[, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]
-[[], [], [], [], [], [], []]
-[[], [], [], [], [], [], []]
-[, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]
-[[], [], [], [], [], [], []]
-[[], [], [], [], [], [], []]
-[, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]
-[[], [], [], [], [], [], []]
-[[], [], [], [], [], [], []]
-[, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]
-[[], [], [], [], [], [], []]
-[[], [], [], [], [], [], []]
-[, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]
-[[], [], [], [], [], [], []]
-[[], [], [], [], [], [], []]
-[, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]
-[[], [], [], [], [], [], []]
-[[], [], [], [], [], [], []]
-[, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]
-[[], [], [], [], [], [], []]
-[[], [], [], [], [], [], []]
-[, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]
-[[], [], [], [], [], [], []]
-[[], [], [], [], [], [], []]
-[, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]
-[[], [[]], [[], []], [[], [], []], [[], [], [], []]]
-[[], [[]], [[], []], [[], [], []], [[], [], [], []]]
-[, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]
-[[], [[]], [[], []], [[], [], []], [[], [], [], []]]
-[[], [[]], [[], []], [[], [], []], [[], [], [], []]]
-[, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]
-[[[], [], [], []], [[], [], []], [[], []], [[]], []]
-[[[], [], [], []], [[], [], []], [[], []], [[]], []]
-[, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]
-[[[], [], [], []], [[], [], []], [[], []], [[]], []]
-[[[], [], [], []], [[], [], []], [[], []], [[]], []]
-[, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]
-[[], [[]], [[], []], [[], [], []], [[], [], [], []]]
-[[], [[]], [[], []], [[], [], []], [[], [], [], []]]
-[, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]
-[[], [[]], [[], []], [[], [], []], [[], [], [], []]]
-[[], [[]], [[], []], [[], [], []], [[], [], [], []]]
-[, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]
-[[[], [], [], []], [[], [], []], [[], []], [[]], []]
-[[[], [], [], []], [[], [], []], [[], []], [[]], []]
-[, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]
-[[[], [], [], []], [[], [], []], [[], []], [[]], []]
-[[[], [], [], []], [[], [], []], [[], []], [[]], []]
-[, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]
-[[], [], [], [], []]
-[[[], [], []], [[], [], [], []], [], [[], []], [[]]]
-[, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]
-[[], [], [], [], []]
-[[[], [], []], [[], [], [], []], [], [[], []], [[]]]
-[, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]
-[[], [], [], [], []]
-[[[], [], []], [[], [], [], []], [], [[], []], [[]]]
-[, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]
-[[], [], [], [], []]
-[[[], [], []], [[], [], [], []], [], [[], []], [[]]]
-[, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]
-[[], [], [], [], []]
-[[[], [], []], [[], [], [], []], [], [[], []], [[]]]
-[, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]
-[[], [], [], [], []]
-[[[], [], []], [[], [], [], []], [], [[], []], [[]]]
-[, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]
-[[], [], [], [], []]
-[[[], [], []], [[], [], [], []], [], [[], []], [[]]]
-[, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]
-[[], [], [], [], []]
-[[[], [], []], [[], [], [], []], [], [[], []], [[]]]
-[, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]
-[[], [[]], [[], []], [[], [], []], [[], [], [], []]]
-[[], [[]], [[], []], [[], [], []], [[], [], [], []]]
-[, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]
-[[], [[]], [[], []], [[], [], []], [[], [], [], []]]
-[[], [[]], [[], []], [[], [], []], [[], [], [], []]]
-[, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]
-[[[], [], [], []], [[], [], []], [[], []], [[]], []]
-[[[], [], [], []], [[], [], []], [[], []], [[]], []]
-[, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]
-[[[], [], [], []], [[], [], []], [[], []], [[]], []]
-[[[], [], [], []], [[], [], []], [[], []], [[]], []]
-[, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]
-[[], [[]], [[], []], [[], [], []], [[], [], [], []]]
-[[], [[]], [[], []], [[], [], []], [[], [], [], []]]
-[, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]
-[[], [[]], [[], []], [[], [], []], [[], [], [], []]]
-[[], [[]], [[], []], [[], [], []], [[], [], [], []]]
-[, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]
-[[[], [], [], []], [[], [], []], [[], []], [[]], []]
-[[[], [], [], []], [[], [], []], [[], []], [[]], []]
-[, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]
-[[[], [], [], []], [[], [], []], [[], []], [[]], []]
-[[[], [], [], []], [[], [], []], [[], []], [[]], []]
-[, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]
-[[], [], [], [], []]
-[[[], [], []], [[], [], [], []], [], [[], []], [[]]]
-[, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]
-[[], [], [], [], []]
-[[[], [], []], [[], [], [], []], [], [[], []], [[]]]
-[, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]
-[[], [], [], [], []]
-[[[], [], []], [[], [], [], []], [], [[], []], [[]]]
-[, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]
-[[], [], [], [], []]
-[[[], [], []], [[], [], [], []], [], [[], []], [[]]]
-[, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]
-[[], [], [], [], []]
-[[[], [], []], [[], [], [], []], [], [[], []], [[]]]
-[, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]
-[[], [], [], [], []]
-[[[], [], []], [[], [], [], []], [], [[], []], [[]]]
-[, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]
-[[], [], [], [], []]
-[[[], [], []], [[], [], [], []], [], [[], []], [[]]]
-[, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]
-[[], [], [], [], []]
-[[[], [], []], [[], [], [], []], [], [[], []], [[]]]
-[, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]
+[a, b]
+## Sort
+# Normal usage
+sort 0 [a, B, c, v, 1, 9, 10]
+[1, 10, 9, B, a, c, v]
+[1, 10, 9, B, a, c, v]
+sort 1 [a, B, c, v, 1, 9, 10]
+[1, 10, 9, a, B, c, v]
+[1, 10, 9, a, B, c, v]
+sort 2 [a, B, c, v, 1, 9, 10]
+[v, c, a, B, 9, 10, 1]
+[v, c, a, B, 9, 10, 1]
+sort 3 [a, B, c, v, 1, 9, 10]
+[v, c, B, a, 9, 10, 1]
+[v, c, B, a, 9, 10, 1]
+sort 4 [a, B, c, v, 1, 9, 10]
+[1, 10, 9, B, a, c, v]
+[1, 10, 9, B, a, c, v]
+sort 5 [a, B, c, v, 1, 9, 10]
+[1, 10, 9, a, B, c, v]
+[1, 10, 9, a, B, c, v]
+sort 6 [a, B, c, v, 1, 9, 10]
+[v, c, a, B, 9, 10, 1]
+[v, c, a, B, 9, 10, 1]
+sort 7 [a, B, c, v, 1, 9, 10]
+[v, c, B, a, 9, 10, 1]
+[v, c, B, a, 9, 10, 1]
+sort 8 [a, B, c, v, 1, 9, 10]
+[4, 6, 5, 1, 0, 2, 3]
+[a, B, c, v, 1, 9, 10]
+sort 9 [a, B, c, v, 1, 9, 10]
+[4, 6, 5, 0, 1, 2, 3]
+[a, B, c, v, 1, 9, 10]
+sort 10 [a, B, c, v, 1, 9, 10]
+[3, 2, 0, 1, 5, 6, 4]
+[a, B, c, v, 1, 9, 10]
+sort 11 [a, B, c, v, 1, 9, 10]
+[3, 2, 1, 0, 5, 6, 4]
+[a, B, c, v, 1, 9, 10]
+sort 12 [a, B, c, v, 1, 9, 10]
+[4, 6, 5, 1, 0, 2, 3]
+[a, B, c, v, 1, 9, 10]
+sort 13 [a, B, c, v, 1, 9, 10]
+[4, 6, 5, 0, 1, 2, 3]
+[a, B, c, v, 1, 9, 10]
+sort 14 [a, B, c, v, 1, 9, 10]
+[3, 2, 0, 1, 5, 6, 4]
+[a, B, c, v, 1, 9, 10]
+sort 15 [a, B, c, v, 1, 9, 10]
+[3, 2, 1, 0, 5, 6, 4]
+[a, B, c, v, 1, 9, 10]
+sort 16 [a, B, c, v, 1, 9, 10]
+[1, 9, 10, B, a, c, v]
+[1, 9, 10, B, a, c, v]
+sort 17 [a, B, c, v, 1, 9, 10]
+[1, 9, 10, a, B, c, v]
+[1, 9, 10, a, B, c, v]
+sort 18 [a, B, c, v, 1, 9, 10]
+[v, c, a, B, 10, 9, 1]
+[v, c, a, B, 10, 9, 1]
+sort 19 [a, B, c, v, 1, 9, 10]
+[v, c, B, a, 10, 9, 1]
+[v, c, B, a, 10, 9, 1]
+sort 20 [a, B, c, v, 1, 9, 10]
+[1, 9, 10, B, a, c, v]
+[1, 9, 10, B, a, c, v]
+sort 21 [a, B, c, v, 1, 9, 10]
+[1, 9, 10, a, B, c, v]
+[1, 9, 10, a, B, c, v]
+sort 22 [a, B, c, v, 1, 9, 10]
+[v, c, a, B, 10, 9, 1]
+[v, c, a, B, 10, 9, 1]
+sort 23 [a, B, c, v, 1, 9, 10]
+[v, c, B, a, 10, 9, 1]
+[v, c, B, a, 10, 9, 1]
+sort 24 [a, B, c, v, 1, 9, 10]
+[4, 5, 6, 1, 0, 2, 3]
+[a, B, c, v, 1, 9, 10]
+sort 25 [a, B, c, v, 1, 9, 10]
+[4, 5, 6, 0, 1, 2, 3]
+[a, B, c, v, 1, 9, 10]
+sort 26 [a, B, c, v, 1, 9, 10]
+[3, 2, 0, 1, 6, 5, 4]
+[a, B, c, v, 1, 9, 10]
+sort 27 [a, B, c, v, 1, 9, 10]
+[3, 2, 1, 0, 6, 5, 4]
+[a, B, c, v, 1, 9, 10]
+sort 28 [a, B, c, v, 1, 9, 10]
+[4, 5, 6, 1, 0, 2, 3]
+[a, B, c, v, 1, 9, 10]
+sort 29 [a, B, c, v, 1, 9, 10]
+[4, 5, 6, 0, 1, 2, 3]
+[a, B, c, v, 1, 9, 10]
+sort 30 [a, B, c, v, 1, 9, 10]
+[3, 2, 0, 1, 6, 5, 4]
+[a, B, c, v, 1, 9, 10]
+sort 31 [a, B, c, v, 1, 9, 10]
+[3, 2, 1, 0, 6, 5, 4]
+[a, B, c, v, 1, 9, 10]
+sort 0 [, 1, , a, 10, B, , , , , c, , 9, , , v]
+[, , , , , , , , , 1, 10, 9, B, a, c, v]
+[, , , , , , , , , 1, 10, 9, B, a, c, v]
+sort 1 [, 1, , a, 10, B, , , , , c, , 9, , , v]
+[, , , , , , , , , 1, 10, 9, a, B, c, v]
+[, , , , , , , , , 1, 10, 9, a, B, c, v]
+sort 2 [, 1, , a, 10, B, , , , , c, , 9, , , v]
+[v, c, a, B, 9, 10, 1, , , , , , , , , ]
+[v, c, a, B, 9, 10, 1, , , , , , , , , ]
+sort 3 [, 1, , a, 10, B, , , , , c, , 9, , , v]
+[v, c, B, a, 9, 10, 1, , , , , , , , , ]
+[v, c, B, a, 9, 10, 1, , , , , , , , , ]
+sort 4 [, 1, , a, 10, B, , , , , c, , 9, , , v]
+0
+[, 1, , a, 10, B, , , , , c, , 9, , , v]
+sort 5 [, 1, , a, 10, B, , , , , c, , 9, , , v]
+0
+[, 1, , a, 10, B, , , , , c, , 9, , , v]
+sort 6 [, 1, , a, 10, B, , , , , c, , 9, , , v]
+0
+[, 1, , a, 10, B, , , , , c, , 9, , , v]
+sort 7 [, 1, , a, 10, B, , , , , c, , 9, , , v]
+0
+[, 1, , a, 10, B, , , , , c, , 9, , , v]
+sort 16 [, 1, , a, 10, B, , , , , c, , 9, , , v]
+[, , , , , , , , , 1, 9, 10, B, a, c, v]
+[, , , , , , , , , 1, 9, 10, B, a, c, v]
+sort 17 [, 1, , a, 10, B, , , , , c, , 9, , , v]
+[, , , , , , , , , 1, 9, 10, a, B, c, v]
+[, , , , , , , , , 1, 9, 10, a, B, c, v]
+sort 18 [, 1, , a, 10, B, , , , , c, , 9, , , v]
+[v, c, a, B, 10, 9, 1, , , , , , , , , ]
+[v, c, a, B, 10, 9, 1, , , , , , , , , ]
+sort 19 [, 1, , a, 10, B, , , , , c, , 9, , , v]
+[v, c, B, a, 10, 9, 1, , , , , , , , , ]
+[v, c, B, a, 10, 9, 1, , , , , , , , , ]
+sort 20 [, 1, , a, 10, B, , , , , c, , 9, , , v]
+0
+[, 1, , a, 10, B, , , , , c, , 9, , , v]
+sort 21 [, 1, , a, 10, B, , , , , c, , 9, , , v]
+0
+[, 1, , a, 10, B, , , , , c, , 9, , , v]
+sort 22 [, 1, , a, 10, B, , , , , c, , 9, , , v]
+0
+[, 1, , a, 10, B, , , , , c, , 9, , , v]
+sort 23 [, 1, , a, 10, B, , , , , c, , 9, , , v]
+0
+[, 1, , a, 10, B, , , , , c, , 9, , , v]
+sort 4 [a, B, c, 1, 9, 10, c]
+0
+[a, B, c, 1, 9, 10, c]
+sort 5 [a, B, c, 1, 9, 10, c]
+0
+[a, B, c, 1, 9, 10, c]
+sort 6 [a, B, c, 1, 9, 10, c]
+0
+[a, B, c, 1, 9, 10, c]
+sort 7 [a, B, c, 1, 9, 10, c]
+0
+[a, B, c, 1, 9, 10, c]
+sort 12 [a, B, c, 1, 9, 10, c]
+0
+[a, B, c, 1, 9, 10, c]
+sort 13 [a, B, c, 1, 9, 10, c]
+0
+[a, B, c, 1, 9, 10, c]
+sort 14 [a, B, c, 1, 9, 10, c]
+0
+[a, B, c, 1, 9, 10, c]
+sort 15 [a, B, c, 1, 9, 10, c]
+0
+[a, B, c, 1, 9, 10, c]
+sort 20 [a, B, c, 1, 9, 10, c]
+0
+[a, B, c, 1, 9, 10, c]
+sort 21 [a, B, c, 1, 9, 10, c]
+0
+[a, B, c, 1, 9, 10, c]
+sort 22 [a, B, c, 1, 9, 10, c]
+0
+[a, B, c, 1, 9, 10, c]
+sort 23 [a, B, c, 1, 9, 10, c]
+0
+[a, B, c, 1, 9, 10, c]
+sort 28 [a, B, c, 1, 9, 10, c]
+0
+[a, B, c, 1, 9, 10, c]
+sort 29 [a, B, c, 1, 9, 10, c]
+0
+[a, B, c, 1, 9, 10, c]
+sort 30 [a, B, c, 1, 9, 10, c]
+0
+[a, B, c, 1, 9, 10, c]
+sort 31 [a, B, c, 1, 9, 10, c]
+0
+[a, B, c, 1, 9, 10, c]
+sort 5 [a, B, c, 1, 9, 10, C]
+0
+[a, B, c, 1, 9, 10, C]
+sort 7 [a, B, c, 1, 9, 10, C]
+0
+[a, B, c, 1, 9, 10, C]
+sort 13 [a, B, c, 1, 9, 10, C]
+0
+[a, B, c, 1, 9, 10, C]
+sort 15 [a, B, c, 1, 9, 10, C]
+0
+[a, B, c, 1, 9, 10, C]
+sort 21 [a, B, c, 1, 9, 10, C]
+0
+[a, B, c, 1, 9, 10, C]
+sort 23 [a, B, c, 1, 9, 10, C]
+0
+[a, B, c, 1, 9, 10, C]
+sort 29 [a, B, c, 1, 9, 10, C]
+0
+[a, B, c, 1, 9, 10, C]
+sort 31 [a, B, c, 1, 9, 10, C]
+0
+[a, B, c, 1, 9, 10, C]
+sort 0 [a, B, c, 1, 9, 10, C]
+[1, 10, 9, B, C, a, c]
+[1, 10, 9, B, C, a, c]
+sort 2 [a, B, c, 1, 9, 10, C]
+[c, a, C, B, 9, 10, 1]
+[c, a, C, B, 9, 10, 1]
+sort 8 [a, B, c, 1, 9, 10, C]
+[3, 5, 4, 1, 6, 0, 2]
+[a, B, c, 1, 9, 10, C]
+sort 10 [a, B, c, 1, 9, 10, C]
+[2, 0, 6, 1, 4, 5, 3]
+[a, B, c, 1, 9, 10, C]
+sort 16 [a, B, c, 1, 9, 10, C]
+[1, 9, 10, B, C, a, c]
+[1, 9, 10, B, C, a, c]
+sort 18 [a, B, c, 1, 9, 10, C]
+[c, a, C, B, 10, 9, 1]
+[c, a, C, B, 10, 9, 1]
+sort 24 [a, B, c, 1, 9, 10, C]
+[3, 4, 5, 1, 6, 0, 2]
+[a, B, c, 1, 9, 10, C]
+sort 26 [a, B, c, 1, 9, 10, C]
+[2, 0, 6, 1, 5, 4, 3]
+[a, B, c, 1, 9, 10, C]
+sort 0 [[1, 2, 3], [1, 2, 3, 4], [], [1, 2], [1]]
+[[], [1], [1, 2], [1, 2, 3], [1, 2, 3, 4]]
+[[], [1], [1, 2], [1, 2, 3], [1, 2, 3, 4]]
+sort 1 [[1, 2, 3], [1, 2, 3, 4], [], [1, 2], [1]]
+[[], [1], [1, 2], [1, 2, 3], [1, 2, 3, 4]]
+[[], [1], [1, 2], [1, 2, 3], [1, 2, 3, 4]]
+sort 2 [[1, 2, 3], [1, 2, 3, 4], [], [1, 2], [1]]
+[[1, 2, 3, 4], [1, 2, 3], [1, 2], [1], []]
+[[1, 2, 3, 4], [1, 2, 3], [1, 2], [1], []]
+sort 3 [[1, 2, 3], [1, 2, 3, 4], [], [1, 2], [1]]
+[[1, 2, 3, 4], [1, 2, 3], [1, 2], [1], []]
+[[1, 2, 3, 4], [1, 2, 3], [1, 2], [1], []]
+sort 4 [[1, 2, 3], [1, 2, 3, 4], [], [1, 2], [1]]
+[[], [1], [1, 2], [1, 2, 3], [1, 2, 3, 4]]
+[[], [1], [1, 2], [1, 2, 3], [1, 2, 3, 4]]
+sort 5 [[1, 2, 3], [1, 2, 3, 4], [], [1, 2], [1]]
+[[], [1], [1, 2], [1, 2, 3], [1, 2, 3, 4]]
+[[], [1], [1, 2], [1, 2, 3], [1, 2, 3, 4]]
+sort 6 [[1, 2, 3], [1, 2, 3, 4], [], [1, 2], [1]]
+[[1, 2, 3, 4], [1, 2, 3], [1, 2], [1], []]
+[[1, 2, 3, 4], [1, 2, 3], [1, 2], [1], []]
+sort 7 [[1, 2, 3], [1, 2, 3, 4], [], [1, 2], [1]]
+[[1, 2, 3, 4], [1, 2, 3], [1, 2], [1], []]
+[[1, 2, 3, 4], [1, 2, 3], [1, 2], [1], []]
+sort 8 [[1, 2, 3], [1, 2, 3, 4], [], [1, 2], [1]]
+[2, 4, 3, 0, 1]
+[[1, 2, 3], [1, 2, 3, 4], [], [1, 2], [1]]
+sort 9 [[1, 2, 3], [1, 2, 3, 4], [], [1, 2], [1]]
+[2, 4, 3, 0, 1]
+[[1, 2, 3], [1, 2, 3, 4], [], [1, 2], [1]]
+sort 10 [[1, 2, 3], [1, 2, 3, 4], [], [1, 2], [1]]
+[1, 0, 3, 4, 2]
+[[1, 2, 3], [1, 2, 3, 4], [], [1, 2], [1]]
+sort 11 [[1, 2, 3], [1, 2, 3, 4], [], [1, 2], [1]]
+[1, 0, 3, 4, 2]
+[[1, 2, 3], [1, 2, 3, 4], [], [1, 2], [1]]
+sort 12 [[1, 2, 3], [1, 2, 3, 4], [], [1, 2], [1]]
+[2, 4, 3, 0, 1]
+[[1, 2, 3], [1, 2, 3, 4], [], [1, 2], [1]]
+sort 13 [[1, 2, 3], [1, 2, 3, 4], [], [1, 2], [1]]
+[2, 4, 3, 0, 1]
+[[1, 2, 3], [1, 2, 3, 4], [], [1, 2], [1]]
+sort 14 [[1, 2, 3], [1, 2, 3, 4], [], [1, 2], [1]]
+[1, 0, 3, 4, 2]
+[[1, 2, 3], [1, 2, 3, 4], [], [1, 2], [1]]
+sort 15 [[1, 2, 3], [1, 2, 3, 4], [], [1, 2], [1]]
+[1, 0, 3, 4, 2]
+[[1, 2, 3], [1, 2, 3, 4], [], [1, 2], [1]]
+sort 16 [[1, 2, 3], [1, 2, 3, 4], [], [1, 2], [1]]
+[[], [1], [1, 2], [1, 2, 3], [1, 2, 3, 4]]
+[[], [1], [1, 2], [1, 2, 3], [1, 2, 3, 4]]
+sort 17 [[1, 2, 3], [1, 2, 3, 4], [], [1, 2], [1]]
+[[], [1], [1, 2], [1, 2, 3], [1, 2, 3, 4]]
+[[], [1], [1, 2], [1, 2, 3], [1, 2, 3, 4]]
+sort 18 [[1, 2, 3], [1, 2, 3, 4], [], [1, 2], [1]]
+[[1, 2, 3, 4], [1, 2, 3], [1, 2], [1], []]
+[[1, 2, 3, 4], [1, 2, 3], [1, 2], [1], []]
+sort 19 [[1, 2, 3], [1, 2, 3, 4], [], [1, 2], [1]]
+[[1, 2, 3, 4], [1, 2, 3], [1, 2], [1], []]
+[[1, 2, 3, 4], [1, 2, 3], [1, 2], [1], []]
+sort 20 [[1, 2, 3], [1, 2, 3, 4], [], [1, 2], [1]]
+[[], [1], [1, 2], [1, 2, 3], [1, 2, 3, 4]]
+[[], [1], [1, 2], [1, 2, 3], [1, 2, 3, 4]]
+sort 21 [[1, 2, 3], [1, 2, 3, 4], [], [1, 2], [1]]
+[[], [1], [1, 2], [1, 2, 3], [1, 2, 3, 4]]
+[[], [1], [1, 2], [1, 2, 3], [1, 2, 3, 4]]
+sort 22 [[1, 2, 3], [1, 2, 3, 4], [], [1, 2], [1]]
+[[1, 2, 3, 4], [1, 2, 3], [1, 2], [1], []]
+[[1, 2, 3, 4], [1, 2, 3], [1, 2], [1], []]
+sort 23 [[1, 2, 3], [1, 2, 3, 4], [], [1, 2], [1]]
+[[1, 2, 3, 4], [1, 2, 3], [1, 2], [1], []]
+[[1, 2, 3, 4], [1, 2, 3], [1, 2], [1], []]
+sort 24 [[1, 2, 3], [1, 2, 3, 4], [], [1, 2], [1]]
+[2, 4, 3, 0, 1]
+[[1, 2, 3], [1, 2, 3, 4], [], [1, 2], [1]]
+sort 25 [[1, 2, 3], [1, 2, 3, 4], [], [1, 2], [1]]
+[2, 4, 3, 0, 1]
+[[1, 2, 3], [1, 2, 3, 4], [], [1, 2], [1]]
+sort 26 [[1, 2, 3], [1, 2, 3, 4], [], [1, 2], [1]]
+[1, 0, 3, 4, 2]
+[[1, 2, 3], [1, 2, 3, 4], [], [1, 2], [1]]
+sort 27 [[1, 2, 3], [1, 2, 3, 4], [], [1, 2], [1]]
+[1, 0, 3, 4, 2]
+[[1, 2, 3], [1, 2, 3, 4], [], [1, 2], [1]]
+sort 28 [[1, 2, 3], [1, 2, 3, 4], [], [1, 2], [1]]
+[2, 4, 3, 0, 1]
+[[1, 2, 3], [1, 2, 3, 4], [], [1, 2], [1]]
+sort 29 [[1, 2, 3], [1, 2, 3, 4], [], [1, 2], [1]]
+[2, 4, 3, 0, 1]
+[[1, 2, 3], [1, 2, 3, 4], [], [1, 2], [1]]
+sort 30 [[1, 2, 3], [1, 2, 3, 4], [], [1, 2], [1]]
+[1, 0, 3, 4, 2]
+[[1, 2, 3], [1, 2, 3, 4], [], [1, 2], [1]]
+sort 31 [[1, 2, 3], [1, 2, 3, 4], [], [1, 2], [1]]
+[1, 0, 3, 4, 2]
+[[1, 2, 3], [1, 2, 3, 4], [], [1, 2], [1]]
+undefined
+[, , , , , , , a, b, c]
+[, a, b]
+[, a, b]
+0
+undefined
+## Fake Array (Object with Array's methods)
 [type Function]
 5
 5: a:b:c:x:z
@@ -576,16 +583,18 @@ z
 6: z:y:a:b:c:x
 z
 6: y:a:b:c:x:x
-x,x,c,b,a,y
-6: x:x:c:b:a:y
-x:x:c:b:a:y:a:x,x,c,b,a,y
-6: x:x:c:b:a:y
-x,c
-6: x:x:c:b:a:y
-c,b,a
-5: x:x:i:j:y
-i,j,x,x,y
-5: i:j:x:x:y
+y
+1: y
+x,c,b,a,y
+5: x:c:b:a:y
+x:c:b:a:y:a:x,c,b,a,y
+5: x:c:b:a:y
+c,b
+5: x:c:b:a:y
+b,a,y
+4: x:c:i:j
+c,i,j,x
+4: c:i:j:x
 [object Object]
 4, 3
-[, , , , , , ]
+## Done
diff --git a/test/trace/array2-6.swf b/test/trace/array2-6.swf
index b9ab904..7cd43c8 100644
Binary files a/test/trace/array2-6.swf and b/test/trace/array2-6.swf differ
diff --git a/test/trace/array2-6.swf.trace b/test/trace/array2-6.swf.trace
index fc370f7..6d27db8 100644
--- a/test/trace/array2-6.swf.trace
+++ b/test/trace/array2-6.swf.trace
@@ -221,6 +221,7 @@ b
 [b, c]
 [1, [object Object], 3, 4]
 # Special cases
+undefined
 []
 []
 []
@@ -563,6 +564,12 @@ sort customfunc 30 [[1, 2, 3], [1, 2, 3, 4], [], [1, 2], [1]]
 sort customfunc 31 [[1, 2, 3], [1, 2, 3, 4], [], [1, 2], [1]]
 [1, 0, 3, 4, 2]
 [[1, 2, 3], [1, 2, 3, 4], [], [1, 2], [1]]
+undefined
+[, , , , , , , a, b, c]
+[, a, b]
+[, a, b]
+0
+undefined
 ## Fake Array (Object with Array's methods)
 [type Function]
 5
@@ -576,16 +583,18 @@ z
 6: z:y:a:b:c:x
 z
 6: y:a:b:c:x:x
-x,x,c,b,a,y
-6: x:x:c:b:a:y
-x:x:c:b:a:y:a:x,x,c,b,a,y
-6: x:x:c:b:a:y
-x,c
-6: x:x:c:b:a:y
-c,b,a
-5: x:x:i:j:y
-i,j,x,x,y
-5: i:j:x:x:y
+y
+1: y
+x,c,b,a,y
+5: x:c:b:a:y
+x:c:b:a:y:a:x,c,b,a,y
+5: x:c:b:a:y
+c,b
+5: x:c:b:a:y
+b,a,y
+4: x:c:i:j
+c,i,j,x
+4: c:i:j:x
 [object Object]
 4, 3
 ## Done
diff --git a/test/trace/array2-7.swf b/test/trace/array2-7.swf
index 15090b1..b188681 100644
Binary files a/test/trace/array2-7.swf and b/test/trace/array2-7.swf differ
diff --git a/test/trace/array2-7.swf.trace b/test/trace/array2-7.swf.trace
index 1ebe055..1ea3e0b 100644
--- a/test/trace/array2-7.swf.trace
+++ b/test/trace/array2-7.swf.trace
@@ -221,6 +221,7 @@ b
 [b, c]
 [1, [object Object], 3, 4]
 # Special cases
+undefined
 []
 []
 []
@@ -563,6 +564,12 @@ sort customfunc 30 [[1, 2, 3], [1, 2, 3, 4], [], [1, 2], [1]]
 sort customfunc 31 [[1, 2, 3], [1, 2, 3, 4], [], [1, 2], [1]]
 [1, 0, 3, 4, 2]
 [[1, 2, 3], [1, 2, 3, 4], [], [1, 2], [1]]
+undefined
+[a, b, c, undefined, undefined, undefined, undefined, undefined, undefined, undefined]
+[a, b, undefined]
+[a, b, undefined]
+0
+undefined
 ## Fake Array (Object with Array's methods)
 [type Function]
 5
@@ -576,16 +583,18 @@ z
 6: z:y:a:b:c:x
 z
 6: y:a:b:c:x:x
-x,x,c,b,a,y
-6: x:x:c:b:a:y
-x:x:c:b:a:y:a:x,x,c,b,a,y
-6: x:x:c:b:a:y
-x,c
-6: x:x:c:b:a:y
-c,b,a
-5: x:x:i:j:y
-i,j,x,x,y
-5: i:j:x:x:y
+y
+1: y
+x,c,b,a,y
+5: x:c:b:a:y
+x:c:b:a:y:a:x,c,b,a,y
+5: x:c:b:a:y
+c,b
+5: x:c:b:a:y
+b,a,y
+4: x:c:i:j
+c,i,j,x
+4: c:i:j:x
 [object Object]
 4, 3
 ## Done
diff --git a/test/trace/array2-8.swf b/test/trace/array2-8.swf
index 4b6910f..f2b37e0 100644
Binary files a/test/trace/array2-8.swf and b/test/trace/array2-8.swf differ
diff --git a/test/trace/array2-8.swf.trace b/test/trace/array2-8.swf.trace
index 1ebe055..1ea3e0b 100644
--- a/test/trace/array2-8.swf.trace
+++ b/test/trace/array2-8.swf.trace
@@ -221,6 +221,7 @@ b
 [b, c]
 [1, [object Object], 3, 4]
 # Special cases
+undefined
 []
 []
 []
@@ -563,6 +564,12 @@ sort customfunc 30 [[1, 2, 3], [1, 2, 3, 4], [], [1, 2], [1]]
 sort customfunc 31 [[1, 2, 3], [1, 2, 3, 4], [], [1, 2], [1]]
 [1, 0, 3, 4, 2]
 [[1, 2, 3], [1, 2, 3, 4], [], [1, 2], [1]]
+undefined
+[a, b, c, undefined, undefined, undefined, undefined, undefined, undefined, undefined]
+[a, b, undefined]
+[a, b, undefined]
+0
+undefined
 ## Fake Array (Object with Array's methods)
 [type Function]
 5
@@ -576,16 +583,18 @@ z
 6: z:y:a:b:c:x
 z
 6: y:a:b:c:x:x
-x,x,c,b,a,y
-6: x:x:c:b:a:y
-x:x:c:b:a:y:a:x,x,c,b,a,y
-6: x:x:c:b:a:y
-x,c
-6: x:x:c:b:a:y
-c,b,a
-5: x:x:i:j:y
-i,j,x,x,y
-5: i:j:x:x:y
+y
+1: y
+x,c,b,a,y
+5: x:c:b:a:y
+x:c:b:a:y:a:x,c,b,a,y
+5: x:c:b:a:y
+c,b
+5: x:c:b:a:y
+b,a,y
+4: x:c:i:j
+c,i,j,x
+4: c:i:j:x
 [object Object]
 4, 3
 ## Done
diff --git a/test/trace/array2.as b/test/trace/array2.as
index 4847af0..946b10e 100644
--- a/test/trace/array2.as
+++ b/test/trace/array2.as
@@ -8,7 +8,7 @@ function pretty (arr, lvl) {
   var i;
   var str = "[";
   for (i = 0; i < arr.length; i++) {
-    if (arr[i] != null && arr[i].constructor == Array) {
+    if (arr[i] instanceOf Array) {
       str = str + pretty (arr[i], lvl + 1);
     } else {
       str = str + arr[i];
@@ -21,7 +21,7 @@ function pretty (arr, lvl) {
 }
 
 function mytrace (arr) {
-  if (arr != null && arr.constructor == Array) {
+  if (arr instanceOf Array) {
     trace (pretty (arr, 0));
   } else {
     trace (arr);
@@ -407,6 +407,8 @@ mytrace (a);
 
 mytrace ("# Special cases");
 
+a = new Array (1, "b", "c", 4);		// no arguments
+mytrace (a.splice ());
 a = new Array ();			// empty array
 mytrace (a.splice (0));
 mytrace (a);
@@ -471,6 +473,45 @@ sortall (a, null, 0, Array.UNIQUESORT | Array.CASEINSENSITIVE);
 a = new Array ([1,2,3], [1,2,3,4], [], [1,2], [1]);
 sortall (a, compare_array_length, 0, 0);
 
+// indexed array with undefined values
+a = new Array ();
+a[0] = "a";
+a[2] = "b";
+a[3] = undefined;
+a[4] = "c";
+a.length = 10;
+var ret = c.sort (Array.RETURNINDEXEDARRAY);
+#if __SWF_VERSION__ <= 6
+mytrace (ret.slice (-3));
+#else
+mytrace (ret.slice (0, 3));
+#endif
+
+// array with undefined values
+a = new Array ();
+a[0] = "a";
+a[2] = "b";
+a[3] = undefined;
+a[4] = "c";
+a.length = 10;
+mytrace (a.sort ());
+
+// unique sort with one undefined values
+a = new Array ("a", "b");
+a.length = 3;
+mytrace (a.sort (Array.UNIQUESORT));
+
+a = new Array ("a", undefined, "b");
+mytrace (a.sort (Array.UNIQUESORT));
+
+a = new Array ("a", undefined, "b");
+a.length = 4;
+mytrace (a.sort (Array.UNIQUESORT));
+
+// sort with non-integer and non-object argument
+a = new Array ("b", "a", "c");
+mytrace (a.sort ("moi"));
+
 
 mytrace ("## Fake Array (Object with Array's methods)");
 
@@ -502,6 +543,11 @@ fake.length++;
 trace (fake.length + ": " + fake.join (":"));
 trace (fake.shift ());
 trace (fake.length + ": " + fake.join (":"));
+// shift on the last element
+fake.length = 1;
+trace (fake.shift ());
+trace (fake.length + ": " + fake.join (":"));
+fake.length = 5;
 
 trace (fake.reverse ());
 trace (fake.length + ": " + fake.join (":"));
commit e7ce8dac54b5ba1e7966bca46f74a27ff59225d2
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date:   Thu Dec 20 12:07:45 2007 +0200

    Expand array-no-object test

diff --git a/test/trace/array-no-object-5.swf b/test/trace/array-no-object-5.swf
index a711a5e..e767b6a 100644
Binary files a/test/trace/array-no-object-5.swf and b/test/trace/array-no-object-5.swf differ
diff --git a/test/trace/array-no-object-5.swf.trace b/test/trace/array-no-object-5.swf.trace
index 8542eaa..d8ec7b4 100644
--- a/test/trace/array-no-object-5.swf.trace
+++ b/test/trace/array-no-object-5.swf.trace
@@ -2,7 +2,13 @@ Before deleting Array
 1,2
 undefined
 2
+1,2
+undefined
+2
 After deleting Array
 [type Object]
 undefined
 2
+undefined
+undefined
+undefined
diff --git a/test/trace/array-no-object-6.swf b/test/trace/array-no-object-6.swf
index 1abf021..ddcaba0 100644
Binary files a/test/trace/array-no-object-6.swf and b/test/trace/array-no-object-6.swf differ
diff --git a/test/trace/array-no-object-6.swf.trace b/test/trace/array-no-object-6.swf.trace
index 8542eaa..3dbb110 100644
--- a/test/trace/array-no-object-6.swf.trace
+++ b/test/trace/array-no-object-6.swf.trace
@@ -2,7 +2,13 @@ Before deleting Array
 1,2
 undefined
 2
+1,2
+[type Function]
+2
 After deleting Array
 [type Object]
 undefined
 2
+undefined
+undefined
+undefined
diff --git a/test/trace/array-no-object-7.swf b/test/trace/array-no-object-7.swf
index e4b0920..408d64e 100644
Binary files a/test/trace/array-no-object-7.swf and b/test/trace/array-no-object-7.swf differ
diff --git a/test/trace/array-no-object-7.swf.trace b/test/trace/array-no-object-7.swf.trace
index 8542eaa..3dbb110 100644
--- a/test/trace/array-no-object-7.swf.trace
+++ b/test/trace/array-no-object-7.swf.trace
@@ -2,7 +2,13 @@ Before deleting Array
 1,2
 undefined
 2
+1,2
+[type Function]
+2
 After deleting Array
 [type Object]
 undefined
 2
+undefined
+undefined
+undefined
diff --git a/test/trace/array-no-object-8.swf b/test/trace/array-no-object-8.swf
index 34ee36c..3360932 100644
Binary files a/test/trace/array-no-object-8.swf and b/test/trace/array-no-object-8.swf differ
diff --git a/test/trace/array-no-object-8.swf.trace b/test/trace/array-no-object-8.swf.trace
index 8542eaa..3dbb110 100644
--- a/test/trace/array-no-object-8.swf.trace
+++ b/test/trace/array-no-object-8.swf.trace
@@ -2,7 +2,13 @@ Before deleting Array
 1,2
 undefined
 2
+1,2
+[type Function]
+2
 After deleting Array
 [type Object]
 undefined
 2
+undefined
+undefined
+undefined
diff --git a/test/trace/array-no-object.as b/test/trace/array-no-object.as
index 33f3dbb..9864ecc 100644
--- a/test/trace/array-no-object.as
+++ b/test/trace/array-no-object.as
@@ -1,17 +1,29 @@
 // makeswf -v 7 -r 1 -o array-no-object-7.swf array-no-object.as
 
 trace ("Before deleting Array");
+
 var a = [1, 2];
 trace (a);
 trace (a.__constructor__);
 trace (a.length);
 
-delete Array;
-
-trace ("After deleting Array");
-var b = [1, 2];
+var b = new Array (1, 2);
 trace (b);
 trace (b.__constructor__);
 trace (b.length);
 
+delete Array;
+
+trace ("After deleting Array");
+
+var c = [1, 2];
+trace (c);
+trace (c.__constructor__);
+trace (c.length);
+
+var d = new Array (1, 2);
+trace (d);
+trace (d.__constructor__);
+trace (d.length);
+
 loadMovie ("FSCommand:quit", "");
commit b10e4a3c1c7147664c2cec1d78eec188428864bf
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date:   Thu Dec 20 11:58:22 2007 +0200

    Fix an error in UNIQUESORT when there is exactly one undefined value

diff --git a/libswfdec/swfdec_as_array.c b/libswfdec/swfdec_as_array.c
index 2c89241..ee2c0a1 100644
--- a/libswfdec/swfdec_as_array.c
+++ b/libswfdec/swfdec_as_array.c
@@ -1127,8 +1127,6 @@ swfdec_as_array_foreach_sort_compare_undefined (SwfdecAsObject *object,
   if (SWFDEC_AS_VALUE_IS_UNDEFINED (value))
     return TRUE;
 
-  fdata->defined_values++;
-
   // when testing for uniquesort the custom compare function is NOT used
   if (swfdec_as_array_sort_compare (object->context, value, &fdata->undefined,
 	fdata->options, NULL, fdata->fields) == 0)
@@ -1239,7 +1237,7 @@ swfdec_as_array_do_sort (SwfdecAsObject *object, gint32 options,
       fdata.defined_values < fdata.length)
   {
     // uniquesort used, and we have exactly one undefined value test if
-    // anything equeals to that
+    // anything equals to that
     if (!swfdec_as_object_foreach (object,
 	  swfdec_as_array_foreach_sort_compare_undefined, &fdata))
     {
commit e1250ed18cda1b59c1582d13e8d4af07a4272f5d
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date:   Thu Dec 20 11:45:48 2007 +0200

    Minor cleanups to the array code

diff --git a/libswfdec/swfdec_as_array.c b/libswfdec/swfdec_as_array.c
index 151b159..2c89241 100644
--- a/libswfdec/swfdec_as_array.c
+++ b/libswfdec/swfdec_as_array.c
@@ -181,8 +181,8 @@ swfdec_as_array_remove_range (SwfdecAsArray *array, gint32 start_index,
 
   // to avoid foreach loop, use special case when removing just one variable
   if (num == 1) {
-    const char *var = swfdec_as_double_to_string (object->context, start_index);
-    swfdec_as_object_delete_variable (object, var);
+    swfdec_as_object_delete_variable (object,
+	swfdec_as_double_to_string (object->context, start_index));
   } else {
     ForeachRemoveRangeData fdata = { start_index, num };
     swfdec_as_object_foreach_remove (object,
@@ -482,13 +482,15 @@ swfdec_as_array_append_array_range (SwfdecAsArray *array_to,
   fdata.start_index = start_index;
   fdata.num = num;
 
-  swfdec_as_array_set_length_object (fdata.object_to, fdata.offset + fdata.num);
+  swfdec_as_array_set_length_object (fdata.object_to,
+      fdata.offset + fdata.num);
   swfdec_as_object_foreach (object_from,
       swfdec_as_array_foreach_append_array_range, &fdata);
 }
 
 static void
-swfdec_as_array_append_array (SwfdecAsArray *array_to, SwfdecAsObject *object_from)
+swfdec_as_array_append_array (SwfdecAsArray *array_to,
+    SwfdecAsObject *object_from)
 {
   swfdec_as_array_append_array_range (array_to, object_from, 0,
       swfdec_as_array_length (object_from));
@@ -652,8 +654,8 @@ swfdec_as_array_do_push (SwfdecAsContext *cx, SwfdecAsObject *object,
 
 SWFDEC_AS_NATIVE (252, 2, swfdec_as_array_do_pop)
 void
-swfdec_as_array_do_pop (SwfdecAsContext *cx, SwfdecAsObject *object, guint argc,
-    SwfdecAsValue *argv, SwfdecAsValue *ret)
+swfdec_as_array_do_pop (SwfdecAsContext *cx, SwfdecAsObject *object,
+    guint argc, SwfdecAsValue *argv, SwfdecAsValue *ret)
 {
   gint32 length;
   const char *var;
@@ -772,8 +774,8 @@ swfdec_as_array_reverse (SwfdecAsContext *cx, SwfdecAsObject *object,
 
 SWFDEC_AS_NATIVE (252, 3, swfdec_as_array_concat)
 void
-swfdec_as_array_concat (SwfdecAsContext *cx, SwfdecAsObject *object, guint argc,
-    SwfdecAsValue *argv, SwfdecAsValue *ret)
+swfdec_as_array_concat (SwfdecAsContext *cx, SwfdecAsObject *object,
+    guint argc, SwfdecAsValue *argv, SwfdecAsValue *ret)
 {
   guint j;
   SwfdecAsObject *object_new;
@@ -814,7 +816,6 @@ swfdec_as_array_slice (SwfdecAsContext *cx, SwfdecAsObject *object, guint argc,
     SwfdecAsValue *argv, SwfdecAsValue *ret)
 {
   gint32 length, start_index, num;
-  SwfdecAsObject *object_new;
   SwfdecAsArray *array_new;
 
   if (object == NULL)
@@ -841,23 +842,21 @@ swfdec_as_array_slice (SwfdecAsContext *cx, SwfdecAsObject *object, guint argc,
     num = length - start_index;
   }
 
-  object_new = swfdec_as_array_new (cx);
-  if (object_new == NULL)
+  array_new = SWFDEC_AS_ARRAY (swfdec_as_array_new (cx));
+  if (array_new == NULL)
     return;
-  array_new = SWFDEC_AS_ARRAY (object_new);
 
   swfdec_as_array_append_array_range (array_new, object, start_index, num);
 
-  SWFDEC_AS_VALUE_SET_OBJECT (ret, object_new);
+  SWFDEC_AS_VALUE_SET_OBJECT (ret, SWFDEC_AS_OBJECT (array_new));
 }
 
 SWFDEC_AS_NATIVE (252, 8, swfdec_as_array_splice)
 void
-swfdec_as_array_splice (SwfdecAsContext *cx, SwfdecAsObject *object, guint argc,
-    SwfdecAsValue *argv, SwfdecAsValue *ret)
+swfdec_as_array_splice (SwfdecAsContext *cx, SwfdecAsObject *object,
+    guint argc, SwfdecAsValue *argv, SwfdecAsValue *ret)
 {
   gint32 length, start_index, num_remove, num_add;
-  SwfdecAsObject *object_new;
   SwfdecAsArray *array_new;
 
   if (object == NULL || argc == 0)
@@ -879,10 +878,9 @@ swfdec_as_array_splice (SwfdecAsContext *cx, SwfdecAsObject *object, guint argc,
 
   num_add = (argc > 2 ? argc - 2 : 0);
 
-  object_new = swfdec_as_array_new (cx);
-  if (object_new == NULL)
+  array_new = SWFDEC_AS_ARRAY (swfdec_as_array_new (cx));
+  if (array_new == NULL)
     return;
-  array_new = SWFDEC_AS_ARRAY (object_new);
 
   swfdec_as_array_append_array_range (array_new, object, start_index,
       num_remove);
@@ -893,7 +891,7 @@ swfdec_as_array_splice (SwfdecAsContext *cx, SwfdecAsObject *object, guint argc,
   if (argc > 2)
     swfdec_as_array_set_range (object, start_index, argc - 2, argv + 2);
 
-  SWFDEC_AS_VALUE_SET_OBJECT (ret, object_new);
+  SWFDEC_AS_VALUE_SET_OBJECT (ret, SWFDEC_AS_OBJECT (array_new));
 }
 
 // Sorting
@@ -1045,8 +1043,6 @@ swfdec_as_array_foreach_sort_rename (SwfdecAsObject *object,
   }
 
   g_assert_not_reached ();
-
-  return variable;
 }
 
 // fills fdata->object_new array using indexes based on the fdata->order
@@ -1083,8 +1079,6 @@ swfdec_as_array_foreach_sort_indexedarray (SwfdecAsObject *object,
   }
 
   g_assert_not_reached ();
-
-  return TRUE;
 }
 
 // sets undefined values in the fdata->object_new array to indexes of undefined
@@ -1201,8 +1195,6 @@ swfdec_as_array_foreach_sort_populate (SwfdecAsObject *object,
   }
 
   g_assert_not_reached ();
-
-  return TRUE;
 }
 
 static void
@@ -1261,9 +1253,9 @@ swfdec_as_array_do_sort (SwfdecAsObject *object, gint32 options,
     // make a new array and fill it with numbers based on the order
     fdata.object_new = swfdec_as_array_new (object->context);
     if (fdata.object_new != NULL) {
-      swfdec_as_object_foreach (object, swfdec_as_array_foreach_sort_indexedarray,
-	 &fdata);
-      // we only have the elements that have been set so far, fill in the blanks
+      swfdec_as_object_foreach (object,
+	  swfdec_as_array_foreach_sort_indexedarray, &fdata);
+      // we have values that have been set now, fill in the undefined values
       swfdec_as_array_sort_set_undefined_indexedarray (object, &fdata);
       SWFDEC_AS_VALUE_SET_OBJECT (ret, fdata.object_new);
     }
@@ -1313,8 +1305,8 @@ swfdec_as_array_sort (SwfdecAsContext *cx, SwfdecAsObject *object, guint argc,
 
 SWFDEC_AS_NATIVE (252, 12, swfdec_as_array_sortOn)
 void
-swfdec_as_array_sortOn (SwfdecAsContext *cx, SwfdecAsObject *object, guint argc,
-    SwfdecAsValue *argv, SwfdecAsValue *ret)
+swfdec_as_array_sortOn (SwfdecAsContext *cx, SwfdecAsObject *object,
+    guint argc, SwfdecAsValue *argv, SwfdecAsValue *ret)
 {
   const char **fields;
   gint32 options;
@@ -1345,7 +1337,8 @@ swfdec_as_array_sortOn (SwfdecAsContext *cx, SwfdecAsObject *object, guint argc,
       swfdec_as_array_get_value (SWFDEC_AS_ARRAY (array), i, &val);
       if (SWFDEC_AS_VALUE_IS_OBJECT (&val) &&
 	  SWFDEC_IS_AS_STRING (SWFDEC_AS_VALUE_GET_OBJECT (&val))) {
-	fields[i] = SWFDEC_AS_STRING (SWFDEC_AS_VALUE_GET_OBJECT (&val))->string;
+	fields[i] =
+	  SWFDEC_AS_STRING (SWFDEC_AS_VALUE_GET_OBJECT (&val))->string;
       } else {
 	fields[i] = swfdec_as_value_to_string (cx, &val);
       }
@@ -1385,7 +1378,8 @@ swfdec_as_array_construct (SwfdecAsContext *cx, SwfdecAsObject *object,
     swfdec_as_object_add (object, cx, sizeof (SwfdecAsArray));
     swfdec_as_object_get_variable (cx->global, SWFDEC_AS_STR_Array, &val);
     if (SWFDEC_AS_VALUE_IS_OBJECT (&val)) {
-      swfdec_as_object_set_constructor (object, SWFDEC_AS_VALUE_GET_OBJECT (&val));
+      swfdec_as_object_set_constructor (object,
+	  SWFDEC_AS_VALUE_GET_OBJECT (&val));
     } else {
       SWFDEC_INFO ("\"Array\" is not an object");
     }
commit c87b9a185c21a265ee1736ed8f18bb2484834065
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date:   Thu Dec 20 11:34:25 2007 +0200

    Fix Array.sort with RETURNINDEXEDARRAY when some values were set to undefined

diff --git a/libswfdec/swfdec_as_array.c b/libswfdec/swfdec_as_array.c
index 476e401..151b159 100644
--- a/libswfdec/swfdec_as_array.c
+++ b/libswfdec/swfdec_as_array.c
@@ -1030,7 +1030,7 @@ swfdec_as_array_foreach_sort_rename (SwfdecAsObject *object,
     return variable;
 
   if (SWFDEC_AS_VALUE_IS_UNDEFINED (value))
-    value = &fdata->undefined;
+    return NULL;
 
   for (i = 0; i < fdata->order_size; i++) {
     if (fdata->order[i] == value) {
@@ -1108,7 +1108,8 @@ swfdec_as_array_sort_set_undefined_indexedarray (SwfdecAsObject *object,
     do {
       var = swfdec_as_double_to_string (object->context, num);
       num++;
-    } while (swfdec_as_object_get_variable (object, var, &val));
+    } while (swfdec_as_object_get_variable (object, var, &val) &&
+	!SWFDEC_AS_VALUE_IS_UNDEFINED (&val));
     var = swfdec_as_double_to_string (fdata->object_new->context, idx + i);
     SWFDEC_AS_VALUE_SET_INT (&val, num - 1);
     swfdec_as_object_set_variable (fdata->object_new, var, &val);
commit 071472ec92d7dfa34931047b990998fa5aa3f883
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date:   Thu Dec 20 10:28:26 2007 +0200

    Make Array.splice require at least one argument

diff --git a/libswfdec/swfdec_as_array.c b/libswfdec/swfdec_as_array.c
index e209642..476e401 100644
--- a/libswfdec/swfdec_as_array.c
+++ b/libswfdec/swfdec_as_array.c
@@ -860,19 +860,15 @@ swfdec_as_array_splice (SwfdecAsContext *cx, SwfdecAsObject *object, guint argc,
   SwfdecAsObject *object_new;
   SwfdecAsArray *array_new;
 
-  if (object == NULL)
+  if (object == NULL || argc == 0)
     return;
 
   length = swfdec_as_array_length (object);
 
-  if (argc > 0) {
-    start_index = swfdec_as_value_to_integer (cx, &argv[0]);
-    if (start_index < 0)
-      start_index = length + start_index;
-    start_index = CLAMP (start_index, 0, length);
-  } else {
-    start_index = 0;
-  }
+  start_index = swfdec_as_value_to_integer (cx, &argv[0]);
+  if (start_index < 0)
+    start_index = length + start_index;
+  start_index = CLAMP (start_index, 0, length);
 
   if (argc > 1) {
     num_remove = CLAMP (swfdec_as_value_to_integer (cx, &argv[1]), 0,
commit 1e2ec1ae45ee110ddfe25adc9da30f26b3c3bdde
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date:   Thu Dec 20 10:12:55 2007 +0200

    Add a test to see what [] does when _global.Array is missing

diff --git a/test/trace/Makefile.am b/test/trace/Makefile.am
index fe46006..774f5b7 100644
--- a/test/trace/Makefile.am
+++ b/test/trace/Makefile.am
@@ -121,6 +121,15 @@ EXTRA_DIST = \
 	array-new-override-7.swf.trace \
 	array-new-override-8.swf \
 	array-new-override-8.swf.trace \
+	array-no-object.as \
+	array-no-object-5.swf \
+	array-no-object-5.swf.trace \
+	array-no-object-6.swf \
+	array-no-object-6.swf.trace \
+	array-no-object-7.swf \
+	array-no-object-7.swf.trace \
+	array-no-object-8.swf \
+	array-no-object-8.swf.trace \
 	array-properties.as \
 	array-properties-5.swf \
 	array-properties-5.swf.trace \
diff --git a/test/trace/array-no-object-5.swf b/test/trace/array-no-object-5.swf
new file mode 100644
index 0000000..a711a5e
Binary files /dev/null and b/test/trace/array-no-object-5.swf differ
diff --git a/test/trace/array-no-object-5.swf.trace b/test/trace/array-no-object-5.swf.trace
new file mode 100644
index 0000000..8542eaa
--- /dev/null
+++ b/test/trace/array-no-object-5.swf.trace
@@ -0,0 +1,8 @@
+Before deleting Array
+1,2
+undefined
+2
+After deleting Array
+[type Object]
+undefined
+2
diff --git a/test/trace/array-no-object-6.swf b/test/trace/array-no-object-6.swf
new file mode 100644
index 0000000..1abf021
Binary files /dev/null and b/test/trace/array-no-object-6.swf differ
diff --git a/test/trace/array-no-object-6.swf.trace b/test/trace/array-no-object-6.swf.trace
new file mode 100644
index 0000000..8542eaa
--- /dev/null
+++ b/test/trace/array-no-object-6.swf.trace
@@ -0,0 +1,8 @@
+Before deleting Array
+1,2
+undefined
+2
+After deleting Array
+[type Object]
+undefined
+2
diff --git a/test/trace/array-no-object-7.swf b/test/trace/array-no-object-7.swf
new file mode 100644
index 0000000..e4b0920
Binary files /dev/null and b/test/trace/array-no-object-7.swf differ
diff --git a/test/trace/array-no-object-7.swf.trace b/test/trace/array-no-object-7.swf.trace
new file mode 100644
index 0000000..8542eaa
--- /dev/null
+++ b/test/trace/array-no-object-7.swf.trace
@@ -0,0 +1,8 @@
+Before deleting Array
+1,2
+undefined
+2
+After deleting Array
+[type Object]
+undefined
+2
diff --git a/test/trace/array-no-object-8.swf b/test/trace/array-no-object-8.swf
new file mode 100644
index 0000000..34ee36c
Binary files /dev/null and b/test/trace/array-no-object-8.swf differ
diff --git a/test/trace/array-no-object-8.swf.trace b/test/trace/array-no-object-8.swf.trace
new file mode 100644
index 0000000..8542eaa
--- /dev/null
+++ b/test/trace/array-no-object-8.swf.trace
@@ -0,0 +1,8 @@
+Before deleting Array
+1,2
+undefined
+2
+After deleting Array
+[type Object]
+undefined
+2
diff --git a/test/trace/array-no-object.as b/test/trace/array-no-object.as
new file mode 100644
index 0000000..33f3dbb
--- /dev/null
+++ b/test/trace/array-no-object.as
@@ -0,0 +1,17 @@
+// makeswf -v 7 -r 1 -o array-no-object-7.swf array-no-object.as
+
+trace ("Before deleting Array");
+var a = [1, 2];
+trace (a);
+trace (a.__constructor__);
+trace (a.length);
+
+delete Array;
+
+trace ("After deleting Array");
+var b = [1, 2];
+trace (b);
+trace (b.__constructor__);
+trace (b.length);
+
+loadMovie ("FSCommand:quit", "");
commit 3c2cbe91f05ec4b127899b649cf109b7444b36fb
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date:   Thu Dec 20 10:11:15 2007 +0200

    Don't fail in swfdec_as_array_new if _global.Array is missing

diff --git a/libswfdec/swfdec_as_array.c b/libswfdec/swfdec_as_array.c
index 0da4f48..e209642 100644
--- a/libswfdec/swfdec_as_array.c
+++ b/libswfdec/swfdec_as_array.c
@@ -569,9 +569,8 @@ swfdec_as_array_new (SwfdecAsContext *context)
   ret = g_object_new (SWFDEC_TYPE_AS_ARRAY, NULL);
   swfdec_as_object_add (ret, context, sizeof (SwfdecAsArray));
   swfdec_as_object_get_variable (context->global, SWFDEC_AS_STR_Array, &val);
-  if (!SWFDEC_AS_VALUE_IS_OBJECT (&val))
-    return NULL;
-  swfdec_as_object_set_constructor (ret, SWFDEC_AS_VALUE_GET_OBJECT (&val));
+  if (SWFDEC_AS_VALUE_IS_OBJECT (&val))
+    swfdec_as_object_set_constructor (ret, SWFDEC_AS_VALUE_GET_OBJECT (&val));
 
   swfdec_as_array_set_length (SWFDEC_AS_ARRAY (ret), 0);
 


More information about the Swfdec mailing list