[Swfdec] 12 commits - libswfdec/swfdec_as_interpret.c libswfdec/swfdec_as_strings.c libswfdec/swfdec_loader.c libswfdec/swfdec_loader_internal.h libswfdec/swfdec_load_object_as.c libswfdec/swfdec_load_object.c libswfdec/swfdec_load_object.h libswfdec/swfdec_movie.c libswfdec/swfdec_movie.h libswfdec/swfdec_sprite_movie_as.c test/trace

Pekka Lampila medar at kemper.freedesktop.org
Tue Nov 27 06:47:44 PST 2007


 libswfdec/swfdec_as_interpret.c                       |    3 
 libswfdec/swfdec_as_strings.c                         |   14 
 libswfdec/swfdec_load_object.c                        |  178 +---
 libswfdec/swfdec_load_object.h                        |   21 
 libswfdec/swfdec_load_object_as.c                     |   71 +
 libswfdec/swfdec_loader.c                             |   75 +
 libswfdec/swfdec_loader_internal.h                    |    2 
 libswfdec/swfdec_movie.c                              |   69 -
 libswfdec/swfdec_movie.h                              |   15 
 libswfdec/swfdec_sprite_movie_as.c                    |   60 +
 test/trace/Makefile.am                                |   27 
 test/trace/accessibility-properties-5.swf             |binary
 test/trace/accessibility-properties-6.swf             |binary
 test/trace/accessibility-properties-7.swf             |binary
 test/trace/accessibility-properties-8.swf             |binary
 test/trace/array-properties-5.swf                     |binary
 test/trace/array-properties-6.swf                     |binary
 test/trace/array-properties-7.swf                     |binary
 test/trace/array-properties-8.swf                     |binary
 test/trace/asbroadcaster-properties-5.swf             |binary
 test/trace/asbroadcaster-properties-6.swf             |binary
 test/trace/asbroadcaster-properties-7.swf             |binary
 test/trace/asbroadcaster-properties-8.swf             |binary
 test/trace/asfunction-properties-5.swf                |binary
 test/trace/asfunction-properties-6.swf                |binary
 test/trace/asfunction-properties-7.swf                |binary
 test/trace/asfunction-properties-8.swf                |binary
 test/trace/assetnative-5.swf                          |binary
 test/trace/assetnative-6.swf                          |binary
 test/trace/assetnative-7.swf                          |binary
 test/trace/assetnative-8.swf                          |binary
 test/trace/bevel-filter-properties-5.swf              |binary
 test/trace/bevel-filter-properties-6.swf              |binary
 test/trace/bevel-filter-properties-7.swf              |binary
 test/trace/bevel-filter-properties-8.swf              |binary
 test/trace/bevel-filter-properties.as                 |    6 
 test/trace/bitmap-filter-properties-5.swf             |binary
 test/trace/bitmap-filter-properties-6.swf             |binary
 test/trace/bitmap-filter-properties-7.swf             |binary
 test/trace/bitmap-filter-properties-8.swf             |binary
 test/trace/bitmap-filter-properties.as                |    6 
 test/trace/blur-filter-properties-5.swf               |binary
 test/trace/blur-filter-properties-6.swf               |binary
 test/trace/blur-filter-properties-7.swf               |binary
 test/trace/blur-filter-properties-8.swf               |binary
 test/trace/blur-filter-properties.as                  |    6 
 test/trace/boolean-properties-5.swf                   |binary
 test/trace/boolean-properties-6.swf                   |binary
 test/trace/boolean-properties-7.swf                   |binary
 test/trace/boolean-properties-8.swf                   |binary
 test/trace/button-properties-5.swf                    |binary
 test/trace/button-properties-6.swf                    |binary
 test/trace/button-properties-7.swf                    |binary
 test/trace/button-properties-8.swf                    |binary
 test/trace/camera-properties-5.swf                    |binary
 test/trace/camera-properties-6.swf                    |binary
 test/trace/camera-properties-7.swf                    |binary
 test/trace/camera-properties-8.swf                    |binary
 test/trace/color-matrix-filter-properties-5.swf       |binary
 test/trace/color-matrix-filter-properties-6.swf       |binary
 test/trace/color-matrix-filter-properties-7.swf       |binary
 test/trace/color-matrix-filter-properties-8.swf       |binary
 test/trace/color-matrix-filter-properties.as          |    6 
 test/trace/color-properties-5.swf                     |binary
 test/trace/color-properties-6.swf                     |binary
 test/trace/color-properties-7.swf                     |binary
 test/trace/color-properties-8.swf                     |binary
 test/trace/color-transform-properties-5.swf           |binary
 test/trace/color-transform-properties-6.swf           |binary
 test/trace/color-transform-properties-7.swf           |binary
 test/trace/color-transform-properties-8.swf           |binary
 test/trace/color-transform-properties.as              |    6 
 test/trace/construct-properties-5.swf                 |binary
 test/trace/construct-properties-6.swf                 |binary
 test/trace/construct-properties-7.swf                 |binary
 test/trace/construct-properties-8.swf                 |binary
 test/trace/context-menu-item-properties-5.swf         |binary
 test/trace/context-menu-item-properties-6.swf         |binary
 test/trace/context-menu-item-properties-7.swf         |binary
 test/trace/context-menu-item-properties-8.swf         |binary
 test/trace/context-menu-properties-5.swf              |binary
 test/trace/context-menu-properties-6.swf              |binary
 test/trace/context-menu-properties-7.swf              |binary
 test/trace/context-menu-properties-8.swf              |binary
 test/trace/convolution-filter-properties-5.swf        |binary
 test/trace/convolution-filter-properties-6.swf        |binary
 test/trace/convolution-filter-properties-7.swf        |binary
 test/trace/convolution-filter-properties-8.swf        |binary
 test/trace/convolution-filter-properties.as           |    6 
 test/trace/date-properties-5.swf                      |binary
 test/trace/date-properties-6.swf                      |binary
 test/trace/date-properties-7.swf                      |binary
 test/trace/date-properties-8.swf                      |binary
 test/trace/displacement-map-filter-properties-5.swf   |binary
 test/trace/displacement-map-filter-properties-6.swf   |binary
 test/trace/displacement-map-filter-properties-7.swf   |binary
 test/trace/displacement-map-filter-properties-8.swf   |binary
 test/trace/displacement-map-filter-properties.as      |    6 
 test/trace/drop-shadow-filter-properties-5.swf        |binary
 test/trace/drop-shadow-filter-properties-6.swf        |binary
 test/trace/drop-shadow-filter-properties-7.swf        |binary
 test/trace/drop-shadow-filter-properties-8.swf        |binary
 test/trace/drop-shadow-filter-properties.as           |    6 
 test/trace/error-properties-5.swf                     |binary
 test/trace/error-properties-6.swf                     |binary
 test/trace/error-properties-7.swf                     |binary
 test/trace/error-properties-8.swf                     |binary
 test/trace/file-reference-list-properties-5.swf       |binary
 test/trace/file-reference-list-properties-7.swf       |binary
 test/trace/file-reference-list-properties-8.swf       |binary
 test/trace/file-reference-list-properties.as          |    6 
 test/trace/file-reference-properties-5.swf            |binary
 test/trace/file-reference-properties-7.swf            |binary
 test/trace/file-reference-properties-8.swf            |binary
 test/trace/file-reference-properties.as               |    6 
 test/trace/function-properties-5.swf                  |binary
 test/trace/function-properties-6.swf                  |binary
 test/trace/function-properties-7.swf                  |binary
 test/trace/function-properties-8.swf                  |binary
 test/trace/global-function-properties-5.swf           |binary
 test/trace/global-function-properties-5.swf.trace     |    2 
 test/trace/global-function-properties-6.swf           |binary
 test/trace/global-function-properties-7.swf           |binary
 test/trace/global-function-properties-8.swf           |binary
 test/trace/global-function-properties-8.swf.trace     |   47 +
 test/trace/global-variable-properties-5.swf           |binary
 test/trace/global-variable-properties-6.swf           |binary
 test/trace/global-variable-properties-7.swf           |binary
 test/trace/global-variable-properties-8.swf           |binary
 test/trace/global-variable-properties-8.swf.trace     |    3 
 test/trace/glow-filter-properties-5.swf               |binary
 test/trace/glow-filter-properties-6.swf               |binary
 test/trace/glow-filter-properties-7.swf               |binary
 test/trace/glow-filter-properties-8.swf               |binary
 test/trace/glow-filter-properties.as                  |    6 
 test/trace/gradient-bevel-filter-properties-5.swf     |binary
 test/trace/gradient-bevel-filter-properties-6.swf     |binary
 test/trace/gradient-bevel-filter-properties-7.swf     |binary
 test/trace/gradient-bevel-filter-properties-8.swf     |binary
 test/trace/gradient-bevel-filter-properties.as        |    6 
 test/trace/gradient-glow-filter-properties-5.swf      |binary
 test/trace/gradient-glow-filter-properties-6.swf      |binary
 test/trace/gradient-glow-filter-properties-7.swf      |binary
 test/trace/gradient-glow-filter-properties-8.swf      |binary
 test/trace/gradient-glow-filter-properties.as         |    6 
 test/trace/key-properties-5.swf                       |binary
 test/trace/key-properties-6.swf                       |binary
 test/trace/key-properties-7.swf                       |binary
 test/trace/key-properties-8.swf                       |binary
 test/trace/loadvariables-target-5.swf                 |binary
 test/trace/loadvariables-target-5.swf.trace           |    2 
 test/trace/loadvariables-target-6.swf                 |binary
 test/trace/loadvariables-target-6.swf.trace           |    2 
 test/trace/loadvariables-target-7.swf                 |binary
 test/trace/loadvariables-target-7.swf.trace           |    2 
 test/trace/loadvariables-target-8.swf                 |binary
 test/trace/loadvariables-target-8.swf.trace           |    2 
 test/trace/loadvariables-target.as                    |   24 
 test/trace/loadvars-properties-5.swf                  |binary
 test/trace/loadvars-properties-6.swf                  |binary
 test/trace/loadvars-properties-7.swf                  |binary
 test/trace/loadvars-properties-8.swf                  |binary
 test/trace/local-connection-properties-5.swf          |binary
 test/trace/local-connection-properties-6.swf          |binary
 test/trace/local-connection-properties-7.swf          |binary
 test/trace/local-connection-properties-8.swf          |binary
 test/trace/math-properties-5.swf                      |binary
 test/trace/math-properties-6.swf                      |binary
 test/trace/math-properties-7.swf                      |binary
 test/trace/math-properties-8.swf                      |binary
 test/trace/math-properties-8.swf.trace                |   65 +
 test/trace/microphone-properties-5.swf                |binary
 test/trace/microphone-properties-6.swf                |binary
 test/trace/microphone-properties-7.swf                |binary
 test/trace/microphone-properties-8.swf                |binary
 test/trace/mouse-properties-5.swf                     |binary
 test/trace/mouse-properties-6.swf                     |binary
 test/trace/mouse-properties-7.swf                     |binary
 test/trace/mouse-properties-8.swf                     |binary
 test/trace/mouse-properties-8.swf.trace               |   18 
 test/trace/movieclip-get-swf-version-5.swf            |binary
 test/trace/movieclip-get-swf-version-6.swf            |binary
 test/trace/movieclip-get-swf-version-7.swf            |binary
 test/trace/movieclip-get-swf-version-8.swf            |binary
 test/trace/movieclip-get-swf-version-load-5.swf       |binary
 test/trace/movieclip-get-swf-version-load-5.swf.trace |    5 
 test/trace/movieclip-get-swf-version-load-6.swf       |binary
 test/trace/movieclip-get-swf-version-load-6.swf.trace |    5 
 test/trace/movieclip-get-swf-version-load-7.swf       |binary
 test/trace/movieclip-get-swf-version-load-7.swf.trace |    5 
 test/trace/movieclip-get-swf-version-load-8.swf       |binary
 test/trace/movieclip-get-swf-version-load-8.swf.trace |    5 
 test/trace/movieclip-get-swf-version-load.as          |    7 
 test/trace/movieclip-get-swf-version.as               |    3 
 test/trace/moviecliploader-properties-5.swf           |binary
 test/trace/moviecliploader-properties-6.swf           |binary
 test/trace/moviecliploader-properties-7.swf           |binary
 test/trace/moviecliploader-properties-8.swf           |binary
 test/trace/number-properties-5.swf                    |binary
 test/trace/number-properties-6.swf                    |binary
 test/trace/number-properties-7.swf                    |binary
 test/trace/number-properties-8.swf                    |binary
 test/trace/object-properties-5.swf                    |binary
 test/trace/object-properties-5.swf.trace              |    4 
 test/trace/object-properties-6.swf                    |binary
 test/trace/object-properties-7.swf                    |binary
 test/trace/object-properties-8.swf                    |binary
 test/trace/object-properties-8.swf.trace              |   44 +
 test/trace/point-properties-5.swf                     |binary
 test/trace/point-properties-7.swf                     |binary
 test/trace/point-properties-8.swf                     |binary
 test/trace/point-properties.as                        |    6 
 test/trace/print-job-properties-5.swf                 |binary
 test/trace/print-job-properties-6.swf                 |binary
 test/trace/print-job-properties-7.swf                 |binary
 test/trace/print-job-properties-8.swf                 |binary
 test/trace/propflags-5.swf                            |binary
 test/trace/propflags-6.swf                            |binary
 test/trace/propflags-7.swf                            |binary
 test/trace/propflags-8.swf                            |binary
 test/trace/remote-lso-usage-properties-5.swf          |binary
 test/trace/remote-lso-usage-properties-6.swf          |binary
 test/trace/remote-lso-usage-properties-7.swf          |binary
 test/trace/remote-lso-usage-properties-8.swf          |binary
 test/trace/selection-properties-5.swf                 |binary
 test/trace/selection-properties-6.swf                 |binary
 test/trace/selection-properties-7.swf                 |binary
 test/trace/selection-properties-8.swf                 |binary
 test/trace/shared-object-properties-5.swf             |binary
 test/trace/shared-object-properties-6.swf             |binary
 test/trace/shared-object-properties-7.swf             |binary
 test/trace/shared-object-properties-8.swf             |binary
 test/trace/sound-properties-5.swf                     |binary
 test/trace/sound-properties-6.swf                     |binary
 test/trace/sound-properties-7.swf                     |binary
 test/trace/sound-properties-8.swf                     |binary
 test/trace/string-properties-5.swf                    |binary
 test/trace/string-properties-6.swf                    |binary
 test/trace/string-properties-7.swf                    |binary
 test/trace/string-properties-8.swf                    |binary
 test/trace/string-properties-8.swf.trace              |   57 +
 test/trace/text-snapshot-properties-5.swf             |binary
 test/trace/text-snapshot-properties-6.swf             |binary
 test/trace/text-snapshot-properties-7.swf             |binary
 test/trace/text-snapshot-properties-8.swf             |binary
 test/trace/trace_properties.as                        |   97 +-
 test/trace/trace_properties_names_5.as                |  507 +++++++++++++
 test/trace/trace_properties_names_6.as                |  697 +++++++++++++++++
 test/trace/trace_properties_names_7.as                |  697 +++++++++++++++++
 test/trace/trace_properties_names_8.as                |  699 ++++++++++++++++++
 test/trace/transform-properties-5.swf                 |binary
 test/trace/transform-properties-6.swf                 |binary
 test/trace/transform-properties-7.swf                 |binary
 test/trace/transform-properties-8.swf                 |binary
 test/trace/transform-properties.as                    |    6 
 test/trace/video-properties-6.swf                     |binary
 test/trace/video-properties-7.swf                     |binary
 test/trace/video-properties-8.swf                     |binary
 test/trace/video-properties-8.swf.trace               |   15 
 test/trace/xml-properties-5.swf                       |binary
 test/trace/xml-properties-6.swf                       |binary
 test/trace/xml-properties-7.swf                       |binary
 test/trace/xml-properties-8.swf                       |binary
 test/trace/xml-properties2-5.swf                      |binary
 test/trace/xml-properties2-5.swf.trace                |   12 
 test/trace/xml-properties2-6.swf                      |binary
 test/trace/xml-properties2-7.swf                      |binary
 test/trace/xml-properties2-8.swf                      |binary
 test/trace/xml-socket-properties-5.swf                |binary
 test/trace/xml-socket-properties-6.swf                |binary
 test/trace/xml-socket-properties-7.swf                |binary
 test/trace/xml-socket-properties-8.swf                |binary
 272 files changed, 3375 insertions(+), 276 deletions(-)

New commits:
commit f3481dbc8603fb5580f2f0669028e0a479a0d995
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date:   Tue Nov 27 16:25:08 2007 +0200

    Recompile tests using trace_properties.as to use the new code
    
    Also added version 8 versions of some tests where it was missing
    system-capabilities-query test not recompiled

diff --git a/test/trace/Makefile.am b/test/trace/Makefile.am
index 1d5d63a..8c9770d 100644
--- a/test/trace/Makefile.am
+++ b/test/trace/Makefile.am
@@ -1032,6 +1032,8 @@ EXTRA_DIST = \
 	global-function-properties-6.swf.trace \
 	global-function-properties-7.swf \
 	global-function-properties-7.swf.trace \
+	global-function-properties-8.swf \
+	global-function-properties-8.swf.trace \
 	global-variable-properties.as \
 	global-variable-properties-5.swf \
 	global-variable-properties-5.swf.trace \
@@ -1039,6 +1041,8 @@ EXTRA_DIST = \
 	global-variable-properties-6.swf.trace \
 	global-variable-properties-7.swf \
 	global-variable-properties-7.swf.trace \
+	global-variable-properties-8.swf \
+	global-variable-properties-8.swf.trace \
 	glow-filter-properties.as \
 	glow-filter-properties-5.swf \
 	glow-filter-properties-5.swf.trace \
@@ -1302,6 +1306,8 @@ EXTRA_DIST = \
 	math-properties-6.swf.trace \
 	math-properties-7.swf \
 	math-properties-7.swf.trace \
+	math-properties-8.swf \
+	math-properties-8.swf.trace \
 	microphone-properties.as \
 	microphone-properties-5.swf \
 	microphone-properties-5.swf.trace \
@@ -1318,6 +1324,8 @@ EXTRA_DIST = \
 	mouse-properties-6.swf.trace \
 	mouse-properties-7.swf \
 	mouse-properties-7.swf.trace \
+	mouse-properties-8.swf \
+	mouse-properties-8.swf.trace \
 	mouse-scaled.as \
 	mouse-scaled-5.swf \
 	mouse-scaled-5.swf.act \
@@ -1544,6 +1552,8 @@ EXTRA_DIST = \
 	object-properties-6.swf.trace \
 	object-properties-7.swf \
 	object-properties-7.swf.trace \
+	object-properties-8.swf \
+	object-properties-8.swf.trace \
 	object-valueof.as \
 	object-valueof-5.swf \
 	object-valueof-5.swf.trace \
@@ -2393,6 +2403,8 @@ EXTRA_DIST = \
 	string-properties-6.swf.trace \
 	string-properties-7.swf \
 	string-properties-7.swf.trace \
+	string-properties-8.swf \
+	string-properties-8.swf.trace \
 	string-slice.as \
 	string-slice-5.swf \
 	string-slice-5.swf.trace \
@@ -2808,6 +2820,8 @@ EXTRA_DIST = \
 	video-properties-6.swf.trace \
 	video-properties-7.swf \
 	video-properties-7.swf.trace \
+	video-properties-8.swf \
+	video-properties-8.swf.trace \
 	waitforframe-huge.as \
 	waitforframe-huge-4.swf \
 	waitforframe-huge-4.swf.trace \
diff --git a/test/trace/accessibility-properties-5.swf b/test/trace/accessibility-properties-5.swf
index 77306c6..b3a07e0 100644
Binary files a/test/trace/accessibility-properties-5.swf and b/test/trace/accessibility-properties-5.swf differ
diff --git a/test/trace/accessibility-properties-6.swf b/test/trace/accessibility-properties-6.swf
index c7b45a1..0535779 100644
Binary files a/test/trace/accessibility-properties-6.swf and b/test/trace/accessibility-properties-6.swf differ
diff --git a/test/trace/accessibility-properties-7.swf b/test/trace/accessibility-properties-7.swf
index b6be2a3..dc7bccc 100644
Binary files a/test/trace/accessibility-properties-7.swf and b/test/trace/accessibility-properties-7.swf differ
diff --git a/test/trace/accessibility-properties-8.swf b/test/trace/accessibility-properties-8.swf
index 6fe2c93..34b36d7 100644
Binary files a/test/trace/accessibility-properties-8.swf and b/test/trace/accessibility-properties-8.swf differ
diff --git a/test/trace/array-properties-5.swf b/test/trace/array-properties-5.swf
index 152167b..9938643 100644
Binary files a/test/trace/array-properties-5.swf and b/test/trace/array-properties-5.swf differ
diff --git a/test/trace/array-properties-6.swf b/test/trace/array-properties-6.swf
index a9cd92d..003e2f2 100644
Binary files a/test/trace/array-properties-6.swf and b/test/trace/array-properties-6.swf differ
diff --git a/test/trace/array-properties-7.swf b/test/trace/array-properties-7.swf
index 160d030..506b924 100644
Binary files a/test/trace/array-properties-7.swf and b/test/trace/array-properties-7.swf differ
diff --git a/test/trace/array-properties-8.swf b/test/trace/array-properties-8.swf
index 2b76fcc..4335f8e 100644
Binary files a/test/trace/array-properties-8.swf and b/test/trace/array-properties-8.swf differ
diff --git a/test/trace/asbroadcaster-properties-5.swf b/test/trace/asbroadcaster-properties-5.swf
index de06708..58a2754 100644
Binary files a/test/trace/asbroadcaster-properties-5.swf and b/test/trace/asbroadcaster-properties-5.swf differ
diff --git a/test/trace/asbroadcaster-properties-6.swf b/test/trace/asbroadcaster-properties-6.swf
index a40aa1b..58dab7a 100644
Binary files a/test/trace/asbroadcaster-properties-6.swf and b/test/trace/asbroadcaster-properties-6.swf differ
diff --git a/test/trace/asbroadcaster-properties-7.swf b/test/trace/asbroadcaster-properties-7.swf
index f8f8a67..43220a6 100644
Binary files a/test/trace/asbroadcaster-properties-7.swf and b/test/trace/asbroadcaster-properties-7.swf differ
diff --git a/test/trace/asbroadcaster-properties-8.swf b/test/trace/asbroadcaster-properties-8.swf
index 53bf36c..9f7652a 100644
Binary files a/test/trace/asbroadcaster-properties-8.swf and b/test/trace/asbroadcaster-properties-8.swf differ
diff --git a/test/trace/asfunction-properties-5.swf b/test/trace/asfunction-properties-5.swf
index c69385c..10426f6 100644
Binary files a/test/trace/asfunction-properties-5.swf and b/test/trace/asfunction-properties-5.swf differ
diff --git a/test/trace/asfunction-properties-6.swf b/test/trace/asfunction-properties-6.swf
index 0f9ee4f..db43e2a 100644
Binary files a/test/trace/asfunction-properties-6.swf and b/test/trace/asfunction-properties-6.swf differ
diff --git a/test/trace/asfunction-properties-7.swf b/test/trace/asfunction-properties-7.swf
index 7725b2c..02cff02 100644
Binary files a/test/trace/asfunction-properties-7.swf and b/test/trace/asfunction-properties-7.swf differ
diff --git a/test/trace/asfunction-properties-8.swf b/test/trace/asfunction-properties-8.swf
index f6de9b4..85cff99 100644
Binary files a/test/trace/asfunction-properties-8.swf and b/test/trace/asfunction-properties-8.swf differ
diff --git a/test/trace/assetnative-5.swf b/test/trace/assetnative-5.swf
index 2dde267..9c22293 100644
Binary files a/test/trace/assetnative-5.swf and b/test/trace/assetnative-5.swf differ
diff --git a/test/trace/assetnative-6.swf b/test/trace/assetnative-6.swf
index 74ab4b3..e859775 100644
Binary files a/test/trace/assetnative-6.swf and b/test/trace/assetnative-6.swf differ
diff --git a/test/trace/assetnative-7.swf b/test/trace/assetnative-7.swf
index 472722a..3ef8fee 100644
Binary files a/test/trace/assetnative-7.swf and b/test/trace/assetnative-7.swf differ
diff --git a/test/trace/assetnative-8.swf b/test/trace/assetnative-8.swf
index 578e6d4..9d41a96 100644
Binary files a/test/trace/assetnative-8.swf and b/test/trace/assetnative-8.swf differ
diff --git a/test/trace/bevel-filter-properties-5.swf b/test/trace/bevel-filter-properties-5.swf
index 9e73663..77e52d1 100644
Binary files a/test/trace/bevel-filter-properties-5.swf and b/test/trace/bevel-filter-properties-5.swf differ
diff --git a/test/trace/bevel-filter-properties-6.swf b/test/trace/bevel-filter-properties-6.swf
index 339fb68..c875cb7 100644
Binary files a/test/trace/bevel-filter-properties-6.swf and b/test/trace/bevel-filter-properties-6.swf differ
diff --git a/test/trace/bevel-filter-properties-7.swf b/test/trace/bevel-filter-properties-7.swf
index 36d522d..3db0bc0 100644
Binary files a/test/trace/bevel-filter-properties-7.swf and b/test/trace/bevel-filter-properties-7.swf differ
diff --git a/test/trace/bevel-filter-properties-8.swf b/test/trace/bevel-filter-properties-8.swf
index a2e2263..71dd046 100644
Binary files a/test/trace/bevel-filter-properties-8.swf and b/test/trace/bevel-filter-properties-8.swf differ
diff --git a/test/trace/bevel-filter-properties.as b/test/trace/bevel-filter-properties.as
index 40a73f5..69bacd5 100644
--- a/test/trace/bevel-filter-properties.as
+++ b/test/trace/bevel-filter-properties.as
@@ -1,10 +1,10 @@
 // makeswf -v 7 -r 1 -o bevel-filter-properties-7.swf bevel-filter-properties.as
 
-// enable flash structure for version < 8 too for this test
-ASSetPropFlags (_global, "flash", 0, 4096);
-
 #include "trace_properties.as"
 
+// enable flash structure for version < 8 too for this test
+ASSetPropFlags (_global, "flash", 0, 5248);
+
 var a = new flash.filters.BevelFilter ();
 
 trace_properties (_global.flash.filters.BevelFilter, "_global.flash.filters",
diff --git a/test/trace/bitmap-filter-properties-5.swf b/test/trace/bitmap-filter-properties-5.swf
index 5b024f4..68eba05 100644
Binary files a/test/trace/bitmap-filter-properties-5.swf and b/test/trace/bitmap-filter-properties-5.swf differ
diff --git a/test/trace/bitmap-filter-properties-6.swf b/test/trace/bitmap-filter-properties-6.swf
index 92fa6e5..29b3205 100644
Binary files a/test/trace/bitmap-filter-properties-6.swf and b/test/trace/bitmap-filter-properties-6.swf differ
diff --git a/test/trace/bitmap-filter-properties-7.swf b/test/trace/bitmap-filter-properties-7.swf
index 7934354..5b654a4 100644
Binary files a/test/trace/bitmap-filter-properties-7.swf and b/test/trace/bitmap-filter-properties-7.swf differ
diff --git a/test/trace/bitmap-filter-properties-8.swf b/test/trace/bitmap-filter-properties-8.swf
index 7fdc44a..fc10949 100644
Binary files a/test/trace/bitmap-filter-properties-8.swf and b/test/trace/bitmap-filter-properties-8.swf differ
diff --git a/test/trace/bitmap-filter-properties.as b/test/trace/bitmap-filter-properties.as
index e0158d1..6ea8415 100644
--- a/test/trace/bitmap-filter-properties.as
+++ b/test/trace/bitmap-filter-properties.as
@@ -1,10 +1,10 @@
 // makeswf -v 7 -r 1 -o point-properties-7.swf point-properties.as
 
-// enable flash structure for version < 8 too for this test
-ASSetPropFlags (_global, "flash", 0, 4096);
-
 #include "trace_properties.as"
 
+// enable flash structure for version < 8 too for this test
+ASSetPropFlags (_global, "flash", 0, 5248);
+
 var a = new flash.filters.BitmapFilter ();
 
 trace_properties (_global.flash.filters.BitmapFilter, "_global.flash.filters",
diff --git a/test/trace/blur-filter-properties-5.swf b/test/trace/blur-filter-properties-5.swf
index 2d1fa3c..071e27d 100644
Binary files a/test/trace/blur-filter-properties-5.swf and b/test/trace/blur-filter-properties-5.swf differ
diff --git a/test/trace/blur-filter-properties-6.swf b/test/trace/blur-filter-properties-6.swf
index 86382f5..2f27c83 100644
Binary files a/test/trace/blur-filter-properties-6.swf and b/test/trace/blur-filter-properties-6.swf differ
diff --git a/test/trace/blur-filter-properties-7.swf b/test/trace/blur-filter-properties-7.swf
index fc6f313..c6f8ecc 100644
Binary files a/test/trace/blur-filter-properties-7.swf and b/test/trace/blur-filter-properties-7.swf differ
diff --git a/test/trace/blur-filter-properties-8.swf b/test/trace/blur-filter-properties-8.swf
index 8163457..67f6588 100644
Binary files a/test/trace/blur-filter-properties-8.swf and b/test/trace/blur-filter-properties-8.swf differ
diff --git a/test/trace/blur-filter-properties.as b/test/trace/blur-filter-properties.as
index 54848e8..12c42e1 100644
--- a/test/trace/blur-filter-properties.as
+++ b/test/trace/blur-filter-properties.as
@@ -1,10 +1,10 @@
 // makeswf -v 7 -r 1 -o blur-filter-properties-7.swf blur-filter-properties.as
 
-// enable flash structure for version < 8 too for this test
-ASSetPropFlags (_global, "flash", 0, 4096);
-
 #include "trace_properties.as"
 
+// enable flash structure for version < 8 too for this test
+ASSetPropFlags (_global, "flash", 0, 5248);
+
 var a = new flash.filters.BlurFilter ();
 
 trace_properties (_global.flash.filters.BlurFilter, "_global.flash.filters",
diff --git a/test/trace/boolean-properties-5.swf b/test/trace/boolean-properties-5.swf
index be28596..657583d 100644
Binary files a/test/trace/boolean-properties-5.swf and b/test/trace/boolean-properties-5.swf differ
diff --git a/test/trace/boolean-properties-6.swf b/test/trace/boolean-properties-6.swf
index 3002636..8c09be5 100644
Binary files a/test/trace/boolean-properties-6.swf and b/test/trace/boolean-properties-6.swf differ
diff --git a/test/trace/boolean-properties-7.swf b/test/trace/boolean-properties-7.swf
index f58d74f..5de50ea 100644
Binary files a/test/trace/boolean-properties-7.swf and b/test/trace/boolean-properties-7.swf differ
diff --git a/test/trace/boolean-properties-8.swf b/test/trace/boolean-properties-8.swf
index 5c63e8a..78a68f8 100644
Binary files a/test/trace/boolean-properties-8.swf and b/test/trace/boolean-properties-8.swf differ
diff --git a/test/trace/button-properties-5.swf b/test/trace/button-properties-5.swf
index fabaa9e..c263c18 100644
Binary files a/test/trace/button-properties-5.swf and b/test/trace/button-properties-5.swf differ
diff --git a/test/trace/button-properties-6.swf b/test/trace/button-properties-6.swf
index 219da29..78305f2 100644
Binary files a/test/trace/button-properties-6.swf and b/test/trace/button-properties-6.swf differ
diff --git a/test/trace/button-properties-7.swf b/test/trace/button-properties-7.swf
index 0616a65..5a08d1d 100644
Binary files a/test/trace/button-properties-7.swf and b/test/trace/button-properties-7.swf differ
diff --git a/test/trace/button-properties-8.swf b/test/trace/button-properties-8.swf
index b3a7a32..087ddee 100644
Binary files a/test/trace/button-properties-8.swf and b/test/trace/button-properties-8.swf differ
diff --git a/test/trace/camera-properties-5.swf b/test/trace/camera-properties-5.swf
index e139ff2..0f39a9b 100644
Binary files a/test/trace/camera-properties-5.swf and b/test/trace/camera-properties-5.swf differ
diff --git a/test/trace/camera-properties-6.swf b/test/trace/camera-properties-6.swf
index 513b875..c06f89e 100644
Binary files a/test/trace/camera-properties-6.swf and b/test/trace/camera-properties-6.swf differ
diff --git a/test/trace/camera-properties-7.swf b/test/trace/camera-properties-7.swf
index 173bd0a..f25331a 100644
Binary files a/test/trace/camera-properties-7.swf and b/test/trace/camera-properties-7.swf differ
diff --git a/test/trace/camera-properties-8.swf b/test/trace/camera-properties-8.swf
index 3714d52..170f086 100644
Binary files a/test/trace/camera-properties-8.swf and b/test/trace/camera-properties-8.swf differ
diff --git a/test/trace/color-matrix-filter-properties-5.swf b/test/trace/color-matrix-filter-properties-5.swf
index d23f5dd..b6ad8b0 100644
Binary files a/test/trace/color-matrix-filter-properties-5.swf and b/test/trace/color-matrix-filter-properties-5.swf differ
diff --git a/test/trace/color-matrix-filter-properties-6.swf b/test/trace/color-matrix-filter-properties-6.swf
index b9616f4..b25cdc3 100644
Binary files a/test/trace/color-matrix-filter-properties-6.swf and b/test/trace/color-matrix-filter-properties-6.swf differ
diff --git a/test/trace/color-matrix-filter-properties-7.swf b/test/trace/color-matrix-filter-properties-7.swf
index 8e8163d..0b9ddc6 100644
Binary files a/test/trace/color-matrix-filter-properties-7.swf and b/test/trace/color-matrix-filter-properties-7.swf differ
diff --git a/test/trace/color-matrix-filter-properties-8.swf b/test/trace/color-matrix-filter-properties-8.swf
index e56f02d..e1e7cb0 100644
Binary files a/test/trace/color-matrix-filter-properties-8.swf and b/test/trace/color-matrix-filter-properties-8.swf differ
diff --git a/test/trace/color-matrix-filter-properties.as b/test/trace/color-matrix-filter-properties.as
index 764ab7e..9d99899 100644
--- a/test/trace/color-matrix-filter-properties.as
+++ b/test/trace/color-matrix-filter-properties.as
@@ -1,10 +1,10 @@
 // makeswf -v 7 -r 1 -o color-matrix-filter-properties-7.swf color-matrix-filter-properties.as
 
-// enable flash structure for version < 8 too for this test
-ASSetPropFlags (_global, "flash", 0, 4096);
-
 #include "trace_properties.as"
 
+// enable flash structure for version < 8 too for this test
+ASSetPropFlags (_global, "flash", 0, 5248);
+
 var a = new flash.filters.ColorMatrixFilter ();
 
 trace_properties (_global.flash.filters.ColorMatrixFilter,
diff --git a/test/trace/color-properties-5.swf b/test/trace/color-properties-5.swf
index 3472ffc..c372468 100644
Binary files a/test/trace/color-properties-5.swf and b/test/trace/color-properties-5.swf differ
diff --git a/test/trace/color-properties-6.swf b/test/trace/color-properties-6.swf
index 58740d6..af1347e 100644
Binary files a/test/trace/color-properties-6.swf and b/test/trace/color-properties-6.swf differ
diff --git a/test/trace/color-properties-7.swf b/test/trace/color-properties-7.swf
index 5303da3..e0a1083 100644
Binary files a/test/trace/color-properties-7.swf and b/test/trace/color-properties-7.swf differ
diff --git a/test/trace/color-properties-8.swf b/test/trace/color-properties-8.swf
index cac4e66..b7fab28 100644
Binary files a/test/trace/color-properties-8.swf and b/test/trace/color-properties-8.swf differ
diff --git a/test/trace/color-transform-properties-5.swf b/test/trace/color-transform-properties-5.swf
index 01f45ff..8cc7033 100644
Binary files a/test/trace/color-transform-properties-5.swf and b/test/trace/color-transform-properties-5.swf differ
diff --git a/test/trace/color-transform-properties-6.swf b/test/trace/color-transform-properties-6.swf
index cc2d913..e75c5de 100644
Binary files a/test/trace/color-transform-properties-6.swf and b/test/trace/color-transform-properties-6.swf differ
diff --git a/test/trace/color-transform-properties-7.swf b/test/trace/color-transform-properties-7.swf
index 209e7b1..f905f2e 100644
Binary files a/test/trace/color-transform-properties-7.swf and b/test/trace/color-transform-properties-7.swf differ
diff --git a/test/trace/color-transform-properties-8.swf b/test/trace/color-transform-properties-8.swf
index e278821..beb880e 100644
Binary files a/test/trace/color-transform-properties-8.swf and b/test/trace/color-transform-properties-8.swf differ
diff --git a/test/trace/color-transform-properties.as b/test/trace/color-transform-properties.as
index 41b5386..1943557 100644
--- a/test/trace/color-transform-properties.as
+++ b/test/trace/color-transform-properties.as
@@ -1,10 +1,10 @@
 // makeswf -v 7 -r 1 -o bitmap-data-properties-7.swf bitmap-data-properties.as
 
-// enable flash structure for version < 8 too for this test
-ASSetPropFlags (_global, "flash", 0, 4096);
-
 #include "trace_properties.as"
 
+// enable flash structure for version < 8 too for this test
+ASSetPropFlags (_global, "flash", 0, 5248);
+
 var a = new flash.geom.ColorTransform ();
 
 trace_properties (_global.flash.geom.ColorTransform, "_global.flash.geom",
diff --git a/test/trace/construct-properties-5.swf b/test/trace/construct-properties-5.swf
index 2eff81e..4a80608 100644
Binary files a/test/trace/construct-properties-5.swf and b/test/trace/construct-properties-5.swf differ
diff --git a/test/trace/construct-properties-6.swf b/test/trace/construct-properties-6.swf
index f6cf779..24a03a4 100644
Binary files a/test/trace/construct-properties-6.swf and b/test/trace/construct-properties-6.swf differ
diff --git a/test/trace/construct-properties-7.swf b/test/trace/construct-properties-7.swf
index 263bfb1..0b50e34 100644
Binary files a/test/trace/construct-properties-7.swf and b/test/trace/construct-properties-7.swf differ
diff --git a/test/trace/construct-properties-8.swf b/test/trace/construct-properties-8.swf
index 5f685c9..9514b38 100644
Binary files a/test/trace/construct-properties-8.swf and b/test/trace/construct-properties-8.swf differ
diff --git a/test/trace/context-menu-item-properties-5.swf b/test/trace/context-menu-item-properties-5.swf
index 02e1105..421685b 100644
Binary files a/test/trace/context-menu-item-properties-5.swf and b/test/trace/context-menu-item-properties-5.swf differ
diff --git a/test/trace/context-menu-item-properties-6.swf b/test/trace/context-menu-item-properties-6.swf
index 7f5f491..b533bd1 100644
Binary files a/test/trace/context-menu-item-properties-6.swf and b/test/trace/context-menu-item-properties-6.swf differ
diff --git a/test/trace/context-menu-item-properties-7.swf b/test/trace/context-menu-item-properties-7.swf
index 877938e..a21d992 100644
Binary files a/test/trace/context-menu-item-properties-7.swf and b/test/trace/context-menu-item-properties-7.swf differ
diff --git a/test/trace/context-menu-item-properties-8.swf b/test/trace/context-menu-item-properties-8.swf
index ed083c2..364e5f5 100644
Binary files a/test/trace/context-menu-item-properties-8.swf and b/test/trace/context-menu-item-properties-8.swf differ
diff --git a/test/trace/context-menu-properties-5.swf b/test/trace/context-menu-properties-5.swf
index b0da68b..07c00e3 100644
Binary files a/test/trace/context-menu-properties-5.swf and b/test/trace/context-menu-properties-5.swf differ
diff --git a/test/trace/context-menu-properties-6.swf b/test/trace/context-menu-properties-6.swf
index 1a1db1d..209ff54 100644
Binary files a/test/trace/context-menu-properties-6.swf and b/test/trace/context-menu-properties-6.swf differ
diff --git a/test/trace/context-menu-properties-7.swf b/test/trace/context-menu-properties-7.swf
index 65fcd10..56ad908 100644
Binary files a/test/trace/context-menu-properties-7.swf and b/test/trace/context-menu-properties-7.swf differ
diff --git a/test/trace/context-menu-properties-8.swf b/test/trace/context-menu-properties-8.swf
index 935aa06..3430124 100644
Binary files a/test/trace/context-menu-properties-8.swf and b/test/trace/context-menu-properties-8.swf differ
diff --git a/test/trace/convolution-filter-properties-5.swf b/test/trace/convolution-filter-properties-5.swf
index 1c466e5..66f0758 100644
Binary files a/test/trace/convolution-filter-properties-5.swf and b/test/trace/convolution-filter-properties-5.swf differ
diff --git a/test/trace/convolution-filter-properties-6.swf b/test/trace/convolution-filter-properties-6.swf
index ddb0bae..2eb82f9 100644
Binary files a/test/trace/convolution-filter-properties-6.swf and b/test/trace/convolution-filter-properties-6.swf differ
diff --git a/test/trace/convolution-filter-properties-7.swf b/test/trace/convolution-filter-properties-7.swf
index 0c13461..ae4354a 100644
Binary files a/test/trace/convolution-filter-properties-7.swf and b/test/trace/convolution-filter-properties-7.swf differ
diff --git a/test/trace/convolution-filter-properties-8.swf b/test/trace/convolution-filter-properties-8.swf
index 9537c07..8e1fa0e 100644
Binary files a/test/trace/convolution-filter-properties-8.swf and b/test/trace/convolution-filter-properties-8.swf differ
diff --git a/test/trace/convolution-filter-properties.as b/test/trace/convolution-filter-properties.as
index 2b024d4..c22c946 100644
--- a/test/trace/convolution-filter-properties.as
+++ b/test/trace/convolution-filter-properties.as
@@ -1,10 +1,10 @@
 // makeswf -v 7 -r 1 -o convolution-filter-properties-7.swf convolution-filter-properties.as
 
-// enable flash structure for version < 8 too for this test
-ASSetPropFlags (_global, "flash", 0, 4096);
-
 #include "trace_properties.as"
 
+// enable flash structure for version < 8 too for this test
+ASSetPropFlags (_global, "flash", 0, 5248);
+
 var a = new flash.filters.ConvolutionFilter ();
 
 trace_properties (_global.flash.filters.ConvolutionFilter,
diff --git a/test/trace/date-properties-5.swf b/test/trace/date-properties-5.swf
index a10d90a..6805dcd 100644
Binary files a/test/trace/date-properties-5.swf and b/test/trace/date-properties-5.swf differ
diff --git a/test/trace/date-properties-6.swf b/test/trace/date-properties-6.swf
index dcdd7ae..1bab1aa 100644
Binary files a/test/trace/date-properties-6.swf and b/test/trace/date-properties-6.swf differ
diff --git a/test/trace/date-properties-7.swf b/test/trace/date-properties-7.swf
index a36f635..14ca8b5 100644
Binary files a/test/trace/date-properties-7.swf and b/test/trace/date-properties-7.swf differ
diff --git a/test/trace/date-properties-8.swf b/test/trace/date-properties-8.swf
index 3699bc5..37dd46d 100644
Binary files a/test/trace/date-properties-8.swf and b/test/trace/date-properties-8.swf differ
diff --git a/test/trace/displacement-map-filter-properties-5.swf b/test/trace/displacement-map-filter-properties-5.swf
index 0c57e61..4022659 100644
Binary files a/test/trace/displacement-map-filter-properties-5.swf and b/test/trace/displacement-map-filter-properties-5.swf differ
diff --git a/test/trace/displacement-map-filter-properties-6.swf b/test/trace/displacement-map-filter-properties-6.swf
index aeb9258..d4dc97e 100644
Binary files a/test/trace/displacement-map-filter-properties-6.swf and b/test/trace/displacement-map-filter-properties-6.swf differ
diff --git a/test/trace/displacement-map-filter-properties-7.swf b/test/trace/displacement-map-filter-properties-7.swf
index f094ed3..421f52f 100644
Binary files a/test/trace/displacement-map-filter-properties-7.swf and b/test/trace/displacement-map-filter-properties-7.swf differ
diff --git a/test/trace/displacement-map-filter-properties-8.swf b/test/trace/displacement-map-filter-properties-8.swf
index c914dd3..541a9a9 100644
Binary files a/test/trace/displacement-map-filter-properties-8.swf and b/test/trace/displacement-map-filter-properties-8.swf differ
diff --git a/test/trace/displacement-map-filter-properties.as b/test/trace/displacement-map-filter-properties.as
index 8bc94bc..52f4e1b 100644
--- a/test/trace/displacement-map-filter-properties.as
+++ b/test/trace/displacement-map-filter-properties.as
@@ -1,10 +1,10 @@
 // makeswf -v 7 -r 1 -o displacement-map-filter-properties-7.swf displacement-map-filter-properties.as
 
-// enable flash structure for version < 8 too for this test
-ASSetPropFlags (_global, "flash", 0, 4096);
-
 #include "trace_properties.as"
 
+// enable flash structure for version < 8 too for this test
+ASSetPropFlags (_global, "flash", 0, 5248);
+
 var a = new flash.filters.DisplacementMapFilter ();
 
 trace_properties (_global.flash.filters.DisplacementMapFilter,
diff --git a/test/trace/drop-shadow-filter-properties-5.swf b/test/trace/drop-shadow-filter-properties-5.swf
index 01c6d5e..7d49501 100644
Binary files a/test/trace/drop-shadow-filter-properties-5.swf and b/test/trace/drop-shadow-filter-properties-5.swf differ
diff --git a/test/trace/drop-shadow-filter-properties-6.swf b/test/trace/drop-shadow-filter-properties-6.swf
index 45e9098..82a47d4 100644
Binary files a/test/trace/drop-shadow-filter-properties-6.swf and b/test/trace/drop-shadow-filter-properties-6.swf differ
diff --git a/test/trace/drop-shadow-filter-properties-7.swf b/test/trace/drop-shadow-filter-properties-7.swf
index 0f1e86c..6b54348 100644
Binary files a/test/trace/drop-shadow-filter-properties-7.swf and b/test/trace/drop-shadow-filter-properties-7.swf differ
diff --git a/test/trace/drop-shadow-filter-properties-8.swf b/test/trace/drop-shadow-filter-properties-8.swf
index ddcb26c..c2dc8d5 100644
Binary files a/test/trace/drop-shadow-filter-properties-8.swf and b/test/trace/drop-shadow-filter-properties-8.swf differ
diff --git a/test/trace/drop-shadow-filter-properties.as b/test/trace/drop-shadow-filter-properties.as
index 448a4a2..3890c5b 100644
--- a/test/trace/drop-shadow-filter-properties.as
+++ b/test/trace/drop-shadow-filter-properties.as
@@ -1,10 +1,10 @@
 // makeswf -v 7 -r 1 -o drop-shadow-filter-properties-7.swf drop-shadow-filter-properties.as
 
-// enable flash structure for version < 8 too for this test
-ASSetPropFlags (_global, "flash", 0, 4096);
-
 #include "trace_properties.as"
 
+// enable flash structure for version < 8 too for this test
+ASSetPropFlags (_global, "flash", 0, 5248);
+
 var a = new flash.filters.DropShadowFilter ();
 
 trace_properties (_global.flash.filters.DropShadowFilter,
diff --git a/test/trace/error-properties-5.swf b/test/trace/error-properties-5.swf
index 18da742..fa4a774 100644
Binary files a/test/trace/error-properties-5.swf and b/test/trace/error-properties-5.swf differ
diff --git a/test/trace/error-properties-6.swf b/test/trace/error-properties-6.swf
index 99a356f..e81af8e 100644
Binary files a/test/trace/error-properties-6.swf and b/test/trace/error-properties-6.swf differ
diff --git a/test/trace/error-properties-7.swf b/test/trace/error-properties-7.swf
index fee0529..b093e7c 100644
Binary files a/test/trace/error-properties-7.swf and b/test/trace/error-properties-7.swf differ
diff --git a/test/trace/error-properties-8.swf b/test/trace/error-properties-8.swf
index bc4b7f5..3773ff5 100644
Binary files a/test/trace/error-properties-8.swf and b/test/trace/error-properties-8.swf differ
diff --git a/test/trace/file-reference-list-properties-5.swf b/test/trace/file-reference-list-properties-5.swf
index 1f6648f..63918f5 100644
Binary files a/test/trace/file-reference-list-properties-5.swf and b/test/trace/file-reference-list-properties-5.swf differ
diff --git a/test/trace/file-reference-list-properties-7.swf b/test/trace/file-reference-list-properties-7.swf
index ee7f780..1931368 100644
Binary files a/test/trace/file-reference-list-properties-7.swf and b/test/trace/file-reference-list-properties-7.swf differ
diff --git a/test/trace/file-reference-list-properties-8.swf b/test/trace/file-reference-list-properties-8.swf
index 279e3f5..cf75fd3 100644
Binary files a/test/trace/file-reference-list-properties-8.swf and b/test/trace/file-reference-list-properties-8.swf differ
diff --git a/test/trace/file-reference-list-properties.as b/test/trace/file-reference-list-properties.as
index baed8f7..a8721c9 100644
--- a/test/trace/file-reference-list-properties.as
+++ b/test/trace/file-reference-list-properties.as
@@ -1,10 +1,10 @@
 // makeswf -v 7 -r 1 -o file-reference-list-properties-7.swf file-reference-list-properties.as
 
-// enable flash structure for version < 8 too for this test
-ASSetPropFlags (_global, "flash", 0, 4096);
-
 #include "trace_properties.as"
 
+// enable flash structure for version < 8 too for this test
+ASSetPropFlags (_global, "flash", 0, 5248);
+
 var a = new flash.net.FileReferenceList ();
 
 trace_properties (_global.flash.net.FileReferenceList, "_global.flash.net", "FileReferenceList");
diff --git a/test/trace/file-reference-properties-5.swf b/test/trace/file-reference-properties-5.swf
index a2b66e4..f6e0313 100644
Binary files a/test/trace/file-reference-properties-5.swf and b/test/trace/file-reference-properties-5.swf differ
diff --git a/test/trace/file-reference-properties-7.swf b/test/trace/file-reference-properties-7.swf
index 706d276..693a92a 100644
Binary files a/test/trace/file-reference-properties-7.swf and b/test/trace/file-reference-properties-7.swf differ
diff --git a/test/trace/file-reference-properties-8.swf b/test/trace/file-reference-properties-8.swf
index d042f0d..8fef3e2 100644
Binary files a/test/trace/file-reference-properties-8.swf and b/test/trace/file-reference-properties-8.swf differ
diff --git a/test/trace/file-reference-properties.as b/test/trace/file-reference-properties.as
index 5d0d75e..a69fccf 100644
--- a/test/trace/file-reference-properties.as
+++ b/test/trace/file-reference-properties.as
@@ -1,10 +1,10 @@
 // makeswf -v 7 -r 1 -o error-properties-7.swf error-properties.as
 
-// enable flash structure for version < 8 too for this test
-ASSetPropFlags (_global, "flash", 0, 4096);
-
 #include "trace_properties.as"
 
+// enable flash structure for version < 8 too for this test
+ASSetPropFlags (_global, "flash", 0, 5248);
+
 var a = new flash.net.FileReference ();
 
 trace_properties (_global.flash.net.FileReference, "_global.flash.net", "FileReference");
diff --git a/test/trace/function-properties-5.swf b/test/trace/function-properties-5.swf
index 4a6d72e..72db67b 100644
Binary files a/test/trace/function-properties-5.swf and b/test/trace/function-properties-5.swf differ
diff --git a/test/trace/function-properties-6.swf b/test/trace/function-properties-6.swf
index 14fd223..45f1cde 100644
Binary files a/test/trace/function-properties-6.swf and b/test/trace/function-properties-6.swf differ
diff --git a/test/trace/function-properties-7.swf b/test/trace/function-properties-7.swf
index ef22be7..ffd7ae9 100644
Binary files a/test/trace/function-properties-7.swf and b/test/trace/function-properties-7.swf differ
diff --git a/test/trace/function-properties-8.swf b/test/trace/function-properties-8.swf
index 56c33e4..5ba83d8 100644
Binary files a/test/trace/function-properties-8.swf and b/test/trace/function-properties-8.swf differ
diff --git a/test/trace/global-function-properties-5.swf b/test/trace/global-function-properties-5.swf
index 7d65460..488b5e5 100644
Binary files a/test/trace/global-function-properties-5.swf and b/test/trace/global-function-properties-5.swf differ
diff --git a/test/trace/global-function-properties-5.swf.trace b/test/trace/global-function-properties-5.swf.trace
index a8ee774..bc43d9f 100644
--- a/test/trace/global-function-properties-5.swf.trace
+++ b/test/trace/global-function-properties-5.swf.trace
@@ -7,7 +7,7 @@ _global.AsSetupError = function
 _global.clearInterval = function
   __proto__ (hpn) = _global.Object.__proto__
   constructor (hp) = _global.Object.constructor
-_global.clearTimeout = _global.clearInterval
+_global.clearTimeout = function
   __proto__ (hp) = _global.Object.__proto__
   constructor (hp) = _global.Object.constructor
 _global.enableDebugConsole = function
diff --git a/test/trace/global-function-properties-6.swf b/test/trace/global-function-properties-6.swf
index ed96318..cb3008f 100644
Binary files a/test/trace/global-function-properties-6.swf and b/test/trace/global-function-properties-6.swf differ
diff --git a/test/trace/global-function-properties-7.swf b/test/trace/global-function-properties-7.swf
index 97fed16..8a65623 100644
Binary files a/test/trace/global-function-properties-7.swf and b/test/trace/global-function-properties-7.swf differ
diff --git a/test/trace/global-function-properties-8.swf b/test/trace/global-function-properties-8.swf
new file mode 100644
index 0000000..07e30c3
Binary files /dev/null and b/test/trace/global-function-properties-8.swf differ
diff --git a/test/trace/global-function-properties-8.swf.trace b/test/trace/global-function-properties-8.swf.trace
new file mode 100644
index 0000000..217f5a8
--- /dev/null
+++ b/test/trace/global-function-properties-8.swf.trace
@@ -0,0 +1,47 @@
+_global.AsSetupError = function
+  __proto__ (hp) = _global.Function.prototype
+  constructor (hp) = _global.Function
+  prototype (hp) = object
+    __proto__ (hp) = _global.Object.prototype
+    constructor (hp) = _global.AsSetupError
+_global.clearInterval = function
+  __proto__ (hp) = _global.Function.prototype
+  constructor (hp) = _global.Function
+_global.clearTimeout = _global.clearInterval
+  __proto__ (hp) = _global.Function.prototype
+  constructor (hp) = _global.Function
+_global.enableDebugConsole = function
+  no children
+_global.escape = function
+  __proto__ (hp) = _global.Function.prototype
+  constructor (hp) = _global.Function
+_global.isFinite = function
+  __proto__ (hp) = _global.Function.prototype
+  constructor (hp) = _global.Function
+_global.isNaN = function
+  __proto__ (hp) = _global.Function.prototype
+  constructor (hp) = _global.Function
+_global.parseFloat = function
+  __proto__ (hp) = _global.Function.prototype
+  constructor (hp) = _global.Function
+_global.parseInt = function
+  __proto__ (hp) = _global.Function.prototype
+  constructor (hp) = _global.Function
+_global.setInterval = function
+  __proto__ (hp) = _global.Function.prototype
+  constructor (hp) = _global.Function
+_global.setTimeout = function
+  __proto__ (hp) = _global.Function.prototype
+  constructor (hp) = _global.Function
+_global.showRedrawRegions = function
+  __proto__ (hp) = _global.Function.prototype
+  constructor (hp) = _global.Function
+_global.trace = function
+  __proto__ (hp) = _global.Function.prototype
+  constructor (hp) = _global.Function
+_global.unescape = function
+  __proto__ (hp) = _global.Function.prototype
+  constructor (hp) = _global.Function
+_global.updateAfterEvent = function
+  __proto__ (hp) = _global.Function.prototype
+  constructor (hp) = _global.Function
diff --git a/test/trace/global-variable-properties-5.swf b/test/trace/global-variable-properties-5.swf
index a5590fc..b06f82c 100644
Binary files a/test/trace/global-variable-properties-5.swf and b/test/trace/global-variable-properties-5.swf differ
diff --git a/test/trace/global-variable-properties-6.swf b/test/trace/global-variable-properties-6.swf
index 5beba8f..812aadc 100644
Binary files a/test/trace/global-variable-properties-6.swf and b/test/trace/global-variable-properties-6.swf differ
diff --git a/test/trace/global-variable-properties-7.swf b/test/trace/global-variable-properties-7.swf
index 3335d7c..b0adc43 100644
Binary files a/test/trace/global-variable-properties-7.swf and b/test/trace/global-variable-properties-7.swf differ
diff --git a/test/trace/global-variable-properties-8.swf b/test/trace/global-variable-properties-8.swf
new file mode 100644
index 0000000..b692d7a
Binary files /dev/null and b/test/trace/global-variable-properties-8.swf differ
diff --git a/test/trace/global-variable-properties-8.swf.trace b/test/trace/global-variable-properties-8.swf.trace
new file mode 100644
index 0000000..a11c582
--- /dev/null
+++ b/test/trace/global-variable-properties-8.swf.trace
@@ -0,0 +1,3 @@
+_global.Infinity = number : Infinity
+_global.NaN = number : NaN
+_global.o = null
diff --git a/test/trace/glow-filter-properties-5.swf b/test/trace/glow-filter-properties-5.swf
index 5e28bc0..2a069b5 100644
Binary files a/test/trace/glow-filter-properties-5.swf and b/test/trace/glow-filter-properties-5.swf differ
diff --git a/test/trace/glow-filter-properties-6.swf b/test/trace/glow-filter-properties-6.swf
index f99af06..bfea5eb 100644
Binary files a/test/trace/glow-filter-properties-6.swf and b/test/trace/glow-filter-properties-6.swf differ
diff --git a/test/trace/glow-filter-properties-7.swf b/test/trace/glow-filter-properties-7.swf
index d9a45e8..b0da15e 100644
Binary files a/test/trace/glow-filter-properties-7.swf and b/test/trace/glow-filter-properties-7.swf differ
diff --git a/test/trace/glow-filter-properties-8.swf b/test/trace/glow-filter-properties-8.swf
index 1105f6c..473bbe5 100644
Binary files a/test/trace/glow-filter-properties-8.swf and b/test/trace/glow-filter-properties-8.swf differ
diff --git a/test/trace/glow-filter-properties.as b/test/trace/glow-filter-properties.as
index 2af21d6..13bf873 100644
--- a/test/trace/glow-filter-properties.as
+++ b/test/trace/glow-filter-properties.as
@@ -1,10 +1,10 @@
 // makeswf -v 7 -r 1 -o glow-filter-properties-7.swf glow-filter-properties.as
 
-// enable flash structure for version < 8 too for this test
-ASSetPropFlags (_global, "flash", 0, 4096);
-
 #include "trace_properties.as"
 
+// enable flash structure for version < 8 too for this test
+ASSetPropFlags (_global, "flash", 0, 5248);
+
 var a = new flash.filters.GlowFilter ();
 
 trace_properties (_global.flash.filters.GlowFilter, "_global.flash.filters",
diff --git a/test/trace/gradient-bevel-filter-properties-5.swf b/test/trace/gradient-bevel-filter-properties-5.swf
index 65cca67..98221ea 100644
Binary files a/test/trace/gradient-bevel-filter-properties-5.swf and b/test/trace/gradient-bevel-filter-properties-5.swf differ
diff --git a/test/trace/gradient-bevel-filter-properties-6.swf b/test/trace/gradient-bevel-filter-properties-6.swf
index 56c3bd1..35bdba0 100644
Binary files a/test/trace/gradient-bevel-filter-properties-6.swf and b/test/trace/gradient-bevel-filter-properties-6.swf differ
diff --git a/test/trace/gradient-bevel-filter-properties-7.swf b/test/trace/gradient-bevel-filter-properties-7.swf
index d912c96..e150b67 100644
Binary files a/test/trace/gradient-bevel-filter-properties-7.swf and b/test/trace/gradient-bevel-filter-properties-7.swf differ
diff --git a/test/trace/gradient-bevel-filter-properties-8.swf b/test/trace/gradient-bevel-filter-properties-8.swf
index d67f97f..2860315 100644
Binary files a/test/trace/gradient-bevel-filter-properties-8.swf and b/test/trace/gradient-bevel-filter-properties-8.swf differ
diff --git a/test/trace/gradient-bevel-filter-properties.as b/test/trace/gradient-bevel-filter-properties.as
index abb4437..b0219e6 100644
--- a/test/trace/gradient-bevel-filter-properties.as
+++ b/test/trace/gradient-bevel-filter-properties.as
@@ -1,10 +1,10 @@
 // makeswf -v 7 -r 1 -o gradient-bevel-filter-properties-7.swf gradient-bevel-filter-properties.as
 
-// enable flash structure for version < 8 too for this test
-ASSetPropFlags (_global, "flash", 0, 4096);
-
 #include "trace_properties.as"
 
+// enable flash structure for version < 8 too for this test
+ASSetPropFlags (_global, "flash", 0, 5248);
+
 var a = new flash.filters.GradientBevelFilter ();
 
 trace_properties (_global.flash.filters.GradientBevelFilter,
diff --git a/test/trace/gradient-glow-filter-properties-5.swf b/test/trace/gradient-glow-filter-properties-5.swf
index f5f78d5..248523b 100644
Binary files a/test/trace/gradient-glow-filter-properties-5.swf and b/test/trace/gradient-glow-filter-properties-5.swf differ
diff --git a/test/trace/gradient-glow-filter-properties-6.swf b/test/trace/gradient-glow-filter-properties-6.swf
index 885b310..530a0a6 100644
Binary files a/test/trace/gradient-glow-filter-properties-6.swf and b/test/trace/gradient-glow-filter-properties-6.swf differ
diff --git a/test/trace/gradient-glow-filter-properties-7.swf b/test/trace/gradient-glow-filter-properties-7.swf
index 276ddde..683475c 100644
Binary files a/test/trace/gradient-glow-filter-properties-7.swf and b/test/trace/gradient-glow-filter-properties-7.swf differ
diff --git a/test/trace/gradient-glow-filter-properties-8.swf b/test/trace/gradient-glow-filter-properties-8.swf
index 93cc690..e112e40 100644
Binary files a/test/trace/gradient-glow-filter-properties-8.swf and b/test/trace/gradient-glow-filter-properties-8.swf differ
diff --git a/test/trace/gradient-glow-filter-properties.as b/test/trace/gradient-glow-filter-properties.as
index f4957a2..60badad 100644
--- a/test/trace/gradient-glow-filter-properties.as
+++ b/test/trace/gradient-glow-filter-properties.as
@@ -1,10 +1,10 @@
 // makeswf -v 7 -r 1 -o gradient-glow-filter-properties-7.swf gradient-glow-filter-properties.as
 
-// enable flash structure for version < 8 too for this test
-ASSetPropFlags (_global, "flash", 0, 4096);
-
 #include "trace_properties.as"
 
+// enable flash structure for version < 8 too for this test
+ASSetPropFlags (_global, "flash", 0, 5248);
+
 var a = new flash.filters.GradientGlowFilter ();
 
 trace_properties (_global.flash.filters.GradientGlowFilter,
diff --git a/test/trace/key-properties-5.swf b/test/trace/key-properties-5.swf
index d593080..1d113b5 100644
Binary files a/test/trace/key-properties-5.swf and b/test/trace/key-properties-5.swf differ
diff --git a/test/trace/key-properties-6.swf b/test/trace/key-properties-6.swf
index af1c6fc..0ed039d 100644
Binary files a/test/trace/key-properties-6.swf and b/test/trace/key-properties-6.swf differ
diff --git a/test/trace/key-properties-7.swf b/test/trace/key-properties-7.swf
index 17de64c..3c5005b 100644
Binary files a/test/trace/key-properties-7.swf and b/test/trace/key-properties-7.swf differ
diff --git a/test/trace/key-properties-8.swf b/test/trace/key-properties-8.swf
index ac459d9..9a9fc31 100644
Binary files a/test/trace/key-properties-8.swf and b/test/trace/key-properties-8.swf differ
diff --git a/test/trace/loadvars-properties-5.swf b/test/trace/loadvars-properties-5.swf
index f4ba170..3e7be16 100644
Binary files a/test/trace/loadvars-properties-5.swf and b/test/trace/loadvars-properties-5.swf differ
diff --git a/test/trace/loadvars-properties-6.swf b/test/trace/loadvars-properties-6.swf
index 53efb65..de9d69f 100644
Binary files a/test/trace/loadvars-properties-6.swf and b/test/trace/loadvars-properties-6.swf differ
diff --git a/test/trace/loadvars-properties-7.swf b/test/trace/loadvars-properties-7.swf
index 20e966b..7b5060e 100644
Binary files a/test/trace/loadvars-properties-7.swf and b/test/trace/loadvars-properties-7.swf differ
diff --git a/test/trace/loadvars-properties-8.swf b/test/trace/loadvars-properties-8.swf
index b76aa2e..ea1ec64 100644
Binary files a/test/trace/loadvars-properties-8.swf and b/test/trace/loadvars-properties-8.swf differ
diff --git a/test/trace/local-connection-properties-5.swf b/test/trace/local-connection-properties-5.swf
index 9d56c2f..76dd433 100644
Binary files a/test/trace/local-connection-properties-5.swf and b/test/trace/local-connection-properties-5.swf differ
diff --git a/test/trace/local-connection-properties-6.swf b/test/trace/local-connection-properties-6.swf
index 93ee295..891db70 100644
Binary files a/test/trace/local-connection-properties-6.swf and b/test/trace/local-connection-properties-6.swf differ
diff --git a/test/trace/local-connection-properties-7.swf b/test/trace/local-connection-properties-7.swf
index 1c46519..ff9f054 100644
Binary files a/test/trace/local-connection-properties-7.swf and b/test/trace/local-connection-properties-7.swf differ
diff --git a/test/trace/local-connection-properties-8.swf b/test/trace/local-connection-properties-8.swf
index 9d57baf..a3cf795 100644
Binary files a/test/trace/local-connection-properties-8.swf and b/test/trace/local-connection-properties-8.swf differ
diff --git a/test/trace/math-properties-5.swf b/test/trace/math-properties-5.swf
index 8ba744c..aded82e 100644
Binary files a/test/trace/math-properties-5.swf and b/test/trace/math-properties-5.swf differ
diff --git a/test/trace/math-properties-6.swf b/test/trace/math-properties-6.swf
index 44c0118..9fa6e34 100644
Binary files a/test/trace/math-properties-6.swf and b/test/trace/math-properties-6.swf differ
diff --git a/test/trace/math-properties-7.swf b/test/trace/math-properties-7.swf
index 45dd6f0..8698fcf 100644
Binary files a/test/trace/math-properties-7.swf and b/test/trace/math-properties-7.swf differ
diff --git a/test/trace/math-properties-8.swf b/test/trace/math-properties-8.swf
new file mode 100644
index 0000000..f2f3a60
Binary files /dev/null and b/test/trace/math-properties-8.swf differ
diff --git a/test/trace/math-properties-8.swf.trace b/test/trace/math-properties-8.swf.trace
new file mode 100644
index 0000000..cfeafd7
--- /dev/null
+++ b/test/trace/math-properties-8.swf.trace
@@ -0,0 +1,65 @@
+_global.Math = object
+  E (hpc) = number : 2.71828182845905
+  LN10 (hpc) = number : 2.30258509299405
+  LN2 (hpc) = number : 0.693147180559945
+  LOG10E (hpc) = number : 0.434294481903252
+  LOG2E (hpc) = number : 1.44269504088896
+  PI (hpc) = number : 3.14159265358979
+  SQRT1_2 (hpc) = number : 0.707106781186548
+  SQRT2 (hpc) = number : 1.4142135623731
+  __proto__ (hpc) = _global.Object.prototype
+  abs (hpc) = function
+    __proto__ (hp) = _global.Function.prototype
+    constructor (hp) = _global.Function
+  acos (hpc) = function
+    __proto__ (hp) = _global.Function.prototype
+    constructor (hp) = _global.Function
+  asin (hpc) = function
+    __proto__ (hp) = _global.Function.prototype
+    constructor (hp) = _global.Function
+  atan (hpc) = function
+    __proto__ (hp) = _global.Function.prototype
+    constructor (hp) = _global.Function
+  atan2 (hpc) = function
+    __proto__ (hp) = _global.Function.prototype
+    constructor (hp) = _global.Function
+  ceil (hpc) = function
+    __proto__ (hp) = _global.Function.prototype
+    constructor (hp) = _global.Function
+  constructor (hpc) = _global.Object
+  cos (hpc) = function
+    __proto__ (hp) = _global.Function.prototype
+    constructor (hp) = _global.Function
+  exp (hpc) = function
+    __proto__ (hp) = _global.Function.prototype
+    constructor (hp) = _global.Function
+  floor (hpc) = function
+    __proto__ (hp) = _global.Function.prototype
+    constructor (hp) = _global.Function
+  log (hpc) = function
+    __proto__ (hp) = _global.Function.prototype
+    constructor (hp) = _global.Function
+  max (hpc) = function
+    __proto__ (hp) = _global.Function.prototype
+    constructor (hp) = _global.Function
+  min (hpc) = function
+    __proto__ (hp) = _global.Function.prototype
+    constructor (hp) = _global.Function
+  pow (hpc) = function
+    __proto__ (hp) = _global.Function.prototype
+    constructor (hp) = _global.Function
+  random (hpc) = function
+    __proto__ (hp) = _global.Function.prototype
+    constructor (hp) = _global.Function
+  round (hpc) = function
+    __proto__ (hp) = _global.Function.prototype
+    constructor (hp) = _global.Function
+  sin (hpc) = function
+    __proto__ (hp) = _global.Function.prototype
+    constructor (hp) = _global.Function
+  sqrt (hpc) = function
+    __proto__ (hp) = _global.Function.prototype
+    constructor (hp) = _global.Function
+  tan (hpc) = function
+    __proto__ (hp) = _global.Function.prototype
+    constructor (hp) = _global.Function
diff --git a/test/trace/microphone-properties-5.swf b/test/trace/microphone-properties-5.swf
index b294387..922bea5 100644
Binary files a/test/trace/microphone-properties-5.swf and b/test/trace/microphone-properties-5.swf differ
diff --git a/test/trace/microphone-properties-6.swf b/test/trace/microphone-properties-6.swf
index c10261e..e37da30 100644
Binary files a/test/trace/microphone-properties-6.swf and b/test/trace/microphone-properties-6.swf differ
diff --git a/test/trace/microphone-properties-7.swf b/test/trace/microphone-properties-7.swf
index d2c3491..ab61dac 100644
Binary files a/test/trace/microphone-properties-7.swf and b/test/trace/microphone-properties-7.swf differ
diff --git a/test/trace/microphone-properties-8.swf b/test/trace/microphone-properties-8.swf
index 4a207fd..cc469db 100644
Binary files a/test/trace/microphone-properties-8.swf and b/test/trace/microphone-properties-8.swf differ
diff --git a/test/trace/mouse-properties-5.swf b/test/trace/mouse-properties-5.swf
index 96f29d1..2c9923c 100644
Binary files a/test/trace/mouse-properties-5.swf and b/test/trace/mouse-properties-5.swf differ
diff --git a/test/trace/mouse-properties-6.swf b/test/trace/mouse-properties-6.swf
index c517d22..a488ea2 100644
Binary files a/test/trace/mouse-properties-6.swf and b/test/trace/mouse-properties-6.swf differ
diff --git a/test/trace/mouse-properties-7.swf b/test/trace/mouse-properties-7.swf
index 9157408..b0263d0 100644
Binary files a/test/trace/mouse-properties-7.swf and b/test/trace/mouse-properties-7.swf differ
diff --git a/test/trace/mouse-properties-8.swf b/test/trace/mouse-properties-8.swf
new file mode 100644
index 0000000..53ef6d4
Binary files /dev/null and b/test/trace/mouse-properties-8.swf differ
diff --git a/test/trace/mouse-properties-8.swf.trace b/test/trace/mouse-properties-8.swf.trace
new file mode 100644
index 0000000..544a71b
--- /dev/null
+++ b/test/trace/mouse-properties-8.swf.trace
@@ -0,0 +1,18 @@
+_global.Mouse = object
+  __proto__ (hpc) = _global.Object.prototype
+  _listeners (hpc) = object
+    __proto__ (hp) = _global.Array.prototype
+    constructor (hp) = _global.Array
+    length (hp) = number : 0
+  addListener (hpc) = _global.AsBroadcaster.addListener
+  broadcastMessage (hpc) = function
+    __proto__ (hp) = _global.Function.prototype
+    constructor (hp) = _global.Function
+  constructor (hpc) = _global.Object
+  hide (hpc) = function
+    __proto__ (hp) = _global.Function.prototype
+    constructor (hp) = _global.Function
+  removeListener (hpc) = _global.AsBroadcaster.removeListener
+  show (hpc) = function
+    __proto__ (hp) = _global.Function.prototype
+    constructor (hp) = _global.Function
diff --git a/test/trace/moviecliploader-properties-5.swf b/test/trace/moviecliploader-properties-5.swf
index 0cf5dc6..e289095 100644
Binary files a/test/trace/moviecliploader-properties-5.swf and b/test/trace/moviecliploader-properties-5.swf differ
diff --git a/test/trace/moviecliploader-properties-6.swf b/test/trace/moviecliploader-properties-6.swf
index 9a64c5f..13697e8 100644
Binary files a/test/trace/moviecliploader-properties-6.swf and b/test/trace/moviecliploader-properties-6.swf differ
diff --git a/test/trace/moviecliploader-properties-7.swf b/test/trace/moviecliploader-properties-7.swf
index 5558076..26eb5ca 100644
Binary files a/test/trace/moviecliploader-properties-7.swf and b/test/trace/moviecliploader-properties-7.swf differ
diff --git a/test/trace/moviecliploader-properties-8.swf b/test/trace/moviecliploader-properties-8.swf
index d5efe47..26c4dd3 100644
Binary files a/test/trace/moviecliploader-properties-8.swf and b/test/trace/moviecliploader-properties-8.swf differ
diff --git a/test/trace/number-properties-5.swf b/test/trace/number-properties-5.swf
index 324ec16..caa7430 100644
Binary files a/test/trace/number-properties-5.swf and b/test/trace/number-properties-5.swf differ
diff --git a/test/trace/number-properties-6.swf b/test/trace/number-properties-6.swf
index b7347f2..d479daa 100644
Binary files a/test/trace/number-properties-6.swf and b/test/trace/number-properties-6.swf differ
diff --git a/test/trace/number-properties-7.swf b/test/trace/number-properties-7.swf
index d6efe13..d732499 100644
Binary files a/test/trace/number-properties-7.swf and b/test/trace/number-properties-7.swf differ
diff --git a/test/trace/number-properties-8.swf b/test/trace/number-properties-8.swf
index ddc2659..d3bbbd7 100644
Binary files a/test/trace/number-properties-8.swf and b/test/trace/number-properties-8.swf differ
diff --git a/test/trace/object-properties-5.swf b/test/trace/object-properties-5.swf
index 22d6f89..9c9c183 100644
Binary files a/test/trace/object-properties-5.swf and b/test/trace/object-properties-5.swf differ
diff --git a/test/trace/object-properties-5.swf.trace b/test/trace/object-properties-5.swf.trace
index e2bfdb1..f91fb6c 100644
--- a/test/trace/object-properties-5.swf.trace
+++ b/test/trace/object-properties-5.swf.trace
@@ -1,10 +1,10 @@
 _global.Object = function
   __proto__ (hpcn) = object
     __proto__ (hp) = _global.Object.prototype
-    apply (hpn) = function
+    apply (hp) = function
       __proto__ (hpn) = _global.Object.__proto__
       constructor (hp) = _global.Object.constructor
-    call (hpn) = function
+    call (hp) = function
       __proto__ (hpn) = _global.Object.__proto__
       constructor (hp) = _global.Object.constructor
     constructor (hp) = _global.Object.constructor
diff --git a/test/trace/object-properties-6.swf b/test/trace/object-properties-6.swf
index 141c6f8..4476d6e 100644
Binary files a/test/trace/object-properties-6.swf and b/test/trace/object-properties-6.swf differ
diff --git a/test/trace/object-properties-7.swf b/test/trace/object-properties-7.swf
index 35b0a6c..8ac3d61 100644
Binary files a/test/trace/object-properties-7.swf and b/test/trace/object-properties-7.swf differ
diff --git a/test/trace/object-properties-8.swf b/test/trace/object-properties-8.swf
new file mode 100644
index 0000000..91f8be4
Binary files /dev/null and b/test/trace/object-properties-8.swf differ
diff --git a/test/trace/object-properties-8.swf.trace b/test/trace/object-properties-8.swf.trace
new file mode 100644
index 0000000..7f22a1a
--- /dev/null
+++ b/test/trace/object-properties-8.swf.trace
@@ -0,0 +1,44 @@
+_global.Object = function
+  __proto__ (hpc) = _global.Function.prototype
+  constructor (hpc) = _global.Function
+  prototype (hpc) = object
+    addProperty (hp) = function
+      __proto__ (hp) = _global.Function.prototype
+      constructor (hp) = _global.Function
+    constructor (hp) = _global.Object
+    hasOwnProperty (hp) = function
+      __proto__ (hp) = _global.Function.prototype
+      constructor (hp) = _global.Function
+    isPropertyEnumerable (hp) = function
+      __proto__ (hp) = _global.Function.prototype
+      constructor (hp) = _global.Function
+    isPrototypeOf (hp) = function
+      __proto__ (hp) = _global.Function.prototype
+      constructor (hp) = _global.Function
+    toLocaleString (hp) = function
+      __proto__ (hp) = _global.Function.prototype
+      constructor (hp) = _global.Function
+      prototype (hp) = object
+        __proto__ (hp) = _global.Object.prototype
+        constructor (hp) = _global.Object.prototype.toLocaleString
+    toString (hp) = function
+      __proto__ (hp) = _global.Function.prototype
+      constructor (hp) = _global.Function
+    unwatch (hp) = function
+      __proto__ (hp) = _global.Function.prototype
+      constructor (hp) = _global.Function
+    valueOf (hp) = function
+      __proto__ (hp) = _global.Function.prototype
+      constructor (hp) = _global.Function
+    watch (hp) = function
+      __proto__ (hp) = _global.Function.prototype
+      constructor (hp) = _global.Function
+  registerClass (hpc) = function
+    __proto__ (hp) = _global.Function.prototype
+    constructor (hp) = _global.Function
+local.a = object
+  __constructor__ (h) = _global.Object
+  __proto__ (hp) = _global.Object.prototype
+local.b = object
+  __proto__ (hp) = _global.Object.prototype
+  constructor (hp) = _global.Object
diff --git a/test/trace/point-properties-5.swf b/test/trace/point-properties-5.swf
index 209ce97..f5a1a28 100644
Binary files a/test/trace/point-properties-5.swf and b/test/trace/point-properties-5.swf differ
diff --git a/test/trace/point-properties-7.swf b/test/trace/point-properties-7.swf
index 5f1a49e..0c03445 100644
Binary files a/test/trace/point-properties-7.swf and b/test/trace/point-properties-7.swf differ
diff --git a/test/trace/point-properties-8.swf b/test/trace/point-properties-8.swf
index f6acb32..c1f1daa 100644
Binary files a/test/trace/point-properties-8.swf and b/test/trace/point-properties-8.swf differ
diff --git a/test/trace/point-properties.as b/test/trace/point-properties.as
index 2a67cff..025e336 100644
--- a/test/trace/point-properties.as
+++ b/test/trace/point-properties.as
@@ -1,10 +1,10 @@
 // makeswf -v 7 -r 1 -o point-properties-7.swf point-properties.as
 
-// enable flash structure for version < 8 too for this test
-ASSetPropFlags (_global, "flash", 0, 4096);
-
 #include "trace_properties.as"
 
+// enable flash structure for version < 8 too for this test
+ASSetPropFlags (_global, "flash", 0, 5248);
+
 var a = new flash.geom.Point ();
 
 trace_properties (_global.flash.geom.Point, "_global.flash.geom", "Point");
diff --git a/test/trace/print-job-properties-5.swf b/test/trace/print-job-properties-5.swf
index b8f2c93..30954d6 100644
Binary files a/test/trace/print-job-properties-5.swf and b/test/trace/print-job-properties-5.swf differ
diff --git a/test/trace/print-job-properties-6.swf b/test/trace/print-job-properties-6.swf
index fba33e2..02880c1 100644
Binary files a/test/trace/print-job-properties-6.swf and b/test/trace/print-job-properties-6.swf differ
diff --git a/test/trace/print-job-properties-7.swf b/test/trace/print-job-properties-7.swf
index 60a7a55..d072de1 100644
Binary files a/test/trace/print-job-properties-7.swf and b/test/trace/print-job-properties-7.swf differ
diff --git a/test/trace/print-job-properties-8.swf b/test/trace/print-job-properties-8.swf
index a94f5ba..e42d9ba 100644
Binary files a/test/trace/print-job-properties-8.swf and b/test/trace/print-job-properties-8.swf differ
diff --git a/test/trace/propflags-5.swf b/test/trace/propflags-5.swf
index 50a7937..595100c 100644
Binary files a/test/trace/propflags-5.swf and b/test/trace/propflags-5.swf differ
diff --git a/test/trace/propflags-6.swf b/test/trace/propflags-6.swf
index 5fbdc6f..c7671ce 100644
Binary files a/test/trace/propflags-6.swf and b/test/trace/propflags-6.swf differ
diff --git a/test/trace/propflags-7.swf b/test/trace/propflags-7.swf
index 0b8716a..fa8f2d9 100644
Binary files a/test/trace/propflags-7.swf and b/test/trace/propflags-7.swf differ
diff --git a/test/trace/propflags-8.swf b/test/trace/propflags-8.swf
index 4100185..3ba16d6 100644
Binary files a/test/trace/propflags-8.swf and b/test/trace/propflags-8.swf differ
diff --git a/test/trace/remote-lso-usage-properties-5.swf b/test/trace/remote-lso-usage-properties-5.swf
index f8e98e6..c49d680 100644
Binary files a/test/trace/remote-lso-usage-properties-5.swf and b/test/trace/remote-lso-usage-properties-5.swf differ
diff --git a/test/trace/remote-lso-usage-properties-6.swf b/test/trace/remote-lso-usage-properties-6.swf
index 51fb541..ea28e63 100644
Binary files a/test/trace/remote-lso-usage-properties-6.swf and b/test/trace/remote-lso-usage-properties-6.swf differ
diff --git a/test/trace/remote-lso-usage-properties-7.swf b/test/trace/remote-lso-usage-properties-7.swf
index f66bd37..4af5d62 100644
Binary files a/test/trace/remote-lso-usage-properties-7.swf and b/test/trace/remote-lso-usage-properties-7.swf differ
diff --git a/test/trace/remote-lso-usage-properties-8.swf b/test/trace/remote-lso-usage-properties-8.swf
index 59ee958..0d73747 100644
Binary files a/test/trace/remote-lso-usage-properties-8.swf and b/test/trace/remote-lso-usage-properties-8.swf differ
diff --git a/test/trace/selection-properties-5.swf b/test/trace/selection-properties-5.swf
index e3fbedb..1762da5 100644
Binary files a/test/trace/selection-properties-5.swf and b/test/trace/selection-properties-5.swf differ
diff --git a/test/trace/selection-properties-6.swf b/test/trace/selection-properties-6.swf
index 0d9b264..7c25553 100644
Binary files a/test/trace/selection-properties-6.swf and b/test/trace/selection-properties-6.swf differ
diff --git a/test/trace/selection-properties-7.swf b/test/trace/selection-properties-7.swf
index 7f6fa7d..cdf0bab 100644
Binary files a/test/trace/selection-properties-7.swf and b/test/trace/selection-properties-7.swf differ
diff --git a/test/trace/selection-properties-8.swf b/test/trace/selection-properties-8.swf
index acdef2f..c9f9c5b 100644
Binary files a/test/trace/selection-properties-8.swf and b/test/trace/selection-properties-8.swf differ
diff --git a/test/trace/shared-object-properties-5.swf b/test/trace/shared-object-properties-5.swf
index 37cf3f0..5c1843e 100644
Binary files a/test/trace/shared-object-properties-5.swf and b/test/trace/shared-object-properties-5.swf differ
diff --git a/test/trace/shared-object-properties-6.swf b/test/trace/shared-object-properties-6.swf
index b724ae6..4fd8169 100644
Binary files a/test/trace/shared-object-properties-6.swf and b/test/trace/shared-object-properties-6.swf differ
diff --git a/test/trace/shared-object-properties-7.swf b/test/trace/shared-object-properties-7.swf
index 3f9a4f8..0355cea 100644
Binary files a/test/trace/shared-object-properties-7.swf and b/test/trace/shared-object-properties-7.swf differ
diff --git a/test/trace/shared-object-properties-8.swf b/test/trace/shared-object-properties-8.swf
index 572e987..81d5bc8 100644
Binary files a/test/trace/shared-object-properties-8.swf and b/test/trace/shared-object-properties-8.swf differ
diff --git a/test/trace/sound-properties-5.swf b/test/trace/sound-properties-5.swf
index 4797ab5..4dd6a34 100644
Binary files a/test/trace/sound-properties-5.swf and b/test/trace/sound-properties-5.swf differ
diff --git a/test/trace/sound-properties-6.swf b/test/trace/sound-properties-6.swf
index 1670577..92f750d 100644
Binary files a/test/trace/sound-properties-6.swf and b/test/trace/sound-properties-6.swf differ
diff --git a/test/trace/sound-properties-7.swf b/test/trace/sound-properties-7.swf
index 0ae3abc..43d1816 100644
Binary files a/test/trace/sound-properties-7.swf and b/test/trace/sound-properties-7.swf differ
diff --git a/test/trace/sound-properties-8.swf b/test/trace/sound-properties-8.swf
index af042ed..a837a85 100644
Binary files a/test/trace/sound-properties-8.swf and b/test/trace/sound-properties-8.swf differ
diff --git a/test/trace/string-properties-5.swf b/test/trace/string-properties-5.swf
index a913ca7..b93eeaf 100644
Binary files a/test/trace/string-properties-5.swf and b/test/trace/string-properties-5.swf differ
diff --git a/test/trace/string-properties-6.swf b/test/trace/string-properties-6.swf
index e7d1796..ce2dc72 100644
Binary files a/test/trace/string-properties-6.swf and b/test/trace/string-properties-6.swf differ
diff --git a/test/trace/string-properties-7.swf b/test/trace/string-properties-7.swf
index 36f2812..4a17cbc 100644
Binary files a/test/trace/string-properties-7.swf and b/test/trace/string-properties-7.swf differ
diff --git a/test/trace/string-properties-8.swf b/test/trace/string-properties-8.swf
new file mode 100644
index 0000000..65a934b
Binary files /dev/null and b/test/trace/string-properties-8.swf differ
diff --git a/test/trace/string-properties-8.swf.trace b/test/trace/string-properties-8.swf.trace
new file mode 100644
index 0000000..31df3f2
--- /dev/null
+++ b/test/trace/string-properties-8.swf.trace
@@ -0,0 +1,57 @@
+_global.String = function
+  __proto__ (hp) = _global.Function.prototype
+  constructor (hp) = _global.Function
+  fromCharCode (hp) = function
+    __proto__ (hp) = _global.Function.prototype
+    constructor (hp) = _global.Function
+  prototype (hp) = object
+    __proto__ (hp) = _global.Object.prototype
+    charAt (hp) = function
+      __proto__ (hp) = _global.Function.prototype
+      constructor (hp) = _global.Function
+    charCodeAt (hp) = function
+      __proto__ (hp) = _global.Function.prototype
+      constructor (hp) = _global.Function
+    concat (hp) = function
+      __proto__ (hp) = _global.Function.prototype
+      constructor (hp) = _global.Function
+    constructor (hp) = _global.String
+    indexOf (hp) = function
+      __proto__ (hp) = _global.Function.prototype
+      constructor (hp) = _global.Function
+    lastIndexOf (hp) = function
+      __proto__ (hp) = _global.Function.prototype
+      constructor (hp) = _global.Function
+    slice (hp) = function
+      __proto__ (hp) = _global.Function.prototype
+      constructor (hp) = _global.Function
+    split (hp) = function
+      __proto__ (hp) = _global.Function.prototype
+      constructor (hp) = _global.Function
+    substr (hp) = function
+      __proto__ (hp) = _global.Function.prototype
+      constructor (hp) = _global.Function
+    substring (hp) = function
+      __proto__ (hp) = _global.Function.prototype
+      constructor (hp) = _global.Function
+    toLowerCase (hp) = function
+      __proto__ (hp) = _global.Function.prototype
+      constructor (hp) = _global.Function
+    toString (hp) = function
+      __proto__ (hp) = _global.Function.prototype
+      constructor (hp) = _global.Function
+    toUpperCase (hp) = function
+      __proto__ (hp) = _global.Function.prototype
+      constructor (hp) = _global.Function
+    valueOf (hp) = function
+      __proto__ (hp) = _global.Function.prototype
+      constructor (hp) = _global.Function
+local.a = object
+  __constructor__ (h) = _global.String
+  __proto__ (hp) = _global.String.prototype
+  length (hp) = number : 5
+local.b = string : "hello"
+local.c = object
+  __constructor__ (h) = _global.String
+  __proto__ (hp) = _global.String.prototype
+  length (hp) = number : 0
diff --git a/test/trace/text-snapshot-properties-5.swf b/test/trace/text-snapshot-properties-5.swf
index 9107799..95b5c64 100644
Binary files a/test/trace/text-snapshot-properties-5.swf and b/test/trace/text-snapshot-properties-5.swf differ
diff --git a/test/trace/text-snapshot-properties-6.swf b/test/trace/text-snapshot-properties-6.swf
index 351cc82..7579ae2 100644
Binary files a/test/trace/text-snapshot-properties-6.swf and b/test/trace/text-snapshot-properties-6.swf differ
diff --git a/test/trace/text-snapshot-properties-7.swf b/test/trace/text-snapshot-properties-7.swf
index 1eba1b7..dec987b 100644
Binary files a/test/trace/text-snapshot-properties-7.swf and b/test/trace/text-snapshot-properties-7.swf differ
diff --git a/test/trace/text-snapshot-properties-8.swf b/test/trace/text-snapshot-properties-8.swf
index cc74daa..5d3d78d 100644
Binary files a/test/trace/text-snapshot-properties-8.swf and b/test/trace/text-snapshot-properties-8.swf differ
diff --git a/test/trace/transform-properties-5.swf b/test/trace/transform-properties-5.swf
index 3ec3fa9..6510e9e 100644
Binary files a/test/trace/transform-properties-5.swf and b/test/trace/transform-properties-5.swf differ
diff --git a/test/trace/transform-properties-6.swf b/test/trace/transform-properties-6.swf
index 9e915d7..0082fdc 100644
Binary files a/test/trace/transform-properties-6.swf and b/test/trace/transform-properties-6.swf differ
diff --git a/test/trace/transform-properties-7.swf b/test/trace/transform-properties-7.swf
index 1d29edc..1800e24 100644
Binary files a/test/trace/transform-properties-7.swf and b/test/trace/transform-properties-7.swf differ
diff --git a/test/trace/transform-properties-8.swf b/test/trace/transform-properties-8.swf
index 0eac023..2fea3b1 100644
Binary files a/test/trace/transform-properties-8.swf and b/test/trace/transform-properties-8.swf differ
diff --git a/test/trace/transform-properties.as b/test/trace/transform-properties.as
index e26989a..1bceb10 100644
--- a/test/trace/transform-properties.as
+++ b/test/trace/transform-properties.as
@@ -1,10 +1,10 @@
 // makeswf -v 7 -r 1 -o transform-properties-7.swf transform-properties.as
 
-// enable flash structure for version < 8 too for this test
-ASSetPropFlags (_global, "flash", 0, 4096);
-
 #include "trace_properties.as"
 
+// enable flash structure for version < 8 too for this test
+ASSetPropFlags (_global, "flash", 0, 5248);
+
 var a = new flash.geom.Transform (this);
 
 trace_properties (_global.flash.geom.Transform, "_global.flash.geom",
diff --git a/test/trace/video-properties-6.swf b/test/trace/video-properties-6.swf
index 8fe099a..43c6500 100644
Binary files a/test/trace/video-properties-6.swf and b/test/trace/video-properties-6.swf differ
diff --git a/test/trace/video-properties-7.swf b/test/trace/video-properties-7.swf
index 3404162..7d29b88 100644
Binary files a/test/trace/video-properties-7.swf and b/test/trace/video-properties-7.swf differ
diff --git a/test/trace/video-properties-8.swf b/test/trace/video-properties-8.swf
new file mode 100644
index 0000000..6c444d1
Binary files /dev/null and b/test/trace/video-properties-8.swf differ
diff --git a/test/trace/video-properties-8.swf.trace b/test/trace/video-properties-8.swf.trace
new file mode 100644
index 0000000..f0c338d
--- /dev/null
+++ b/test/trace/video-properties-8.swf.trace
@@ -0,0 +1,15 @@
+_global.Video = function
+  __proto__ (hp) = _global.Function.prototype
+  constructor (hp) = _global.Function
+  prototype (hp) = object
+    __proto__ (hp) = _global.Object.prototype
+    attachVideo (hp) = function
+      __proto__ (hp) = _global.Function.prototype
+      constructor (hp) = _global.Function
+    clear (hp) = function
+      __proto__ (hp) = _global.Function.prototype
+      constructor (hp) = _global.Function
+    constructor (hp) = _global.Video
+local.a = object
+  __constructor__ (h) = _global.Video
+  __proto__ (hp) = _global.Video.prototype
diff --git a/test/trace/xml-properties-5.swf b/test/trace/xml-properties-5.swf
index d9f3e12..874e189 100644
Binary files a/test/trace/xml-properties-5.swf and b/test/trace/xml-properties-5.swf differ
diff --git a/test/trace/xml-properties-6.swf b/test/trace/xml-properties-6.swf
index cc55dc7..160f33d 100644
Binary files a/test/trace/xml-properties-6.swf and b/test/trace/xml-properties-6.swf differ
diff --git a/test/trace/xml-properties-7.swf b/test/trace/xml-properties-7.swf
index d824fe5..f3a85ec 100644
Binary files a/test/trace/xml-properties-7.swf and b/test/trace/xml-properties-7.swf differ
diff --git a/test/trace/xml-properties-8.swf b/test/trace/xml-properties-8.swf
index 521db96..fa4a889 100644
Binary files a/test/trace/xml-properties-8.swf and b/test/trace/xml-properties-8.swf differ
diff --git a/test/trace/xml-properties2-5.swf b/test/trace/xml-properties2-5.swf
index 0df974e..6a5b4ea 100644
Binary files a/test/trace/xml-properties2-5.swf and b/test/trace/xml-properties2-5.swf differ
diff --git a/test/trace/xml-properties2-5.swf.trace b/test/trace/xml-properties2-5.swf.trace
index 8dd0cd7..e4a82d8 100644
--- a/test/trace/xml-properties2-5.swf.trace
+++ b/test/trace/xml-properties2-5.swf.trace
@@ -68,10 +68,10 @@ local.d.childNodes = object
   __proto__ (hp) = _global.Array.prototype
   constructor (hp) = _global.Array
   length (hp) = number : 1
-local.d.firstChild = local.d.childNodes.0
+local.d.firstChild = object
   __proto__ (hp) = _global.XMLNode.prototype
   constructor (hp) = _global.XMLNode
-local.d.lastChild = local.d.childNodes.0
+local.d.lastChild = object
   __proto__ (hp) = _global.XMLNode.prototype
   constructor (hp) = _global.XMLNode
 local.d.localName = null
@@ -89,7 +89,7 @@ local.d.ignoreWhite = boolean : false
 local.d.loaded = undefined
 local.d.status = number : 0
 local.d.xmlDecl = undefined
-local.e = local.d.childNodes.0
+local.e = object
   __proto__ (hp) = _global.XMLNode.prototype
   constructor (hp) = _global.XMLNode
 local.e.attributes = object
@@ -99,10 +99,10 @@ local.e.childNodes = object
   __proto__ (hp) = _global.Array.prototype
   constructor (hp) = _global.Array
   length (hp) = number : 1
-local.e.firstChild = local.e.childNodes.0
+local.e.firstChild = object
   __proto__ (hp) = _global.XMLNode.prototype
   constructor (hp) = _global.XMLNode
-local.e.lastChild = local.e.childNodes.0
+local.e.lastChild = object
   __proto__ (hp) = _global.XMLNode.prototype
   constructor (hp) = _global.XMLNode
 local.e.localName = string : "element"
@@ -111,7 +111,7 @@ local.e.nextSibling = null
 local.e.nodeName = string : "element"
 local.e.nodeType = number : 1
 local.e.nodeValue = null
-local.e.parentNode = local.d
+local.e.parentNode = object
   __constructor__ = _global.XML
   __proto__ (hp) = _global.XML.prototype
   constructor = _global.XML
diff --git a/test/trace/xml-properties2-6.swf b/test/trace/xml-properties2-6.swf
index 03e0522..a358c58 100644
Binary files a/test/trace/xml-properties2-6.swf and b/test/trace/xml-properties2-6.swf differ
diff --git a/test/trace/xml-properties2-7.swf b/test/trace/xml-properties2-7.swf
index 3393257..ebd6a20 100644
Binary files a/test/trace/xml-properties2-7.swf and b/test/trace/xml-properties2-7.swf differ
diff --git a/test/trace/xml-properties2-8.swf b/test/trace/xml-properties2-8.swf
index 248057e..13cfcc2 100644
Binary files a/test/trace/xml-properties2-8.swf and b/test/trace/xml-properties2-8.swf differ
diff --git a/test/trace/xml-socket-properties-5.swf b/test/trace/xml-socket-properties-5.swf
index b5c6981..0b56668 100644
Binary files a/test/trace/xml-socket-properties-5.swf and b/test/trace/xml-socket-properties-5.swf differ
diff --git a/test/trace/xml-socket-properties-6.swf b/test/trace/xml-socket-properties-6.swf
index a81b834..422978b 100644
Binary files a/test/trace/xml-socket-properties-6.swf and b/test/trace/xml-socket-properties-6.swf differ
diff --git a/test/trace/xml-socket-properties-7.swf b/test/trace/xml-socket-properties-7.swf
index 57131b5..1fc5ad6 100644
Binary files a/test/trace/xml-socket-properties-7.swf and b/test/trace/xml-socket-properties-7.swf differ
diff --git a/test/trace/xml-socket-properties-8.swf b/test/trace/xml-socket-properties-8.swf
index 4ee60f6..093210b 100644
Binary files a/test/trace/xml-socket-properties-8.swf and b/test/trace/xml-socket-properties-8.swf differ
commit 6da66551de9286f98eb5acc8688b70ca4d77f334
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date:   Tue Nov 27 15:34:08 2007 +0200

    Rewrite trace_properties.as to generate and use list of names in _global
    
    The goal is to make properties tests run quicker

diff --git a/test/trace/Makefile.am b/test/trace/Makefile.am
index c0e0bf4..1d5d63a 100644
--- a/test/trace/Makefile.am
+++ b/test/trace/Makefile.am
@@ -2707,6 +2707,10 @@ EXTRA_DIST = \
 	totalframes.swf \
 	totalframes.swf.trace \
 	trace_properties.as \
+	trace_properties_names_5.as \
+	trace_properties_names_6.as \
+	trace_properties_names_7.as \
+	trace_properties_names_8.as \
 	transform.swf \
 	transform.swf.trace \
 	transform-properties.as \
diff --git a/test/trace/trace_properties.as b/test/trace/trace_properties.as
index 2af2bea..2482e12 100644
--- a/test/trace/trace_properties.as
+++ b/test/trace/trace_properties.as
@@ -1,4 +1,4 @@
-#if __SWF_VERSION__ == 5
+#if __SWF_VERSION__ <= 5
 // create a _global object, since it doesn't have one, these are ver 6 values
 _global = new_empty_object ();
 _global.ASSetNative = ASSetNative;
@@ -325,7 +325,7 @@ function trace_properties_recurse (o, prefix, identifier, level)
   }
 }
 
-function generate_names (o, prefix, identifier)
+function generate_names (o, prefix, identifier, output)
 {
   // mark the ones that are not hidden
   var nothidden = new Array ();
@@ -368,6 +368,9 @@ function generate_names (o, prefix, identifier)
       } else {
 	o[prop]["mySecretId"] = prefix + (prefix != "" ? "." : "") +
 	  identifier + "." + prop;
+	if (output == true) {
+	  trace ("  [\"" + prefix + (prefix != "" ? "." : "") + identifier + "\", \"" + prop + "\", " + newer + "],");
+	}
       }
     }
 
@@ -389,7 +392,7 @@ function generate_names (o, prefix, identifier)
 
       if (typeof (o[prop]) == "object" || typeof (o[prop]) == "function")
 	generate_names (o[prop], prefix + (prefix != "" ? "." : "") +
-	    identifier, prop);
+	    identifier, prop, output);
 
       if (newer == true)
 	ASSetPropFlags (o, prop, 5248);
@@ -397,26 +400,78 @@ function generate_names (o, prefix, identifier)
   }
 }
 
+#if GENERATE_NAMES
+
+ASSetPropFlags (_global, "flash", 0, 4096);
+
+trace ("// generated by trace_properties.as");
+trace ("");
+trace ("var mySecretIds = [");
+
+// prioritize some things in the naming
+_global["mySecretId"] = "_global";
+_global.Object["mySecretId"] = "_global.Object";
+trace ("  [\"_global\", \"Object\", false],");
+_global.Function["mySecretId"] = "_global.Function";
+trace ("  [\"_global\", \"Function\", false],");
+_global.Function.prototype["mySecretId"] = "_global.Function.prototype";
+trace ("  [\"_global.Function\", \"prototype\", false],");
+_global.XMLNode["mySecretId"] = "_global.XMLNode";
+trace ("  [\"_global\", \"XMLNode\", false],");
+_global.flash.text.TextRenderer["mySecretId"] = "_global.flash.text.TextRenderer";
+trace ("  [\"_global.flash.text\", \"TextRenderer\", false],");
+_global.flash.filters.BitmapFilter["mySecretId"] = "_global.flash.filters.BitmapFilter";
+trace ("  [\"_global.flash.filters\", \"BitmapFilter\", false],");
+
+generate_names (_global.Object, "_global", "Object", true);
+generate_names (_global.Function, "_global", "Function", true);
+generate_names (_global.Function.prototype, "_global", "Function.prototype", true);
+generate_names (_global.XMLNode, "_global", "XMLNode", true);
+generate_names (_global.flash.text.TextRenderer, "_global.flash.text", "TextRenderer", true);
+generate_names (_global.flash.filters.BitmapFilter, "_global.flash.filters", "BitmapFilter", true);
+generate_names (_global, "", "_global", true);
+
+trace ("];");
+
+ASSetPropFlags (_global, "flash", 4096);
+
+#else
+
+#if __SWF_VERSION__ <= 5
+#include "trace_properties_names_5.as"
+#elif __SWF_VERSION__ == 6
+#include "trace_properties_names_6.as"
+#elif __SWF_VERSION__ == 7
+#include "trace_properties_names_7.as"
+#elif __SWF_VERSION__ == 8
+#include "trace_properties_names_8.as"
+#endif
+
+ASSetPropFlags (_global, "flash", 0, 4096);
+
+for (var i = 0; i < mySecretIds.length; i++) {
+  if (mySecretIds[i][2] == true)
+    ASSetPropFlags (eval (mySecretIds[i][0]), mySecretIds[i][1], 0, 5248);
+}
+
+_global["mySecretId"] = "_global";
+
+for (var i = 0; i < mySecretIds.length; i++) {
+  eval (mySecretIds[i][0] + "." + mySecretIds[i][1])["mySecretId"] =
+    mySecretIds[i][0] + "." + mySecretIds[i][1];
+}
+
+for (var i = 0; i < mySecretIds.length; i++) {
+  if (mySecretIds[i][2] == true)
+    ASSetPropFlags (eval (mySecretIds[i][0]), mySecretIds[i][1], 5248);
+}
+
+ASSetPropFlags (_global, "flash", 4096);
+
+#endif
+
 function trace_properties (o, prefix, identifier)
 {
-  // prioritize some things in the naming
-  ASSetPropFlags (_global, "flash", 0, 4096);
-  _global["mySecretId"] = "_global";
-  _global.Object["mySecretId"] = "_global.Object";
-  _global.Function["mySecretId"] = "_global.Function";
-  _global.Function.prototype["mySecretId"] = "_global.Function.prototype";
-  _global.XMLNode["mySecretId"] = "_global.XMLNode";
-  _global.flash.text.TextRenderer["mySecretId"] = "_global.flash.text.TextRenderer";
-  _global.flash.filters.BitmapFilter["mySecretId"] = "_global.flash.filters.BitmapFilter";
-  generate_names (_global.Object, "_global", "Object");
-  generate_names (_global.Function, "_global", "Function");
-  generate_names (_global.Function.prototype, "_global", "Function.prototype");
-  generate_names (_global.XMLNode, "_global", "XMLNode");
-  generate_names (_global.flash.text.TextRenderer, "_global.flash.text", "TextRenderer");
-  generate_names (_global.flash.filters.BitmapFilter, "_global.flash.filters", "BitmapFilter");
-  generate_names (_global, "", "_global");
-  ASSetPropFlags (_global, "flash", 4096);
-
   if (typeof (o) == "object" || typeof (o) == "function")
   {
     if (!o.hasOwnProperty ("mySecretId")) {
diff --git a/test/trace/trace_properties_names_5.as b/test/trace/trace_properties_names_5.as
new file mode 100644
index 0000000..1086555
--- /dev/null
+++ b/test/trace/trace_properties_names_5.as
@@ -0,0 +1,507 @@
+// generated by trace_properties.as
+
+var mySecretIds = [
+  ["_global", "Object", false],
+  ["_global", "Function", false],
+  ["_global.Function", "prototype", false],
+  ["_global", "XMLNode", false],
+  ["_global.flash.text", "TextRenderer", false],
+  ["_global.flash.filters", "BitmapFilter", false],
+  ["_global.Object", "__proto__", true],
+  ["_global.Object", "constructor", false],
+  ["_global.Object", "prototype", false],
+  ["_global.Object", "registerClass", false],
+  ["_global.Object.__proto__", "apply", true],
+  ["_global.Object.__proto__", "call", true],
+  ["_global.Object.prototype", "addProperty", true],
+  ["_global.Object.prototype", "hasOwnProperty", false],
+  ["_global.Object.prototype", "isPropertyEnumerable", true],
+  ["_global.Object.prototype", "isPrototypeOf", true],
+  ["_global.Object.prototype", "toLocaleString", false],
+  ["_global.Object.prototype", "toString", false],
+  ["_global.Object.prototype", "unwatch", true],
+  ["_global.Object.prototype", "valueOf", false],
+  ["_global.Object.prototype", "watch", true],
+  ["_global.Object.prototype.toLocaleString", "prototype", false],
+  ["_global.XMLNode", "prototype", false],
+  ["_global.XMLNode.prototype", "appendChild", false],
+  ["_global.XMLNode.prototype", "cloneNode", false],
+  ["_global.XMLNode.prototype", "getNamespaceForPrefix", false],
+  ["_global.XMLNode.prototype", "getPrefixForNamespace", false],
+  ["_global.XMLNode.prototype", "hasChildNodes", false],
+  ["_global.XMLNode.prototype", "insertBefore", false],
+  ["_global.XMLNode.prototype", "removeNode", false],
+  ["_global.XMLNode.prototype", "toString", false],
+  ["_global", "ASSetNative", false],
+  ["_global", "ASSetNativeAccessor", false],
+  ["_global", "ASSetPropFlags", false],
+  ["_global", "ASconstructor", false],
+  ["_global", "ASnative", false],
+  ["_global", "Accessibility", false],
+  ["_global", "Array", false],
+  ["_global", "AsBroadcaster", false],
+  ["_global", "AsSetupError", false],
+  ["_global", "Boolean", false],
+  ["_global", "Button", false],
+  ["_global", "Camera", false],
+  ["_global", "Color", false],
+  ["_global", "ContextMenu", false],
+  ["_global", "ContextMenuItem", false],
+  ["_global", "Date", false],
+  ["_global", "Error", false],
+  ["_global", "Key", false],
+  ["_global", "LoadVars", false],
+  ["_global", "LocalConnection", false],
+  ["_global", "Math", false],
+  ["_global", "Microphone", false],
+  ["_global", "Mouse", false],
+  ["_global", "MovieClip", false],
+  ["_global", "MovieClipLoader", false],
+  ["_global", "NetConnection", false],
+  ["_global", "NetStream", false],
+  ["_global", "Number", false],
+  ["_global", "PrintJob", false],
+  ["_global", "RemoteLSOUsage", false],
+  ["_global", "Selection", false],
+  ["_global", "SharedObject", false],
+  ["_global", "Sound", false],
+  ["_global", "Stage", false],
+  ["_global", "String", false],
+  ["_global", "System", false],
+  ["_global", "TextField", false],
+  ["_global", "TextFormat", false],
+  ["_global", "TextSnapshot", false],
+  ["_global", "Video", false],
+  ["_global", "XML", false],
+  ["_global", "XMLSocket", false],
+  ["_global", "clearInterval", false],
+  ["_global", "enableDebugConsole", false],
+  ["_global", "escape", false],
+  ["_global", "isFinite", false],
+  ["_global", "isNaN", false],
+  ["_global", "parseFloat", false],
+  ["_global", "parseInt", false],
+  ["_global", "setInterval", false],
+  ["_global", "setTimeout", false],
+  ["_global", "showRedrawRegions", false],
+  ["_global", "textRenderer", false],
+  ["_global", "trace", false],
+  ["_global", "unescape", false],
+  ["_global", "updateAfterEvent", false],
+  ["_global.Accessibility", "isActive", true],
+  ["_global.Accessibility", "sendEvent", true],
+  ["_global.Accessibility", "updateProperties", true],
+  ["_global.Array", "prototype", false],
+  ["_global.Array.prototype", "concat", false],
+  ["_global.Array.prototype", "join", false],
+  ["_global.Array.prototype", "pop", false],
+  ["_global.Array.prototype", "push", false],
+  ["_global.Array.prototype", "reverse", false],
+  ["_global.Array.prototype", "shift", false],
+  ["_global.Array.prototype", "slice", false],
+  ["_global.Array.prototype", "sort", false],
+  ["_global.Array.prototype", "sortOn", false],
+  ["_global.Array.prototype", "splice", false],
+  ["_global.Array.prototype", "toString", false],
+  ["_global.Array.prototype", "unshift", false],
+  ["_global.AsBroadcaster", "addListener", true],
+  ["_global.AsBroadcaster", "broadcastMessage", true],
+  ["_global.AsBroadcaster", "initialize", true],
+  ["_global.AsBroadcaster", "prototype", true],
+  ["_global.AsBroadcaster", "removeListener", true],
+  ["_global.AsBroadcaster.addListener", "prototype", false],
+  ["_global.AsBroadcaster.initialize", "prototype", false],
+  ["_global.AsBroadcaster.removeListener", "prototype", false],
+  ["_global.AsSetupError", "prototype", false],
+  ["_global.Boolean", "prototype", false],
+  ["_global.Boolean.prototype", "toString", false],
+  ["_global.Boolean.prototype", "valueOf", false],
+  ["_global.Button", "prototype", false],
+  ["_global.Button.prototype", "getDepth", false],
+  ["_global.Camera", "get", false],
+  ["_global.Camera", "prototype", false],
+  ["_global.Camera.get", "prototype", false],
+  ["_global.Camera.prototype", "setCursor", true],
+  ["_global.Camera.prototype", "setKeyFrameInterval", true],
+  ["_global.Camera.prototype", "setLoopback", true],
+  ["_global.Camera.prototype", "setMode", true],
+  ["_global.Camera.prototype", "setMotionLevel", true],
+  ["_global.Camera.prototype", "setQuality", true],
+  ["_global.Color", "prototype", false],
+  ["_global.Color.prototype", "getRGB", false],
+  ["_global.Color.prototype", "getTransform", false],
+  ["_global.Color.prototype", "setRGB", false],
+  ["_global.Color.prototype", "setTransform", false],
+  ["_global.ContextMenu", "prototype", false],
+  ["_global.ContextMenu.prototype", "copy", true],
+  ["_global.ContextMenu.prototype", "hideBuiltInItems", true],
+  ["_global.ContextMenu.prototype.copy", "prototype", false],
+  ["_global.ContextMenu.prototype.hideBuiltInItems", "prototype", false],
+  ["_global.ContextMenuItem", "prototype", false],
+  ["_global.ContextMenuItem.prototype", "copy", true],
+  ["_global.ContextMenuItem.prototype.copy", "prototype", false],
+  ["_global.Date", "UTC", false],
+  ["_global.Date", "prototype", false],
+  ["_global.Date.prototype", "getDate", false],
+  ["_global.Date.prototype", "getDay", false],
+  ["_global.Date.prototype", "getFullYear", false],
+  ["_global.Date.prototype", "getHours", false],
+  ["_global.Date.prototype", "getMilliseconds", false],
+  ["_global.Date.prototype", "getMinutes", false],
+  ["_global.Date.prototype", "getMonth", false],
+  ["_global.Date.prototype", "getSeconds", false],
+  ["_global.Date.prototype", "getTime", false],
+  ["_global.Date.prototype", "getTimezoneOffset", false],
+  ["_global.Date.prototype", "getUTCDate", false],
+  ["_global.Date.prototype", "getUTCDay", false],
+  ["_global.Date.prototype", "getUTCFullYear", false],
+  ["_global.Date.prototype", "getUTCHours", false],
+  ["_global.Date.prototype", "getUTCMilliseconds", false],
+  ["_global.Date.prototype", "getUTCMinutes", false],
+  ["_global.Date.prototype", "getUTCMonth", false],
+  ["_global.Date.prototype", "getUTCSeconds", false],
+  ["_global.Date.prototype", "getUTCYear", false],
+  ["_global.Date.prototype", "getYear", false],
+  ["_global.Date.prototype", "setDate", false],
+  ["_global.Date.prototype", "setFullYear", false],
+  ["_global.Date.prototype", "setHours", false],
+  ["_global.Date.prototype", "setMilliseconds", false],
+  ["_global.Date.prototype", "setMinutes", false],
+  ["_global.Date.prototype", "setMonth", false],
+  ["_global.Date.prototype", "setSeconds", false],
+  ["_global.Date.prototype", "setTime", false],
+  ["_global.Date.prototype", "setUTCDate", false],
+  ["_global.Date.prototype", "setUTCFullYear", false],
+  ["_global.Date.prototype", "setUTCHours", false],
+  ["_global.Date.prototype", "setUTCMilliseconds", false],
+  ["_global.Date.prototype", "setUTCMinutes", false],
+  ["_global.Date.prototype", "setUTCMonth", false],
+  ["_global.Date.prototype", "setUTCSeconds", false],
+  ["_global.Date.prototype", "setYear", false],
+  ["_global.Date.prototype", "toString", false],
+  ["_global.Error", "prototype", false],
+  ["_global.Error.prototype", "toString", false],
+  ["_global.Error.prototype.toString", "prototype", false],
+  ["_global.Key", "_listeners", true],
+  ["_global.Key", "broadcastMessage", true],
+  ["_global.Key", "getAscii", false],
+  ["_global.Key", "getCode", false],
+  ["_global.Key", "isAccessible", false],
+  ["_global.Key", "isDown", false],
+  ["_global.Key", "isToggled", false],
+  ["_global.LoadVars", "prototype", false],
+  ["_global.LoadVars.prototype", "addRequestHeader", true],
+  ["_global.LoadVars.prototype", "decode", true],
+  ["_global.LoadVars.prototype", "getBytesLoaded", true],
+  ["_global.LoadVars.prototype", "getBytesTotal", true],
+  ["_global.LoadVars.prototype", "load", true],
+  ["_global.LoadVars.prototype", "onData", true],
+  ["_global.LoadVars.prototype", "onLoad", true],
+  ["_global.LoadVars.prototype", "send", true],
+  ["_global.LoadVars.prototype", "sendAndLoad", true],
+  ["_global.LoadVars.prototype", "toString", true],
+  ["_global.LoadVars.prototype.addRequestHeader", "prototype", false],
+  ["_global.LoadVars.prototype.getBytesLoaded", "prototype", false],
+  ["_global.LoadVars.prototype.getBytesTotal", "prototype", false],
+  ["_global.LoadVars.prototype.onData", "prototype", false],
+  ["_global.LoadVars.prototype.onLoad", "prototype", false],
+  ["_global.LoadVars.prototype.toString", "prototype", false],
+  ["_global.LocalConnection", "prototype", false],
+  ["_global.LocalConnection.prototype", "close", true],
+  ["_global.LocalConnection.prototype", "connect", true],
+  ["_global.LocalConnection.prototype", "domain", true],
+  ["_global.LocalConnection.prototype", "send", true],
+  ["_global.Math", "abs", false],
+  ["_global.Math", "acos", false],
+  ["_global.Math", "asin", false],
+  ["_global.Math", "atan", false],
+  ["_global.Math", "atan2", false],
+  ["_global.Math", "ceil", false],
+  ["_global.Math", "cos", false],
+  ["_global.Math", "exp", false],
+  ["_global.Math", "floor", false],
+  ["_global.Math", "log", false],
+  ["_global.Math", "max", false],
+  ["_global.Math", "min", false],
+  ["_global.Math", "pow", false],
+  ["_global.Math", "random", false],
+  ["_global.Math", "round", false],
+  ["_global.Math", "sin", false],
+  ["_global.Math", "sqrt", false],
+  ["_global.Math", "tan", false],
+  ["_global.Microphone", "get", false],
+  ["_global.Microphone", "prototype", false],
+  ["_global.Microphone.get", "prototype", false],
+  ["_global.Microphone.prototype", "setGain", true],
+  ["_global.Microphone.prototype", "setRate", true],
+  ["_global.Microphone.prototype", "setSilenceLevel", true],
+  ["_global.Microphone.prototype", "setUseEchoSuppression", true],
+  ["_global.Mouse", "_listeners", true],
+  ["_global.Mouse", "broadcastMessage", true],
+  ["_global.Mouse", "hide", false],
+  ["_global.Mouse", "show", false],
+  ["_global.MovieClip", "prototype", false],
+  ["_global.MovieClip.prototype", "attachAudio", true],
+  ["_global.MovieClip.prototype", "attachBitmap", true],
+  ["_global.MovieClip.prototype", "attachMovie", false],
+  ["_global.MovieClip.prototype", "attachVideo", true],
+  ["_global.MovieClip.prototype", "beginBitmapFill", true],
+  ["_global.MovieClip.prototype", "beginFill", true],
+  ["_global.MovieClip.prototype", "beginGradientFill", true],
+  ["_global.MovieClip.prototype", "beginMeshFill", true],
+  ["_global.MovieClip.prototype", "clear", true],
+  ["_global.MovieClip.prototype", "createEmptyMovieClip", true],
+  ["_global.MovieClip.prototype", "createTextField", false],
+  ["_global.MovieClip.prototype", "curveTo", true],
+  ["_global.MovieClip.prototype", "duplicateMovieClip", false],
+  ["_global.MovieClip.prototype", "endFill", true],
+  ["_global.MovieClip.prototype", "getBounds", false],
+  ["_global.MovieClip.prototype", "getBytesLoaded", false],
+  ["_global.MovieClip.prototype", "getBytesTotal", false],
+  ["_global.MovieClip.prototype", "getDepth", true],
+  ["_global.MovieClip.prototype", "getInstanceAtDepth", true],
+  ["_global.MovieClip.prototype", "getNextHighestDepth", true],
+  ["_global.MovieClip.prototype", "getRect", true],
+  ["_global.MovieClip.prototype", "getSWFVersion", false],
+  ["_global.MovieClip.prototype", "getTextSnapshot", true],
+  ["_global.MovieClip.prototype", "getURL", false],
+  ["_global.MovieClip.prototype", "globalToLocal", false],
+  ["_global.MovieClip.prototype", "gotoAndPlay", false],
+  ["_global.MovieClip.prototype", "gotoAndStop", false],
+  ["_global.MovieClip.prototype", "hitTest", false],
+  ["_global.MovieClip.prototype", "lineGradientStyle", true],
+  ["_global.MovieClip.prototype", "lineStyle", true],
+  ["_global.MovieClip.prototype", "lineTo", true],
+  ["_global.MovieClip.prototype", "loadMovie", false],
+  ["_global.MovieClip.prototype", "loadVariables", false],
+  ["_global.MovieClip.prototype", "localToGlobal", false],
+  ["_global.MovieClip.prototype", "meth", false],
+  ["_global.MovieClip.prototype", "moveTo", true],
+  ["_global.MovieClip.prototype", "nextFrame", false],
+  ["_global.MovieClip.prototype", "play", false],
+  ["_global.MovieClip.prototype", "prevFrame", false],
+  ["_global.MovieClip.prototype", "removeMovieClip", false],
+  ["_global.MovieClip.prototype", "setMask", true],
+  ["_global.MovieClip.prototype", "startDrag", false],
+  ["_global.MovieClip.prototype", "stop", false],
+  ["_global.MovieClip.prototype", "stopDrag", false],
+  ["_global.MovieClip.prototype", "swapDepths", false],
+  ["_global.MovieClip.prototype", "unloadMovie", false],
+  ["_global.MovieClip.prototype.getTextSnapshot", "prototype", false],
+  ["_global.MovieClip.prototype.getURL", "prototype", false],
+  ["_global.MovieClip.prototype.loadMovie", "prototype", false],
+  ["_global.MovieClip.prototype.loadVariables", "prototype", false],
+  ["_global.MovieClip.prototype.meth", "prototype", false],
+  ["_global.MovieClip.prototype.unloadMovie", "prototype", false],
+  ["_global.MovieClipLoader", "prototype", false],
+  ["_global.MovieClipLoader.prototype", "_listeners", true],
+  ["_global.MovieClipLoader.prototype", "broadcastMessage", true],
+  ["_global.MovieClipLoader.prototype", "getProgress", true],
+  ["_global.MovieClipLoader.prototype", "loadClip", true],
+  ["_global.MovieClipLoader.prototype", "unloadClip", true],
+  ["_global.NetConnection", "prototype", false],
+  ["_global.NetConnection.prototype", "addHeader", true],
+  ["_global.NetConnection.prototype", "call", true],
+  ["_global.NetConnection.prototype", "close", true],
+  ["_global.NetConnection.prototype", "connect", true],
+  ["_global.NetStream", "prototype", false],
+  ["_global.NetStream.prototype", "attachAudio", true],
+  ["_global.NetStream.prototype", "attachVideo", true],
+  ["_global.NetStream.prototype", "close", true],
+  ["_global.NetStream.prototype", "pause", false],
+  ["_global.NetStream.prototype", "play", false],
+  ["_global.NetStream.prototype", "publish", false],
+  ["_global.NetStream.prototype", "receiveAudio", false],
+  ["_global.NetStream.prototype", "receiveVideo", false],
+  ["_global.NetStream.prototype", "seek", false],
+  ["_global.NetStream.prototype", "send", true],
+  ["_global.NetStream.prototype", "setBufferTime", true],
+  ["_global.NetStream.prototype.pause", "prototype", false],
+  ["_global.NetStream.prototype.play", "prototype", false],
+  ["_global.NetStream.prototype.publish", "prototype", false],
+  ["_global.NetStream.prototype.receiveAudio", "prototype", false],
+  ["_global.NetStream.prototype.receiveVideo", "prototype", false],
+  ["_global.NetStream.prototype.seek", "prototype", false],
+  ["_global.Number", "prototype", false],
+  ["_global.Number.prototype", "toString", false],
+  ["_global.Number.prototype", "valueOf", false],
+  ["_global.PrintJob", "prototype", false],
+  ["_global.PrintJob.prototype", "addPage", true],
+  ["_global.PrintJob.prototype", "send", true],
+  ["_global.PrintJob.prototype", "start", true],
+  ["_global.RemoteLSOUsage", "getURLPageSupport", false],
+  ["_global.RemoteLSOUsage", "prototype", false],
+  ["_global.RemoteLSOUsage.getURLPageSupport", "prototype", false],
+  ["_global.Selection", "_listeners", true],
+  ["_global.Selection", "broadcastMessage", true],
+  ["_global.Selection", "getBeginIndex", false],
+  ["_global.Selection", "getCaretIndex", false],
+  ["_global.Selection", "getEndIndex", false],
+  ["_global.Selection", "getFocus", false],
+  ["_global.Selection", "setFocus", false],
+  ["_global.Selection", "setSelection", false],
+  ["_global.SharedObject", "deleteAll", false],
+  ["_global.SharedObject", "getDiskUsage", false],
+  ["_global.SharedObject", "getLocal", false],
+  ["_global.SharedObject", "getRemote", false],
+  ["_global.SharedObject", "prototype", false],
+  ["_global.SharedObject.deleteAll", "prototype", false],
+  ["_global.SharedObject.getDiskUsage", "prototype", false],
+  ["_global.SharedObject.getLocal", "prototype", false],
+  ["_global.SharedObject.getRemote", "prototype", false],
+  ["_global.SharedObject.prototype", "clear", true],
+  ["_global.SharedObject.prototype", "close", true],
+  ["_global.SharedObject.prototype", "connect", true],
+  ["_global.SharedObject.prototype", "flush", true],
+  ["_global.SharedObject.prototype", "getSize", true],
+  ["_global.SharedObject.prototype", "send", true],
+  ["_global.SharedObject.prototype", "setFps", true],
+  ["_global.Sound", "prototype", false],
+  ["_global.Sound.prototype", "9areSoundsInaccessible", false],
+  ["_global.Sound.prototype", "attachSound", false],
+  ["_global.Sound.prototype", "getBytesLoaded", true],
+  ["_global.Sound.prototype", "getBytesTotal", true],
+  ["_global.Sound.prototype", "getDuration", true],
+  ["_global.Sound.prototype", "getPan", false],
+  ["_global.Sound.prototype", "getPosition", true],
+  ["_global.Sound.prototype", "getTransform", false],
+  ["_global.Sound.prototype", "getVolume", false],
+  ["_global.Sound.prototype", "loadSound", true],
+  ["_global.Sound.prototype", "setDuration", true],
+  ["_global.Sound.prototype", "setPan", false],
+  ["_global.Sound.prototype", "setPosition", true],
+  ["_global.Sound.prototype", "setTransform", false],
+  ["_global.Sound.prototype", "setVolume", false],
+  ["_global.Sound.prototype", "start", false],
+  ["_global.Sound.prototype", "stop", false],
+  ["_global.Stage", "_listeners", true],
+  ["_global.Stage", "broadcastMessage", true],
+  ["_global.String", "fromCharCode", false],
+  ["_global.String", "prototype", false],
+  ["_global.String.prototype", "charAt", false],
+  ["_global.String.prototype", "charCodeAt", false],
+  ["_global.String.prototype", "concat", false],
+  ["_global.String.prototype", "indexOf", false],
+  ["_global.String.prototype", "lastIndexOf", false],
+  ["_global.String.prototype", "slice", false],
+  ["_global.String.prototype", "split", false],
+  ["_global.String.prototype", "substr", false],
+  ["_global.String.prototype", "substring", false],
+  ["_global.String.prototype", "toLowerCase", false],
+  ["_global.String.prototype", "toString", false],
+  ["_global.String.prototype", "toUpperCase", false],
+  ["_global.String.prototype", "valueOf", false],
+  ["_global.System", "IME", false],
+  ["_global.System", "Product", false],
+  ["_global.System", "capabilities", false],
+  ["_global.System", "security", false],
+  ["_global.System", "setClipboard", false],
+  ["_global.System", "showSettings", false],
+  ["_global.System.IME", "_listeners", true],
+  ["_global.System.IME", "broadcastMessage", true],
+  ["_global.System.IME", "doConversion", true],
+  ["_global.System.IME", "getConversionMode", true],
+  ["_global.System.IME", "getEnabled", true],
+  ["_global.System.IME", "setCompositionString", true],
+  ["_global.System.IME", "setConversionMode", true],
+  ["_global.System.IME", "setEnabled", true],
+  ["_global.System.Product", "prototype", false],
+  ["_global.System.Product.prototype", "download", false],
+  ["_global.System.Product.prototype", "installedVersion", false],
+  ["_global.System.Product.prototype", "isInstalled", false],
+  ["_global.System.Product.prototype", "isRunning", false],
+  ["_global.System.Product.prototype", "launch", false],
+  ["_global.System.Product.prototype.download", "prototype", false],
+  ["_global.System.Product.prototype.installedVersion", "prototype", false],
+  ["_global.System.Product.prototype.isInstalled", "prototype", false],
+  ["_global.System.Product.prototype.isRunning", "prototype", false],
+  ["_global.System.Product.prototype.launch", "prototype", false],
+  ["_global.System.security", "PolicyFileResolver", false],
+  ["_global.System.security", "allowDomain", false],
+  ["_global.System.security", "allowInsecureDomain", true],
+  ["_global.System.security", "chooseLocalSwfPath", false],
+  ["_global.System.security", "escapeDomain", false],
+  ["_global.System.security", "loadPolicyFile", false],
+  ["_global.System.security.PolicyFileResolver", "prototype", false],
+  ["_global.System.security.PolicyFileResolver.prototype", "_listeners", true],
+  ["_global.System.security.PolicyFileResolver.prototype", "broadcastMessage", true],
+  ["_global.System.security.PolicyFileResolver.prototype", "resolve", false],
+  ["_global.TextField", "StyleSheet", true],
+  ["_global.TextField", "getFontList", true],
+  ["_global.TextField", "prototype", true],
+  ["_global.TextField.StyleSheet", "prototype", false],
+  ["_global.TextField.StyleSheet.prototype", "_copy", true],
+  ["_global.TextField.StyleSheet.prototype", "clear", true],
+  ["_global.TextField.StyleSheet.prototype", "doTransform", true],
+  ["_global.TextField.StyleSheet.prototype", "getStyle", true],
+  ["_global.TextField.StyleSheet.prototype", "getStyleNames", true],
+  ["_global.TextField.StyleSheet.prototype", "load", true],
+  ["_global.TextField.StyleSheet.prototype", "onData", true],
+  ["_global.TextField.StyleSheet.prototype", "onLoad", true],
+  ["_global.TextField.StyleSheet.prototype", "parse", true],
+  ["_global.TextField.StyleSheet.prototype", "parseCSSFontFamily", true],
+  ["_global.TextField.StyleSheet.prototype", "parseCSSInternal", true],
+  ["_global.TextField.StyleSheet.prototype", "parseColor", true],
+  ["_global.TextField.StyleSheet.prototype", "setStyle", true],
+  ["_global.TextField.StyleSheet.prototype", "transform", true],
+  ["_global.TextField.StyleSheet.prototype", "update", true],
+  ["_global.TextField.StyleSheet.prototype._copy", "prototype", false],
+  ["_global.TextField.StyleSheet.prototype.clear", "prototype", false],
+  ["_global.TextField.StyleSheet.prototype.doTransform", "prototype", false],
+  ["_global.TextField.StyleSheet.prototype.getStyle", "prototype", false],
+  ["_global.TextField.StyleSheet.prototype.getStyleNames", "prototype", false],
+  ["_global.TextField.StyleSheet.prototype.onData", "prototype", false],
+  ["_global.TextField.StyleSheet.prototype.onLoad", "prototype", false],
+  ["_global.TextField.StyleSheet.prototype.parse", "prototype", false],
+  ["_global.TextField.StyleSheet.prototype.setStyle", "prototype", false],
+  ["_global.TextField.StyleSheet.prototype.transform", "prototype", false],
+  ["_global.TextField.prototype", "_listeners", true],
+  ["_global.TextField.prototype", "broadcastMessage", true],
+  ["_global.TextField.prototype", "getDepth", true],
+  ["_global.TextField.prototype", "getNewTextFormat", true],
+  ["_global.TextField.prototype", "getTextFormat", true],
+  ["_global.TextField.prototype", "removeTextField", true],
+  ["_global.TextField.prototype", "replaceSel", true],
+  ["_global.TextField.prototype", "replaceText", true],
+  ["_global.TextField.prototype", "setNewTextFormat", true],
+  ["_global.TextField.prototype", "setTextFormat", true],
+  ["_global.TextFormat", "prototype", false],
+  ["_global.TextSnapshot", "prototype", false],
+  ["_global.TextSnapshot.prototype", "findText", true],
+  ["_global.TextSnapshot.prototype", "getCount", true],
+  ["_global.TextSnapshot.prototype", "getSelected", true],
+  ["_global.TextSnapshot.prototype", "getSelectedText", true],
+  ["_global.TextSnapshot.prototype", "getText", true],
+  ["_global.TextSnapshot.prototype", "getTextRunInfo", true],
+  ["_global.TextSnapshot.prototype", "hitTestTextNearPos", true],
+  ["_global.TextSnapshot.prototype", "setSelectColor", true],
+  ["_global.TextSnapshot.prototype", "setSelected", true],
+  ["_global.Video", "prototype", false],
+  ["_global.Video.prototype", "attachVideo", true],
+  ["_global.Video.prototype", "clear", true],
+  ["_global.XML", "prototype", false],
+  ["_global.XML.prototype", "addRequestHeader", false],
+  ["_global.XML.prototype", "createElement", false],
+  ["_global.XML.prototype", "createTextNode", false],
+  ["_global.XML.prototype", "getBytesLoaded", false],
+  ["_global.XML.prototype", "getBytesTotal", false],
+  ["_global.XML.prototype", "load", false],
+  ["_global.XML.prototype", "onData", false],
+  ["_global.XML.prototype", "onLoad", false],
+  ["_global.XML.prototype", "parseXML", false],
+  ["_global.XML.prototype", "send", false],
+  ["_global.XML.prototype", "sendAndLoad", false],
+  ["_global.XML.prototype.addRequestHeader", "prototype", false],
+  ["_global.XML.prototype.getBytesLoaded", "prototype", false],
+  ["_global.XML.prototype.getBytesTotal", "prototype", false],
+  ["_global.XML.prototype.onData", "prototype", false],
+  ["_global.XML.prototype.onLoad", "prototype", false],
+  ["_global.XMLSocket", "prototype", false],
+  ["_global.XMLSocket.prototype", "close", false],
+  ["_global.XMLSocket.prototype", "connect", false],
+  ["_global.XMLSocket.prototype", "onData", false],
+  ["_global.XMLSocket.prototype", "send", false],
+  ["_global.XMLSocket.prototype.onData", "prototype", false],
+  ["_global.textRenderer", "prototype", false],
+  ["_global.textRenderer", "setAdvancedAntialiasingTable", true]
+];
diff --git a/test/trace/trace_properties_names_6.as b/test/trace/trace_properties_names_6.as
new file mode 100644
index 0000000..c9c58cd
--- /dev/null
+++ b/test/trace/trace_properties_names_6.as
@@ -0,0 +1,697 @@
+// generated by trace_properties.as
+
+var mySecretIds = [
+  ["_global", "Object", false],
+  ["_global", "Function", false],
+  ["_global.Function", "prototype", false],
+  ["_global", "XMLNode", false],
+  ["_global.flash.text", "TextRenderer", false],
+  ["_global.flash.filters", "BitmapFilter", false],
+  ["_global.Object", "prototype", false],
+  ["_global.Object", "registerClass", false],
+  ["_global.Object.prototype", "addProperty", false],
+  ["_global.Object.prototype", "hasOwnProperty", false],
+  ["_global.Object.prototype", "isPropertyEnumerable", false],
+  ["_global.Object.prototype", "isPrototypeOf", false],
+  ["_global.Object.prototype", "toLocaleString", false],
+  ["_global.Object.prototype", "toString", false],
+  ["_global.Object.prototype", "unwatch", false],
+  ["_global.Object.prototype", "valueOf", false],
+  ["_global.Object.prototype", "watch", false],
+  ["_global.Object.prototype.toLocaleString", "prototype", false],
+  ["_global.Function.prototype", "apply", false],
+  ["_global.Function.prototype", "call", false],
+  ["_global.XMLNode", "prototype", false],
+  ["_global.XMLNode.prototype", "appendChild", false],
+  ["_global.XMLNode.prototype", "cloneNode", false],
+  ["_global.XMLNode.prototype", "getNamespaceForPrefix", false],
+  ["_global.XMLNode.prototype", "getPrefixForNamespace", false],
+  ["_global.XMLNode.prototype", "hasChildNodes", false],
+  ["_global.XMLNode.prototype", "insertBefore", false],
+  ["_global.XMLNode.prototype", "removeNode", false],
+  ["_global.XMLNode.prototype", "toString", false],
+  ["_global.flash.text.TextRenderer", "prototype", false],
+  ["_global.flash.text.TextRenderer", "setAdvancedAntialiasingTable", true],
+  ["_global.flash.filters.BitmapFilter", "prototype", false],
+  ["_global.flash.filters.BitmapFilter.prototype", "clone", true],
+  ["_global", "ASSetNative", false],
+  ["_global", "ASSetNativeAccessor", false],
+  ["_global", "ASSetPropFlags", false],
+  ["_global", "ASconstructor", false],
+  ["_global", "ASnative", false],
+  ["_global", "Accessibility", false],
+  ["_global", "Array", false],
+  ["_global", "AsBroadcaster", false],
+  ["_global", "AsSetupError", false],
+  ["_global", "Boolean", false],
+  ["_global", "Button", false],
+  ["_global", "Camera", false],
+  ["_global", "Color", false],
+  ["_global", "ContextMenu", false],
+  ["_global", "ContextMenuItem", false],
+  ["_global", "Date", false],
+  ["_global", "Error", false],
+  ["_global", "Key", false],
+  ["_global", "LoadVars", false],
+  ["_global", "LocalConnection", false],
+  ["_global", "Math", false],
+  ["_global", "Microphone", false],
+  ["_global", "Mouse", false],
+  ["_global", "MovieClip", false],
+  ["_global", "MovieClipLoader", false],
+  ["_global", "NetConnection", false],
+  ["_global", "NetStream", false],
+  ["_global", "Number", false],
+  ["_global", "PrintJob", false],
+  ["_global", "RemoteLSOUsage", false],
+  ["_global", "Selection", false],
+  ["_global", "SharedObject", false],
+  ["_global", "Sound", false],
+  ["_global", "Stage", false],
+  ["_global", "String", false],
+  ["_global", "System", false],
+  ["_global", "TextField", false],
+  ["_global", "TextFormat", false],
+  ["_global", "TextSnapshot", false],
+  ["_global", "Video", false],
+  ["_global", "XML", false],
+  ["_global", "XMLSocket", false],
+  ["_global", "clearInterval", false],
+  ["_global", "enableDebugConsole", false],
+  ["_global", "escape", false],
+  ["_global", "flash", false],
+  ["_global", "isFinite", false],
+  ["_global", "isNaN", false],
+  ["_global", "parseFloat", false],
+  ["_global", "parseInt", false],
+  ["_global", "setInterval", false],
+  ["_global", "setTimeout", false],
+  ["_global", "showRedrawRegions", false],
+  ["_global", "trace", false],
+  ["_global", "unescape", false],
+  ["_global", "updateAfterEvent", false],
+  ["_global.Accessibility", "isActive", false],
+  ["_global.Accessibility", "sendEvent", false],
+  ["_global.Accessibility", "updateProperties", false],
+  ["_global.Array", "prototype", false],
+  ["_global.Array.prototype", "concat", false],
+  ["_global.Array.prototype", "join", false],
+  ["_global.Array.prototype", "pop", false],
+  ["_global.Array.prototype", "push", false],
+  ["_global.Array.prototype", "reverse", false],
+  ["_global.Array.prototype", "shift", false],
+  ["_global.Array.prototype", "slice", false],
+  ["_global.Array.prototype", "sort", false],
+  ["_global.Array.prototype", "sortOn", false],
+  ["_global.Array.prototype", "splice", false],
+  ["_global.Array.prototype", "toString", false],
+  ["_global.Array.prototype", "unshift", false],
+  ["_global.AsBroadcaster", "addListener", false],
+  ["_global.AsBroadcaster", "broadcastMessage", false],
+  ["_global.AsBroadcaster", "initialize", false],
+  ["_global.AsBroadcaster", "prototype", false],
+  ["_global.AsBroadcaster", "removeListener", false],
+  ["_global.AsBroadcaster.addListener", "prototype", false],
+  ["_global.AsBroadcaster.initialize", "prototype", false],
+  ["_global.AsBroadcaster.removeListener", "prototype", false],
+  ["_global.AsSetupError", "prototype", false],
+  ["_global.Boolean", "prototype", false],
+  ["_global.Boolean.prototype", "toString", false],
+  ["_global.Boolean.prototype", "valueOf", false],
+  ["_global.Button", "prototype", false],
+  ["_global.Button.prototype", "getDepth", false],
+  ["_global.Camera", "get", false],
+  ["_global.Camera", "prototype", false],
+  ["_global.Camera.get", "prototype", false],
+  ["_global.Camera.prototype", "setCursor", false],
+  ["_global.Camera.prototype", "setKeyFrameInterval", false],
+  ["_global.Camera.prototype", "setLoopback", false],
+  ["_global.Camera.prototype", "setMode", false],
+  ["_global.Camera.prototype", "setMotionLevel", false],
+  ["_global.Camera.prototype", "setQuality", false],
+  ["_global.Color", "prototype", false],
+  ["_global.Color.prototype", "getRGB", false],
+  ["_global.Color.prototype", "getTransform", false],
+  ["_global.Color.prototype", "setRGB", false],
+  ["_global.Color.prototype", "setTransform", false],
+  ["_global.ContextMenu", "prototype", false],
+  ["_global.ContextMenu.prototype", "copy", true],
+  ["_global.ContextMenu.prototype", "hideBuiltInItems", true],
+  ["_global.ContextMenu.prototype.copy", "prototype", false],
+  ["_global.ContextMenu.prototype.hideBuiltInItems", "prototype", false],
+  ["_global.ContextMenuItem", "prototype", false],
+  ["_global.ContextMenuItem.prototype", "copy", true],
+  ["_global.ContextMenuItem.prototype.copy", "prototype", false],
+  ["_global.Date", "UTC", false],
+  ["_global.Date", "prototype", false],
+  ["_global.Date.prototype", "getDate", false],
+  ["_global.Date.prototype", "getDay", false],
+  ["_global.Date.prototype", "getFullYear", false],
+  ["_global.Date.prototype", "getHours", false],
+  ["_global.Date.prototype", "getMilliseconds", false],
+  ["_global.Date.prototype", "getMinutes", false],
+  ["_global.Date.prototype", "getMonth", false],
+  ["_global.Date.prototype", "getSeconds", false],
+  ["_global.Date.prototype", "getTime", false],
+  ["_global.Date.prototype", "getTimezoneOffset", false],
+  ["_global.Date.prototype", "getUTCDate", false],
+  ["_global.Date.prototype", "getUTCDay", false],
+  ["_global.Date.prototype", "getUTCFullYear", false],
+  ["_global.Date.prototype", "getUTCHours", false],
+  ["_global.Date.prototype", "getUTCMilliseconds", false],
+  ["_global.Date.prototype", "getUTCMinutes", false],
+  ["_global.Date.prototype", "getUTCMonth", false],
+  ["_global.Date.prototype", "getUTCSeconds", false],
+  ["_global.Date.prototype", "getUTCYear", false],
+  ["_global.Date.prototype", "getYear", false],
+  ["_global.Date.prototype", "setDate", false],
+  ["_global.Date.prototype", "setFullYear", false],
+  ["_global.Date.prototype", "setHours", false],
+  ["_global.Date.prototype", "setMilliseconds", false],
+  ["_global.Date.prototype", "setMinutes", false],
+  ["_global.Date.prototype", "setMonth", false],
+  ["_global.Date.prototype", "setSeconds", false],
+  ["_global.Date.prototype", "setTime", false],
+  ["_global.Date.prototype", "setUTCDate", false],
+  ["_global.Date.prototype", "setUTCFullYear", false],
+  ["_global.Date.prototype", "setUTCHours", false],
+  ["_global.Date.prototype", "setUTCMilliseconds", false],
+  ["_global.Date.prototype", "setUTCMinutes", false],
+  ["_global.Date.prototype", "setUTCMonth", false],
+  ["_global.Date.prototype", "setUTCSeconds", false],
+  ["_global.Date.prototype", "setYear", false],
+  ["_global.Date.prototype", "toString", false],
+  ["_global.Error", "prototype", false],
+  ["_global.Error.prototype", "toString", false],
+  ["_global.Error.prototype.toString", "prototype", false],
+  ["_global.Key", "_listeners", false],
+  ["_global.Key", "broadcastMessage", false],
+  ["_global.Key", "getAscii", false],
+  ["_global.Key", "getCode", false],
+  ["_global.Key", "isAccessible", false],
+  ["_global.Key", "isDown", false],
+  ["_global.Key", "isToggled", false],
+  ["_global.LoadVars", "prototype", false],
+  ["_global.LoadVars.prototype", "addRequestHeader", false],
+  ["_global.LoadVars.prototype", "decode", false],
+  ["_global.LoadVars.prototype", "getBytesLoaded", false],
+  ["_global.LoadVars.prototype", "getBytesTotal", false],
+  ["_global.LoadVars.prototype", "load", false],
+  ["_global.LoadVars.prototype", "onData", false],
+  ["_global.LoadVars.prototype", "onLoad", false],
+  ["_global.LoadVars.prototype", "send", false],
+  ["_global.LoadVars.prototype", "sendAndLoad", false],
+  ["_global.LoadVars.prototype", "toString", false],
+  ["_global.LoadVars.prototype.addRequestHeader", "prototype", false],
+  ["_global.LoadVars.prototype.getBytesLoaded", "prototype", false],
+  ["_global.LoadVars.prototype.getBytesTotal", "prototype", false],
+  ["_global.LoadVars.prototype.onData", "prototype", false],
+  ["_global.LoadVars.prototype.onLoad", "prototype", false],
+  ["_global.LoadVars.prototype.toString", "prototype", false],
+  ["_global.LocalConnection", "prototype", false],
+  ["_global.LocalConnection.prototype", "close", false],
+  ["_global.LocalConnection.prototype", "connect", false],
+  ["_global.LocalConnection.prototype", "domain", false],
+  ["_global.LocalConnection.prototype", "send", false],
+  ["_global.Math", "abs", false],
+  ["_global.Math", "acos", false],
+  ["_global.Math", "asin", false],
+  ["_global.Math", "atan", false],
+  ["_global.Math", "atan2", false],
+  ["_global.Math", "ceil", false],
+  ["_global.Math", "cos", false],
+  ["_global.Math", "exp", false],
+  ["_global.Math", "floor", false],
+  ["_global.Math", "log", false],
+  ["_global.Math", "max", false],
+  ["_global.Math", "min", false],
+  ["_global.Math", "pow", false],
+  ["_global.Math", "random", false],
+  ["_global.Math", "round", false],
+  ["_global.Math", "sin", false],
+  ["_global.Math", "sqrt", false],
+  ["_global.Math", "tan", false],
+  ["_global.Microphone", "get", false],
+  ["_global.Microphone", "prototype", false],
+  ["_global.Microphone.get", "prototype", false],
+  ["_global.Microphone.prototype", "setGain", false],
+  ["_global.Microphone.prototype", "setRate", false],
+  ["_global.Microphone.prototype", "setSilenceLevel", false],
+  ["_global.Microphone.prototype", "setUseEchoSuppression", false],
+  ["_global.Mouse", "_listeners", false],
+  ["_global.Mouse", "broadcastMessage", false],
+  ["_global.Mouse", "hide", false],
+  ["_global.Mouse", "show", false],
+  ["_global.MovieClip", "prototype", false],
+  ["_global.MovieClip.prototype", "attachAudio", false],
+  ["_global.MovieClip.prototype", "attachBitmap", true],
+  ["_global.MovieClip.prototype", "attachMovie", false],
+  ["_global.MovieClip.prototype", "attachVideo", false],
+  ["_global.MovieClip.prototype", "beginBitmapFill", true],
+  ["_global.MovieClip.prototype", "beginFill", false],
+  ["_global.MovieClip.prototype", "beginGradientFill", false],
+  ["_global.MovieClip.prototype", "beginMeshFill", true],
+  ["_global.MovieClip.prototype", "clear", false],
+  ["_global.MovieClip.prototype", "createEmptyMovieClip", false],
+  ["_global.MovieClip.prototype", "createTextField", false],
+  ["_global.MovieClip.prototype", "curveTo", false],
+  ["_global.MovieClip.prototype", "duplicateMovieClip", false],
+  ["_global.MovieClip.prototype", "endFill", false],
+  ["_global.MovieClip.prototype", "getBounds", false],
+  ["_global.MovieClip.prototype", "getBytesLoaded", false],
+  ["_global.MovieClip.prototype", "getBytesTotal", false],
+  ["_global.MovieClip.prototype", "getDepth", false],
+  ["_global.MovieClip.prototype", "getInstanceAtDepth", true],
+  ["_global.MovieClip.prototype", "getNextHighestDepth", true],
+  ["_global.MovieClip.prototype", "getRect", true],
+  ["_global.MovieClip.prototype", "getSWFVersion", false],
+  ["_global.MovieClip.prototype", "getTextSnapshot", false],
+  ["_global.MovieClip.prototype", "getURL", false],
+  ["_global.MovieClip.prototype", "globalToLocal", false],
+  ["_global.MovieClip.prototype", "gotoAndPlay", false],
+  ["_global.MovieClip.prototype", "gotoAndStop", false],
+  ["_global.MovieClip.prototype", "hitTest", false],
+  ["_global.MovieClip.prototype", "lineGradientStyle", true],
+  ["_global.MovieClip.prototype", "lineStyle", false],
+  ["_global.MovieClip.prototype", "lineTo", false],
+  ["_global.MovieClip.prototype", "loadMovie", false],
+  ["_global.MovieClip.prototype", "loadVariables", false],
+  ["_global.MovieClip.prototype", "localToGlobal", false],
+  ["_global.MovieClip.prototype", "meth", false],
+  ["_global.MovieClip.prototype", "moveTo", false],
+  ["_global.MovieClip.prototype", "nextFrame", false],
+  ["_global.MovieClip.prototype", "play", false],
+  ["_global.MovieClip.prototype", "prevFrame", false],
+  ["_global.MovieClip.prototype", "removeMovieClip", false],
+  ["_global.MovieClip.prototype", "setMask", false],
+  ["_global.MovieClip.prototype", "startDrag", false],
+  ["_global.MovieClip.prototype", "stop", false],
+  ["_global.MovieClip.prototype", "stopDrag", false],
+  ["_global.MovieClip.prototype", "swapDepths", false],
+  ["_global.MovieClip.prototype", "unloadMovie", false],
+  ["_global.MovieClip.prototype.getTextSnapshot", "prototype", false],
+  ["_global.MovieClip.prototype.getURL", "prototype", false],
+  ["_global.MovieClip.prototype.loadMovie", "prototype", false],
+  ["_global.MovieClip.prototype.loadVariables", "prototype", false],
+  ["_global.MovieClip.prototype.meth", "prototype", false],
+  ["_global.MovieClip.prototype.unloadMovie", "prototype", false],
+  ["_global.MovieClipLoader", "prototype", false],
+  ["_global.MovieClipLoader.prototype", "_listeners", true],
+  ["_global.MovieClipLoader.prototype", "broadcastMessage", true],
+  ["_global.MovieClipLoader.prototype", "getProgress", true],
+  ["_global.MovieClipLoader.prototype", "loadClip", true],
+  ["_global.MovieClipLoader.prototype", "unloadClip", true],
+  ["_global.NetConnection", "prototype", false],
+  ["_global.NetConnection.prototype", "addHeader", false],
+  ["_global.NetConnection.prototype", "call", false],
+  ["_global.NetConnection.prototype", "close", false],
+  ["_global.NetConnection.prototype", "connect", false],
+  ["_global.NetStream", "prototype", false],
+  ["_global.NetStream.prototype", "attachAudio", false],
+  ["_global.NetStream.prototype", "attachVideo", false],
+  ["_global.NetStream.prototype", "close", false],
+  ["_global.NetStream.prototype", "pause", false],
+  ["_global.NetStream.prototype", "play", false],
+  ["_global.NetStream.prototype", "publish", false],
+  ["_global.NetStream.prototype", "receiveAudio", false],
+  ["_global.NetStream.prototype", "receiveVideo", false],
+  ["_global.NetStream.prototype", "seek", false],
+  ["_global.NetStream.prototype", "send", false],
+  ["_global.NetStream.prototype", "setBufferTime", false],
+  ["_global.NetStream.prototype.pause", "prototype", false],
+  ["_global.NetStream.prototype.play", "prototype", false],
+  ["_global.NetStream.prototype.publish", "prototype", false],
+  ["_global.NetStream.prototype.receiveAudio", "prototype", false],
+  ["_global.NetStream.prototype.receiveVideo", "prototype", false],
+  ["_global.NetStream.prototype.seek", "prototype", false],
+  ["_global.Number", "prototype", false],
+  ["_global.Number.prototype", "toString", false],
+  ["_global.Number.prototype", "valueOf", false],
+  ["_global.PrintJob", "prototype", false],
+  ["_global.PrintJob.prototype", "addPage", true],
+  ["_global.PrintJob.prototype", "send", true],
+  ["_global.PrintJob.prototype", "start", true],
+  ["_global.RemoteLSOUsage", "getURLPageSupport", false],
+  ["_global.RemoteLSOUsage", "prototype", false],
+  ["_global.RemoteLSOUsage.getURLPageSupport", "prototype", false],
+  ["_global.Selection", "_listeners", false],
+  ["_global.Selection", "broadcastMessage", false],
+  ["_global.Selection", "getBeginIndex", false],
+  ["_global.Selection", "getCaretIndex", false],
+  ["_global.Selection", "getEndIndex", false],
+  ["_global.Selection", "getFocus", false],
+  ["_global.Selection", "setFocus", false],
+  ["_global.Selection", "setSelection", false],
+  ["_global.SharedObject", "deleteAll", false],
+  ["_global.SharedObject", "getDiskUsage", false],
+  ["_global.SharedObject", "getLocal", false],
+  ["_global.SharedObject", "getRemote", false],
+  ["_global.SharedObject", "prototype", false],
+  ["_global.SharedObject.deleteAll", "prototype", false],
+  ["_global.SharedObject.getDiskUsage", "prototype", false],
+  ["_global.SharedObject.getLocal", "prototype", false],
+  ["_global.SharedObject.getRemote", "prototype", false],
+  ["_global.SharedObject.prototype", "clear", false],
+  ["_global.SharedObject.prototype", "close", false],
+  ["_global.SharedObject.prototype", "connect", false],
+  ["_global.SharedObject.prototype", "flush", false],
+  ["_global.SharedObject.prototype", "getSize", false],
+  ["_global.SharedObject.prototype", "send", false],
+  ["_global.SharedObject.prototype", "setFps", false],
+  ["_global.Sound", "prototype", false],
+  ["_global.Sound.prototype", "9areSoundsInaccessible", false],
+  ["_global.Sound.prototype", "attachSound", false],
+  ["_global.Sound.prototype", "getBytesLoaded", false],
+  ["_global.Sound.prototype", "getBytesTotal", false],
+  ["_global.Sound.prototype", "getDuration", false],
+  ["_global.Sound.prototype", "getPan", false],
+  ["_global.Sound.prototype", "getPosition", false],
+  ["_global.Sound.prototype", "getTransform", false],
+  ["_global.Sound.prototype", "getVolume", false],
+  ["_global.Sound.prototype", "loadSound", false],
+  ["_global.Sound.prototype", "setDuration", false],
+  ["_global.Sound.prototype", "setPan", false],
+  ["_global.Sound.prototype", "setPosition", false],
+  ["_global.Sound.prototype", "setTransform", false],
+  ["_global.Sound.prototype", "setVolume", false],
+  ["_global.Sound.prototype", "start", false],
+  ["_global.Sound.prototype", "stop", false],
+  ["_global.Stage", "_listeners", false],
+  ["_global.Stage", "broadcastMessage", false],
+  ["_global.String", "fromCharCode", false],
+  ["_global.String", "prototype", false],
+  ["_global.String.prototype", "charAt", false],
+  ["_global.String.prototype", "charCodeAt", false],
+  ["_global.String.prototype", "concat", false],
+  ["_global.String.prototype", "indexOf", false],
+  ["_global.String.prototype", "lastIndexOf", false],
+  ["_global.String.prototype", "slice", false],
+  ["_global.String.prototype", "split", false],
+  ["_global.String.prototype", "substr", false],
+  ["_global.String.prototype", "substring", false],
+  ["_global.String.prototype", "toLowerCase", false],
+  ["_global.String.prototype", "toString", false],
+  ["_global.String.prototype", "toUpperCase", false],
+  ["_global.String.prototype", "valueOf", false],
+  ["_global.System", "IME", false],
+  ["_global.System", "Product", false],
+  ["_global.System", "capabilities", false],
+  ["_global.System", "security", false],
+  ["_global.System", "setClipboard", false],
+  ["_global.System", "showSettings", false],
+  ["_global.System.IME", "_listeners", false],
+  ["_global.System.IME", "broadcastMessage", false],
+  ["_global.System.IME", "doConversion", true],
+  ["_global.System.IME", "getConversionMode", true],
+  ["_global.System.IME", "getEnabled", true],
+  ["_global.System.IME", "setCompositionString", true],
+  ["_global.System.IME", "setConversionMode", true],
+  ["_global.System.IME", "setEnabled", true],
+  ["_global.System.Product", "prototype", false],
+  ["_global.System.Product.prototype", "download", false],
+  ["_global.System.Product.prototype", "installedVersion", false],
+  ["_global.System.Product.prototype", "isInstalled", false],
+  ["_global.System.Product.prototype", "isRunning", false],
+  ["_global.System.Product.prototype", "launch", false],
+  ["_global.System.Product.prototype.download", "prototype", false],
+  ["_global.System.Product.prototype.installedVersion", "prototype", false],
+  ["_global.System.Product.prototype.isInstalled", "prototype", false],
+  ["_global.System.Product.prototype.isRunning", "prototype", false],
+  ["_global.System.Product.prototype.launch", "prototype", false],
+  ["_global.System.security", "PolicyFileResolver", false],
+  ["_global.System.security", "allowDomain", false],
+  ["_global.System.security", "allowInsecureDomain", true],
+  ["_global.System.security", "chooseLocalSwfPath", false],
+  ["_global.System.security", "escapeDomain", false],
+  ["_global.System.security", "loadPolicyFile", false],
+  ["_global.System.security.PolicyFileResolver", "prototype", false],
+  ["_global.System.security.PolicyFileResolver.prototype", "_listeners", false],
+  ["_global.System.security.PolicyFileResolver.prototype", "broadcastMessage", false],
+  ["_global.System.security.PolicyFileResolver.prototype", "resolve", false],
+  ["_global.TextField", "StyleSheet", true],
+  ["_global.TextField", "getFontList", false],
+  ["_global.TextField", "prototype", false],
+  ["_global.TextField.StyleSheet", "prototype", false],
+  ["_global.TextField.StyleSheet.prototype", "_copy", true],
+  ["_global.TextField.StyleSheet.prototype", "clear", true],
+  ["_global.TextField.StyleSheet.prototype", "doTransform", true],
+  ["_global.TextField.StyleSheet.prototype", "getStyle", true],
+  ["_global.TextField.StyleSheet.prototype", "getStyleNames", true],
+  ["_global.TextField.StyleSheet.prototype", "load", true],
+  ["_global.TextField.StyleSheet.prototype", "onData", true],
+  ["_global.TextField.StyleSheet.prototype", "onLoad", true],
+  ["_global.TextField.StyleSheet.prototype", "parse", true],
+  ["_global.TextField.StyleSheet.prototype", "parseCSSFontFamily", true],
+  ["_global.TextField.StyleSheet.prototype", "parseCSSInternal", true],
+  ["_global.TextField.StyleSheet.prototype", "parseColor", true],
+  ["_global.TextField.StyleSheet.prototype", "setStyle", true],
+  ["_global.TextField.StyleSheet.prototype", "transform", true],
+  ["_global.TextField.StyleSheet.prototype", "update", true],
+  ["_global.TextField.StyleSheet.prototype._copy", "prototype", false],
+  ["_global.TextField.StyleSheet.prototype.clear", "prototype", false],
+  ["_global.TextField.StyleSheet.prototype.doTransform", "prototype", false],
+  ["_global.TextField.StyleSheet.prototype.getStyle", "prototype", false],
+  ["_global.TextField.StyleSheet.prototype.getStyleNames", "prototype", false],
+  ["_global.TextField.StyleSheet.prototype.onData", "prototype", false],
+  ["_global.TextField.StyleSheet.prototype.onLoad", "prototype", false],
+  ["_global.TextField.StyleSheet.prototype.parse", "prototype", false],
+  ["_global.TextField.StyleSheet.prototype.setStyle", "prototype", false],
+  ["_global.TextField.StyleSheet.prototype.transform", "prototype", false],
+  ["_global.TextField.prototype", "_listeners", false],
+  ["_global.TextField.prototype", "broadcastMessage", false],
+  ["_global.TextField.prototype", "getDepth", false],
+  ["_global.TextField.prototype", "getNewTextFormat", false],
+  ["_global.TextField.prototype", "getTextFormat", false],
+  ["_global.TextField.prototype", "removeTextField", false],
+  ["_global.TextField.prototype", "replaceSel", false],
+  ["_global.TextField.prototype", "replaceText", true],
+  ["_global.TextField.prototype", "setNewTextFormat", false],
+  ["_global.TextField.prototype", "setTextFormat", false],
+  ["_global.TextFormat", "prototype", false],
+  ["_global.TextSnapshot", "prototype", false],
+  ["_global.TextSnapshot.prototype", "findText", false],
+  ["_global.TextSnapshot.prototype", "getCount", false],
+  ["_global.TextSnapshot.prototype", "getSelected", false],
+  ["_global.TextSnapshot.prototype", "getSelectedText", false],
+  ["_global.TextSnapshot.prototype", "getText", false],
+  ["_global.TextSnapshot.prototype", "getTextRunInfo", false],
+  ["_global.TextSnapshot.prototype", "hitTestTextNearPos", false],
+  ["_global.TextSnapshot.prototype", "setSelectColor", false],
+  ["_global.TextSnapshot.prototype", "setSelected", false],
+  ["_global.Video", "prototype", false],
+  ["_global.Video.prototype", "attachVideo", false],
+  ["_global.Video.prototype", "clear", false],
+  ["_global.XML", "prototype", false],
+  ["_global.XML.prototype", "addRequestHeader", false],
+  ["_global.XML.prototype", "createElement", false],
+  ["_global.XML.prototype", "createTextNode", false],
+  ["_global.XML.prototype", "getBytesLoaded", false],
+  ["_global.XML.prototype", "getBytesTotal", false],
+  ["_global.XML.prototype", "load", false],
+  ["_global.XML.prototype", "onData", false],
+  ["_global.XML.prototype", "onLoad", false],
+  ["_global.XML.prototype", "parseXML", false],
+  ["_global.XML.prototype", "send", false],
+  ["_global.XML.prototype", "sendAndLoad", false],
+  ["_global.XML.prototype.addRequestHeader", "prototype", false],
+  ["_global.XML.prototype.getBytesLoaded", "prototype", false],
+  ["_global.XML.prototype.getBytesTotal", "prototype", false],
+  ["_global.XML.prototype.onData", "prototype", false],
+  ["_global.XML.prototype.onLoad", "prototype", false],
+  ["_global.XMLSocket", "prototype", false],
+  ["_global.XMLSocket.prototype", "close", false],
+  ["_global.XMLSocket.prototype", "connect", false],
+  ["_global.XMLSocket.prototype", "onData", false],
+  ["_global.XMLSocket.prototype", "send", false],
+  ["_global.XMLSocket.prototype.onData", "prototype", false],
+  ["_global.flash", "display", false],
+  ["_global.flash", "external", false],
+  ["_global.flash", "filters", false],
+  ["_global.flash", "geom", false],
+  ["_global.flash", "net", false],
+  ["_global.flash", "text", false],
+  ["_global.flash.display", "BitmapData", false],
+  ["_global.flash.display.BitmapData", "loadBitmap", true],
+  ["_global.flash.display.BitmapData", "prototype", false],
+  ["_global.flash.display.BitmapData.prototype", "applyFilter", true],
+  ["_global.flash.display.BitmapData.prototype", "clone", true],
+  ["_global.flash.display.BitmapData.prototype", "colorTransform", true],
+  ["_global.flash.display.BitmapData.prototype", "compare", true],
+  ["_global.flash.display.BitmapData.prototype", "copyChannel", true],
+  ["_global.flash.display.BitmapData.prototype", "copyPixels", true],
+  ["_global.flash.display.BitmapData.prototype", "dispose", true],
+  ["_global.flash.display.BitmapData.prototype", "draw", true],
+  ["_global.flash.display.BitmapData.prototype", "fillRect", true],
+  ["_global.flash.display.BitmapData.prototype", "floodFill", true],
+  ["_global.flash.display.BitmapData.prototype", "generateFilterRect", true],
+  ["_global.flash.display.BitmapData.prototype", "getColorBoundsRect", true],
+  ["_global.flash.display.BitmapData.prototype", "getPixel", true],
+  ["_global.flash.display.BitmapData.prototype", "getPixel32", true],
+  ["_global.flash.display.BitmapData.prototype", "hitTest", true],
+  ["_global.flash.display.BitmapData.prototype", "merge", true],
+  ["_global.flash.display.BitmapData.prototype", "noise", true],
+  ["_global.flash.display.BitmapData.prototype", "paletteMap", true],
+  ["_global.flash.display.BitmapData.prototype", "perlinNoise", true],
+  ["_global.flash.display.BitmapData.prototype", "pixelDissolve", true],
+  ["_global.flash.display.BitmapData.prototype", "scroll", true],
+  ["_global.flash.display.BitmapData.prototype", "setPixel", true],
+  ["_global.flash.display.BitmapData.prototype", "setPixel32", true],
+  ["_global.flash.display.BitmapData.prototype", "threshold", true],
+  ["_global.flash.external", "ExternalInterface", false],
+  ["_global.flash.external.ExternalInterface", "_addCallback", true],
+  ["_global.flash.external.ExternalInterface", "_argumentsToAS", true],
+  ["_global.flash.external.ExternalInterface", "_argumentsToXML", true],
+  ["_global.flash.external.ExternalInterface", "_arrayToAS", true],
+  ["_global.flash.external.ExternalInterface", "_arrayToJS", true],
+  ["_global.flash.external.ExternalInterface", "_arrayToXML", true],
+  ["_global.flash.external.ExternalInterface", "_callIn", true],
+  ["_global.flash.external.ExternalInterface", "_callOut", true],
+  ["_global.flash.external.ExternalInterface", "_escapeXML", true],
+  ["_global.flash.external.ExternalInterface", "_evalJS", true],
+  ["_global.flash.external.ExternalInterface", "_initJS", true],
+  ["_global.flash.external.ExternalInterface", "_jsQuoteString", true],
+  ["_global.flash.external.ExternalInterface", "_objectID", true],
+  ["_global.flash.external.ExternalInterface", "_objectToAS", true],
+  ["_global.flash.external.ExternalInterface", "_objectToJS", true],
+  ["_global.flash.external.ExternalInterface", "_objectToXML", true],
+  ["_global.flash.external.ExternalInterface", "_toAS", true],
+  ["_global.flash.external.ExternalInterface", "_toJS", true],
+  ["_global.flash.external.ExternalInterface", "_toXML", true],
+  ["_global.flash.external.ExternalInterface", "_unescapeXML", true],
+  ["_global.flash.external.ExternalInterface", "addCallback", true],
+  ["_global.flash.external.ExternalInterface", "prototype", true],
+  ["_global.flash.external.ExternalInterface._argumentsToAS", "prototype", false],
+  ["_global.flash.external.ExternalInterface._argumentsToXML", "prototype", false],
+  ["_global.flash.external.ExternalInterface._arrayToAS", "prototype", false],
+  ["_global.flash.external.ExternalInterface._arrayToJS", "prototype", false],
+  ["_global.flash.external.ExternalInterface._arrayToXML", "prototype", false],
+  ["_global.flash.external.ExternalInterface._callIn", "prototype", false],
+  ["_global.flash.external.ExternalInterface._objectToAS", "prototype", false],
+  ["_global.flash.external.ExternalInterface._objectToJS", "prototype", false],
+  ["_global.flash.external.ExternalInterface._objectToXML", "prototype", false],
+  ["_global.flash.external.ExternalInterface._toAS", "prototype", false],
+  ["_global.flash.external.ExternalInterface._toJS", "prototype", false],
+  ["_global.flash.external.ExternalInterface._toXML", "prototype", false],
+  ["_global.flash.external.ExternalInterface.addCallback", "prototype", false],
+  ["_global.flash.filters", "BevelFilter", false],
+  ["_global.flash.filters", "BlurFilter", false],
+  ["_global.flash.filters", "ColorMatrixFilter", false],
+  ["_global.flash.filters", "ConvolutionFilter", false],
+  ["_global.flash.filters", "DisplacementMapFilter", false],
+  ["_global.flash.filters", "DropShadowFilter", false],
+  ["_global.flash.filters", "GlowFilter", false],
+  ["_global.flash.filters", "GradientBevelFilter", false],
+  ["_global.flash.filters", "GradientGlowFilter", false],
+  ["_global.flash.filters.BevelFilter", "prototype", false],
+  ["_global.flash.filters.BlurFilter", "prototype", false],
+  ["_global.flash.filters.ColorMatrixFilter", "prototype", false],
+  ["_global.flash.filters.ConvolutionFilter", "prototype", false],
+  ["_global.flash.filters.DisplacementMapFilter", "prototype", false],
+  ["_global.flash.filters.DropShadowFilter", "prototype", false],
+  ["_global.flash.filters.GlowFilter", "prototype", false],
+  ["_global.flash.filters.GradientBevelFilter", "prototype", false],
+  ["_global.flash.filters.GradientGlowFilter", "prototype", false],
+  ["_global.flash.geom", "ColorTransform", false],
+  ["_global.flash.geom", "Matrix", false],
+  ["_global.flash.geom", "Point", false],
+  ["_global.flash.geom", "Rectangle", false],
+  ["_global.flash.geom", "Transform", false],
+  ["_global.flash.geom.ColorTransform", "prototype", false],
+  ["_global.flash.geom.ColorTransform.prototype", "concat", true],
+  ["_global.flash.geom.ColorTransform.prototype", "toString", false],
+  ["_global.flash.geom.ColorTransform.prototype.toString", "prototype", false],
+  ["_global.flash.geom.Matrix", "prototype", false],
+  ["_global.flash.geom.Matrix.prototype", "clone", false],
+  ["_global.flash.geom.Matrix.prototype", "concat", false],
+  ["_global.flash.geom.Matrix.prototype", "createBox", false],
+  ["_global.flash.geom.Matrix.prototype", "createGradientBox", false],
+  ["_global.flash.geom.Matrix.prototype", "deltaTransformPoint", false],
+  ["_global.flash.geom.Matrix.prototype", "identity", false],
+  ["_global.flash.geom.Matrix.prototype", "invert", false],
+  ["_global.flash.geom.Matrix.prototype", "rotate", false],
+  ["_global.flash.geom.Matrix.prototype", "scale", false],
+  ["_global.flash.geom.Matrix.prototype", "toString", false],
+  ["_global.flash.geom.Matrix.prototype", "transformPoint", false],
+  ["_global.flash.geom.Matrix.prototype", "translate", false],
+  ["_global.flash.geom.Matrix.prototype.clone", "prototype", false],
+  ["_global.flash.geom.Matrix.prototype.concat", "prototype", false],
+  ["_global.flash.geom.Matrix.prototype.createBox", "prototype", false],
+  ["_global.flash.geom.Matrix.prototype.createGradientBox", "prototype", false],
+  ["_global.flash.geom.Matrix.prototype.deltaTransformPoint", "prototype", false],
+  ["_global.flash.geom.Matrix.prototype.identity", "prototype", false],
+  ["_global.flash.geom.Matrix.prototype.invert", "prototype", false],
+  ["_global.flash.geom.Matrix.prototype.rotate", "prototype", false],
+  ["_global.flash.geom.Matrix.prototype.scale", "prototype", false],
+  ["_global.flash.geom.Matrix.prototype.toString", "prototype", false],
+  ["_global.flash.geom.Matrix.prototype.transformPoint", "prototype", false],
+  ["_global.flash.geom.Matrix.prototype.translate", "prototype", false],
+  ["_global.flash.geom.Point", "distance", false],
+  ["_global.flash.geom.Point", "interpolate", false],
+  ["_global.flash.geom.Point", "polar", false],
+  ["_global.flash.geom.Point", "prototype", false],
+  ["_global.flash.geom.Point.distance", "prototype", false],
+  ["_global.flash.geom.Point.interpolate", "prototype", false],
+  ["_global.flash.geom.Point.polar", "prototype", false],
+  ["_global.flash.geom.Point.prototype", "add", false],
+  ["_global.flash.geom.Point.prototype", "clone", false],
+  ["_global.flash.geom.Point.prototype", "equals", false],
+  ["_global.flash.geom.Point.prototype", "normalize", false],
+  ["_global.flash.geom.Point.prototype", "offset", false],
+  ["_global.flash.geom.Point.prototype", "subtract", false],
+  ["_global.flash.geom.Point.prototype", "toString", false],
+  ["_global.flash.geom.Point.prototype.add", "prototype", false],
+  ["_global.flash.geom.Point.prototype.clone", "prototype", false],
+  ["_global.flash.geom.Point.prototype.equals", "prototype", false],
+  ["_global.flash.geom.Point.prototype.normalize", "prototype", false],
+  ["_global.flash.geom.Point.prototype.offset", "prototype", false],
+  ["_global.flash.geom.Point.prototype.subtract", "prototype", false],
+  ["_global.flash.geom.Point.prototype.toString", "prototype", false],
+  ["_global.flash.geom.Rectangle", "prototype", false],
+  ["_global.flash.geom.Rectangle.prototype", "bottomRight", false],
+  ["_global.flash.geom.Rectangle.prototype", "clone", false],
+  ["_global.flash.geom.Rectangle.prototype", "contains", false],
+  ["_global.flash.geom.Rectangle.prototype", "containsPoint", false],
+  ["_global.flash.geom.Rectangle.prototype", "containsRectangle", false],
+  ["_global.flash.geom.Rectangle.prototype", "equals", false],
+  ["_global.flash.geom.Rectangle.prototype", "inflate", false],
+  ["_global.flash.geom.Rectangle.prototype", "inflatePoint", false],
+  ["_global.flash.geom.Rectangle.prototype", "intersection", false],
+  ["_global.flash.geom.Rectangle.prototype", "intersects", false],
+  ["_global.flash.geom.Rectangle.prototype", "isEmpty", false],
+  ["_global.flash.geom.Rectangle.prototype", "offset", false],
+  ["_global.flash.geom.Rectangle.prototype", "offsetPoint", false],
+  ["_global.flash.geom.Rectangle.prototype", "setEmpty", false],
+  ["_global.flash.geom.Rectangle.prototype", "size", false],
+  ["_global.flash.geom.Rectangle.prototype", "toString", false],
+  ["_global.flash.geom.Rectangle.prototype", "topLeft", false],
+  ["_global.flash.geom.Rectangle.prototype", "union", false],
+  ["_global.flash.geom.Rectangle.prototype.clone", "prototype", false],
+  ["_global.flash.geom.Rectangle.prototype.contains", "prototype", false],
+  ["_global.flash.geom.Rectangle.prototype.containsPoint", "prototype", false],
+  ["_global.flash.geom.Rectangle.prototype.containsRectangle", "prototype", false],
+  ["_global.flash.geom.Rectangle.prototype.equals", "prototype", false],
+  ["_global.flash.geom.Rectangle.prototype.inflate", "prototype", false],
+  ["_global.flash.geom.Rectangle.prototype.inflatePoint", "prototype", false],
+  ["_global.flash.geom.Rectangle.prototype.intersection", "prototype", false],
+  ["_global.flash.geom.Rectangle.prototype.intersects", "prototype", false],
+  ["_global.flash.geom.Rectangle.prototype.isEmpty", "prototype", false],
+  ["_global.flash.geom.Rectangle.prototype.offset", "prototype", false],
+  ["_global.flash.geom.Rectangle.prototype.offsetPoint", "prototype", false],
+  ["_global.flash.geom.Rectangle.prototype.setEmpty", "prototype", false],
+  ["_global.flash.geom.Rectangle.prototype.toString", "prototype", false],
+  ["_global.flash.geom.Rectangle.prototype.union", "prototype", false],
+  ["_global.flash.geom.Transform", "prototype", false],
+  ["_global.flash.net", "FileReference", false],
+  ["_global.flash.net", "FileReferenceList", false],
+  ["_global.flash.net.FileReference", "prototype", false],
+  ["_global.flash.net.FileReference.prototype", "_listeners", false],
+  ["_global.flash.net.FileReference.prototype", "broadcastMessage", false],
+  ["_global.flash.net.FileReference.prototype", "browse", true],
+  ["_global.flash.net.FileReference.prototype", "cancel", true],
+  ["_global.flash.net.FileReference.prototype", "download", true],
+  ["_global.flash.net.FileReference.prototype", "upload", true],
+  ["_global.flash.net.FileReferenceList", "prototype", false],
+  ["_global.flash.net.FileReferenceList.prototype", "_listeners", false],
+  ["_global.flash.net.FileReferenceList.prototype", "broadcastMessage", false],
+  ["_global.flash.net.FileReferenceList.prototype", "browse", true]
+];
diff --git a/test/trace/trace_properties_names_7.as b/test/trace/trace_properties_names_7.as
new file mode 100644
index 0000000..320893e
--- /dev/null
+++ b/test/trace/trace_properties_names_7.as
@@ -0,0 +1,697 @@
+// generated by trace_properties.as
+
+var mySecretIds = [
+  ["_global", "Object", false],
+  ["_global", "Function", false],
+  ["_global.Function", "prototype", false],
+  ["_global", "XMLNode", false],
+  ["_global.flash.text", "TextRenderer", false],
+  ["_global.flash.filters", "BitmapFilter", false],
+  ["_global.Object", "prototype", false],
+  ["_global.Object", "registerClass", false],
+  ["_global.Object.prototype", "addProperty", false],
+  ["_global.Object.prototype", "hasOwnProperty", false],
+  ["_global.Object.prototype", "isPropertyEnumerable", false],
+  ["_global.Object.prototype", "isPrototypeOf", false],
+  ["_global.Object.prototype", "toLocaleString", false],
+  ["_global.Object.prototype", "toString", false],
+  ["_global.Object.prototype", "unwatch", false],
+  ["_global.Object.prototype", "valueOf", false],
+  ["_global.Object.prototype", "watch", false],
+  ["_global.Object.prototype.toLocaleString", "prototype", false],
+  ["_global.Function.prototype", "apply", false],
+  ["_global.Function.prototype", "call", false],
+  ["_global.XMLNode", "prototype", false],
+  ["_global.XMLNode.prototype", "appendChild", false],
+  ["_global.XMLNode.prototype", "cloneNode", false],
+  ["_global.XMLNode.prototype", "getNamespaceForPrefix", false],
+  ["_global.XMLNode.prototype", "getPrefixForNamespace", false],
+  ["_global.XMLNode.prototype", "hasChildNodes", false],
+  ["_global.XMLNode.prototype", "insertBefore", false],
+  ["_global.XMLNode.prototype", "removeNode", false],
+  ["_global.XMLNode.prototype", "toString", false],
+  ["_global.flash.text.TextRenderer", "prototype", false],
+  ["_global.flash.text.TextRenderer", "setAdvancedAntialiasingTable", true],
+  ["_global.flash.filters.BitmapFilter", "prototype", false],
+  ["_global.flash.filters.BitmapFilter.prototype", "clone", true],
+  ["_global", "ASSetNative", false],
+  ["_global", "ASSetNativeAccessor", false],
+  ["_global", "ASSetPropFlags", false],
+  ["_global", "ASconstructor", false],
+  ["_global", "ASnative", false],
+  ["_global", "Accessibility", false],
+  ["_global", "Array", false],
+  ["_global", "AsBroadcaster", false],
+  ["_global", "AsSetupError", false],
+  ["_global", "Boolean", false],
+  ["_global", "Button", false],
+  ["_global", "Camera", false],
+  ["_global", "Color", false],
+  ["_global", "ContextMenu", false],
+  ["_global", "ContextMenuItem", false],
+  ["_global", "Date", false],
+  ["_global", "Error", false],
+  ["_global", "Key", false],
+  ["_global", "LoadVars", false],
+  ["_global", "LocalConnection", false],
+  ["_global", "Math", false],
+  ["_global", "Microphone", false],
+  ["_global", "Mouse", false],
+  ["_global", "MovieClip", false],
+  ["_global", "MovieClipLoader", false],
+  ["_global", "NetConnection", false],
+  ["_global", "NetStream", false],
+  ["_global", "Number", false],
+  ["_global", "PrintJob", false],
+  ["_global", "RemoteLSOUsage", false],
+  ["_global", "Selection", false],
+  ["_global", "SharedObject", false],
+  ["_global", "Sound", false],
+  ["_global", "Stage", false],
+  ["_global", "String", false],
+  ["_global", "System", false],
+  ["_global", "TextField", false],
+  ["_global", "TextFormat", false],
+  ["_global", "TextSnapshot", false],
+  ["_global", "Video", false],
+  ["_global", "XML", false],
+  ["_global", "XMLSocket", false],
+  ["_global", "clearInterval", false],
+  ["_global", "enableDebugConsole", false],
+  ["_global", "escape", false],
+  ["_global", "flash", false],
+  ["_global", "isFinite", false],
+  ["_global", "isNaN", false],
+  ["_global", "parseFloat", false],
+  ["_global", "parseInt", false],
+  ["_global", "setInterval", false],
+  ["_global", "setTimeout", false],
+  ["_global", "showRedrawRegions", false],
+  ["_global", "trace", false],
+  ["_global", "unescape", false],
+  ["_global", "updateAfterEvent", false],
+  ["_global.Accessibility", "isActive", false],
+  ["_global.Accessibility", "sendEvent", false],
+  ["_global.Accessibility", "updateProperties", false],
+  ["_global.Array", "prototype", false],
+  ["_global.Array.prototype", "concat", false],
+  ["_global.Array.prototype", "join", false],
+  ["_global.Array.prototype", "pop", false],
+  ["_global.Array.prototype", "push", false],
+  ["_global.Array.prototype", "reverse", false],
+  ["_global.Array.prototype", "shift", false],
+  ["_global.Array.prototype", "slice", false],
+  ["_global.Array.prototype", "sort", false],
+  ["_global.Array.prototype", "sortOn", false],
+  ["_global.Array.prototype", "splice", false],
+  ["_global.Array.prototype", "toString", false],
+  ["_global.Array.prototype", "unshift", false],
+  ["_global.AsBroadcaster", "addListener", false],
+  ["_global.AsBroadcaster", "broadcastMessage", false],
+  ["_global.AsBroadcaster", "initialize", false],
+  ["_global.AsBroadcaster", "prototype", false],
+  ["_global.AsBroadcaster", "removeListener", false],
+  ["_global.AsBroadcaster.addListener", "prototype", false],
+  ["_global.AsBroadcaster.initialize", "prototype", false],
+  ["_global.AsBroadcaster.removeListener", "prototype", false],
+  ["_global.AsSetupError", "prototype", false],
+  ["_global.Boolean", "prototype", false],
+  ["_global.Boolean.prototype", "toString", false],
+  ["_global.Boolean.prototype", "valueOf", false],
+  ["_global.Button", "prototype", false],
+  ["_global.Button.prototype", "getDepth", false],
+  ["_global.Camera", "get", false],
+  ["_global.Camera", "prototype", false],
+  ["_global.Camera.get", "prototype", false],
+  ["_global.Camera.prototype", "setCursor", false],
+  ["_global.Camera.prototype", "setKeyFrameInterval", false],
+  ["_global.Camera.prototype", "setLoopback", false],
+  ["_global.Camera.prototype", "setMode", false],
+  ["_global.Camera.prototype", "setMotionLevel", false],
+  ["_global.Camera.prototype", "setQuality", false],
+  ["_global.Color", "prototype", false],
+  ["_global.Color.prototype", "getRGB", false],
+  ["_global.Color.prototype", "getTransform", false],
+  ["_global.Color.prototype", "setRGB", false],
+  ["_global.Color.prototype", "setTransform", false],
+  ["_global.ContextMenu", "prototype", false],
+  ["_global.ContextMenu.prototype", "copy", false],
+  ["_global.ContextMenu.prototype", "hideBuiltInItems", false],
+  ["_global.ContextMenu.prototype.copy", "prototype", false],
+  ["_global.ContextMenu.prototype.hideBuiltInItems", "prototype", false],
+  ["_global.ContextMenuItem", "prototype", false],
+  ["_global.ContextMenuItem.prototype", "copy", false],
+  ["_global.ContextMenuItem.prototype.copy", "prototype", false],
+  ["_global.Date", "UTC", false],
+  ["_global.Date", "prototype", false],
+  ["_global.Date.prototype", "getDate", false],
+  ["_global.Date.prototype", "getDay", false],
+  ["_global.Date.prototype", "getFullYear", false],
+  ["_global.Date.prototype", "getHours", false],
+  ["_global.Date.prototype", "getMilliseconds", false],
+  ["_global.Date.prototype", "getMinutes", false],
+  ["_global.Date.prototype", "getMonth", false],
+  ["_global.Date.prototype", "getSeconds", false],
+  ["_global.Date.prototype", "getTime", false],
+  ["_global.Date.prototype", "getTimezoneOffset", false],
+  ["_global.Date.prototype", "getUTCDate", false],
+  ["_global.Date.prototype", "getUTCDay", false],
+  ["_global.Date.prototype", "getUTCFullYear", false],
+  ["_global.Date.prototype", "getUTCHours", false],
+  ["_global.Date.prototype", "getUTCMilliseconds", false],
+  ["_global.Date.prototype", "getUTCMinutes", false],
+  ["_global.Date.prototype", "getUTCMonth", false],
+  ["_global.Date.prototype", "getUTCSeconds", false],
+  ["_global.Date.prototype", "getUTCYear", false],
+  ["_global.Date.prototype", "getYear", false],
+  ["_global.Date.prototype", "setDate", false],
+  ["_global.Date.prototype", "setFullYear", false],
+  ["_global.Date.prototype", "setHours", false],
+  ["_global.Date.prototype", "setMilliseconds", false],
+  ["_global.Date.prototype", "setMinutes", false],
+  ["_global.Date.prototype", "setMonth", false],
+  ["_global.Date.prototype", "setSeconds", false],
+  ["_global.Date.prototype", "setTime", false],
+  ["_global.Date.prototype", "setUTCDate", false],
+  ["_global.Date.prototype", "setUTCFullYear", false],
+  ["_global.Date.prototype", "setUTCHours", false],
+  ["_global.Date.prototype", "setUTCMilliseconds", false],
+  ["_global.Date.prototype", "setUTCMinutes", false],
+  ["_global.Date.prototype", "setUTCMonth", false],
+  ["_global.Date.prototype", "setUTCSeconds", false],
+  ["_global.Date.prototype", "setYear", false],
+  ["_global.Date.prototype", "toString", false],
+  ["_global.Error", "prototype", false],
+  ["_global.Error.prototype", "toString", false],
+  ["_global.Error.prototype.toString", "prototype", false],
+  ["_global.Key", "_listeners", false],
+  ["_global.Key", "broadcastMessage", false],
+  ["_global.Key", "getAscii", false],
+  ["_global.Key", "getCode", false],
+  ["_global.Key", "isAccessible", false],
+  ["_global.Key", "isDown", false],
+  ["_global.Key", "isToggled", false],
+  ["_global.LoadVars", "prototype", false],
+  ["_global.LoadVars.prototype", "addRequestHeader", false],
+  ["_global.LoadVars.prototype", "decode", false],
+  ["_global.LoadVars.prototype", "getBytesLoaded", false],
+  ["_global.LoadVars.prototype", "getBytesTotal", false],
+  ["_global.LoadVars.prototype", "load", false],
+  ["_global.LoadVars.prototype", "onData", false],
+  ["_global.LoadVars.prototype", "onLoad", false],
+  ["_global.LoadVars.prototype", "send", false],
+  ["_global.LoadVars.prototype", "sendAndLoad", false],
+  ["_global.LoadVars.prototype", "toString", false],
+  ["_global.LoadVars.prototype.addRequestHeader", "prototype", false],
+  ["_global.LoadVars.prototype.getBytesLoaded", "prototype", false],
+  ["_global.LoadVars.prototype.getBytesTotal", "prototype", false],
+  ["_global.LoadVars.prototype.onData", "prototype", false],
+  ["_global.LoadVars.prototype.onLoad", "prototype", false],
+  ["_global.LoadVars.prototype.toString", "prototype", false],
+  ["_global.LocalConnection", "prototype", false],
+  ["_global.LocalConnection.prototype", "close", false],
+  ["_global.LocalConnection.prototype", "connect", false],
+  ["_global.LocalConnection.prototype", "domain", false],
+  ["_global.LocalConnection.prototype", "send", false],
+  ["_global.Math", "abs", false],
+  ["_global.Math", "acos", false],
+  ["_global.Math", "asin", false],
+  ["_global.Math", "atan", false],
+  ["_global.Math", "atan2", false],
+  ["_global.Math", "ceil", false],
+  ["_global.Math", "cos", false],
+  ["_global.Math", "exp", false],
+  ["_global.Math", "floor", false],
+  ["_global.Math", "log", false],
+  ["_global.Math", "max", false],
+  ["_global.Math", "min", false],
+  ["_global.Math", "pow", false],
+  ["_global.Math", "random", false],
+  ["_global.Math", "round", false],
+  ["_global.Math", "sin", false],
+  ["_global.Math", "sqrt", false],
+  ["_global.Math", "tan", false],
+  ["_global.Microphone", "get", false],
+  ["_global.Microphone", "prototype", false],
+  ["_global.Microphone.get", "prototype", false],
+  ["_global.Microphone.prototype", "setGain", false],
+  ["_global.Microphone.prototype", "setRate", false],
+  ["_global.Microphone.prototype", "setSilenceLevel", false],
+  ["_global.Microphone.prototype", "setUseEchoSuppression", false],
+  ["_global.Mouse", "_listeners", false],
+  ["_global.Mouse", "broadcastMessage", false],
+  ["_global.Mouse", "hide", false],
+  ["_global.Mouse", "show", false],
+  ["_global.MovieClip", "prototype", false],
+  ["_global.MovieClip.prototype", "attachAudio", false],
+  ["_global.MovieClip.prototype", "attachBitmap", true],
+  ["_global.MovieClip.prototype", "attachMovie", false],
+  ["_global.MovieClip.prototype", "attachVideo", false],
+  ["_global.MovieClip.prototype", "beginBitmapFill", true],
+  ["_global.MovieClip.prototype", "beginFill", false],
+  ["_global.MovieClip.prototype", "beginGradientFill", false],
+  ["_global.MovieClip.prototype", "beginMeshFill", true],
+  ["_global.MovieClip.prototype", "clear", false],
+  ["_global.MovieClip.prototype", "createEmptyMovieClip", false],
+  ["_global.MovieClip.prototype", "createTextField", false],
+  ["_global.MovieClip.prototype", "curveTo", false],
+  ["_global.MovieClip.prototype", "duplicateMovieClip", false],
+  ["_global.MovieClip.prototype", "endFill", false],
+  ["_global.MovieClip.prototype", "getBounds", false],
+  ["_global.MovieClip.prototype", "getBytesLoaded", false],
+  ["_global.MovieClip.prototype", "getBytesTotal", false],
+  ["_global.MovieClip.prototype", "getDepth", false],
+  ["_global.MovieClip.prototype", "getInstanceAtDepth", false],
+  ["_global.MovieClip.prototype", "getNextHighestDepth", false],
+  ["_global.MovieClip.prototype", "getRect", true],
+  ["_global.MovieClip.prototype", "getSWFVersion", false],
+  ["_global.MovieClip.prototype", "getTextSnapshot", false],
+  ["_global.MovieClip.prototype", "getURL", false],
+  ["_global.MovieClip.prototype", "globalToLocal", false],
+  ["_global.MovieClip.prototype", "gotoAndPlay", false],
+  ["_global.MovieClip.prototype", "gotoAndStop", false],
+  ["_global.MovieClip.prototype", "hitTest", false],
+  ["_global.MovieClip.prototype", "lineGradientStyle", true],
+  ["_global.MovieClip.prototype", "lineStyle", false],
+  ["_global.MovieClip.prototype", "lineTo", false],
+  ["_global.MovieClip.prototype", "loadMovie", false],
+  ["_global.MovieClip.prototype", "loadVariables", false],
+  ["_global.MovieClip.prototype", "localToGlobal", false],
+  ["_global.MovieClip.prototype", "meth", false],
+  ["_global.MovieClip.prototype", "moveTo", false],
+  ["_global.MovieClip.prototype", "nextFrame", false],
+  ["_global.MovieClip.prototype", "play", false],
+  ["_global.MovieClip.prototype", "prevFrame", false],
+  ["_global.MovieClip.prototype", "removeMovieClip", false],
+  ["_global.MovieClip.prototype", "setMask", false],
+  ["_global.MovieClip.prototype", "startDrag", false],
+  ["_global.MovieClip.prototype", "stop", false],
+  ["_global.MovieClip.prototype", "stopDrag", false],
+  ["_global.MovieClip.prototype", "swapDepths", false],
+  ["_global.MovieClip.prototype", "unloadMovie", false],
+  ["_global.MovieClip.prototype.getTextSnapshot", "prototype", false],
+  ["_global.MovieClip.prototype.getURL", "prototype", false],
+  ["_global.MovieClip.prototype.loadMovie", "prototype", false],
+  ["_global.MovieClip.prototype.loadVariables", "prototype", false],
+  ["_global.MovieClip.prototype.meth", "prototype", false],
+  ["_global.MovieClip.prototype.unloadMovie", "prototype", false],
+  ["_global.MovieClipLoader", "prototype", false],
+  ["_global.MovieClipLoader.prototype", "_listeners", false],
+  ["_global.MovieClipLoader.prototype", "broadcastMessage", false],
+  ["_global.MovieClipLoader.prototype", "getProgress", false],
+  ["_global.MovieClipLoader.prototype", "loadClip", false],
+  ["_global.MovieClipLoader.prototype", "unloadClip", false],
+  ["_global.NetConnection", "prototype", false],
+  ["_global.NetConnection.prototype", "addHeader", false],
+  ["_global.NetConnection.prototype", "call", false],
+  ["_global.NetConnection.prototype", "close", false],
+  ["_global.NetConnection.prototype", "connect", false],
+  ["_global.NetStream", "prototype", false],
+  ["_global.NetStream.prototype", "attachAudio", false],
+  ["_global.NetStream.prototype", "attachVideo", false],
+  ["_global.NetStream.prototype", "close", false],
+  ["_global.NetStream.prototype", "pause", false],
+  ["_global.NetStream.prototype", "play", false],
+  ["_global.NetStream.prototype", "publish", false],
+  ["_global.NetStream.prototype", "receiveAudio", false],
+  ["_global.NetStream.prototype", "receiveVideo", false],
+  ["_global.NetStream.prototype", "seek", false],
+  ["_global.NetStream.prototype", "send", false],
+  ["_global.NetStream.prototype", "setBufferTime", false],
+  ["_global.NetStream.prototype.pause", "prototype", false],
+  ["_global.NetStream.prototype.play", "prototype", false],
+  ["_global.NetStream.prototype.publish", "prototype", false],
+  ["_global.NetStream.prototype.receiveAudio", "prototype", false],
+  ["_global.NetStream.prototype.receiveVideo", "prototype", false],
+  ["_global.NetStream.prototype.seek", "prototype", false],
+  ["_global.Number", "prototype", false],
+  ["_global.Number.prototype", "toString", false],
+  ["_global.Number.prototype", "valueOf", false],
+  ["_global.PrintJob", "prototype", false],
+  ["_global.PrintJob.prototype", "addPage", false],
+  ["_global.PrintJob.prototype", "send", false],
+  ["_global.PrintJob.prototype", "start", false],
+  ["_global.RemoteLSOUsage", "getURLPageSupport", false],
+  ["_global.RemoteLSOUsage", "prototype", false],
+  ["_global.RemoteLSOUsage.getURLPageSupport", "prototype", false],
+  ["_global.Selection", "_listeners", false],
+  ["_global.Selection", "broadcastMessage", false],
+  ["_global.Selection", "getBeginIndex", false],
+  ["_global.Selection", "getCaretIndex", false],
+  ["_global.Selection", "getEndIndex", false],
+  ["_global.Selection", "getFocus", false],
+  ["_global.Selection", "setFocus", false],
+  ["_global.Selection", "setSelection", false],
+  ["_global.SharedObject", "deleteAll", false],
+  ["_global.SharedObject", "getDiskUsage", false],
+  ["_global.SharedObject", "getLocal", false],
+  ["_global.SharedObject", "getRemote", false],
+  ["_global.SharedObject", "prototype", false],
+  ["_global.SharedObject.deleteAll", "prototype", false],
+  ["_global.SharedObject.getDiskUsage", "prototype", false],
+  ["_global.SharedObject.getLocal", "prototype", false],
+  ["_global.SharedObject.getRemote", "prototype", false],
+  ["_global.SharedObject.prototype", "clear", false],
+  ["_global.SharedObject.prototype", "close", false],
+  ["_global.SharedObject.prototype", "connect", false],
+  ["_global.SharedObject.prototype", "flush", false],
+  ["_global.SharedObject.prototype", "getSize", false],
+  ["_global.SharedObject.prototype", "send", false],
+  ["_global.SharedObject.prototype", "setFps", false],
+  ["_global.Sound", "prototype", false],
+  ["_global.Sound.prototype", "9areSoundsInaccessible", false],
+  ["_global.Sound.prototype", "attachSound", false],
+  ["_global.Sound.prototype", "getBytesLoaded", false],
+  ["_global.Sound.prototype", "getBytesTotal", false],
+  ["_global.Sound.prototype", "getDuration", false],
+  ["_global.Sound.prototype", "getPan", false],
+  ["_global.Sound.prototype", "getPosition", false],
+  ["_global.Sound.prototype", "getTransform", false],
+  ["_global.Sound.prototype", "getVolume", false],
+  ["_global.Sound.prototype", "loadSound", false],
+  ["_global.Sound.prototype", "setDuration", false],
+  ["_global.Sound.prototype", "setPan", false],
+  ["_global.Sound.prototype", "setPosition", false],
+  ["_global.Sound.prototype", "setTransform", false],
+  ["_global.Sound.prototype", "setVolume", false],
+  ["_global.Sound.prototype", "start", false],
+  ["_global.Sound.prototype", "stop", false],
+  ["_global.Stage", "_listeners", false],
+  ["_global.Stage", "broadcastMessage", false],
+  ["_global.String", "fromCharCode", false],
+  ["_global.String", "prototype", false],
+  ["_global.String.prototype", "charAt", false],
+  ["_global.String.prototype", "charCodeAt", false],
+  ["_global.String.prototype", "concat", false],
+  ["_global.String.prototype", "indexOf", false],
+  ["_global.String.prototype", "lastIndexOf", false],
+  ["_global.String.prototype", "slice", false],
+  ["_global.String.prototype", "split", false],
+  ["_global.String.prototype", "substr", false],
+  ["_global.String.prototype", "substring", false],
+  ["_global.String.prototype", "toLowerCase", false],
+  ["_global.String.prototype", "toString", false],
+  ["_global.String.prototype", "toUpperCase", false],
+  ["_global.String.prototype", "valueOf", false],
+  ["_global.System", "IME", false],
+  ["_global.System", "Product", false],
+  ["_global.System", "capabilities", false],
+  ["_global.System", "security", false],
+  ["_global.System", "setClipboard", false],
+  ["_global.System", "showSettings", false],
+  ["_global.System.IME", "_listeners", false],
+  ["_global.System.IME", "broadcastMessage", false],
+  ["_global.System.IME", "doConversion", true],
+  ["_global.System.IME", "getConversionMode", true],
+  ["_global.System.IME", "getEnabled", true],
+  ["_global.System.IME", "setCompositionString", true],
+  ["_global.System.IME", "setConversionMode", true],
+  ["_global.System.IME", "setEnabled", true],
+  ["_global.System.Product", "prototype", false],
+  ["_global.System.Product.prototype", "download", false],
+  ["_global.System.Product.prototype", "installedVersion", false],
+  ["_global.System.Product.prototype", "isInstalled", false],
+  ["_global.System.Product.prototype", "isRunning", false],
+  ["_global.System.Product.prototype", "launch", false],
+  ["_global.System.Product.prototype.download", "prototype", false],
+  ["_global.System.Product.prototype.installedVersion", "prototype", false],
+  ["_global.System.Product.prototype.isInstalled", "prototype", false],
+  ["_global.System.Product.prototype.isRunning", "prototype", false],
+  ["_global.System.Product.prototype.launch", "prototype", false],
+  ["_global.System.security", "PolicyFileResolver", false],
+  ["_global.System.security", "allowDomain", false],
+  ["_global.System.security", "allowInsecureDomain", false],
+  ["_global.System.security", "chooseLocalSwfPath", false],
+  ["_global.System.security", "escapeDomain", false],
+  ["_global.System.security", "loadPolicyFile", false],
+  ["_global.System.security.PolicyFileResolver", "prototype", false],
+  ["_global.System.security.PolicyFileResolver.prototype", "_listeners", false],
+  ["_global.System.security.PolicyFileResolver.prototype", "broadcastMessage", false],
+  ["_global.System.security.PolicyFileResolver.prototype", "resolve", false],
+  ["_global.TextField", "StyleSheet", false],
+  ["_global.TextField", "getFontList", false],
+  ["_global.TextField", "prototype", false],
+  ["_global.TextField.StyleSheet", "prototype", false],
+  ["_global.TextField.StyleSheet.prototype", "_copy", false],
+  ["_global.TextField.StyleSheet.prototype", "clear", false],
+  ["_global.TextField.StyleSheet.prototype", "doTransform", false],
+  ["_global.TextField.StyleSheet.prototype", "getStyle", false],
+  ["_global.TextField.StyleSheet.prototype", "getStyleNames", false],
+  ["_global.TextField.StyleSheet.prototype", "load", false],
+  ["_global.TextField.StyleSheet.prototype", "onData", false],
+  ["_global.TextField.StyleSheet.prototype", "onLoad", false],
+  ["_global.TextField.StyleSheet.prototype", "parse", false],
+  ["_global.TextField.StyleSheet.prototype", "parseCSSFontFamily", false],
+  ["_global.TextField.StyleSheet.prototype", "parseCSSInternal", false],
+  ["_global.TextField.StyleSheet.prototype", "parseColor", false],
+  ["_global.TextField.StyleSheet.prototype", "setStyle", false],
+  ["_global.TextField.StyleSheet.prototype", "transform", false],
+  ["_global.TextField.StyleSheet.prototype", "update", false],
+  ["_global.TextField.StyleSheet.prototype._copy", "prototype", false],
+  ["_global.TextField.StyleSheet.prototype.clear", "prototype", false],
+  ["_global.TextField.StyleSheet.prototype.doTransform", "prototype", false],
+  ["_global.TextField.StyleSheet.prototype.getStyle", "prototype", false],
+  ["_global.TextField.StyleSheet.prototype.getStyleNames", "prototype", false],
+  ["_global.TextField.StyleSheet.prototype.onData", "prototype", false],
+  ["_global.TextField.StyleSheet.prototype.onLoad", "prototype", false],
+  ["_global.TextField.StyleSheet.prototype.parse", "prototype", false],
+  ["_global.TextField.StyleSheet.prototype.setStyle", "prototype", false],
+  ["_global.TextField.StyleSheet.prototype.transform", "prototype", false],
+  ["_global.TextField.prototype", "_listeners", false],
+  ["_global.TextField.prototype", "broadcastMessage", false],
+  ["_global.TextField.prototype", "getDepth", false],
+  ["_global.TextField.prototype", "getNewTextFormat", false],
+  ["_global.TextField.prototype", "getTextFormat", false],
+  ["_global.TextField.prototype", "removeTextField", false],
+  ["_global.TextField.prototype", "replaceSel", false],
+  ["_global.TextField.prototype", "replaceText", false],
+  ["_global.TextField.prototype", "setNewTextFormat", false],
+  ["_global.TextField.prototype", "setTextFormat", false],
+  ["_global.TextFormat", "prototype", false],
+  ["_global.TextSnapshot", "prototype", false],
+  ["_global.TextSnapshot.prototype", "findText", false],
+  ["_global.TextSnapshot.prototype", "getCount", false],
+  ["_global.TextSnapshot.prototype", "getSelected", false],
+  ["_global.TextSnapshot.prototype", "getSelectedText", false],
+  ["_global.TextSnapshot.prototype", "getText", false],
+  ["_global.TextSnapshot.prototype", "getTextRunInfo", false],
+  ["_global.TextSnapshot.prototype", "hitTestTextNearPos", false],
+  ["_global.TextSnapshot.prototype", "setSelectColor", false],
+  ["_global.TextSnapshot.prototype", "setSelected", false],
+  ["_global.Video", "prototype", false],
+  ["_global.Video.prototype", "attachVideo", false],
+  ["_global.Video.prototype", "clear", false],
+  ["_global.XML", "prototype", false],
+  ["_global.XML.prototype", "addRequestHeader", false],
+  ["_global.XML.prototype", "createElement", false],
+  ["_global.XML.prototype", "createTextNode", false],
+  ["_global.XML.prototype", "getBytesLoaded", false],
+  ["_global.XML.prototype", "getBytesTotal", false],
+  ["_global.XML.prototype", "load", false],
+  ["_global.XML.prototype", "onData", false],
+  ["_global.XML.prototype", "onLoad", false],
+  ["_global.XML.prototype", "parseXML", false],
+  ["_global.XML.prototype", "send", false],
+  ["_global.XML.prototype", "sendAndLoad", false],
+  ["_global.XML.prototype.addRequestHeader", "prototype", false],
+  ["_global.XML.prototype.getBytesLoaded", "prototype", false],
+  ["_global.XML.prototype.getBytesTotal", "prototype", false],
+  ["_global.XML.prototype.onData", "prototype", false],
+  ["_global.XML.prototype.onLoad", "prototype", false],
+  ["_global.XMLSocket", "prototype", false],
+  ["_global.XMLSocket.prototype", "close", false],
+  ["_global.XMLSocket.prototype", "connect", false],
+  ["_global.XMLSocket.prototype", "onData", false],
+  ["_global.XMLSocket.prototype", "send", false],
+  ["_global.XMLSocket.prototype.onData", "prototype", false],
+  ["_global.flash", "display", false],
+  ["_global.flash", "external", false],
+  ["_global.flash", "filters", false],
+  ["_global.flash", "geom", false],
+  ["_global.flash", "net", false],
+  ["_global.flash", "text", false],
+  ["_global.flash.display", "BitmapData", false],
+  ["_global.flash.display.BitmapData", "loadBitmap", true],
+  ["_global.flash.display.BitmapData", "prototype", false],
+  ["_global.flash.display.BitmapData.prototype", "applyFilter", true],
+  ["_global.flash.display.BitmapData.prototype", "clone", true],
+  ["_global.flash.display.BitmapData.prototype", "colorTransform", true],
+  ["_global.flash.display.BitmapData.prototype", "compare", true],
+  ["_global.flash.display.BitmapData.prototype", "copyChannel", true],
+  ["_global.flash.display.BitmapData.prototype", "copyPixels", true],
+  ["_global.flash.display.BitmapData.prototype", "dispose", true],
+  ["_global.flash.display.BitmapData.prototype", "draw", true],
+  ["_global.flash.display.BitmapData.prototype", "fillRect", true],
+  ["_global.flash.display.BitmapData.prototype", "floodFill", true],
+  ["_global.flash.display.BitmapData.prototype", "generateFilterRect", true],
+  ["_global.flash.display.BitmapData.prototype", "getColorBoundsRect", true],
+  ["_global.flash.display.BitmapData.prototype", "getPixel", true],
+  ["_global.flash.display.BitmapData.prototype", "getPixel32", true],
+  ["_global.flash.display.BitmapData.prototype", "hitTest", true],
+  ["_global.flash.display.BitmapData.prototype", "merge", true],
+  ["_global.flash.display.BitmapData.prototype", "noise", true],
+  ["_global.flash.display.BitmapData.prototype", "paletteMap", true],
+  ["_global.flash.display.BitmapData.prototype", "perlinNoise", true],
+  ["_global.flash.display.BitmapData.prototype", "pixelDissolve", true],
+  ["_global.flash.display.BitmapData.prototype", "scroll", true],
+  ["_global.flash.display.BitmapData.prototype", "setPixel", true],
+  ["_global.flash.display.BitmapData.prototype", "setPixel32", true],
+  ["_global.flash.display.BitmapData.prototype", "threshold", true],
+  ["_global.flash.external", "ExternalInterface", false],
+  ["_global.flash.external.ExternalInterface", "_addCallback", true],
+  ["_global.flash.external.ExternalInterface", "_argumentsToAS", true],
+  ["_global.flash.external.ExternalInterface", "_argumentsToXML", true],
+  ["_global.flash.external.ExternalInterface", "_arrayToAS", true],
+  ["_global.flash.external.ExternalInterface", "_arrayToJS", true],
+  ["_global.flash.external.ExternalInterface", "_arrayToXML", true],
+  ["_global.flash.external.ExternalInterface", "_callIn", true],
+  ["_global.flash.external.ExternalInterface", "_callOut", true],
+  ["_global.flash.external.ExternalInterface", "_escapeXML", true],
+  ["_global.flash.external.ExternalInterface", "_evalJS", true],
+  ["_global.flash.external.ExternalInterface", "_initJS", true],
+  ["_global.flash.external.ExternalInterface", "_jsQuoteString", true],
+  ["_global.flash.external.ExternalInterface", "_objectID", true],
+  ["_global.flash.external.ExternalInterface", "_objectToAS", true],
+  ["_global.flash.external.ExternalInterface", "_objectToJS", true],
+  ["_global.flash.external.ExternalInterface", "_objectToXML", true],
+  ["_global.flash.external.ExternalInterface", "_toAS", true],
+  ["_global.flash.external.ExternalInterface", "_toJS", true],
+  ["_global.flash.external.ExternalInterface", "_toXML", true],
+  ["_global.flash.external.ExternalInterface", "_unescapeXML", true],
+  ["_global.flash.external.ExternalInterface", "addCallback", true],
+  ["_global.flash.external.ExternalInterface", "prototype", true],
+  ["_global.flash.external.ExternalInterface._argumentsToAS", "prototype", false],
+  ["_global.flash.external.ExternalInterface._argumentsToXML", "prototype", false],
+  ["_global.flash.external.ExternalInterface._arrayToAS", "prototype", false],
+  ["_global.flash.external.ExternalInterface._arrayToJS", "prototype", false],
+  ["_global.flash.external.ExternalInterface._arrayToXML", "prototype", false],
+  ["_global.flash.external.ExternalInterface._callIn", "prototype", false],
+  ["_global.flash.external.ExternalInterface._objectToAS", "prototype", false],
+  ["_global.flash.external.ExternalInterface._objectToJS", "prototype", false],
+  ["_global.flash.external.ExternalInterface._objectToXML", "prototype", false],
+  ["_global.flash.external.ExternalInterface._toAS", "prototype", false],
+  ["_global.flash.external.ExternalInterface._toJS", "prototype", false],
+  ["_global.flash.external.ExternalInterface._toXML", "prototype", false],
+  ["_global.flash.external.ExternalInterface.addCallback", "prototype", false],
+  ["_global.flash.filters", "BevelFilter", false],
+  ["_global.flash.filters", "BlurFilter", false],
+  ["_global.flash.filters", "ColorMatrixFilter", false],
+  ["_global.flash.filters", "ConvolutionFilter", false],
+  ["_global.flash.filters", "DisplacementMapFilter", false],
+  ["_global.flash.filters", "DropShadowFilter", false],
+  ["_global.flash.filters", "GlowFilter", false],
+  ["_global.flash.filters", "GradientBevelFilter", false],
+  ["_global.flash.filters", "GradientGlowFilter", false],
+  ["_global.flash.filters.BevelFilter", "prototype", false],
+  ["_global.flash.filters.BlurFilter", "prototype", false],
+  ["_global.flash.filters.ColorMatrixFilter", "prototype", false],
+  ["_global.flash.filters.ConvolutionFilter", "prototype", false],
+  ["_global.flash.filters.DisplacementMapFilter", "prototype", false],
+  ["_global.flash.filters.DropShadowFilter", "prototype", false],
+  ["_global.flash.filters.GlowFilter", "prototype", false],
+  ["_global.flash.filters.GradientBevelFilter", "prototype", false],
+  ["_global.flash.filters.GradientGlowFilter", "prototype", false],
+  ["_global.flash.geom", "ColorTransform", false],
+  ["_global.flash.geom", "Matrix", false],
+  ["_global.flash.geom", "Point", false],
+  ["_global.flash.geom", "Rectangle", false],
+  ["_global.flash.geom", "Transform", false],
+  ["_global.flash.geom.ColorTransform", "prototype", false],
+  ["_global.flash.geom.ColorTransform.prototype", "concat", true],
+  ["_global.flash.geom.ColorTransform.prototype", "toString", false],
+  ["_global.flash.geom.ColorTransform.prototype.toString", "prototype", false],
+  ["_global.flash.geom.Matrix", "prototype", false],
+  ["_global.flash.geom.Matrix.prototype", "clone", false],
+  ["_global.flash.geom.Matrix.prototype", "concat", false],
+  ["_global.flash.geom.Matrix.prototype", "createBox", false],
+  ["_global.flash.geom.Matrix.prototype", "createGradientBox", false],
+  ["_global.flash.geom.Matrix.prototype", "deltaTransformPoint", false],
+  ["_global.flash.geom.Matrix.prototype", "identity", false],
+  ["_global.flash.geom.Matrix.prototype", "invert", false],
+  ["_global.flash.geom.Matrix.prototype", "rotate", false],
+  ["_global.flash.geom.Matrix.prototype", "scale", false],
+  ["_global.flash.geom.Matrix.prototype", "toString", false],
+  ["_global.flash.geom.Matrix.prototype", "transformPoint", false],
+  ["_global.flash.geom.Matrix.prototype", "translate", false],
+  ["_global.flash.geom.Matrix.prototype.clone", "prototype", false],
+  ["_global.flash.geom.Matrix.prototype.concat", "prototype", false],
+  ["_global.flash.geom.Matrix.prototype.createBox", "prototype", false],
+  ["_global.flash.geom.Matrix.prototype.createGradientBox", "prototype", false],
+  ["_global.flash.geom.Matrix.prototype.deltaTransformPoint", "prototype", false],
+  ["_global.flash.geom.Matrix.prototype.identity", "prototype", false],
+  ["_global.flash.geom.Matrix.prototype.invert", "prototype", false],
+  ["_global.flash.geom.Matrix.prototype.rotate", "prototype", false],
+  ["_global.flash.geom.Matrix.prototype.scale", "prototype", false],
+  ["_global.flash.geom.Matrix.prototype.toString", "prototype", false],
+  ["_global.flash.geom.Matrix.prototype.transformPoint", "prototype", false],
+  ["_global.flash.geom.Matrix.prototype.translate", "prototype", false],
+  ["_global.flash.geom.Point", "distance", false],
+  ["_global.flash.geom.Point", "interpolate", false],
+  ["_global.flash.geom.Point", "polar", false],
+  ["_global.flash.geom.Point", "prototype", false],
+  ["_global.flash.geom.Point.distance", "prototype", false],
+  ["_global.flash.geom.Point.interpolate", "prototype", false],
+  ["_global.flash.geom.Point.polar", "prototype", false],
+  ["_global.flash.geom.Point.prototype", "add", false],
+  ["_global.flash.geom.Point.prototype", "clone", false],
+  ["_global.flash.geom.Point.prototype", "equals", false],
+  ["_global.flash.geom.Point.prototype", "normalize", false],
+  ["_global.flash.geom.Point.prototype", "offset", false],
+  ["_global.flash.geom.Point.prototype", "subtract", false],
+  ["_global.flash.geom.Point.prototype", "toString", false],
+  ["_global.flash.geom.Point.prototype.add", "prototype", false],
+  ["_global.flash.geom.Point.prototype.clone", "prototype", false],
+  ["_global.flash.geom.Point.prototype.equals", "prototype", false],
+  ["_global.flash.geom.Point.prototype.normalize", "prototype", false],
+  ["_global.flash.geom.Point.prototype.offset", "prototype", false],
+  ["_global.flash.geom.Point.prototype.subtract", "prototype", false],
+  ["_global.flash.geom.Point.prototype.toString", "prototype", false],
+  ["_global.flash.geom.Rectangle", "prototype", false],
+  ["_global.flash.geom.Rectangle.prototype", "bottomRight", false],
+  ["_global.flash.geom.Rectangle.prototype", "clone", false],
+  ["_global.flash.geom.Rectangle.prototype", "contains", false],
+  ["_global.flash.geom.Rectangle.prototype", "containsPoint", false],
+  ["_global.flash.geom.Rectangle.prototype", "containsRectangle", false],
+  ["_global.flash.geom.Rectangle.prototype", "equals", false],
+  ["_global.flash.geom.Rectangle.prototype", "inflate", false],
+  ["_global.flash.geom.Rectangle.prototype", "inflatePoint", false],
+  ["_global.flash.geom.Rectangle.prototype", "intersection", false],
+  ["_global.flash.geom.Rectangle.prototype", "intersects", false],
+  ["_global.flash.geom.Rectangle.prototype", "isEmpty", false],
+  ["_global.flash.geom.Rectangle.prototype", "offset", false],
+  ["_global.flash.geom.Rectangle.prototype", "offsetPoint", false],
+  ["_global.flash.geom.Rectangle.prototype", "setEmpty", false],
+  ["_global.flash.geom.Rectangle.prototype", "size", false],
+  ["_global.flash.geom.Rectangle.prototype", "toString", false],
+  ["_global.flash.geom.Rectangle.prototype", "topLeft", false],
+  ["_global.flash.geom.Rectangle.prototype", "union", false],
+  ["_global.flash.geom.Rectangle.prototype.clone", "prototype", false],
+  ["_global.flash.geom.Rectangle.prototype.contains", "prototype", false],
+  ["_global.flash.geom.Rectangle.prototype.containsPoint", "prototype", false],
+  ["_global.flash.geom.Rectangle.prototype.containsRectangle", "prototype", false],
+  ["_global.flash.geom.Rectangle.prototype.equals", "prototype", false],
+  ["_global.flash.geom.Rectangle.prototype.inflate", "prototype", false],
+  ["_global.flash.geom.Rectangle.prototype.inflatePoint", "prototype", false],
+  ["_global.flash.geom.Rectangle.prototype.intersection", "prototype", false],
+  ["_global.flash.geom.Rectangle.prototype.intersects", "prototype", false],
+  ["_global.flash.geom.Rectangle.prototype.isEmpty", "prototype", false],
+  ["_global.flash.geom.Rectangle.prototype.offset", "prototype", false],
+  ["_global.flash.geom.Rectangle.prototype.offsetPoint", "prototype", false],
+  ["_global.flash.geom.Rectangle.prototype.setEmpty", "prototype", false],
+  ["_global.flash.geom.Rectangle.prototype.toString", "prototype", false],
+  ["_global.flash.geom.Rectangle.prototype.union", "prototype", false],
+  ["_global.flash.geom.Transform", "prototype", false],
+  ["_global.flash.net", "FileReference", false],
+  ["_global.flash.net", "FileReferenceList", false],
+  ["_global.flash.net.FileReference", "prototype", false],
+  ["_global.flash.net.FileReference.prototype", "_listeners", false],
+  ["_global.flash.net.FileReference.prototype", "broadcastMessage", false],
+  ["_global.flash.net.FileReference.prototype", "browse", true],
+  ["_global.flash.net.FileReference.prototype", "cancel", true],
+  ["_global.flash.net.FileReference.prototype", "download", true],
+  ["_global.flash.net.FileReference.prototype", "upload", true],
+  ["_global.flash.net.FileReferenceList", "prototype", false],
+  ["_global.flash.net.FileReferenceList.prototype", "_listeners", false],
+  ["_global.flash.net.FileReferenceList.prototype", "broadcastMessage", false],
+  ["_global.flash.net.FileReferenceList.prototype", "browse", true]
+];
diff --git a/test/trace/trace_properties_names_8.as b/test/trace/trace_properties_names_8.as
new file mode 100644
index 0000000..04b1078
--- /dev/null
+++ b/test/trace/trace_properties_names_8.as
@@ -0,0 +1,699 @@
+// generated by trace_properties.as
+
+var mySecretIds = [
+  ["_global", "Object", false],
+  ["_global", "Function", false],
+  ["_global.Function", "prototype", false],
+  ["_global", "XMLNode", false],
+  ["_global.flash.text", "TextRenderer", false],
+  ["_global.flash.filters", "BitmapFilter", false],
+  ["_global.Object", "prototype", false],
+  ["_global.Object", "registerClass", false],
+  ["_global.Object.prototype", "addProperty", false],
+  ["_global.Object.prototype", "hasOwnProperty", false],
+  ["_global.Object.prototype", "isPropertyEnumerable", false],
+  ["_global.Object.prototype", "isPrototypeOf", false],
+  ["_global.Object.prototype", "toLocaleString", false],
+  ["_global.Object.prototype", "toString", false],
+  ["_global.Object.prototype", "unwatch", false],
+  ["_global.Object.prototype", "valueOf", false],
+  ["_global.Object.prototype", "watch", false],
+  ["_global.Object.prototype.toLocaleString", "prototype", false],
+  ["_global.Function.prototype", "apply", false],
+  ["_global.Function.prototype", "call", false],
+  ["_global.XMLNode", "prototype", false],
+  ["_global.XMLNode.prototype", "appendChild", false],
+  ["_global.XMLNode.prototype", "cloneNode", false],
+  ["_global.XMLNode.prototype", "getNamespaceForPrefix", false],
+  ["_global.XMLNode.prototype", "getPrefixForNamespace", false],
+  ["_global.XMLNode.prototype", "hasChildNodes", false],
+  ["_global.XMLNode.prototype", "insertBefore", false],
+  ["_global.XMLNode.prototype", "removeNode", false],
+  ["_global.XMLNode.prototype", "toString", false],
+  ["_global.flash.text.TextRenderer", "prototype", false],
+  ["_global.flash.text.TextRenderer", "setAdvancedAntialiasingTable", false],
+  ["_global.flash.filters.BitmapFilter", "prototype", false],
+  ["_global.flash.filters.BitmapFilter.prototype", "clone", false],
+  ["_global", "ASSetNative", false],
+  ["_global", "ASSetNativeAccessor", false],
+  ["_global", "ASSetPropFlags", false],
+  ["_global", "ASconstructor", false],
+  ["_global", "ASnative", false],
+  ["_global", "Accessibility", false],
+  ["_global", "Array", false],
+  ["_global", "AsBroadcaster", false],
+  ["_global", "AsSetupError", false],
+  ["_global", "Boolean", false],
+  ["_global", "Button", false],
+  ["_global", "Camera", false],
+  ["_global", "Color", false],
+  ["_global", "ContextMenu", false],
+  ["_global", "ContextMenuItem", false],
+  ["_global", "Date", false],
+  ["_global", "Error", false],
+  ["_global", "Key", false],
+  ["_global", "LoadVars", false],
+  ["_global", "LocalConnection", false],
+  ["_global", "Math", false],
+  ["_global", "Microphone", false],
+  ["_global", "Mouse", false],
+  ["_global", "MovieClip", false],
+  ["_global", "MovieClipLoader", false],
+  ["_global", "NetConnection", false],
+  ["_global", "NetStream", false],
+  ["_global", "Number", false],
+  ["_global", "PrintJob", false],
+  ["_global", "RemoteLSOUsage", false],
+  ["_global", "Selection", false],
+  ["_global", "SharedObject", false],
+  ["_global", "Sound", false],
+  ["_global", "Stage", false],
+  ["_global", "String", false],
+  ["_global", "System", false],
+  ["_global", "TextField", false],
+  ["_global", "TextFormat", false],
+  ["_global", "TextSnapshot", false],
+  ["_global", "Video", false],
+  ["_global", "XML", false],
+  ["_global", "XMLSocket", false],
+  ["_global", "clearInterval", false],
+  ["_global", "enableDebugConsole", false],
+  ["_global", "escape", false],
+  ["_global", "flash", false],
+  ["_global", "isFinite", false],
+  ["_global", "isNaN", false],
+  ["_global", "parseFloat", false],
+  ["_global", "parseInt", false],
+  ["_global", "setInterval", false],
+  ["_global", "setTimeout", false],
+  ["_global", "showRedrawRegions", false],
+  ["_global", "trace", false],
+  ["_global", "unescape", false],
+  ["_global", "updateAfterEvent", false],
+  ["_global.Accessibility", "isActive", false],
+  ["_global.Accessibility", "sendEvent", false],
+  ["_global.Accessibility", "updateProperties", false],
+  ["_global.Array", "prototype", false],
+  ["_global.Array.prototype", "concat", false],
+  ["_global.Array.prototype", "join", false],
+  ["_global.Array.prototype", "pop", false],
+  ["_global.Array.prototype", "push", false],
+  ["_global.Array.prototype", "reverse", false],
+  ["_global.Array.prototype", "shift", false],
+  ["_global.Array.prototype", "slice", false],
+  ["_global.Array.prototype", "sort", false],
+  ["_global.Array.prototype", "sortOn", false],
+  ["_global.Array.prototype", "splice", false],
+  ["_global.Array.prototype", "toString", false],
+  ["_global.Array.prototype", "unshift", false],
+  ["_global.AsBroadcaster", "addListener", false],
+  ["_global.AsBroadcaster", "broadcastMessage", false],
+  ["_global.AsBroadcaster", "initialize", false],
+  ["_global.AsBroadcaster", "prototype", false],
+  ["_global.AsBroadcaster", "removeListener", false],
+  ["_global.AsBroadcaster.addListener", "prototype", false],
+  ["_global.AsBroadcaster.initialize", "prototype", false],
+  ["_global.AsBroadcaster.removeListener", "prototype", false],
+  ["_global.AsSetupError", "prototype", false],
+  ["_global.Boolean", "prototype", false],
+  ["_global.Boolean.prototype", "toString", false],
+  ["_global.Boolean.prototype", "valueOf", false],
+  ["_global.Button", "prototype", false],
+  ["_global.Button.prototype", "getDepth", false],
+  ["_global.Camera", "get", false],
+  ["_global.Camera", "prototype", false],
+  ["_global.Camera.get", "prototype", false],
+  ["_global.Camera.prototype", "setCursor", false],
+  ["_global.Camera.prototype", "setKeyFrameInterval", false],
+  ["_global.Camera.prototype", "setLoopback", false],
+  ["_global.Camera.prototype", "setMode", false],
+  ["_global.Camera.prototype", "setMotionLevel", false],
+  ["_global.Camera.prototype", "setQuality", false],
+  ["_global.Color", "prototype", false],
+  ["_global.Color.prototype", "getRGB", false],
+  ["_global.Color.prototype", "getTransform", false],
+  ["_global.Color.prototype", "setRGB", false],
+  ["_global.Color.prototype", "setTransform", false],
+  ["_global.ContextMenu", "prototype", false],
+  ["_global.ContextMenu.prototype", "copy", false],
+  ["_global.ContextMenu.prototype", "hideBuiltInItems", false],
+  ["_global.ContextMenu.prototype.copy", "prototype", false],
+  ["_global.ContextMenu.prototype.hideBuiltInItems", "prototype", false],
+  ["_global.ContextMenuItem", "prototype", false],
+  ["_global.ContextMenuItem.prototype", "copy", false],
+  ["_global.ContextMenuItem.prototype.copy", "prototype", false],
+  ["_global.Date", "UTC", false],
+  ["_global.Date", "prototype", false],
+  ["_global.Date.prototype", "getDate", false],
+  ["_global.Date.prototype", "getDay", false],
+  ["_global.Date.prototype", "getFullYear", false],
+  ["_global.Date.prototype", "getHours", false],
+  ["_global.Date.prototype", "getMilliseconds", false],
+  ["_global.Date.prototype", "getMinutes", false],
+  ["_global.Date.prototype", "getMonth", false],
+  ["_global.Date.prototype", "getSeconds", false],
+  ["_global.Date.prototype", "getTime", false],
+  ["_global.Date.prototype", "getTimezoneOffset", false],
+  ["_global.Date.prototype", "getUTCDate", false],
+  ["_global.Date.prototype", "getUTCDay", false],
+  ["_global.Date.prototype", "getUTCFullYear", false],
+  ["_global.Date.prototype", "getUTCHours", false],
+  ["_global.Date.prototype", "getUTCMilliseconds", false],
+  ["_global.Date.prototype", "getUTCMinutes", false],
+  ["_global.Date.prototype", "getUTCMonth", false],
+  ["_global.Date.prototype", "getUTCSeconds", false],
+  ["_global.Date.prototype", "getUTCYear", false],
+  ["_global.Date.prototype", "getYear", false],
+  ["_global.Date.prototype", "setDate", false],
+  ["_global.Date.prototype", "setFullYear", false],
+  ["_global.Date.prototype", "setHours", false],
+  ["_global.Date.prototype", "setMilliseconds", false],
+  ["_global.Date.prototype", "setMinutes", false],
+  ["_global.Date.prototype", "setMonth", false],
+  ["_global.Date.prototype", "setSeconds", false],
+  ["_global.Date.prototype", "setTime", false],
+  ["_global.Date.prototype", "setUTCDate", false],
+  ["_global.Date.prototype", "setUTCFullYear", false],
+  ["_global.Date.prototype", "setUTCHours", false],
+  ["_global.Date.prototype", "setUTCMilliseconds", false],
+  ["_global.Date.prototype", "setUTCMinutes", false],
+  ["_global.Date.prototype", "setUTCMonth", false],
+  ["_global.Date.prototype", "setUTCSeconds", false],
+  ["_global.Date.prototype", "setYear", false],
+  ["_global.Date.prototype", "toString", false],
+  ["_global.Error", "prototype", false],
+  ["_global.Error.prototype", "toString", false],
+  ["_global.Error.prototype.toString", "prototype", false],
+  ["_global.Key", "_listeners", false],
+  ["_global.Key", "broadcastMessage", false],
+  ["_global.Key", "getAscii", false],
+  ["_global.Key", "getCode", false],
+  ["_global.Key", "isAccessible", false],
+  ["_global.Key", "isDown", false],
+  ["_global.Key", "isToggled", false],
+  ["_global.LoadVars", "prototype", false],
+  ["_global.LoadVars.prototype", "addRequestHeader", false],
+  ["_global.LoadVars.prototype", "decode", false],
+  ["_global.LoadVars.prototype", "getBytesLoaded", false],
+  ["_global.LoadVars.prototype", "getBytesTotal", false],
+  ["_global.LoadVars.prototype", "load", false],
+  ["_global.LoadVars.prototype", "onData", false],
+  ["_global.LoadVars.prototype", "onLoad", false],
+  ["_global.LoadVars.prototype", "send", false],
+  ["_global.LoadVars.prototype", "sendAndLoad", false],
+  ["_global.LoadVars.prototype", "toString", false],
+  ["_global.LoadVars.prototype.addRequestHeader", "prototype", false],
+  ["_global.LoadVars.prototype.getBytesLoaded", "prototype", false],
+  ["_global.LoadVars.prototype.getBytesTotal", "prototype", false],
+  ["_global.LoadVars.prototype.onData", "prototype", false],
+  ["_global.LoadVars.prototype.onLoad", "prototype", false],
+  ["_global.LoadVars.prototype.toString", "prototype", false],
+  ["_global.LocalConnection", "prototype", false],
+  ["_global.LocalConnection.prototype", "close", false],
+  ["_global.LocalConnection.prototype", "connect", false],
+  ["_global.LocalConnection.prototype", "domain", false],
+  ["_global.LocalConnection.prototype", "send", false],
+  ["_global.Math", "abs", false],
+  ["_global.Math", "acos", false],
+  ["_global.Math", "asin", false],
+  ["_global.Math", "atan", false],
+  ["_global.Math", "atan2", false],
+  ["_global.Math", "ceil", false],
+  ["_global.Math", "cos", false],
+  ["_global.Math", "exp", false],
+  ["_global.Math", "floor", false],
+  ["_global.Math", "log", false],
+  ["_global.Math", "max", false],
+  ["_global.Math", "min", false],
+  ["_global.Math", "pow", false],
+  ["_global.Math", "random", false],
+  ["_global.Math", "round", false],
+  ["_global.Math", "sin", false],
+  ["_global.Math", "sqrt", false],
+  ["_global.Math", "tan", false],
+  ["_global.Microphone", "get", false],
+  ["_global.Microphone", "prototype", false],
+  ["_global.Microphone.get", "prototype", false],
+  ["_global.Microphone.prototype", "setGain", false],
+  ["_global.Microphone.prototype", "setRate", false],
+  ["_global.Microphone.prototype", "setSilenceLevel", false],
+  ["_global.Microphone.prototype", "setUseEchoSuppression", false],
+  ["_global.Mouse", "_listeners", false],
+  ["_global.Mouse", "broadcastMessage", false],
+  ["_global.Mouse", "hide", false],
+  ["_global.Mouse", "show", false],
+  ["_global.MovieClip", "prototype", false],
+  ["_global.MovieClip.prototype", "attachAudio", false],
+  ["_global.MovieClip.prototype", "attachBitmap", false],
+  ["_global.MovieClip.prototype", "attachMovie", false],
+  ["_global.MovieClip.prototype", "attachVideo", false],
+  ["_global.MovieClip.prototype", "beginBitmapFill", false],
+  ["_global.MovieClip.prototype", "beginFill", false],
+  ["_global.MovieClip.prototype", "beginGradientFill", false],
+  ["_global.MovieClip.prototype", "beginMeshFill", false],
+  ["_global.MovieClip.prototype", "clear", false],
+  ["_global.MovieClip.prototype", "createEmptyMovieClip", false],
+  ["_global.MovieClip.prototype", "createTextField", false],
+  ["_global.MovieClip.prototype", "curveTo", false],
+  ["_global.MovieClip.prototype", "duplicateMovieClip", false],
+  ["_global.MovieClip.prototype", "endFill", false],
+  ["_global.MovieClip.prototype", "getBounds", false],
+  ["_global.MovieClip.prototype", "getBytesLoaded", false],
+  ["_global.MovieClip.prototype", "getBytesTotal", false],
+  ["_global.MovieClip.prototype", "getDepth", false],
+  ["_global.MovieClip.prototype", "getInstanceAtDepth", false],
+  ["_global.MovieClip.prototype", "getNextHighestDepth", false],
+  ["_global.MovieClip.prototype", "getRect", false],
+  ["_global.MovieClip.prototype", "getSWFVersion", false],
+  ["_global.MovieClip.prototype", "getTextSnapshot", false],
+  ["_global.MovieClip.prototype", "getURL", false],
+  ["_global.MovieClip.prototype", "globalToLocal", false],
+  ["_global.MovieClip.prototype", "gotoAndPlay", false],
+  ["_global.MovieClip.prototype", "gotoAndStop", false],
+  ["_global.MovieClip.prototype", "hitTest", false],
+  ["_global.MovieClip.prototype", "lineGradientStyle", false],
+  ["_global.MovieClip.prototype", "lineStyle", false],
+  ["_global.MovieClip.prototype", "lineTo", false],
+  ["_global.MovieClip.prototype", "loadMovie", false],
+  ["_global.MovieClip.prototype", "loadVariables", false],
+  ["_global.MovieClip.prototype", "localToGlobal", false],
+  ["_global.MovieClip.prototype", "meth", false],
+  ["_global.MovieClip.prototype", "moveTo", false],
+  ["_global.MovieClip.prototype", "nextFrame", false],
+  ["_global.MovieClip.prototype", "play", false],
+  ["_global.MovieClip.prototype", "prevFrame", false],
+  ["_global.MovieClip.prototype", "removeMovieClip", false],
+  ["_global.MovieClip.prototype", "setMask", false],
+  ["_global.MovieClip.prototype", "startDrag", false],
+  ["_global.MovieClip.prototype", "stop", false],
+  ["_global.MovieClip.prototype", "stopDrag", false],
+  ["_global.MovieClip.prototype", "swapDepths", false],
+  ["_global.MovieClip.prototype", "unloadMovie", false],
+  ["_global.MovieClip.prototype.getTextSnapshot", "prototype", false],
+  ["_global.MovieClip.prototype.getURL", "prototype", false],
+  ["_global.MovieClip.prototype.loadMovie", "prototype", false],
+  ["_global.MovieClip.prototype.loadVariables", "prototype", false],
+  ["_global.MovieClip.prototype.meth", "prototype", false],
+  ["_global.MovieClip.prototype.unloadMovie", "prototype", false],
+  ["_global.MovieClipLoader", "prototype", false],
+  ["_global.MovieClipLoader.prototype", "_listeners", false],
+  ["_global.MovieClipLoader.prototype", "broadcastMessage", false],
+  ["_global.MovieClipLoader.prototype", "getProgress", false],
+  ["_global.MovieClipLoader.prototype", "loadClip", false],
+  ["_global.MovieClipLoader.prototype", "unloadClip", false],
+  ["_global.NetConnection", "prototype", false],
+  ["_global.NetConnection.prototype", "addHeader", false],
+  ["_global.NetConnection.prototype", "call", false],
+  ["_global.NetConnection.prototype", "close", false],
+  ["_global.NetConnection.prototype", "connect", false],
+  ["_global.NetStream", "prototype", false],
+  ["_global.NetStream.prototype", "attachAudio", false],
+  ["_global.NetStream.prototype", "attachVideo", false],
+  ["_global.NetStream.prototype", "close", false],
+  ["_global.NetStream.prototype", "pause", false],
+  ["_global.NetStream.prototype", "play", false],
+  ["_global.NetStream.prototype", "publish", false],
+  ["_global.NetStream.prototype", "receiveAudio", false],
+  ["_global.NetStream.prototype", "receiveVideo", false],
+  ["_global.NetStream.prototype", "seek", false],
+  ["_global.NetStream.prototype", "send", false],
+  ["_global.NetStream.prototype", "setBufferTime", false],
+  ["_global.NetStream.prototype.pause", "prototype", false],
+  ["_global.NetStream.prototype.play", "prototype", false],
+  ["_global.NetStream.prototype.publish", "prototype", false],
+  ["_global.NetStream.prototype.receiveAudio", "prototype", false],
+  ["_global.NetStream.prototype.receiveVideo", "prototype", false],
+  ["_global.NetStream.prototype.seek", "prototype", false],
+  ["_global.Number", "prototype", false],
+  ["_global.Number.prototype", "toString", false],
+  ["_global.Number.prototype", "valueOf", false],
+  ["_global.PrintJob", "prototype", false],
+  ["_global.PrintJob.prototype", "addPage", false],
+  ["_global.PrintJob.prototype", "send", false],
+  ["_global.PrintJob.prototype", "start", false],
+  ["_global.RemoteLSOUsage", "getURLPageSupport", false],
+  ["_global.RemoteLSOUsage", "prototype", false],
+  ["_global.RemoteLSOUsage.getURLPageSupport", "prototype", false],
+  ["_global.Selection", "_listeners", false],
+  ["_global.Selection", "broadcastMessage", false],
+  ["_global.Selection", "getBeginIndex", false],
+  ["_global.Selection", "getCaretIndex", false],
+  ["_global.Selection", "getEndIndex", false],
+  ["_global.Selection", "getFocus", false],
+  ["_global.Selection", "setFocus", false],
+  ["_global.Selection", "setSelection", false],
+  ["_global.SharedObject", "deleteAll", false],
+  ["_global.SharedObject", "getDiskUsage", false],
+  ["_global.SharedObject", "getLocal", false],
+  ["_global.SharedObject", "getRemote", false],
+  ["_global.SharedObject", "prototype", false],
+  ["_global.SharedObject.deleteAll", "prototype", false],
+  ["_global.SharedObject.getDiskUsage", "prototype", false],
+  ["_global.SharedObject.getLocal", "prototype", false],
+  ["_global.SharedObject.getRemote", "prototype", false],
+  ["_global.SharedObject.prototype", "clear", false],
+  ["_global.SharedObject.prototype", "close", false],
+  ["_global.SharedObject.prototype", "connect", false],
+  ["_global.SharedObject.prototype", "flush", false],
+  ["_global.SharedObject.prototype", "getSize", false],
+  ["_global.SharedObject.prototype", "send", false],
+  ["_global.SharedObject.prototype", "setFps", false],
+  ["_global.Sound", "prototype", false],
+  ["_global.Sound.prototype", "9areSoundsInaccessible", false],
+  ["_global.Sound.prototype", "attachSound", false],
+  ["_global.Sound.prototype", "getBytesLoaded", false],
+  ["_global.Sound.prototype", "getBytesTotal", false],
+  ["_global.Sound.prototype", "getDuration", false],
+  ["_global.Sound.prototype", "getPan", false],
+  ["_global.Sound.prototype", "getPosition", false],
+  ["_global.Sound.prototype", "getTransform", false],
+  ["_global.Sound.prototype", "getVolume", false],
+  ["_global.Sound.prototype", "loadSound", false],
+  ["_global.Sound.prototype", "setDuration", false],
+  ["_global.Sound.prototype", "setPan", false],
+  ["_global.Sound.prototype", "setPosition", false],
+  ["_global.Sound.prototype", "setTransform", false],
+  ["_global.Sound.prototype", "setVolume", false],
+  ["_global.Sound.prototype", "start", false],
+  ["_global.Sound.prototype", "stop", false],
+  ["_global.Stage", "_listeners", false],
+  ["_global.Stage", "broadcastMessage", false],
+  ["_global.String", "fromCharCode", false],
+  ["_global.String", "prototype", false],
+  ["_global.String.prototype", "charAt", false],
+  ["_global.String.prototype", "charCodeAt", false],
+  ["_global.String.prototype", "concat", false],
+  ["_global.String.prototype", "indexOf", false],
+  ["_global.String.prototype", "lastIndexOf", false],
+  ["_global.String.prototype", "slice", false],
+  ["_global.String.prototype", "split", false],
+  ["_global.String.prototype", "substr", false],
+  ["_global.String.prototype", "substring", false],
+  ["_global.String.prototype", "toLowerCase", false],
+  ["_global.String.prototype", "toString", false],
+  ["_global.String.prototype", "toUpperCase", false],
+  ["_global.String.prototype", "valueOf", false],
+  ["_global.System", "IME", false],
+  ["_global.System", "Product", false],
+  ["_global.System", "capabilities", false],
+  ["_global.System", "security", false],
+  ["_global.System", "setClipboard", false],
+  ["_global.System", "showSettings", false],
+  ["_global.System.IME", "_listeners", false],
+  ["_global.System.IME", "broadcastMessage", false],
+  ["_global.System.IME", "doConversion", false],
+  ["_global.System.IME", "getConversionMode", false],
+  ["_global.System.IME", "getEnabled", false],
+  ["_global.System.IME", "setCompositionString", false],
+  ["_global.System.IME", "setConversionMode", false],
+  ["_global.System.IME", "setEnabled", false],
+  ["_global.System.Product", "prototype", false],
+  ["_global.System.Product.prototype", "download", false],
+  ["_global.System.Product.prototype", "installedVersion", false],
+  ["_global.System.Product.prototype", "isInstalled", false],
+  ["_global.System.Product.prototype", "isRunning", false],
+  ["_global.System.Product.prototype", "launch", false],
+  ["_global.System.Product.prototype.download", "prototype", false],
+  ["_global.System.Product.prototype.installedVersion", "prototype", false],
+  ["_global.System.Product.prototype.isInstalled", "prototype", false],
+  ["_global.System.Product.prototype.isRunning", "prototype", false],
+  ["_global.System.Product.prototype.launch", "prototype", false],
+  ["_global.System.security", "PolicyFileResolver", false],
+  ["_global.System.security", "allowDomain", false],
+  ["_global.System.security", "allowInsecureDomain", false],
+  ["_global.System.security", "chooseLocalSwfPath", false],
+  ["_global.System.security", "escapeDomain", false],
+  ["_global.System.security", "loadPolicyFile", false],
+  ["_global.System.security.PolicyFileResolver", "prototype", false],
+  ["_global.System.security.PolicyFileResolver.prototype", "_listeners", false],
+  ["_global.System.security.PolicyFileResolver.prototype", "broadcastMessage", false],
+  ["_global.System.security.PolicyFileResolver.prototype", "resolve", false],
+  ["_global.TextField", "StyleSheet", false],
+  ["_global.TextField", "getFontList", false],
+  ["_global.TextField", "prototype", false],
+  ["_global.TextField.StyleSheet", "prototype", false],
+  ["_global.TextField.StyleSheet.prototype", "_copy", false],
+  ["_global.TextField.StyleSheet.prototype", "clear", false],
+  ["_global.TextField.StyleSheet.prototype", "doTransform", false],
+  ["_global.TextField.StyleSheet.prototype", "getStyle", false],
+  ["_global.TextField.StyleSheet.prototype", "getStyleNames", false],
+  ["_global.TextField.StyleSheet.prototype", "load", false],
+  ["_global.TextField.StyleSheet.prototype", "onData", false],
+  ["_global.TextField.StyleSheet.prototype", "onLoad", false],
+  ["_global.TextField.StyleSheet.prototype", "parse", false],
+  ["_global.TextField.StyleSheet.prototype", "parseCSSFontFamily", false],
+  ["_global.TextField.StyleSheet.prototype", "parseCSSInternal", false],
+  ["_global.TextField.StyleSheet.prototype", "parseColor", false],
+  ["_global.TextField.StyleSheet.prototype", "setStyle", false],
+  ["_global.TextField.StyleSheet.prototype", "transform", false],
+  ["_global.TextField.StyleSheet.prototype", "update", false],
+  ["_global.TextField.StyleSheet.prototype._copy", "prototype", false],
+  ["_global.TextField.StyleSheet.prototype.clear", "prototype", false],
+  ["_global.TextField.StyleSheet.prototype.doTransform", "prototype", false],
+  ["_global.TextField.StyleSheet.prototype.getStyle", "prototype", false],
+  ["_global.TextField.StyleSheet.prototype.getStyleNames", "prototype", false],
+  ["_global.TextField.StyleSheet.prototype.onData", "prototype", false],
+  ["_global.TextField.StyleSheet.prototype.onLoad", "prototype", false],
+  ["_global.TextField.StyleSheet.prototype.parse", "prototype", false],
+  ["_global.TextField.StyleSheet.prototype.setStyle", "prototype", false],
+  ["_global.TextField.StyleSheet.prototype.transform", "prototype", false],
+  ["_global.TextField.prototype", "_listeners", false],
+  ["_global.TextField.prototype", "broadcastMessage", false],
+  ["_global.TextField.prototype", "getDepth", false],
+  ["_global.TextField.prototype", "getNewTextFormat", false],
+  ["_global.TextField.prototype", "getTextFormat", false],
+  ["_global.TextField.prototype", "removeTextField", false],
+  ["_global.TextField.prototype", "replaceSel", false],
+  ["_global.TextField.prototype", "replaceText", false],
+  ["_global.TextField.prototype", "setNewTextFormat", false],
+  ["_global.TextField.prototype", "setTextFormat", false],
+  ["_global.TextFormat", "prototype", false],
+  ["_global.TextSnapshot", "prototype", false],
+  ["_global.TextSnapshot.prototype", "findText", false],
+  ["_global.TextSnapshot.prototype", "getCount", false],
+  ["_global.TextSnapshot.prototype", "getSelected", false],
+  ["_global.TextSnapshot.prototype", "getSelectedText", false],
+  ["_global.TextSnapshot.prototype", "getText", false],
+  ["_global.TextSnapshot.prototype", "getTextRunInfo", false],
+  ["_global.TextSnapshot.prototype", "hitTestTextNearPos", false],
+  ["_global.TextSnapshot.prototype", "setSelectColor", false],
+  ["_global.TextSnapshot.prototype", "setSelected", false],
+  ["_global.Video", "prototype", false],
+  ["_global.Video.prototype", "attachVideo", false],
+  ["_global.Video.prototype", "clear", false],
+  ["_global.XML", "prototype", false],
+  ["_global.XML.prototype", "addRequestHeader", false],
+  ["_global.XML.prototype", "createElement", false],
+  ["_global.XML.prototype", "createTextNode", false],
+  ["_global.XML.prototype", "getBytesLoaded", false],
+  ["_global.XML.prototype", "getBytesTotal", false],
+  ["_global.XML.prototype", "load", false],
+  ["_global.XML.prototype", "onData", false],
+  ["_global.XML.prototype", "onLoad", false],
+  ["_global.XML.prototype", "parseXML", false],
+  ["_global.XML.prototype", "send", false],
+  ["_global.XML.prototype", "sendAndLoad", false],
+  ["_global.XML.prototype.addRequestHeader", "prototype", false],
+  ["_global.XML.prototype.getBytesLoaded", "prototype", false],
+  ["_global.XML.prototype.getBytesTotal", "prototype", false],
+  ["_global.XML.prototype.onData", "prototype", false],
+  ["_global.XML.prototype.onLoad", "prototype", false],
+  ["_global.XMLSocket", "prototype", false],
+  ["_global.XMLSocket.prototype", "close", false],
+  ["_global.XMLSocket.prototype", "connect", false],
+  ["_global.XMLSocket.prototype", "onData", false],
+  ["_global.XMLSocket.prototype", "send", false],
+  ["_global.XMLSocket.prototype.onData", "prototype", false],
+  ["_global.flash", "display", false],
+  ["_global.flash", "external", false],
+  ["_global.flash", "filters", false],
+  ["_global.flash", "geom", false],
+  ["_global.flash", "net", false],
+  ["_global.flash", "text", false],
+  ["_global.flash.display", "BitmapData", false],
+  ["_global.flash.display.BitmapData", "loadBitmap", false],
+  ["_global.flash.display.BitmapData", "prototype", false],
+  ["_global.flash.display.BitmapData.prototype", "applyFilter", false],
+  ["_global.flash.display.BitmapData.prototype", "clone", false],
+  ["_global.flash.display.BitmapData.prototype", "colorTransform", false],
+  ["_global.flash.display.BitmapData.prototype", "compare", false],
+  ["_global.flash.display.BitmapData.prototype", "copyChannel", false],
+  ["_global.flash.display.BitmapData.prototype", "copyPixels", false],
+  ["_global.flash.display.BitmapData.prototype", "dispose", false],
+  ["_global.flash.display.BitmapData.prototype", "draw", false],
+  ["_global.flash.display.BitmapData.prototype", "fillRect", false],
+  ["_global.flash.display.BitmapData.prototype", "floodFill", false],
+  ["_global.flash.display.BitmapData.prototype", "generateFilterRect", false],
+  ["_global.flash.display.BitmapData.prototype", "getColorBoundsRect", false],
+  ["_global.flash.display.BitmapData.prototype", "getPixel", false],
+  ["_global.flash.display.BitmapData.prototype", "getPixel32", false],
+  ["_global.flash.display.BitmapData.prototype", "hitTest", false],
+  ["_global.flash.display.BitmapData.prototype", "merge", false],
+  ["_global.flash.display.BitmapData.prototype", "noise", false],
+  ["_global.flash.display.BitmapData.prototype", "paletteMap", false],
+  ["_global.flash.display.BitmapData.prototype", "perlinNoise", false],
+  ["_global.flash.display.BitmapData.prototype", "pixelDissolve", false],
+  ["_global.flash.display.BitmapData.prototype", "scroll", false],
+  ["_global.flash.display.BitmapData.prototype", "setPixel", false],
+  ["_global.flash.display.BitmapData.prototype", "setPixel32", false],
+  ["_global.flash.display.BitmapData.prototype", "threshold", false],
+  ["_global.flash.external", "ExternalInterface", false],
+  ["_global.flash.external.ExternalInterface", "_addCallback", false],
+  ["_global.flash.external.ExternalInterface", "_argumentsToAS", false],
+  ["_global.flash.external.ExternalInterface", "_argumentsToXML", false],
+  ["_global.flash.external.ExternalInterface", "_arrayToAS", false],
+  ["_global.flash.external.ExternalInterface", "_arrayToJS", false],
+  ["_global.flash.external.ExternalInterface", "_arrayToXML", false],
+  ["_global.flash.external.ExternalInterface", "_callIn", false],
+  ["_global.flash.external.ExternalInterface", "_callOut", false],
+  ["_global.flash.external.ExternalInterface", "_escapeXML", false],
+  ["_global.flash.external.ExternalInterface", "_evalJS", false],
+  ["_global.flash.external.ExternalInterface", "_initJS", false],
+  ["_global.flash.external.ExternalInterface", "_jsQuoteString", false],
+  ["_global.flash.external.ExternalInterface", "_objectID", false],
+  ["_global.flash.external.ExternalInterface", "_objectToAS", false],
+  ["_global.flash.external.ExternalInterface", "_objectToJS", false],
+  ["_global.flash.external.ExternalInterface", "_objectToXML", false],
+  ["_global.flash.external.ExternalInterface", "_toAS", false],
+  ["_global.flash.external.ExternalInterface", "_toJS", false],
+  ["_global.flash.external.ExternalInterface", "_toXML", false],
+  ["_global.flash.external.ExternalInterface", "_unescapeXML", false],
+  ["_global.flash.external.ExternalInterface", "addCallback", false],
+  ["_global.flash.external.ExternalInterface", "call", false],
+  ["_global.flash.external.ExternalInterface", "prototype", false],
+  ["_global.flash.external.ExternalInterface._argumentsToAS", "prototype", false],
+  ["_global.flash.external.ExternalInterface._argumentsToXML", "prototype", false],
+  ["_global.flash.external.ExternalInterface._arrayToAS", "prototype", false],
+  ["_global.flash.external.ExternalInterface._arrayToJS", "prototype", false],
+  ["_global.flash.external.ExternalInterface._arrayToXML", "prototype", false],
+  ["_global.flash.external.ExternalInterface._callIn", "prototype", false],
+  ["_global.flash.external.ExternalInterface._objectToAS", "prototype", false],
+  ["_global.flash.external.ExternalInterface._objectToJS", "prototype", false],
+  ["_global.flash.external.ExternalInterface._objectToXML", "prototype", false],
+  ["_global.flash.external.ExternalInterface._toAS", "prototype", false],
+  ["_global.flash.external.ExternalInterface._toJS", "prototype", false],
+  ["_global.flash.external.ExternalInterface._toXML", "prototype", false],
+  ["_global.flash.external.ExternalInterface.addCallback", "prototype", false],
+  ["_global.flash.external.ExternalInterface.call", "prototype", false],
+  ["_global.flash.filters", "BevelFilter", false],
+  ["_global.flash.filters", "BlurFilter", false],
+  ["_global.flash.filters", "ColorMatrixFilter", false],
+  ["_global.flash.filters", "ConvolutionFilter", false],
+  ["_global.flash.filters", "DisplacementMapFilter", false],
+  ["_global.flash.filters", "DropShadowFilter", false],
+  ["_global.flash.filters", "GlowFilter", false],
+  ["_global.flash.filters", "GradientBevelFilter", false],
+  ["_global.flash.filters", "GradientGlowFilter", false],
+  ["_global.flash.filters.BevelFilter", "prototype", false],
+  ["_global.flash.filters.BlurFilter", "prototype", false],
+  ["_global.flash.filters.ColorMatrixFilter", "prototype", false],
+  ["_global.flash.filters.ConvolutionFilter", "prototype", false],
+  ["_global.flash.filters.DisplacementMapFilter", "prototype", false],
+  ["_global.flash.filters.DropShadowFilter", "prototype", false],
+  ["_global.flash.filters.GlowFilter", "prototype", false],
+  ["_global.flash.filters.GradientBevelFilter", "prototype", false],
+  ["_global.flash.filters.GradientGlowFilter", "prototype", false],
+  ["_global.flash.geom", "ColorTransform", false],
+  ["_global.flash.geom", "Matrix", false],
+  ["_global.flash.geom", "Point", false],
+  ["_global.flash.geom", "Rectangle", false],
+  ["_global.flash.geom", "Transform", false],
+  ["_global.flash.geom.ColorTransform", "prototype", false],
+  ["_global.flash.geom.ColorTransform.prototype", "concat", false],
+  ["_global.flash.geom.ColorTransform.prototype", "toString", false],
+  ["_global.flash.geom.ColorTransform.prototype.toString", "prototype", false],
+  ["_global.flash.geom.Matrix", "prototype", false],
+  ["_global.flash.geom.Matrix.prototype", "clone", false],
+  ["_global.flash.geom.Matrix.prototype", "concat", false],
+  ["_global.flash.geom.Matrix.prototype", "createBox", false],
+  ["_global.flash.geom.Matrix.prototype", "createGradientBox", false],
+  ["_global.flash.geom.Matrix.prototype", "deltaTransformPoint", false],
+  ["_global.flash.geom.Matrix.prototype", "identity", false],
+  ["_global.flash.geom.Matrix.prototype", "invert", false],
+  ["_global.flash.geom.Matrix.prototype", "rotate", false],
+  ["_global.flash.geom.Matrix.prototype", "scale", false],
+  ["_global.flash.geom.Matrix.prototype", "toString", false],
+  ["_global.flash.geom.Matrix.prototype", "transformPoint", false],
+  ["_global.flash.geom.Matrix.prototype", "translate", false],
+  ["_global.flash.geom.Matrix.prototype.clone", "prototype", false],
+  ["_global.flash.geom.Matrix.prototype.concat", "prototype", false],
+  ["_global.flash.geom.Matrix.prototype.createBox", "prototype", false],
+  ["_global.flash.geom.Matrix.prototype.createGradientBox", "prototype", false],
+  ["_global.flash.geom.Matrix.prototype.deltaTransformPoint", "prototype", false],
+  ["_global.flash.geom.Matrix.prototype.identity", "prototype", false],
+  ["_global.flash.geom.Matrix.prototype.invert", "prototype", false],
+  ["_global.flash.geom.Matrix.prototype.rotate", "prototype", false],
+  ["_global.flash.geom.Matrix.prototype.scale", "prototype", false],
+  ["_global.flash.geom.Matrix.prototype.toString", "prototype", false],
+  ["_global.flash.geom.Matrix.prototype.transformPoint", "prototype", false],
+  ["_global.flash.geom.Matrix.prototype.translate", "prototype", false],
+  ["_global.flash.geom.Point", "distance", false],
+  ["_global.flash.geom.Point", "interpolate", false],
+  ["_global.flash.geom.Point", "polar", false],
+  ["_global.flash.geom.Point", "prototype", false],
+  ["_global.flash.geom.Point.distance", "prototype", false],
+  ["_global.flash.geom.Point.interpolate", "prototype", false],
+  ["_global.flash.geom.Point.polar", "prototype", false],
+  ["_global.flash.geom.Point.prototype", "add", false],
+  ["_global.flash.geom.Point.prototype", "clone", false],
+  ["_global.flash.geom.Point.prototype", "equals", false],
+  ["_global.flash.geom.Point.prototype", "normalize", false],
+  ["_global.flash.geom.Point.prototype", "offset", false],
+  ["_global.flash.geom.Point.prototype", "subtract", false],
+  ["_global.flash.geom.Point.prototype", "toString", false],
+  ["_global.flash.geom.Point.prototype.add", "prototype", false],
+  ["_global.flash.geom.Point.prototype.clone", "prototype", false],
+  ["_global.flash.geom.Point.prototype.equals", "prototype", false],
+  ["_global.flash.geom.Point.prototype.normalize", "prototype", false],
+  ["_global.flash.geom.Point.prototype.offset", "prototype", false],
+  ["_global.flash.geom.Point.prototype.subtract", "prototype", false],
+  ["_global.flash.geom.Point.prototype.toString", "prototype", false],
+  ["_global.flash.geom.Rectangle", "prototype", false],
+  ["_global.flash.geom.Rectangle.prototype", "bottomRight", false],
+  ["_global.flash.geom.Rectangle.prototype", "clone", false],
+  ["_global.flash.geom.Rectangle.prototype", "contains", false],
+  ["_global.flash.geom.Rectangle.prototype", "containsPoint", false],
+  ["_global.flash.geom.Rectangle.prototype", "containsRectangle", false],
+  ["_global.flash.geom.Rectangle.prototype", "equals", false],
+  ["_global.flash.geom.Rectangle.prototype", "inflate", false],
+  ["_global.flash.geom.Rectangle.prototype", "inflatePoint", false],
+  ["_global.flash.geom.Rectangle.prototype", "intersection", false],
+  ["_global.flash.geom.Rectangle.prototype", "intersects", false],
+  ["_global.flash.geom.Rectangle.prototype", "isEmpty", false],
+  ["_global.flash.geom.Rectangle.prototype", "offset", false],
+  ["_global.flash.geom.Rectangle.prototype", "offsetPoint", false],
+  ["_global.flash.geom.Rectangle.prototype", "setEmpty", false],
+  ["_global.flash.geom.Rectangle.prototype", "size", false],
+  ["_global.flash.geom.Rectangle.prototype", "toString", false],
+  ["_global.flash.geom.Rectangle.prototype", "topLeft", false],
+  ["_global.flash.geom.Rectangle.prototype", "union", false],
+  ["_global.flash.geom.Rectangle.prototype.clone", "prototype", false],
+  ["_global.flash.geom.Rectangle.prototype.contains", "prototype", false],
+  ["_global.flash.geom.Rectangle.prototype.containsPoint", "prototype", false],
+  ["_global.flash.geom.Rectangle.prototype.containsRectangle", "prototype", false],
+  ["_global.flash.geom.Rectangle.prototype.equals", "prototype", false],
+  ["_global.flash.geom.Rectangle.prototype.inflate", "prototype", false],
+  ["_global.flash.geom.Rectangle.prototype.inflatePoint", "prototype", false],
+  ["_global.flash.geom.Rectangle.prototype.intersection", "prototype", false],
+  ["_global.flash.geom.Rectangle.prototype.intersects", "prototype", false],
+  ["_global.flash.geom.Rectangle.prototype.isEmpty", "prototype", false],
+  ["_global.flash.geom.Rectangle.prototype.offset", "prototype", false],
+  ["_global.flash.geom.Rectangle.prototype.offsetPoint", "prototype", false],
+  ["_global.flash.geom.Rectangle.prototype.setEmpty", "prototype", false],
+  ["_global.flash.geom.Rectangle.prototype.toString", "prototype", false],
+  ["_global.flash.geom.Rectangle.prototype.union", "prototype", false],
+  ["_global.flash.geom.Transform", "prototype", false],
+  ["_global.flash.net", "FileReference", false],
+  ["_global.flash.net", "FileReferenceList", false],
+  ["_global.flash.net.FileReference", "prototype", false],
+  ["_global.flash.net.FileReference.prototype", "_listeners", false],
+  ["_global.flash.net.FileReference.prototype", "broadcastMessage", false],
+  ["_global.flash.net.FileReference.prototype", "browse", false],
+  ["_global.flash.net.FileReference.prototype", "cancel", false],
+  ["_global.flash.net.FileReference.prototype", "download", false],
+  ["_global.flash.net.FileReference.prototype", "upload", false],
+  ["_global.flash.net.FileReferenceList", "prototype", false],
+  ["_global.flash.net.FileReferenceList.prototype", "_listeners", false],
+  ["_global.flash.net.FileReferenceList.prototype", "broadcastMessage", false],
+  ["_global.flash.net.FileReferenceList.prototype", "browse", false]
+];
commit e0b3bea6e4c085087bce5b7685d83be2e1a43caa
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date:   Tue Nov 27 13:59:18 2007 +0200

    Add a test case for running loadVariables on different targets

diff --git a/test/trace/Makefile.am b/test/trace/Makefile.am
index 0375d8d..c0e0bf4 100644
--- a/test/trace/Makefile.am
+++ b/test/trace/Makefile.am
@@ -1223,6 +1223,15 @@ EXTRA_DIST = \
 	loadvariables-6.swf.trace \
 	loadvariables-7.swf \
 	loadvariables-7.swf.trace \
+	loadvariables-target.as \
+	loadvariables-target-5.swf \
+	loadvariables-target-5.swf.trace \
+	loadvariables-target-6.swf \
+	loadvariables-target-6.swf.trace \
+	loadvariables-target-7.swf \
+	loadvariables-target-7.swf.trace \
+	loadvariables-target-8.swf \
+	loadvariables-target-8.swf.trace \
 	loadvars.as \
 	loadvars-5.swf \
 	loadvars-5.swf.trace \
diff --git a/test/trace/loadvariables-target-5.swf b/test/trace/loadvariables-target-5.swf
new file mode 100644
index 0000000..4d5a98a
Binary files /dev/null and b/test/trace/loadvariables-target-5.swf differ
diff --git a/test/trace/loadvariables-target-5.swf.trace b/test/trace/loadvariables-target-5.swf.trace
new file mode 100644
index 0000000..86a0e8a
--- /dev/null
+++ b/test/trace/loadvariables-target-5.swf.trace
@@ -0,0 +1,2 @@
+quit a: 2
+quit b: 
diff --git a/test/trace/loadvariables-target-6.swf b/test/trace/loadvariables-target-6.swf
new file mode 100644
index 0000000..84531f8
Binary files /dev/null and b/test/trace/loadvariables-target-6.swf differ
diff --git a/test/trace/loadvariables-target-6.swf.trace b/test/trace/loadvariables-target-6.swf.trace
new file mode 100644
index 0000000..86a0e8a
--- /dev/null
+++ b/test/trace/loadvariables-target-6.swf.trace
@@ -0,0 +1,2 @@
+quit a: 2
+quit b: 
diff --git a/test/trace/loadvariables-target-7.swf b/test/trace/loadvariables-target-7.swf
new file mode 100644
index 0000000..2ea0963
Binary files /dev/null and b/test/trace/loadvariables-target-7.swf differ
diff --git a/test/trace/loadvariables-target-7.swf.trace b/test/trace/loadvariables-target-7.swf.trace
new file mode 100644
index 0000000..4ee0b2d
--- /dev/null
+++ b/test/trace/loadvariables-target-7.swf.trace
@@ -0,0 +1,2 @@
+quit a: 2
+quit b: undefined
diff --git a/test/trace/loadvariables-target-8.swf b/test/trace/loadvariables-target-8.swf
new file mode 100644
index 0000000..3d4e388
Binary files /dev/null and b/test/trace/loadvariables-target-8.swf differ
diff --git a/test/trace/loadvariables-target-8.swf.trace b/test/trace/loadvariables-target-8.swf.trace
new file mode 100644
index 0000000..4ee0b2d
--- /dev/null
+++ b/test/trace/loadvariables-target-8.swf.trace
@@ -0,0 +1,2 @@
+quit a: 2
+quit b: undefined
diff --git a/test/trace/loadvariables-target.as b/test/trace/loadvariables-target.as
new file mode 100644
index 0000000..0662aa9
--- /dev/null
+++ b/test/trace/loadvariables-target.as
@@ -0,0 +1,24 @@
+// makeswf -v 7 -r 1 -o loadvariables-target-7.swf loadvariables-target.as
+
+// see what loadVariables does when target is a TextField or an object
+this.createTextField ("a", 0, 0, 0, 100, 100);
+this.b = new Object ();
+
+a.onData = function () {
+  trace ("onData a: " + this.test);
+};
+
+b.onData = function () {
+  trace ("onData b: " + this.test);
+};
+
+loadVariables ("loadvars.txt", "a");
+loadVariables ("loadvars.txt", "b");
+
+function quit () {
+  trace ("quit a: " + a.test);
+  trace ("quit b: " + b.test);
+  loadMovie ("FSCommand:quit", "");
+}
+
+setTimeout (quit, 1500);
commit 304e29f5bae3283ef28914da80b13b4626ae835c
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date:   Tue Nov 27 13:56:43 2007 +0200

    Allow running loadVariables on all movies, but only call onData for MovieClips

diff --git a/libswfdec/swfdec_as_interpret.c b/libswfdec/swfdec_as_interpret.c
index 130d920..639018c 100644
--- a/libswfdec/swfdec_as_interpret.c
+++ b/libswfdec/swfdec_as_interpret.c
@@ -1188,9 +1188,8 @@ swfdec_action_get_url2 (SwfdecAsContext *cx, guint action, const guint8 *data, g
     SwfdecMovie *movie;
     
     movie = swfdec_player_get_movie_from_string (SWFDEC_PLAYER (cx), target);
-    if (SWFDEC_IS_SPRITE_MOVIE (movie)) {
+    if (movie != NULL)
       swfdec_movie_load_variables (movie, url, method, NULL);
-    }
   } else if (internal) {
     swfdec_resource_load (SWFDEC_PLAYER (cx), target, url, method, NULL, NULL);
   } else {
diff --git a/libswfdec/swfdec_movie.c b/libswfdec/swfdec_movie.c
index 2d23569..2829f46 100644
--- a/libswfdec/swfdec_movie.c
+++ b/libswfdec/swfdec_movie.c
@@ -1567,7 +1567,8 @@ swfdec_movie_load_variables_on_finish (SwfdecAsObject *target,
 {
   swfdec_as_object_decode (target, text);
 
-  if (target->context->version >= 6)
+  // only call onData for sprite movies
+  if (target->context->version >= 6 && SWFDEC_IS_SPRITE_MOVIE (target))
     swfdec_as_object_call (target, SWFDEC_AS_STR_onData, 0, NULL, NULL);
 }
 
commit b6dd3646e92668be52be8172b035c25410c8dcc2
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date:   Tue Nov 27 12:43:05 2007 +0200

    Change LoadObject to use callback functions, to work better with loadVariables

diff --git a/libswfdec/swfdec_load_object.c b/libswfdec/swfdec_load_object.c
index 29bd3df..5b659f2 100644
--- a/libswfdec/swfdec_load_object.c
+++ b/libswfdec/swfdec_load_object.c
@@ -45,36 +45,11 @@ swfdec_load_object_loader_target_parse (SwfdecLoaderTarget *target,
     SwfdecLoader *loader)
 {
   SwfdecLoadObject *load_object = SWFDEC_LOAD_OBJECT (target);
-  SwfdecAsValue val;
-  glong size;
-
-  SWFDEC_AS_VALUE_SET_NUMBER (&val, swfdec_loader_get_loaded (loader));
-  swfdec_as_object_set_variable_and_flags (load_object->target,
-      SWFDEC_AS_STR__bytesLoaded, &val, SWFDEC_AS_VARIABLE_HIDDEN);
-
-  size = swfdec_loader_get_size (loader);
-  if (size < 0) 
-    size = swfdec_loader_get_loaded (loader);
-  SWFDEC_AS_VALUE_SET_NUMBER (&val, size);
-  swfdec_as_object_set_variable_and_flags (load_object->target,
-      SWFDEC_AS_STR__bytesTotal, &val, SWFDEC_AS_VARIABLE_HIDDEN);
-}
 
-static void
-swfdec_load_object_ondata (SwfdecLoadObject *load_object, const char *text)
-{
-  SwfdecAsValue val;
-
-  if (text != NULL) {
-    SWFDEC_AS_VALUE_SET_STRING (&val, text);
-  } else {
-    SWFDEC_AS_VALUE_SET_UNDEFINED (&val);
+  if (load_object->progress != NULL) {
+    load_object->progress (load_object->target,
+	swfdec_loader_get_loaded (loader), swfdec_loader_get_size (loader));
   }
-
-  swfdec_as_object_call (load_object->target, SWFDEC_AS_STR_onData, 1, &val,
-      NULL);
-  swfdec_player_unroot_object (SWFDEC_PLAYER (
-	SWFDEC_AS_OBJECT (load_object)->context), G_OBJECT (load_object));
 }
 
 static void
@@ -88,8 +63,12 @@ swfdec_load_object_loader_target_error (SwfdecLoaderTarget *target,
   load_object->loader = NULL;
   g_object_unref (loader);
 
-  /* emit onData */
-  swfdec_load_object_ondata (load_object, NULL);
+  /* call finish */
+  load_object->finish (load_object->target, NULL);
+
+  /* unroot */
+  swfdec_player_unroot_object (SWFDEC_PLAYER (
+	SWFDEC_AS_OBJECT (load_object)->context), G_OBJECT (load_object));
 }
 
 static void
@@ -108,13 +87,17 @@ swfdec_load_object_loader_target_eof (SwfdecLoaderTarget *target,
   load_object->loader = NULL;
   g_object_unref (loader);
 
-  /* emit onData */
+  /* call finish */
   if (text != NULL) {
-    swfdec_load_object_ondata (load_object,
+    load_object->finish (load_object->target, 
 	swfdec_as_context_give_string (load_object->target->context, text));
   } else {
-    swfdec_load_object_ondata (load_object, SWFDEC_AS_STR_EMPTY);
+    load_object->finish (load_object->target, SWFDEC_AS_STR_EMPTY);
   }
+
+  /* unroot */
+  swfdec_player_unroot_object (SWFDEC_PLAYER (
+	SWFDEC_AS_OBJECT (load_object)->context), G_OBJECT (load_object));
 }
 
 static void
@@ -196,54 +179,51 @@ swfdec_load_object_load (SwfdecLoadObject *load_object, const char *url,
 {
   SwfdecPlayer *player;
   SwfdecSecurity *sec;
-  SwfdecAsValue val;
 
   g_return_val_if_fail (SWFDEC_IS_LOAD_OBJECT (load_object), FALSE);
   g_return_val_if_fail (url != NULL, FALSE);
 
   player = SWFDEC_PLAYER (SWFDEC_AS_OBJECT (load_object)->context);
   swfdec_load_object_reset (load_object);
+
   /* get the current security */
   g_assert (SWFDEC_AS_CONTEXT (player)->frame);
   sec = SWFDEC_AS_CONTEXT (player)->frame->security;
+
   g_object_ref (load_object);
   swfdec_player_request_resource (player, sec, url, request, data,
       swfdec_load_object_got_loader, load_object, g_object_unref);
 
-  SWFDEC_AS_VALUE_SET_INT (&val, 0);
-  swfdec_as_object_set_variable_and_flags (load_object->target,
-      SWFDEC_AS_STR__bytesLoaded, &val, SWFDEC_AS_VARIABLE_HIDDEN);
-  SWFDEC_AS_VALUE_SET_UNDEFINED (&val);
-  swfdec_as_object_set_variable_and_flags (load_object->target,
-      SWFDEC_AS_STR__bytesTotal, &val, SWFDEC_AS_VARIABLE_HIDDEN);
-
-  SWFDEC_AS_VALUE_SET_BOOLEAN (&val, FALSE);
-  swfdec_as_object_set_variable_and_flags (load_object->target,
-      SWFDEC_AS_STR_loaded, &val, SWFDEC_AS_VARIABLE_HIDDEN);
   return TRUE;
 }
 
 SwfdecAsObject *
 swfdec_load_object_new (SwfdecAsObject *target, const char *url,
-    SwfdecLoaderRequest request, SwfdecBuffer *data)
+    SwfdecLoaderRequest request, SwfdecBuffer *data,
+    SwfdecLoadObjectProgress progress, SwfdecLoadObjectFinish finish)
 {
-  SwfdecAsObject *load_object;
+  SwfdecLoadObject *load_object;
 
   g_return_val_if_fail (SWFDEC_IS_AS_OBJECT (target), NULL);
   g_return_val_if_fail (url != NULL, NULL);
+  g_return_val_if_fail (finish != NULL, NULL);
 
   if (!swfdec_as_context_use_mem (target->context, sizeof (SwfdecLoadObject)))
     return NULL;
-  load_object = g_object_new (SWFDEC_TYPE_LOAD_OBJECT, NULL);
-  swfdec_as_object_add (load_object, target->context,
+  load_object = SWFDEC_LOAD_OBJECT (g_object_new (
+	SWFDEC_TYPE_LOAD_OBJECT, NULL));
+  swfdec_as_object_add (SWFDEC_AS_OBJECT (load_object), target->context,
       sizeof (SwfdecLoadObject));
 
-  SWFDEC_LOAD_OBJECT (load_object)->target = target;
+  load_object->target = target;
+  load_object->progress = progress;
+  load_object->finish = finish;
 
-  if (!swfdec_load_object_load (SWFDEC_LOAD_OBJECT (load_object), url, request, data))
+  if (!swfdec_load_object_load (load_object, url, request, data))
     return NULL;
 
-  swfdec_player_root_object (SWFDEC_PLAYER (target->context), G_OBJECT (load_object));
+  swfdec_player_root_object (SWFDEC_PLAYER (target->context),
+      G_OBJECT (load_object));
 
-  return load_object;
+  return SWFDEC_AS_OBJECT (load_object);
 }
diff --git a/libswfdec/swfdec_load_object.h b/libswfdec/swfdec_load_object.h
index d6ded65..00f4451 100644
--- a/libswfdec/swfdec_load_object.h
+++ b/libswfdec/swfdec_load_object.h
@@ -30,6 +30,11 @@ G_BEGIN_DECLS
 typedef struct _SwfdecLoadObject SwfdecLoadObject;
 typedef struct _SwfdecLoadObjectClass SwfdecLoadObjectClass;
 
+typedef void (* SwfdecLoadObjectProgress) (SwfdecAsObject *target,
+    glong loaded, glong size);
+typedef void (* SwfdecLoadObjectFinish) (SwfdecAsObject *target,
+    const char *text);
+
 #define SWFDEC_TYPE_LOAD_OBJECT                    (swfdec_load_object_get_type())
 #define SWFDEC_IS_LOAD_OBJECT(obj)                 (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SWFDEC_TYPE_LOAD_OBJECT))
 #define SWFDEC_IS_LOAD_OBJECT_CLASS(klass)         (G_TYPE_CHECK_CLASS_TYPE ((klass), SWFDEC_TYPE_LOAD_OBJECT))
@@ -40,8 +45,11 @@ typedef struct _SwfdecLoadObjectClass SwfdecLoadObjectClass;
 struct _SwfdecLoadObject {
   SwfdecAsObject	object;
 
-  SwfdecAsObject	*target;	/* target object */
   SwfdecLoader *	loader;		/* loader when loading or NULL */
+
+  SwfdecAsObject	*target;	/* target object */
+  SwfdecLoadObjectProgress progress;
+  SwfdecLoadObjectFinish finish;
 };
 
 struct _SwfdecLoadObjectClass {
@@ -50,10 +58,12 @@ struct _SwfdecLoadObjectClass {
 
 GType		swfdec_load_object_get_type	(void);
 
-SwfdecAsObject *swfdec_load_object_new		(SwfdecAsObject *	target,
-						 const char *		url,
-						 SwfdecLoaderRequest	request,
-						 SwfdecBuffer *		data);
+SwfdecAsObject *swfdec_load_object_new		(SwfdecAsObject *		target,
+						 const char *			url,
+						 SwfdecLoaderRequest		request,
+						 SwfdecBuffer *			data,
+						 SwfdecLoadObjectProgress	progress,
+						 SwfdecLoadObjectFinish		finish);
 
 
 G_END_DECLS
diff --git a/libswfdec/swfdec_load_object_as.c b/libswfdec/swfdec_load_object_as.c
index 611bdc4..42d4be3 100644
--- a/libswfdec/swfdec_load_object_as.c
+++ b/libswfdec/swfdec_load_object_as.c
@@ -31,11 +31,45 @@
 #include "swfdec_loadertarget.h"
 #include "swfdec_player_internal.h"
 
+static void
+swfdec_load_object_on_finish (SwfdecAsObject *target, const char *text)
+{
+  SwfdecAsValue val;
+
+  if (text != NULL) {
+    SWFDEC_AS_VALUE_SET_STRING (&val, text);
+  } else {
+    SWFDEC_AS_VALUE_SET_UNDEFINED (&val);
+  }
+
+  swfdec_as_object_call (target, SWFDEC_AS_STR_onData, 1, &val, NULL);
+}
+
+static void
+swfdec_load_object_on_progress (SwfdecAsObject *target, glong size,
+    glong loaded)
+{
+  SwfdecAsValue val;
+
+  SWFDEC_AS_VALUE_SET_NUMBER (&val, loaded);
+  swfdec_as_object_set_variable_and_flags (target, SWFDEC_AS_STR__bytesLoaded,
+      &val, SWFDEC_AS_VARIABLE_HIDDEN);
+
+  if (size >= 0) {
+    SWFDEC_AS_VALUE_SET_NUMBER (&val, size);
+  } else {
+    SWFDEC_AS_VALUE_SET_NUMBER (&val, loaded);
+  }
+  swfdec_as_object_set_variable_and_flags (target, SWFDEC_AS_STR__bytesTotal,
+      &val, SWFDEC_AS_VARIABLE_HIDDEN);
+}
+
 SWFDEC_AS_NATIVE (301, 0, swfdec_load_object_as_load)
 void
 swfdec_load_object_as_load (SwfdecAsContext *cx, SwfdecAsObject *obj, guint argc,
     SwfdecAsValue *argv, SwfdecAsValue *rval)
 {
+  SwfdecAsValue val;
   const char *url;
 
   if (argc < 1 || obj == NULL) {
@@ -44,7 +78,19 @@ swfdec_load_object_as_load (SwfdecAsContext *cx, SwfdecAsObject *obj, guint argc
   }
 
   url = swfdec_as_value_to_string (cx, &argv[0]);
-  swfdec_load_object_new (obj, url, SWFDEC_LOADER_REQUEST_DEFAULT, NULL);
+  swfdec_load_object_new (obj, url, SWFDEC_LOADER_REQUEST_DEFAULT, NULL,
+      swfdec_load_object_on_progress, swfdec_load_object_on_finish);
+
+  SWFDEC_AS_VALUE_SET_INT (&val, 0);
+  swfdec_as_object_set_variable_and_flags (obj, SWFDEC_AS_STR__bytesLoaded,
+      &val, SWFDEC_AS_VARIABLE_HIDDEN);
+  SWFDEC_AS_VALUE_SET_UNDEFINED (&val);
+  swfdec_as_object_set_variable_and_flags (obj, SWFDEC_AS_STR__bytesTotal,
+      &val, SWFDEC_AS_VARIABLE_HIDDEN);
+
+  SWFDEC_AS_VALUE_SET_BOOLEAN (&val, FALSE);
+  swfdec_as_object_set_variable_and_flags (obj, SWFDEC_AS_STR_loaded, &val,
+      SWFDEC_AS_VARIABLE_HIDDEN);
 
   SWFDEC_AS_VALUE_SET_BOOLEAN (rval, TRUE);
 }
@@ -64,7 +110,7 @@ swfdec_load_object_as_sendAndLoad (SwfdecAsContext *cx, SwfdecAsObject *object,
 {
   const char *url, *data;
   SwfdecAsObject *target;
-  SwfdecAsValue ret;
+  SwfdecAsValue val;
   SwfdecBuffer *buffer;
 
   if (object == NULL)
@@ -80,16 +126,29 @@ swfdec_load_object_as_sendAndLoad (SwfdecAsContext *cx, SwfdecAsObject *object,
 
   // FIXME: support for contentType is missing
 
-  swfdec_as_object_call (object, SWFDEC_AS_STR_toString, 0, NULL, &ret);
-  data = swfdec_as_value_to_string (cx, &ret);
+  swfdec_as_object_call (object, SWFDEC_AS_STR_toString, 0, NULL, &val);
+  data = swfdec_as_value_to_string (cx, &val);
   if (strlen (data) > 0) {
     buffer = swfdec_buffer_new_for_data (g_memdup (data, strlen (data)),
 	strlen (data));
-    swfdec_load_object_new (target, url, SWFDEC_LOADER_REQUEST_POST, buffer);
+    swfdec_load_object_new (target, url, SWFDEC_LOADER_REQUEST_POST, buffer,
+	swfdec_load_object_on_progress, swfdec_load_object_on_finish);
     swfdec_buffer_unref (buffer);
   } else {
-    swfdec_load_object_new (target, url, SWFDEC_LOADER_REQUEST_DEFAULT, NULL);
+    swfdec_load_object_new (target, url, SWFDEC_LOADER_REQUEST_DEFAULT, NULL,
+	swfdec_load_object_on_progress, swfdec_load_object_on_finish);
   }
 
+  SWFDEC_AS_VALUE_SET_INT (&val, 0);
+  swfdec_as_object_set_variable_and_flags (target, SWFDEC_AS_STR__bytesLoaded,
+      &val, SWFDEC_AS_VARIABLE_HIDDEN);
+  SWFDEC_AS_VALUE_SET_UNDEFINED (&val);
+  swfdec_as_object_set_variable_and_flags (target, SWFDEC_AS_STR__bytesTotal,
+      &val, SWFDEC_AS_VARIABLE_HIDDEN);
+
+  SWFDEC_AS_VALUE_SET_BOOLEAN (&val, FALSE);
+  swfdec_as_object_set_variable_and_flags (target, SWFDEC_AS_STR_loaded, &val,
+      SWFDEC_AS_VARIABLE_HIDDEN);
+
   SWFDEC_AS_VALUE_SET_BOOLEAN (rval, TRUE);
 }
diff --git a/libswfdec/swfdec_movie.c b/libswfdec/swfdec_movie.c
index 1469878..2d23569 100644
--- a/libswfdec/swfdec_movie.c
+++ b/libswfdec/swfdec_movie.c
@@ -1562,27 +1562,12 @@ swfdec_movie_new_for_content (SwfdecMovie *parent, const SwfdecContent *content)
 }
 
 static void
-swfdec_movie_load_variables_on_data (SwfdecAsContext *cx,
-    SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
-    SwfdecAsValue *ret)
+swfdec_movie_load_variables_on_finish (SwfdecAsObject *target,
+    const char *text)
 {
-  SwfdecAsObject *target;
-  SwfdecAsValue val;
+  swfdec_as_object_decode (target, text);
 
-  if (argc < 1)
-    return;
-
-  if (!SWFDEC_AS_VALUE_IS_STRING (&argv[0]))
-    return;
-
-  swfdec_as_object_get_variable (object, SWFDEC_AS_STR_target, &val);
-  g_return_if_fail (SWFDEC_AS_VALUE_IS_OBJECT (&val));
-  target = SWFDEC_AS_VALUE_GET_OBJECT (&val);
-  g_return_if_fail (SWFDEC_IS_MOVIE (target));
-
-  swfdec_as_object_decode (target, swfdec_as_value_to_string (cx, &argv[0]));
-
-  if (cx->version >= 6)
+  if (target->context->version >= 6)
     swfdec_as_object_call (target, SWFDEC_AS_STR_onData, 0, NULL, NULL);
 }
 
@@ -1590,10 +1575,6 @@ void
 swfdec_movie_load_variables (SwfdecMovie *movie, const char *url,
     SwfdecLoaderRequest request, SwfdecBuffer *data)
 {
-  SwfdecAsObject *loader;
-  SwfdecAsContext *context;
-  SwfdecAsValue val;
-
   g_return_if_fail (SWFDEC_IS_MOVIE (movie));
   g_return_if_fail (url != NULL);
 
@@ -1602,14 +1583,8 @@ swfdec_movie_load_variables (SwfdecMovie *movie, const char *url,
     return;
   }
 
-  context = SWFDEC_AS_OBJECT (movie)->context;
-  loader = swfdec_as_object_new_empty (context);
-  swfdec_as_object_add_function (loader, SWFDEC_AS_STR_onData, 0,
-      swfdec_movie_load_variables_on_data, 0);
-  SWFDEC_AS_VALUE_SET_OBJECT (&val, SWFDEC_AS_OBJECT (movie));
-  swfdec_as_object_set_variable (loader, SWFDEC_AS_STR_target, &val);
-
-  swfdec_load_object_new (loader, url, request, data);
+  swfdec_load_object_new (SWFDEC_AS_OBJECT (movie), url, request, data, NULL,
+      swfdec_movie_load_variables_on_finish);
 }
 
 char *
commit 840f712b5922ce981df40509a934dc21903aa4af
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date:   Tue Nov 27 11:59:48 2007 +0200

    Forgot to remove a variable from LoadObject

diff --git a/libswfdec/swfdec_load_object.c b/libswfdec/swfdec_load_object.c
index 026a02e..29bd3df 100644
--- a/libswfdec/swfdec_load_object.c
+++ b/libswfdec/swfdec_load_object.c
@@ -139,8 +139,6 @@ swfdec_load_object_reset (SwfdecLoadObject *load_object)
     g_object_unref (load_object->loader);
     load_object->loader = NULL;
   }
-  g_free (load_object->text);
-  load_object->text = NULL;
 }
 
 static void
diff --git a/libswfdec/swfdec_load_object.h b/libswfdec/swfdec_load_object.h
index 7ab412c..d6ded65 100644
--- a/libswfdec/swfdec_load_object.h
+++ b/libswfdec/swfdec_load_object.h
@@ -41,7 +41,6 @@ struct _SwfdecLoadObject {
   SwfdecAsObject	object;
 
   SwfdecAsObject	*target;	/* target object */
-  char *		text;		/* string that this LOAD_OBJECT displays */
   SwfdecLoader *	loader;		/* loader when loading or NULL */
 };
 
commit de6711aab0d5b673398571f35a2d6b18ffb76a9f
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date:   Tue Nov 27 11:35:39 2007 +0200

    Move handling of BOMs from LoadObject to Loader
    
    It's in new swfdec_loader_get_text function

diff --git a/libswfdec/swfdec_load_object.c b/libswfdec/swfdec_load_object.c
index faee8d7..026a02e 100644
--- a/libswfdec/swfdec_load_object.c
+++ b/libswfdec/swfdec_load_object.c
@@ -61,21 +61,20 @@ swfdec_load_object_loader_target_parse (SwfdecLoaderTarget *target,
 }
 
 static void
-swfdec_load_object_ondata (SwfdecLoadObject *load_object)
+swfdec_load_object_ondata (SwfdecLoadObject *load_object, const char *text)
 {
   SwfdecAsValue val;
 
-  if (load_object->text) {
-    SWFDEC_AS_VALUE_SET_STRING (&val,
-	swfdec_as_context_get_string (load_object->target->context,
-	  load_object->text));
+  if (text != NULL) {
+    SWFDEC_AS_VALUE_SET_STRING (&val, text);
   } else {
     SWFDEC_AS_VALUE_SET_UNDEFINED (&val);
   }
+
   swfdec_as_object_call (load_object->target, SWFDEC_AS_STR_onData, 1, &val,
       NULL);
-  swfdec_player_unroot_object (SWFDEC_PLAYER (SWFDEC_AS_OBJECT (load_object)->context), 
-      G_OBJECT (load_object));
+  swfdec_player_unroot_object (SWFDEC_PLAYER (
+	SWFDEC_AS_OBJECT (load_object)->context), G_OBJECT (load_object));
 }
 
 static void
@@ -88,107 +87,34 @@ swfdec_load_object_loader_target_error (SwfdecLoaderTarget *target,
   swfdec_loader_set_target (loader, NULL);
   load_object->loader = NULL;
   g_object_unref (loader);
+
   /* emit onData */
-  swfdec_load_object_ondata (load_object);
+  swfdec_load_object_ondata (load_object, NULL);
 }
 
-typedef struct {
-  const char		*name;
-  guint			length;
-  guchar		data[4];
-} ByteOrderMark;
-
-static ByteOrderMark boms[] = {
-  { "UTF-8", 3, {0xEF, 0xBB, 0xBF, 0} },
-  { "UTF-16BE", 2, {0xFE, 0xFF, 0, 0} },
-  { "UTF-16LE", 2, {0xFF, 0xFE, 0, 0} },
-  { "UTF-8", 0, {0, 0, 0, 0} }
-};
-
 static void
 swfdec_load_object_loader_target_eof (SwfdecLoaderTarget *target,
     SwfdecLoader *loader)
 {
   SwfdecLoadObject *load_object = SWFDEC_LOAD_OBJECT (target);
   char *text;
-  guint size;
-
-  /* get the text from the loader */
-  // TODO: Get rid of extra alloc when getting UTF-8 with bom
-  size = swfdec_buffer_queue_get_depth (loader->queue);
-  text = g_try_malloc (size + 1);
-  if (text) {
-    SwfdecBuffer *buffer;
-    guint i = 0, j;
-    while ((buffer = swfdec_buffer_queue_pull_buffer (loader->queue))) {
-      memcpy (text + i, buffer->data, buffer->length);
-      i += buffer->length;
-      swfdec_buffer_unref (buffer);
-    }
-    g_assert (i == size);
-    text[size] = '\0';
-
-    if (load_object->target->context->version > 5) {
-      for (i = 0; boms[i].length > 0; i++) {
-	if (size < boms[i].length)
-	  continue;
-
-	for (j = 0; j < boms[i].length; j++) {
-	  if ((guchar)text[j] != boms[i].data[j])
-	    break;
-	}
-	if (j == boms[i].length)
-	  break;
-      }
-
-      if (!strcmp (boms[i].name, "UTF-8")) {
-	if (!g_utf8_validate (text + boms[i].length, size - boms[i].length,
-	      NULL)) {
-	  SWFDEC_ERROR ("downloaded data is not valid UTF-8");
-	  g_free (text);
-	  text = NULL;
-	  load_object->text = g_strdup ("");
-	} else {
-	  if (boms[i].length == 0) {
-	    load_object->text = text;
-	    text = NULL;
-	  } else {
-	    load_object->text = g_strdup (text + boms[i].length);
-	    g_free (text);
-	    text = NULL;
-	  }
-	}
-      } else {
-	load_object->text = g_convert (text + boms[i].length,
-	    size - boms[i].length, "UTF-8", boms[i].name, NULL, NULL, NULL);
-	if (load_object->text == NULL) {
-	  SWFDEC_ERROR ("downloaded data is not valid %s", boms[i].name);
-	  load_object->text = g_strdup ("");
-	}
-	g_free (text);
-	text = NULL;
-      }
-    } else {
-      load_object->text = g_convert (text, size, "UTF-8", "LATIN1", NULL, NULL,
-	  NULL);
-      if (load_object->text == NULL) {
-	SWFDEC_ERROR ("downloaded data is not valid LATIN1");
-	load_object->text = g_strdup ("");
-      }
-      g_free (text);
-      text = NULL;
-    }
-  } else {
-    SWFDEC_ERROR ("not enough memory to copy %u bytes", size);
-    load_object->text = NULL;
-  }
+
+  // get text
+  text =
+    swfdec_loader_get_text (loader, load_object->target->context->version);
 
   /* break reference to the loader */
   swfdec_loader_set_target (loader, NULL);
   load_object->loader = NULL;
   g_object_unref (loader);
+
   /* emit onData */
-  swfdec_load_object_ondata (load_object);
+  if (text != NULL) {
+    swfdec_load_object_ondata (load_object,
+	swfdec_as_context_give_string (load_object->target->context, text));
+  } else {
+    swfdec_load_object_ondata (load_object, SWFDEC_AS_STR_EMPTY);
+  }
 }
 
 static void
diff --git a/libswfdec/swfdec_loader.c b/libswfdec/swfdec_loader.c
index f2c16f6..02c25f1 100644
--- a/libswfdec/swfdec_loader.c
+++ b/libswfdec/swfdec_loader.c
@@ -589,6 +589,81 @@ swfdec_loader_data_type_get_extension (SwfdecLoaderDataType type)
   }
 }
 
+typedef struct {
+  const char		*name;
+  guint			length;
+  guchar		data[4];
+} ByteOrderMark;
+
+static ByteOrderMark boms[] = {
+  { "UTF-8", 3, {0xEF, 0xBB, 0xBF, 0} },
+  { "UTF-16BE", 2, {0xFE, 0xFF, 0, 0} },
+  { "UTF-16LE", 2, {0xFF, 0xFE, 0, 0} },
+  { "UTF-8", 0, {0, 0, 0, 0} }
+};
+
+char *
+swfdec_loader_get_text (SwfdecLoader *loader, guint version)
+{
+  SwfdecBuffer *buffer;
+  char *raw, *text;
+  guint size, i, j;
+
+  /* get the text from the loader */
+  size = swfdec_buffer_queue_get_depth (loader->queue);
+  raw = g_try_malloc (size + 1);
+  if (!raw) {
+    SWFDEC_ERROR ("not enough memory to copy %u bytes", size);
+    swfdec_buffer_queue_clear (loader->queue);
+    return NULL;
+  }
+
+  buffer = swfdec_buffer_queue_peek (loader->queue, size);
+  if (!buffer)
+    return NULL;
+
+  if (version > 5) {
+    for (i = 0; boms[i].length > 0; i++) {
+      // FIXME: test what happens if we have BOM and nothing else
+      if (size < boms[i].length)
+	continue;
+
+      for (j = 0; j < boms[i].length; j++) {
+	if (buffer->data[j] != boms[i].data[j])
+	  break;
+      }
+      if (j == boms[i].length)
+	break;
+    }
+
+    if (!strcmp (boms[i].name, "UTF-8")) {
+      if (!g_utf8_validate ((char *)buffer->data + boms[i].length,
+	    size - boms[i].length, NULL)) {
+	SWFDEC_ERROR ("downloaded data is not valid UTF-8");
+	text = NULL;
+      } else {
+	text =
+	  g_strndup ((char *)buffer->data + boms[i].length,
+	      size - boms[i].length);
+      }
+    } else {
+      text = g_convert ((char *)buffer->data + boms[i].length,
+	  size - boms[i].length, "UTF-8", boms[i].name, NULL, NULL, NULL);
+      if (text == NULL)
+	SWFDEC_ERROR ("downloaded data is not valid %s", boms[i].name);
+    }
+  } else {
+    text = g_convert ((char *)buffer->data, size, "UTF-8", "LATIN1", NULL,
+	NULL, NULL);
+    if (text == NULL)
+      SWFDEC_ERROR ("downloaded data is not valid LATIN1");
+  }
+
+  swfdec_buffer_unref (buffer);
+
+  return text;
+}
+
 /*** X-WWW-FORM-URLENCODED ***/
 
 /* if speed ever gets an issue, use a 256 byte array instead of strchr */
diff --git a/libswfdec/swfdec_loader_internal.h b/libswfdec/swfdec_loader_internal.h
index 21e0be8..49ab95d 100644
--- a/libswfdec/swfdec_loader_internal.h
+++ b/libswfdec/swfdec_loader_internal.h
@@ -44,6 +44,8 @@ void			swfdec_loader_set_target	(SwfdecLoader *		loader,
 							 SwfdecLoaderTarget *	target);
 void			swfdec_loader_set_data_type	(SwfdecLoader *		loader,
 							 SwfdecLoaderDataType	type);
+char *			swfdec_loader_get_text		(SwfdecLoader *		loader,
+							 guint			version);
 
 void			swfdec_string_append_urlencoded	(GString *		str,
 							 const char *		name,
commit dfd7f26ce1601e9d576973ce5f961c1bf82ed5a3
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date:   Mon Nov 26 23:02:39 2007 +0200

    Add SWFDEC_BLEND_MODE defines

diff --git a/libswfdec/swfdec_movie.c b/libswfdec/swfdec_movie.c
index 449877e..1469878 100644
--- a/libswfdec/swfdec_movie.c
+++ b/libswfdec/swfdec_movie.c
@@ -759,26 +759,25 @@ static cairo_operator_t
 swfdec_movie_get_operator_for_blend_mode (guint blend_mode)
 {
   switch (blend_mode) {
-    case 0:
-    case 1:
+    case SWFDEC_BLEND_MODE_NORMAL:
       SWFDEC_ERROR ("shouldn't need to get operator without blend mode?!");
-    case 2:
+    case SWFDEC_BLEND_MODE_LAYER:
       return CAIRO_OPERATOR_OVER;
-    case 8:
+    case SWFDEC_BLEND_MODE_ADD:
       return CAIRO_OPERATOR_ADD;
-    case 11:
+    case SWFDEC_BLEND_MODE_ALPHA:
       return CAIRO_OPERATOR_DEST_IN;
-    case 12:
+    case SWFDEC_BLEND_MODE_ERASE:
       return CAIRO_OPERATOR_DEST_OUT;
-    case 3:
-    case 4:
-    case 5:
-    case 6:
-    case 7:
-    case 9:
-    case 10:
-    case 13:
-    case 14:
+    case SWFDEC_BLEND_MODE_MULTIPLY:
+    case SWFDEC_BLEND_MODE_SCREEN:
+    case SWFDEC_BLEND_MODE_LIGHTEN:
+    case SWFDEC_BLEND_MODE_DARKEN:
+    case SWFDEC_BLEND_MODE_DIFFERENCE:
+    case SWFDEC_BLEND_MODE_SUBTRACT:
+    case SWFDEC_BLEND_MODE_INVERT:
+    case SWFDEC_BLEND_MODE_OVERLAY:
+    case SWFDEC_BLEND_MODE_HARDLIGHT:
       SWFDEC_WARNING ("blend mode %u unimplemented in cairo", blend_mode);
       return CAIRO_OPERATOR_OVER;
     default:
diff --git a/libswfdec/swfdec_movie.h b/libswfdec/swfdec_movie.h
index 8149e33..eed156a 100644
--- a/libswfdec/swfdec_movie.h
+++ b/libswfdec/swfdec_movie.h
@@ -47,6 +47,21 @@ typedef enum {
   SWFDEC_MOVIE_STATE_DESTROYED		/* swfdec_movie_destroy has been called */
 } SwfdecMovieState;
 
+#define SWFDEC_BLEND_MODE_NORMAL	1
+#define SWFDEC_BLEND_MODE_LAYER		2
+#define SWFDEC_BLEND_MODE_MULTIPLY	3
+#define SWFDEC_BLEND_MODE_SCREEN	4
+#define SWFDEC_BLEND_MODE_LIGHTEN	5
+#define SWFDEC_BLEND_MODE_DARKEN	6
+#define SWFDEC_BLEND_MODE_DIFFERENCE	7
+#define SWFDEC_BLEND_MODE_ADD		8
+#define SWFDEC_BLEND_MODE_SUBTRACT	9
+#define SWFDEC_BLEND_MODE_INVERT	10
+#define SWFDEC_BLEND_MODE_ALPHA		11
+#define SWFDEC_BLEND_MODE_ERASE		12
+#define SWFDEC_BLEND_MODE_OVERLAY	13
+#define SWFDEC_BLEND_MODE_HARDLIGHT	14
+
 struct _SwfdecContent {
   SwfdecGraphic *	graphic;	/* object to display */
   int	         	depth;		/* at which depth to display */
diff --git a/libswfdec/swfdec_sprite_movie_as.c b/libswfdec/swfdec_sprite_movie_as.c
index 2615a01..c9ef84a 100644
--- a/libswfdec/swfdec_sprite_movie_as.c
+++ b/libswfdec/swfdec_sprite_movie_as.c
@@ -150,7 +150,6 @@ swfdec_sprite_movie_set_transform (SwfdecAsContext *cx, SwfdecAsObject *object,
   SWFDEC_STUB ("MovieClip.transform (set)");
 }
 
-
 static const char *blend_mode_names[] = {
   SWFDEC_AS_STR_normal,
   SWFDEC_AS_STR_layer,
commit d6bbe08789201aac14eeb6b3f65eb5d0da466136
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date:   Mon Nov 26 22:30:00 2007 +0200

    Fix getSWFVersion to use swfdec_movie_get_version and not cx->version
    
    Updated tests to detect the difference

diff --git a/libswfdec/swfdec_sprite_movie_as.c b/libswfdec/swfdec_sprite_movie_as.c
index 6b381d1..2615a01 100644
--- a/libswfdec/swfdec_sprite_movie_as.c
+++ b/libswfdec/swfdec_sprite_movie_as.c
@@ -277,7 +277,8 @@ swfdec_sprite_movie_getSWFVersion (SwfdecAsContext *cx, SwfdecAsObject *object,
     guint argc, SwfdecAsValue *argv, SwfdecAsValue *rval)
 {
   if (object != NULL && SWFDEC_IS_MOVIE (object)) {
-    SWFDEC_AS_VALUE_SET_INT (rval, cx->version);
+    SWFDEC_AS_VALUE_SET_INT (rval,
+	swfdec_movie_get_version (SWFDEC_MOVIE (object)));
   } else {
     SWFDEC_AS_VALUE_SET_INT (rval, -1);
   }
diff --git a/test/trace/movieclip-get-swf-version-5.swf b/test/trace/movieclip-get-swf-version-5.swf
index cf846d9..a85b295 100644
Binary files a/test/trace/movieclip-get-swf-version-5.swf and b/test/trace/movieclip-get-swf-version-5.swf differ
diff --git a/test/trace/movieclip-get-swf-version-6.swf b/test/trace/movieclip-get-swf-version-6.swf
index b9f00b0..8c74ca1 100644
Binary files a/test/trace/movieclip-get-swf-version-6.swf and b/test/trace/movieclip-get-swf-version-6.swf differ
diff --git a/test/trace/movieclip-get-swf-version-7.swf b/test/trace/movieclip-get-swf-version-7.swf
index 3e169f0..f665597 100644
Binary files a/test/trace/movieclip-get-swf-version-7.swf and b/test/trace/movieclip-get-swf-version-7.swf differ
diff --git a/test/trace/movieclip-get-swf-version-8.swf b/test/trace/movieclip-get-swf-version-8.swf
index 63ee7af..d5eb48a 100644
Binary files a/test/trace/movieclip-get-swf-version-8.swf and b/test/trace/movieclip-get-swf-version-8.swf differ
diff --git a/test/trace/movieclip-get-swf-version-load-5.swf b/test/trace/movieclip-get-swf-version-load-5.swf
index 5c140b8..4e9c7fa 100644
Binary files a/test/trace/movieclip-get-swf-version-load-5.swf and b/test/trace/movieclip-get-swf-version-load-5.swf differ
diff --git a/test/trace/movieclip-get-swf-version-load-5.swf.trace b/test/trace/movieclip-get-swf-version-load-5.swf.trace
index e69de29..88200b0 100644
--- a/test/trace/movieclip-get-swf-version-load-5.swf.trace
+++ b/test/trace/movieclip-get-swf-version-load-5.swf.trace
@@ -0,0 +1,5 @@
+After:
+5: 
+6: 
+7: 
+8: 
diff --git a/test/trace/movieclip-get-swf-version-load-6.swf b/test/trace/movieclip-get-swf-version-load-6.swf
index 9b44594..ff042b4 100644
Binary files a/test/trace/movieclip-get-swf-version-load-6.swf and b/test/trace/movieclip-get-swf-version-load-6.swf differ
diff --git a/test/trace/movieclip-get-swf-version-load-6.swf.trace b/test/trace/movieclip-get-swf-version-load-6.swf.trace
index d3bc481..532de5d 100644
--- a/test/trace/movieclip-get-swf-version-load-6.swf.trace
+++ b/test/trace/movieclip-get-swf-version-load-6.swf.trace
@@ -2,3 +2,8 @@ _level0.m8: 8
 _level0.m7: 7
 _level0.m6: 6
 _level0.m5: 5
+After:
+5: 5
+6: 6
+7: 7
+8: 8
diff --git a/test/trace/movieclip-get-swf-version-load-7.swf b/test/trace/movieclip-get-swf-version-load-7.swf
index 86ae0aa..8c2a0d3 100644
Binary files a/test/trace/movieclip-get-swf-version-load-7.swf and b/test/trace/movieclip-get-swf-version-load-7.swf differ
diff --git a/test/trace/movieclip-get-swf-version-load-7.swf.trace b/test/trace/movieclip-get-swf-version-load-7.swf.trace
index d3bc481..532de5d 100644
--- a/test/trace/movieclip-get-swf-version-load-7.swf.trace
+++ b/test/trace/movieclip-get-swf-version-load-7.swf.trace
@@ -2,3 +2,8 @@ _level0.m8: 8
 _level0.m7: 7
 _level0.m6: 6
 _level0.m5: 5
+After:
+5: 5
+6: 6
+7: 7
+8: 8
diff --git a/test/trace/movieclip-get-swf-version-load-8.swf b/test/trace/movieclip-get-swf-version-load-8.swf
index 1af388c..cd35f37 100644
Binary files a/test/trace/movieclip-get-swf-version-load-8.swf and b/test/trace/movieclip-get-swf-version-load-8.swf differ
diff --git a/test/trace/movieclip-get-swf-version-load-8.swf.trace b/test/trace/movieclip-get-swf-version-load-8.swf.trace
index d3bc481..532de5d 100644
--- a/test/trace/movieclip-get-swf-version-load-8.swf.trace
+++ b/test/trace/movieclip-get-swf-version-load-8.swf.trace
@@ -2,3 +2,8 @@ _level0.m8: 8
 _level0.m7: 7
 _level0.m6: 6
 _level0.m5: 5
+After:
+5: 5
+6: 6
+7: 7
+8: 8
diff --git a/test/trace/movieclip-get-swf-version-load.as b/test/trace/movieclip-get-swf-version-load.as
index 94072c7..626623b 100644
--- a/test/trace/movieclip-get-swf-version-load.as
+++ b/test/trace/movieclip-get-swf-version-load.as
@@ -1,11 +1,18 @@
 // makeswf -v 7 -r 1 -o movieclip-get-swf-version-load-7.swf movieclip-get-swf-version-load.as
 
+this.noquit = true;
+
 for (var i = 5; i <= 8; i++) {
   this.createEmptyMovieClip ("m"+i, i);
   this["m"+i].loadMovie ("movieclip-get-swf-version-" + i + ".swf");
 }
 
 function quit () {
+  trace ("After:");
+  trace ("5: " + _root["m5"].getSWFVersion ());
+  trace ("6: " + _root["m6"].getSWFVersion ());
+  trace ("7: " + _root["m7"].getSWFVersion ());
+  trace ("8: " + _root["m8"].getSWFVersion ());
   loadMovie ("FSCommand:quit", "");
 }
 
diff --git a/test/trace/movieclip-get-swf-version.as b/test/trace/movieclip-get-swf-version.as
index 3cc3110..ed34ffd 100644
--- a/test/trace/movieclip-get-swf-version.as
+++ b/test/trace/movieclip-get-swf-version.as
@@ -2,4 +2,5 @@
 
 trace (this + ": " + this.getSWFVersion ());
 
-loadMovie ("FSCommand:quit", "");
+if (_root["noquit"] != true)
+  loadMovie ("FSCommand:quit", "");
commit 85628558c13e8cf922ce3e3b0bb9ad2cecc056f2
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date:   Mon Nov 26 18:19:51 2007 +0200

    Fix some issues with the blendMode property

diff --git a/libswfdec/swfdec_sprite_movie_as.c b/libswfdec/swfdec_sprite_movie_as.c
index 3ef8842..6b381d1 100644
--- a/libswfdec/swfdec_sprite_movie_as.c
+++ b/libswfdec/swfdec_sprite_movie_as.c
@@ -35,6 +35,7 @@
 #include "swfdec_sprite_movie.h"
 #include "swfdec_swf_decoder.h"
 #include "swfdec_resource.h"
+#include "swfdec_utils.h"
 #include "swfdec_as_internal.h"
 
 SWFDEC_AS_NATIVE (900, 200, swfdec_sprite_movie_get_tabIndex)
@@ -149,6 +150,26 @@ swfdec_sprite_movie_set_transform (SwfdecAsContext *cx, SwfdecAsObject *object,
   SWFDEC_STUB ("MovieClip.transform (set)");
 }
 
+
+static const char *blend_mode_names[] = {
+  SWFDEC_AS_STR_normal,
+  SWFDEC_AS_STR_layer,
+  SWFDEC_AS_STR_multiply,
+  SWFDEC_AS_STR_screen,
+  SWFDEC_AS_STR_lighten,
+  SWFDEC_AS_STR_darken,
+  SWFDEC_AS_STR_difference,
+  SWFDEC_AS_STR_add,
+  SWFDEC_AS_STR_subtract,
+  SWFDEC_AS_STR_invert,
+  SWFDEC_AS_STR_alpha,
+  SWFDEC_AS_STR_erase,
+  SWFDEC_AS_STR_overlay,
+  SWFDEC_AS_STR_hardlight
+};
+static const gsize num_blend_mode_names =
+  sizeof (blend_mode_names) / sizeof (blend_mode_names[0]);
+
 SWFDEC_AS_NATIVE (900, 500, swfdec_sprite_movie_get_blendMode)
 void
 swfdec_sprite_movie_get_blendMode (SwfdecAsContext *cx, SwfdecAsObject *object,
@@ -158,53 +179,8 @@ swfdec_sprite_movie_get_blendMode (SwfdecAsContext *cx, SwfdecAsObject *object,
 
   SWFDEC_AS_CHECK (SWFDEC_TYPE_MOVIE, &movie, "");
 
-  switch (movie->blend_mode) {
-    case 1:
-      SWFDEC_AS_VALUE_SET_STRING (rval, SWFDEC_AS_STR_normal);
-      break;
-    case 2:
-      SWFDEC_AS_VALUE_SET_STRING (rval, SWFDEC_AS_STR_layer);
-      break;
-    case 3:
-      SWFDEC_AS_VALUE_SET_STRING (rval, SWFDEC_AS_STR_multiply);
-      break;
-    case 4:
-      SWFDEC_AS_VALUE_SET_STRING (rval, SWFDEC_AS_STR_screen);
-      break;
-    case 5:
-      SWFDEC_AS_VALUE_SET_STRING (rval, SWFDEC_AS_STR_lighten);
-      break;
-    case 6:
-      SWFDEC_AS_VALUE_SET_STRING (rval, SWFDEC_AS_STR_darken);
-      break;
-    case 7:
-      SWFDEC_AS_VALUE_SET_STRING (rval, SWFDEC_AS_STR_difference);
-      break;
-    case 8:
-      SWFDEC_AS_VALUE_SET_STRING (rval, SWFDEC_AS_STR_add);
-      break;
-    case 9:
-      SWFDEC_AS_VALUE_SET_STRING (rval, SWFDEC_AS_STR_subtract);
-      break;
-    case 10:
-      SWFDEC_AS_VALUE_SET_STRING (rval, SWFDEC_AS_STR_invert);
-      break;
-    case 11:
-      SWFDEC_AS_VALUE_SET_STRING (rval, SWFDEC_AS_STR_alpha);
-      break;
-    case 12:
-      SWFDEC_AS_VALUE_SET_STRING (rval, SWFDEC_AS_STR_erase);
-      break;
-    case 13:
-      SWFDEC_AS_VALUE_SET_STRING (rval, SWFDEC_AS_STR_overlay);
-      break;
-    case 14:
-      SWFDEC_AS_VALUE_SET_STRING (rval, SWFDEC_AS_STR_hardlight);
-      break;
-    default:
-      // nothing
-      break;
-  }
+  if (movie->blend_mode > 0 && movie->blend_mode <= num_blend_mode_names)
+    SWFDEC_AS_VALUE_SET_STRING (rval, blend_mode_names[movie->blend_mode - 1]);
 }
 
 SWFDEC_AS_NATIVE (900, 501, swfdec_sprite_movie_set_blendMode)
@@ -214,20 +190,31 @@ swfdec_sprite_movie_set_blendMode (SwfdecAsContext *cx, SwfdecAsObject *object,
 {
   SwfdecMovie *movie;
   SwfdecAsValue val;
+  const char *str;
   int blend_mode;
+  gsize i;
 
   SWFDEC_AS_CHECK (SWFDEC_TYPE_MOVIE, &movie, "v", &val);
 
-  if (cx->version >= 8) {
-    if (!SWFDEC_AS_VALUE_IS_NUMBER (&val))
-      return;
+  if (SWFDEC_AS_VALUE_IS_NUMBER (&val)) {
     blend_mode = SWFDEC_AS_VALUE_GET_NUMBER (&val);
+  } else if (SWFDEC_AS_VALUE_IS_STRING (&val)) {
+    blend_mode = 0;
+    str = SWFDEC_AS_VALUE_GET_STRING (&val);
+    for (i = 0; i < num_blend_mode_names; i++) {
+      if (str == blend_mode_names[i]) { // case-sensitive
+	blend_mode = i + 1;
+	break;
+      }
+    }
+  } else if (SWFDEC_AS_VALUE_IS_OBJECT (&val)) {
+    blend_mode = 0;
   } else {
-    blend_mode = swfdec_as_value_to_integer (cx, &val);
+    blend_mode = 1;
   }
 
   if ((guint)blend_mode != movie->blend_mode) {
-    movie->blend_mode = SWFDEC_AS_VALUE_GET_NUMBER (&val);
+    movie->blend_mode = blend_mode;
     swfdec_movie_invalidate (movie);
   }
 }
commit 4cf05702a8ac31185761f36bc0d7db4563ed0ea7
Merge: 7b3066d... 9fccfb5...
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date:   Mon Nov 26 15:08:32 2007 +0200

    Merge branch 'master' into blend

commit 7b3066dd38dcb755826da845ff03b3674131b756
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date:   Mon Nov 26 15:08:30 2007 +0200

    Implement MovieClip's blendMode property

diff --git a/libswfdec/swfdec_as_strings.c b/libswfdec/swfdec_as_strings.c
index d23a5c7..ef6ea38 100644
--- a/libswfdec/swfdec_as_strings.c
+++ b/libswfdec/swfdec_as_strings.c
@@ -450,5 +450,19 @@ const char swfdec_as_strings[] =
   SWFDEC_AS_CONSTANT_STRING ("localWithFile")
   SWFDEC_AS_CONSTANT_STRING ("localWithNetwork")
   SWFDEC_AS_CONSTANT_STRING ("localTrusted")
+  SWFDEC_AS_CONSTANT_STRING ("normal")
+  SWFDEC_AS_CONSTANT_STRING ("layer")
+  SWFDEC_AS_CONSTANT_STRING ("multiply")
+  SWFDEC_AS_CONSTANT_STRING ("screen")
+  SWFDEC_AS_CONSTANT_STRING ("lighten")
+  SWFDEC_AS_CONSTANT_STRING ("darken")
+  SWFDEC_AS_CONSTANT_STRING ("difference")
+  SWFDEC_AS_CONSTANT_STRING ("add")
+  SWFDEC_AS_CONSTANT_STRING ("subtract")
+  SWFDEC_AS_CONSTANT_STRING ("invert")
+  SWFDEC_AS_CONSTANT_STRING ("alpha")
+  SWFDEC_AS_CONSTANT_STRING ("erase")
+  SWFDEC_AS_CONSTANT_STRING ("overlay")
+  SWFDEC_AS_CONSTANT_STRING ("hardlight")
   /* add more here */
 ;
diff --git a/libswfdec/swfdec_movie.c b/libswfdec/swfdec_movie.c
index 0fbf8a2..e567269 100644
--- a/libswfdec/swfdec_movie.c
+++ b/libswfdec/swfdec_movie.c
@@ -58,6 +58,8 @@ G_DEFINE_ABSTRACT_TYPE (SwfdecMovie, swfdec_movie, SWFDEC_TYPE_AS_OBJECT)
 static void
 swfdec_movie_init (SwfdecMovie * movie)
 {
+  movie->blend_mode = 1;
+
   movie->xscale = 100;
   movie->yscale = 100;
   cairo_matrix_init_identity (&movie->original_transform);
diff --git a/libswfdec/swfdec_sprite_movie_as.c b/libswfdec/swfdec_sprite_movie_as.c
index c8ace8d..3ef8842 100644
--- a/libswfdec/swfdec_sprite_movie_as.c
+++ b/libswfdec/swfdec_sprite_movie_as.c
@@ -154,7 +154,57 @@ void
 swfdec_sprite_movie_get_blendMode (SwfdecAsContext *cx, SwfdecAsObject *object,
     guint argc, SwfdecAsValue *argv, SwfdecAsValue *rval)
 {
-  SWFDEC_STUB ("MovieClip.blendMode (get)");
+  SwfdecMovie *movie;
+
+  SWFDEC_AS_CHECK (SWFDEC_TYPE_MOVIE, &movie, "");
+
+  switch (movie->blend_mode) {
+    case 1:
+      SWFDEC_AS_VALUE_SET_STRING (rval, SWFDEC_AS_STR_normal);
+      break;
+    case 2:
+      SWFDEC_AS_VALUE_SET_STRING (rval, SWFDEC_AS_STR_layer);
+      break;
+    case 3:
+      SWFDEC_AS_VALUE_SET_STRING (rval, SWFDEC_AS_STR_multiply);
+      break;
+    case 4:
+      SWFDEC_AS_VALUE_SET_STRING (rval, SWFDEC_AS_STR_screen);
+      break;
+    case 5:
+      SWFDEC_AS_VALUE_SET_STRING (rval, SWFDEC_AS_STR_lighten);
+      break;
+    case 6:
+      SWFDEC_AS_VALUE_SET_STRING (rval, SWFDEC_AS_STR_darken);
+      break;
+    case 7:
+      SWFDEC_AS_VALUE_SET_STRING (rval, SWFDEC_AS_STR_difference);
+      break;
+    case 8:
+      SWFDEC_AS_VALUE_SET_STRING (rval, SWFDEC_AS_STR_add);
+      break;
+    case 9:
+      SWFDEC_AS_VALUE_SET_STRING (rval, SWFDEC_AS_STR_subtract);
+      break;
+    case 10:
+      SWFDEC_AS_VALUE_SET_STRING (rval, SWFDEC_AS_STR_invert);
+      break;
+    case 11:
+      SWFDEC_AS_VALUE_SET_STRING (rval, SWFDEC_AS_STR_alpha);
+      break;
+    case 12:
+      SWFDEC_AS_VALUE_SET_STRING (rval, SWFDEC_AS_STR_erase);
+      break;
+    case 13:
+      SWFDEC_AS_VALUE_SET_STRING (rval, SWFDEC_AS_STR_overlay);
+      break;
+    case 14:
+      SWFDEC_AS_VALUE_SET_STRING (rval, SWFDEC_AS_STR_hardlight);
+      break;
+    default:
+      // nothing
+      break;
+  }
 }
 
 SWFDEC_AS_NATIVE (900, 501, swfdec_sprite_movie_set_blendMode)
@@ -162,7 +212,24 @@ void
 swfdec_sprite_movie_set_blendMode (SwfdecAsContext *cx, SwfdecAsObject *object,
     guint argc, SwfdecAsValue *argv, SwfdecAsValue *rval)
 {
-  SWFDEC_STUB ("MovieClip.blendMode (set)");
+  SwfdecMovie *movie;
+  SwfdecAsValue val;
+  int blend_mode;
+
+  SWFDEC_AS_CHECK (SWFDEC_TYPE_MOVIE, &movie, "v", &val);
+
+  if (cx->version >= 8) {
+    if (!SWFDEC_AS_VALUE_IS_NUMBER (&val))
+      return;
+    blend_mode = SWFDEC_AS_VALUE_GET_NUMBER (&val);
+  } else {
+    blend_mode = swfdec_as_value_to_integer (cx, &val);
+  }
+
+  if ((guint)blend_mode != movie->blend_mode) {
+    movie->blend_mode = SWFDEC_AS_VALUE_GET_NUMBER (&val);
+    swfdec_movie_invalidate (movie);
+  }
 }
 
 SWFDEC_AS_NATIVE (900, 2, swfdec_sprite_movie_localToGlobal)


More information about the Swfdec mailing list