[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>&</a>
+0
+Testing: <a A='&'/>
+<a A="&" />
+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"'e&s;:''at
+te&lt;st
+undefined
+ma'ny
+hmm&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=&
+"="&&=&&&=&&'='&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