Pekka Lampila
2007-Aug-23 14:12 UTC
[Swfdec] 10 commits - libswfdec/swfdec_as_function.c libswfdec/swfdec_as_object.c test/trace
libswfdec/swfdec_as_function.c | 1 libswfdec/swfdec_as_object.c | 2 test/trace/Makefile.am | 33 ++++++++++++ test/trace/array-properties-6.swf |binary test/trace/array-properties-6.swf.trace | 56 ++++++++++++++++++++++ test/trace/array-properties-7.swf |binary test/trace/array-properties-7.swf.trace | 55 +++++++++++++++++++++ test/trace/array-properties.as | 13 +++++ test/trace/asbroadcaster-properties-6.swf |binary test/trace/asbroadcaster-properties-6.swf.trace | 27 ++++++++++ test/trace/asbroadcaster-properties-7.swf |binary test/trace/asbroadcaster-properties-7.swf.trace | 27 ++++++++++ test/trace/asbroadcaster-properties.as | 7 ++ test/trace/asfunction-properties-6.swf |binary test/trace/asfunction-properties-6.swf.trace | 9 +++ test/trace/asfunction-properties-7.swf |binary test/trace/asfunction-properties-7.swf.trace | 9 +++ test/trace/asfunction-properties.as | 11 ++++ test/trace/boolean-properties-6.swf |binary test/trace/boolean-properties-6.swf.trace | 17 ++++++ test/trace/boolean-properties-7.swf |binary test/trace/boolean-properties-7.swf.trace | 16 ++++++ test/trace/boolean-properties.as | 12 ++++ test/trace/function-properties-6.swf |binary test/trace/function-properties-6.swf.trace | 8 ++- test/trace/function-properties-7.swf |binary test/trace/function-properties-7.swf.trace | 8 ++- test/trace/function-properties.as | 8 +-- test/trace/global-function-properties-6.swf |binary test/trace/global-function-properties-6.swf.trace | 21 ++++++++ test/trace/global-function-properties-7.swf |binary test/trace/global-function-properties-7.swf.trace | 21 ++++++++ test/trace/global-function-properties.as | 22 ++++++++ test/trace/global-variable-properties-6.swf |binary test/trace/global-variable-properties-6.swf.trace | 3 + test/trace/global-variable-properties-7.swf |binary test/trace/global-variable-properties-7.swf.trace | 3 + test/trace/global-variable-properties.as | 13 +++++ test/trace/video-properties-6.swf |binary test/trace/video-properties-6.swf.trace | 16 ++++++ test/trace/video-properties-7.swf |binary test/trace/video-properties-7.swf.trace | 15 +++++ test/trace/video-properties.as | 11 ++++ 43 files changed, 436 insertions(+), 8 deletions(-) New commits: diff-tree e88bcd3f69ead176574bab53af1872da1cdd99ea (from e27a852a549c19379769e54e36adff5050c18df7) Author: Pekka Lampila <pekka.lampila at iki.fi> Date: Thu Aug 23 17:08:28 2007 +0300 Add a testcase for Video's properties diff --git a/test/trace/Makefile.am b/test/trace/Makefile.am index 0bf5be0..4f5f501 100644 --- a/test/trace/Makefile.am +++ b/test/trace/Makefile.am @@ -1214,6 +1214,11 @@ EXTRA_DIST = \ unescape2-7.swf.trace \ values.as \ video.flv \ + video-properties.as \ + video-properties-6.swf \ + video-properties-6.swf.trace \ + video-properties-7.swf \ + video-properties-7.swf.trace \ waitforframe-huge.as \ waitforframe-huge-4.swf \ waitforframe-huge-4.swf.trace \ diff --git a/test/trace/video-properties-6.swf b/test/trace/video-properties-6.swf new file mode 100644 index 0000000..7e8a69f Binary files /dev/null and b/test/trace/video-properties-6.swf differ diff --git a/test/trace/video-properties-6.swf.trace b/test/trace/video-properties-6.swf.trace new file mode 100644 index 0000000..97a273a --- /dev/null +++ b/test/trace/video-properties-6.swf.trace @@ -0,0 +1,16 @@ +_global.Video = function + __proto__ (hp) = _global.Object.__proto__ + constructor (hp) = _global.Object.constructor + prototype (hp) = object + __proto__ (hp) = _global.Object.prototype + attachVideo (hp) = function + __proto__ (hp) = _global.Object.__proto__ + constructor (hp) = _global.Object.constructor + clear (hp) = function + __proto__ (hp) = _global.Object.__proto__ + constructor (hp) = _global.Object.constructor + constructor (hp) = _global.Video +local.a = _global.Video.prototype + __constructor__ (h) = _global.Video + __proto__ (hp) = _global.Video.prototype + constructor (h) = _global.Video diff --git a/test/trace/video-properties-7.swf b/test/trace/video-properties-7.swf new file mode 100644 index 0000000..1bc6554 Binary files /dev/null and b/test/trace/video-properties-7.swf differ diff --git a/test/trace/video-properties-7.swf.trace b/test/trace/video-properties-7.swf.trace new file mode 100644 index 0000000..db97254 --- /dev/null +++ b/test/trace/video-properties-7.swf.trace @@ -0,0 +1,15 @@ +_global.Video = function + __proto__ (hp) = _global.Object.__proto__ + constructor (hp) = _global.Object.constructor + prototype (hp) = object + __proto__ (hp) = _global.Object.prototype + attachVideo (hp) = function + __proto__ (hp) = _global.Object.__proto__ + constructor (hp) = _global.Object.constructor + clear (hp) = function + __proto__ (hp) = _global.Object.__proto__ + constructor (hp) = _global.Object.constructor + constructor (hp) = _global.Video +local.a = _global.Video.prototype + __constructor__ (h) = _global.Video + __proto__ (hp) = _global.Video.prototype diff --git a/test/trace/video-properties.as b/test/trace/video-properties.as new file mode 100644 index 0000000..bcd3d5e --- /dev/null +++ b/test/trace/video-properties.as @@ -0,0 +1,11 @@ +// makeswf -v 7 -r 1 -o video-properties-7.swf video-properties.as + +#include "trace_properties.as" + +var a = new Video (); + +trace_properties (_global.Video, "_global", "Video"); +trace_properties (a, "local", "a"); + +loadMovie ("FSCommand:quit", ""); + diff-tree e27a852a549c19379769e54e36adff5050c18df7 (from 30ce63def44004f3b6a0e4ef86c5024cab1ad001) Author: Pekka Lampila <pekka.lampila at iki.fi> Date: Thu Aug 23 16:59:49 2007 +0300 Add a testcase for _global's functions' properties diff --git a/test/trace/Makefile.am b/test/trace/Makefile.am index f666ac8..0bf5be0 100644 --- a/test/trace/Makefile.am +++ b/test/trace/Makefile.am @@ -446,6 +446,11 @@ EXTRA_DIST = \ forin-delete-6.swf.trace \ forin-delete-7.swf \ forin-delete-7.swf.trace \ + global-function-properties.as \ + global-function-properties-6.swf \ + global-function-properties-6.swf.trace \ + global-function-properties-7.swf \ + global-function-properties-7.swf.trace \ global-variable-properties.as \ global-variable-properties-6.swf \ global-variable-properties-6.swf.trace \ diff --git a/test/trace/global-function-properties-6.swf b/test/trace/global-function-properties-6.swf new file mode 100644 index 0000000..03a1894 Binary files /dev/null and b/test/trace/global-function-properties-6.swf differ diff --git a/test/trace/global-function-properties-6.swf.trace b/test/trace/global-function-properties-6.swf.trace new file mode 100644 index 0000000..09389e0 --- /dev/null +++ b/test/trace/global-function-properties-6.swf.trace @@ -0,0 +1,21 @@ +_global.clearInterval = function + __proto__ (hp) = _global.Object.__proto__ + constructor (hp) = _global.Object.constructor +_global.escape = function + __proto__ (hp) = _global.Object.__proto__ + constructor (hp) = _global.Object.constructor +_global.isFinite = function + __proto__ (hp) = _global.Object.__proto__ + constructor (hp) = _global.Object.constructor +_global.isNaN = function + __proto__ (hp) = _global.Object.__proto__ + constructor (hp) = _global.Object.constructor +_global.parseInt = function + __proto__ (hp) = _global.Object.__proto__ + constructor (hp) = _global.Object.constructor +_global.setInterval = function + __proto__ (hp) = _global.Object.__proto__ + constructor (hp) = _global.Object.constructor +_global.unescape = function + __proto__ (hp) = _global.Object.__proto__ + constructor (hp) = _global.Object.constructor diff --git a/test/trace/global-function-properties-7.swf b/test/trace/global-function-properties-7.swf new file mode 100644 index 0000000..7d26d4c Binary files /dev/null and b/test/trace/global-function-properties-7.swf differ diff --git a/test/trace/global-function-properties-7.swf.trace b/test/trace/global-function-properties-7.swf.trace new file mode 100644 index 0000000..09389e0 --- /dev/null +++ b/test/trace/global-function-properties-7.swf.trace @@ -0,0 +1,21 @@ +_global.clearInterval = function + __proto__ (hp) = _global.Object.__proto__ + constructor (hp) = _global.Object.constructor +_global.escape = function + __proto__ (hp) = _global.Object.__proto__ + constructor (hp) = _global.Object.constructor +_global.isFinite = function + __proto__ (hp) = _global.Object.__proto__ + constructor (hp) = _global.Object.constructor +_global.isNaN = function + __proto__ (hp) = _global.Object.__proto__ + constructor (hp) = _global.Object.constructor +_global.parseInt = function + __proto__ (hp) = _global.Object.__proto__ + constructor (hp) = _global.Object.constructor +_global.setInterval = function + __proto__ (hp) = _global.Object.__proto__ + constructor (hp) = _global.Object.constructor +_global.unescape = function + __proto__ (hp) = _global.Object.__proto__ + constructor (hp) = _global.Object.constructor diff --git a/test/trace/global-function-properties.as b/test/trace/global-function-properties.as new file mode 100644 index 0000000..7b9c116 --- /dev/null +++ b/test/trace/global-function-properties.as @@ -0,0 +1,22 @@ +// makeswf -v 7 -r 1 -o global-function-properties-7.swf global-function-properties.as + +#include "trace_properties.as" + +trace_properties (_global.clearInterval, "_global", "clearInterval"); +trace_properties (_global.escape, "_global", "escape"); +trace_properties (_global.isFinite, "_global", "isFinite"); +trace_properties (_global.isNaN, "_global", "isNaN"); +trace_properties (_global.parseInt, "_global", "parseInt"); +trace_properties (_global.setInterval, "_global", "setInterval"); +trace_properties (_global.unescape, "_global", "unescape"); + +//trace_properties (_global.clearTimeout, "_global", "clearTimeout"); +//trace_properties (_global.enableDebugConsole, "_global", "enableDebugConsole"); +//trace_properties (_global.parseFloat, "_global", "parseFloat"); +//trace_properties (_global.setTimeout, "_global", "setTimeout"); +//trace_properties (_global.showRedrawRegions, "_global", "showRedrawRegions"); +//trace_properties (_global.textRenderer, "_global", "textRenderer"); +//trace_properties (_global.trace, "_global", "trace"); +//trace_properties (_global.updateAfterEvent, "_global", "updateAfterEvent"); + +loadMovie ("FSCommand:quit", ""); diff-tree 30ce63def44004f3b6a0e4ef86c5024cab1ad001 (from 6e52df282991b75ba985822ec93aefa3a234b3be) Author: Pekka Lampila <pekka.lampila at iki.fi> Date: Thu Aug 23 16:57:58 2007 +0300 Add a testcase for _global's variables' properties diff --git a/test/trace/Makefile.am b/test/trace/Makefile.am index 377b2e0..f666ac8 100644 --- a/test/trace/Makefile.am +++ b/test/trace/Makefile.am @@ -446,6 +446,11 @@ EXTRA_DIST = \ forin-delete-6.swf.trace \ forin-delete-7.swf \ forin-delete-7.swf.trace \ + global-variable-properties.as \ + global-variable-properties-6.swf \ + global-variable-properties-6.swf.trace \ + global-variable-properties-7.swf \ + global-variable-properties-7.swf.trace \ goto1.swf \ goto1.swf.trace \ goto2.swf \ diff --git a/test/trace/global-variable-properties-6.swf b/test/trace/global-variable-properties-6.swf new file mode 100644 index 0000000..174f2af Binary files /dev/null and b/test/trace/global-variable-properties-6.swf differ diff --git a/test/trace/global-variable-properties-6.swf.trace b/test/trace/global-variable-properties-6.swf.trace new file mode 100644 index 0000000..a11c582 --- /dev/null +++ b/test/trace/global-variable-properties-6.swf.trace @@ -0,0 +1,3 @@ +_global.Infinity = number : Infinity +_global.NaN = number : NaN +_global.o = null diff --git a/test/trace/global-variable-properties-7.swf b/test/trace/global-variable-properties-7.swf new file mode 100644 index 0000000..b1b46d9 Binary files /dev/null and b/test/trace/global-variable-properties-7.swf differ diff --git a/test/trace/global-variable-properties-7.swf.trace b/test/trace/global-variable-properties-7.swf.trace new file mode 100644 index 0000000..a11c582 --- /dev/null +++ b/test/trace/global-variable-properties-7.swf.trace @@ -0,0 +1,3 @@ +_global.Infinity = number : Infinity +_global.NaN = number : NaN +_global.o = null diff --git a/test/trace/global-variable-properties.as b/test/trace/global-variable-properties.as new file mode 100644 index 0000000..8651879 --- /dev/null +++ b/test/trace/global-variable-properties.as @@ -0,0 +1,13 @@ +// makeswf -v 7 -r 1 -o global-variable-properties-7.swf global-variable-properties.as + +#include "trace_properties.as" + +trace_properties (_global.Infinity, "_global", "Infinity"); +trace_properties (_global.NaN, "_global", "NaN"); +trace_properties (_global.o, "_global", "o"); +// _global.flash is undefined, so we need to check extra +//trace (hasOwnProperty (_global, "flash")); +//trace_properties (_global.flash, "_global", "flash"); + +loadMovie ("FSCommand:quit", ""); + diff-tree 6e52df282991b75ba985822ec93aefa3a234b3be (from 9b245bd6188a6f648afc7c0efcdab4df90dc5e1c) Author: Pekka Lampila <pekka.lampila at iki.fi> Date: Thu Aug 23 16:46:29 2007 +0300 Add test for _global.Function's properties to function-properties test case diff --git a/test/trace/function-properties-6.swf b/test/trace/function-properties-6.swf index c133be4..3e3eb96 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-6.swf.trace b/test/trace/function-properties-6.swf.trace index e5e0e67..9a8937f 100644 --- a/test/trace/function-properties-6.swf.trace +++ b/test/trace/function-properties-6.swf.trace @@ -1,7 +1,11 @@ -local.o = object +_global.Function = _global.Object.constructor + __proto__ (hp) = _global.Object.__proto__ + constructor (hp) = _global.Object.constructor + prototype (hp) = _global.Object.__proto__ +local.a = object myFunction = function __proto__ (hp) = _global.Object.__proto__ constructor (hp) = _global.Object.constructor prototype (hp) = object __proto__ (hp) = _global.Object.prototype - constructor (hp) = local.o.myFunction + constructor (hp) = local.a.myFunction diff --git a/test/trace/function-properties-7.swf b/test/trace/function-properties-7.swf index eb25316..e5bacce 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-7.swf.trace b/test/trace/function-properties-7.swf.trace index e5e0e67..9a8937f 100644 --- a/test/trace/function-properties-7.swf.trace +++ b/test/trace/function-properties-7.swf.trace @@ -1,7 +1,11 @@ -local.o = object +_global.Function = _global.Object.constructor + __proto__ (hp) = _global.Object.__proto__ + constructor (hp) = _global.Object.constructor + prototype (hp) = _global.Object.__proto__ +local.a = object myFunction = function __proto__ (hp) = _global.Object.__proto__ constructor (hp) = _global.Object.constructor prototype (hp) = object __proto__ (hp) = _global.Object.prototype - constructor (hp) = local.o.myFunction + constructor (hp) = local.a.myFunction diff --git a/test/trace/function-properties.as b/test/trace/function-properties.as index 7111177..75af239 100644 --- a/test/trace/function-properties.as +++ b/test/trace/function-properties.as @@ -2,8 +2,10 @@ #include "trace_properties.as" -o = new_empty_object (); -o.myFunction = function () { }; -trace_properties (o, "local", "o"); +var a = new_empty_object (); +a.myFunction = function () { }; + +trace_properties (_global.Function, "_global", "Function"); +trace_properties (a, "local", "a"); loadMovie ("FSCommand:quit", ""); diff-tree 9b245bd6188a6f648afc7c0efcdab4df90dc5e1c (from 66a988943d3149555dff52f614ea5f3f4fddc95c) Author: Pekka Lampila <pekka.lampila at iki.fi> Date: Thu Aug 23 16:42:18 2007 +0300 Add a testcase for Boolean's properties diff --git a/test/trace/Makefile.am b/test/trace/Makefile.am index 86771d4..377b2e0 100644 --- a/test/trace/Makefile.am +++ b/test/trace/Makefile.am @@ -160,6 +160,11 @@ EXTRA_DIST = \ bitwise-6.swf.trace \ bitwise-7.swf \ bitwise-7.swf.trace \ + boolean-properties.as \ + boolean-properties-6.swf \ + boolean-properties-6.swf.trace \ + boolean-properties-7.swf \ + boolean-properties-7.swf.trace \ call-arguments.as \ call-arguments-5.swf \ call-arguments-5.swf.trace \ diff --git a/test/trace/boolean-properties-6.swf b/test/trace/boolean-properties-6.swf new file mode 100644 index 0000000..1e1b95f Binary files /dev/null and b/test/trace/boolean-properties-6.swf differ diff --git a/test/trace/boolean-properties-6.swf.trace b/test/trace/boolean-properties-6.swf.trace new file mode 100644 index 0000000..baada58 --- /dev/null +++ b/test/trace/boolean-properties-6.swf.trace @@ -0,0 +1,17 @@ +_global.Boolean = function + __proto__ (hp) = _global.Object.__proto__ + constructor (hp) = _global.Object.constructor + prototype (hp) = object + __proto__ (hp) = _global.Object.prototype + constructor (hp) = _global.Boolean + toString (hp) = function + __proto__ (hp) = _global.Object.__proto__ + constructor (hp) = _global.Object.constructor + valueOf (hp) = function + __proto__ (hp) = _global.Object.__proto__ + constructor (hp) = _global.Object.constructor +local.a = _global.Boolean.prototype + __constructor__ (h) = _global.Boolean + __proto__ (hp) = _global.Boolean.prototype + constructor (h) = _global.Boolean +local.b = boolean : true diff --git a/test/trace/boolean-properties-7.swf b/test/trace/boolean-properties-7.swf new file mode 100644 index 0000000..c9986d1 Binary files /dev/null and b/test/trace/boolean-properties-7.swf differ diff --git a/test/trace/boolean-properties-7.swf.trace b/test/trace/boolean-properties-7.swf.trace new file mode 100644 index 0000000..b0bf2d4 --- /dev/null +++ b/test/trace/boolean-properties-7.swf.trace @@ -0,0 +1,16 @@ +_global.Boolean = function + __proto__ (hp) = _global.Object.__proto__ + constructor (hp) = _global.Object.constructor + prototype (hp) = object + __proto__ (hp) = _global.Object.prototype + constructor (hp) = _global.Boolean + toString (hp) = function + __proto__ (hp) = _global.Object.__proto__ + constructor (hp) = _global.Object.constructor + valueOf (hp) = function + __proto__ (hp) = _global.Object.__proto__ + constructor (hp) = _global.Object.constructor +local.a = _global.Boolean.prototype + __constructor__ (h) = _global.Boolean + __proto__ (hp) = _global.Boolean.prototype +local.b = boolean : true diff --git a/test/trace/boolean-properties.as b/test/trace/boolean-properties.as new file mode 100644 index 0000000..6488c21 --- /dev/null +++ b/test/trace/boolean-properties.as @@ -0,0 +1,12 @@ +// makeswf -v 7 -r 1 -o boolean-properties-7.swf boolean-properties.as + +#include "trace_properties.as" + +var a = new Boolean(false); +var b = true; + +trace_properties (_global.Boolean, "_global", "Boolean"); +trace_properties (a, "local", "a"); +trace_properties (b, "local", "b"); + +loadMovie ("FSCommand:quit", ""); diff-tree 66a988943d3149555dff52f614ea5f3f4fddc95c (from 73246d39708988d3cca7b97117ff5de139904f7b) Author: Pekka Lampila <pekka.lampila at iki.fi> Date: Thu Aug 23 16:30:39 2007 +0300 Add a test for AsBroadcaster's properties diff --git a/test/trace/Makefile.am b/test/trace/Makefile.am index cf21a1d..86771d4 100644 --- a/test/trace/Makefile.am +++ b/test/trace/Makefile.am @@ -134,6 +134,11 @@ EXTRA_DIST = \ asbroadcaster-override-7.swf.trace \ asbroadcaster-override-8.swf \ asbroadcaster-override-8.swf.trace \ + asbroadcaster-properties.as \ + asbroadcaster-properties-6.swf \ + asbroadcaster-properties-6.swf.trace \ + asbroadcaster-properties-7.swf \ + asbroadcaster-properties-7.swf.trace \ asfunction-properties.as \ asfunction-properties-6.swf \ asfunction-properties-6.swf.trace \ diff --git a/test/trace/asbroadcaster-properties-6.swf b/test/trace/asbroadcaster-properties-6.swf new file mode 100644 index 0000000..301c62a Binary files /dev/null and b/test/trace/asbroadcaster-properties-6.swf differ diff --git a/test/trace/asbroadcaster-properties-6.swf.trace b/test/trace/asbroadcaster-properties-6.swf.trace new file mode 100644 index 0000000..85afed4 --- /dev/null +++ b/test/trace/asbroadcaster-properties-6.swf.trace @@ -0,0 +1,27 @@ +_global.AsBroadcaster = function + __proto__ (hp) = _global.Object.__proto__ + addListener (hp) = function + __proto__ (hp) = _global.Object.__proto__ + constructor (hp) = _global.Object.constructor + prototype (hp) = object + __proto__ (hp) = _global.Object.prototype + constructor (hp) = _global.AsBroadcaster.addListener + broadcastMessage (hp) = function + __proto__ (hp) = _global.Object.__proto__ + constructor (hp) = _global.Object.constructor + constructor (hp) = _global.Object.constructor + initialize (hp) = function + __proto__ (hp) = _global.Object.__proto__ + constructor (hp) = _global.Object.constructor + prototype (hp) = object + __proto__ (hp) = _global.Object.prototype + constructor (hp) = _global.AsBroadcaster.initialize + prototype (hp) = object + __proto__ (hp) = _global.Object.prototype + constructor (hp) = _global.AsBroadcaster + removeListener (hp) = function + __proto__ (hp) = _global.Object.__proto__ + constructor (hp) = _global.Object.constructor + prototype (hp) = object + __proto__ (hp) = _global.Object.prototype + constructor (hp) = _global.AsBroadcaster.removeListener diff --git a/test/trace/asbroadcaster-properties-7.swf b/test/trace/asbroadcaster-properties-7.swf new file mode 100644 index 0000000..d91d127 Binary files /dev/null and b/test/trace/asbroadcaster-properties-7.swf differ diff --git a/test/trace/asbroadcaster-properties-7.swf.trace b/test/trace/asbroadcaster-properties-7.swf.trace new file mode 100644 index 0000000..85afed4 --- /dev/null +++ b/test/trace/asbroadcaster-properties-7.swf.trace @@ -0,0 +1,27 @@ +_global.AsBroadcaster = function + __proto__ (hp) = _global.Object.__proto__ + addListener (hp) = function + __proto__ (hp) = _global.Object.__proto__ + constructor (hp) = _global.Object.constructor + prototype (hp) = object + __proto__ (hp) = _global.Object.prototype + constructor (hp) = _global.AsBroadcaster.addListener + broadcastMessage (hp) = function + __proto__ (hp) = _global.Object.__proto__ + constructor (hp) = _global.Object.constructor + constructor (hp) = _global.Object.constructor + initialize (hp) = function + __proto__ (hp) = _global.Object.__proto__ + constructor (hp) = _global.Object.constructor + prototype (hp) = object + __proto__ (hp) = _global.Object.prototype + constructor (hp) = _global.AsBroadcaster.initialize + prototype (hp) = object + __proto__ (hp) = _global.Object.prototype + constructor (hp) = _global.AsBroadcaster + removeListener (hp) = function + __proto__ (hp) = _global.Object.__proto__ + constructor (hp) = _global.Object.constructor + prototype (hp) = object + __proto__ (hp) = _global.Object.prototype + constructor (hp) = _global.AsBroadcaster.removeListener diff --git a/test/trace/asbroadcaster-properties.as b/test/trace/asbroadcaster-properties.as new file mode 100644 index 0000000..ca51b50 --- /dev/null +++ b/test/trace/asbroadcaster-properties.as @@ -0,0 +1,7 @@ +// makeswf -v 7 -r 1 -o asbroadcaster-properties-7.swf asbroadcaster-properties.as + +#include "trace_properties.as" + +trace_properties (_global.AsBroadcaster, "_global", "AsBroadcaster"); + +loadMovie ("FSCommand:quit", ""); diff-tree 73246d39708988d3cca7b97117ff5de139904f7b (from efb2d466e37994cc79498ab993c78425c7e7a522) Author: Pekka Lampila <pekka.lampila at iki.fi> Date: Thu Aug 23 16:19:03 2007 +0300 Add a test case to check AS* functions' properties with trace_properties diff --git a/test/trace/Makefile.am b/test/trace/Makefile.am index aef9400..cf21a1d 100644 --- a/test/trace/Makefile.am +++ b/test/trace/Makefile.am @@ -134,6 +134,11 @@ EXTRA_DIST = \ asbroadcaster-override-7.swf.trace \ asbroadcaster-override-8.swf \ asbroadcaster-override-8.swf.trace \ + asfunction-properties.as \ + asfunction-properties-6.swf \ + asfunction-properties-6.swf.trace \ + asfunction-properties-7.swf \ + asfunction-properties-7.swf.trace \ asnative-create.as \ asnative-create-5.swf \ asnative-create-5.swf.trace \ diff --git a/test/trace/asfunction-properties-6.swf b/test/trace/asfunction-properties-6.swf new file mode 100644 index 0000000..1741f67 Binary files /dev/null and b/test/trace/asfunction-properties-6.swf differ diff --git a/test/trace/asfunction-properties-6.swf.trace b/test/trace/asfunction-properties-6.swf.trace new file mode 100644 index 0000000..f5db56f --- /dev/null +++ b/test/trace/asfunction-properties-6.swf.trace @@ -0,0 +1,9 @@ +_global.ASSetNative = function + __proto__ (hp) = _global.Object.__proto__ + constructor (hp) = _global.Object.constructor +_global.ASSetNativeAccessor = function + __proto__ (hp) = _global.Object.__proto__ + constructor (hp) = _global.Object.constructor +_global.ASSetPropFlags = function + __proto__ (hp) = _global.Object.__proto__ + constructor (hp) = _global.Object.constructor diff --git a/test/trace/asfunction-properties-7.swf b/test/trace/asfunction-properties-7.swf new file mode 100644 index 0000000..9f350dc Binary files /dev/null and b/test/trace/asfunction-properties-7.swf differ diff --git a/test/trace/asfunction-properties-7.swf.trace b/test/trace/asfunction-properties-7.swf.trace new file mode 100644 index 0000000..f5db56f --- /dev/null +++ b/test/trace/asfunction-properties-7.swf.trace @@ -0,0 +1,9 @@ +_global.ASSetNative = function + __proto__ (hp) = _global.Object.__proto__ + constructor (hp) = _global.Object.constructor +_global.ASSetNativeAccessor = function + __proto__ (hp) = _global.Object.__proto__ + constructor (hp) = _global.Object.constructor +_global.ASSetPropFlags = function + __proto__ (hp) = _global.Object.__proto__ + constructor (hp) = _global.Object.constructor diff --git a/test/trace/asfunction-properties.as b/test/trace/asfunction-properties.as new file mode 100644 index 0000000..d642ca3 --- /dev/null +++ b/test/trace/asfunction-properties.as @@ -0,0 +1,11 @@ +// makeswf -v 7 -r 1 -o asfunction-properties-7.swf asfunction-properties.as + +#include "trace_properties.as" + +trace_properties (_global.ASSetNative, "_global", "ASSetNative"); +trace_properties (_global.ASSetNativeAccessor, "_global", "ASSetNativeAccessor"); +trace_properties (_global.ASSetPropFlags, "_global", "ASSetPropFlags"); +//trace_properties (_global.ASnative, "_global", "ASnative"); +//trace_properties (_global.ASconstructor, "_global", "ASconstructor"); + +loadMovie ("FSCommand:quit", ""); diff-tree efb2d466e37994cc79498ab993c78425c7e7a522 (from 6c143f952febcac3b4e1a1162bf41c7904c94ad3) Author: Pekka Lampila <pekka.lampila at iki.fi> Date: Thu Aug 23 15:48:51 2007 +0300 Add a test case to check Array's properties with trace_properties diff --git a/test/trace/Makefile.am b/test/trace/Makefile.am index 61a2743..aef9400 100644 --- a/test/trace/Makefile.am +++ b/test/trace/Makefile.am @@ -95,6 +95,9 @@ EXTRA_DIST = \ array-new-override-6.swf.trace \ array-new-override-7.swf \ array-new-override-7.swf.trace \ + array-properties.as \ + array-properties-6.swf \ + array-properties-6.swf.trace \ array2.as \ array2-5.swf \ array2-5.swf.trace \ diff --git a/test/trace/array-properties-6.swf b/test/trace/array-properties-6.swf new file mode 100644 index 0000000..45c7477 Binary files /dev/null and b/test/trace/array-properties-6.swf differ diff --git a/test/trace/array-properties-6.swf.trace b/test/trace/array-properties-6.swf.trace new file mode 100644 index 0000000..1425f73 --- /dev/null +++ b/test/trace/array-properties-6.swf.trace @@ -0,0 +1,56 @@ +_global.Array = function + CASEINSENSITIVE = number : 1 + DESCENDING = number : 2 + NUMERIC = number : 16 + RETURNINDEXEDARRAY = number : 8 + UNIQUESORT = number : 4 + __proto__ (hp) = _global.Object.__proto__ + constructor (hp) = _global.Object.constructor + prototype (hp) = object + __proto__ (hp) = _global.Object.prototype + concat (hp) = function + __proto__ (hp) = _global.Object.__proto__ + constructor (hp) = _global.Object.constructor + constructor (hp) = _global.Array + join (hp) = function + __proto__ (hp) = _global.Object.__proto__ + constructor (hp) = _global.Object.constructor + pop (hp) = function + __proto__ (hp) = _global.Object.__proto__ + constructor (hp) = _global.Object.constructor + push (hp) = function + __proto__ (hp) = _global.Object.__proto__ + constructor (hp) = _global.Object.constructor + reverse (hp) = function + __proto__ (hp) = _global.Object.__proto__ + constructor (hp) = _global.Object.constructor + shift (hp) = function + __proto__ (hp) = _global.Object.__proto__ + constructor (hp) = _global.Object.constructor + slice (hp) = function + __proto__ (hp) = _global.Object.__proto__ + constructor (hp) = _global.Object.constructor + sort (hp) = function + __proto__ (hp) = _global.Object.__proto__ + constructor (hp) = _global.Object.constructor + sortOn (hp) = function + __proto__ (hp) = _global.Object.__proto__ + constructor (hp) = _global.Object.constructor + splice (hp) = function + __proto__ (hp) = _global.Object.__proto__ + constructor (hp) = _global.Object.constructor + toString (hp) = function + __proto__ (hp) = _global.Object.__proto__ + constructor (hp) = _global.Object.constructor + unshift (hp) = function + __proto__ (hp) = _global.Object.__proto__ + constructor (hp) = _global.Object.constructor +local.a = _global.Array.prototype + __constructor__ (h) = _global.Array + __proto__ (hp) = _global.Array.prototype + constructor (h) = _global.Array + length (hp) = number : 0 +local.b = _global.Array.prototype + __proto__ (hp) = _global.Array.prototype + constructor (hp) = _global.Array + length (hp) = number : 0 diff --git a/test/trace/array-properties-7.swf b/test/trace/array-properties-7.swf new file mode 100644 index 0000000..e81eb54 Binary files /dev/null and b/test/trace/array-properties-7.swf differ diff --git a/test/trace/array-properties-7.swf.trace b/test/trace/array-properties-7.swf.trace new file mode 100644 index 0000000..7b6e244 --- /dev/null +++ b/test/trace/array-properties-7.swf.trace @@ -0,0 +1,55 @@ +_global.Array = function + CASEINSENSITIVE = number : 1 + DESCENDING = number : 2 + NUMERIC = number : 16 + RETURNINDEXEDARRAY = number : 8 + UNIQUESORT = number : 4 + __proto__ (hp) = _global.Object.__proto__ + constructor (hp) = _global.Object.constructor + prototype (hp) = object + __proto__ (hp) = _global.Object.prototype + concat (hp) = function + __proto__ (hp) = _global.Object.__proto__ + constructor (hp) = _global.Object.constructor + constructor (hp) = _global.Array + join (hp) = function + __proto__ (hp) = _global.Object.__proto__ + constructor (hp) = _global.Object.constructor + pop (hp) = function + __proto__ (hp) = _global.Object.__proto__ + constructor (hp) = _global.Object.constructor + push (hp) = function + __proto__ (hp) = _global.Object.__proto__ + constructor (hp) = _global.Object.constructor + reverse (hp) = function + __proto__ (hp) = _global.Object.__proto__ + constructor (hp) = _global.Object.constructor + shift (hp) = function + __proto__ (hp) = _global.Object.__proto__ + constructor (hp) = _global.Object.constructor + slice (hp) = function + __proto__ (hp) = _global.Object.__proto__ + constructor (hp) = _global.Object.constructor + sort (hp) = function + __proto__ (hp) = _global.Object.__proto__ + constructor (hp) = _global.Object.constructor + sortOn (hp) = function + __proto__ (hp) = _global.Object.__proto__ + constructor (hp) = _global.Object.constructor + splice (hp) = function + __proto__ (hp) = _global.Object.__proto__ + constructor (hp) = _global.Object.constructor + toString (hp) = function + __proto__ (hp) = _global.Object.__proto__ + constructor (hp) = _global.Object.constructor + unshift (hp) = function + __proto__ (hp) = _global.Object.__proto__ + constructor (hp) = _global.Object.constructor +local.a = _global.Array.prototype + __constructor__ (h) = _global.Array + __proto__ (hp) = _global.Array.prototype + length (hp) = number : 0 +local.b = _global.Array.prototype + __proto__ (hp) = _global.Array.prototype + constructor (hp) = _global.Array + length (hp) = number : 0 diff --git a/test/trace/array-properties.as b/test/trace/array-properties.as new file mode 100644 index 0000000..09d86a4 --- /dev/null +++ b/test/trace/array-properties.as @@ -0,0 +1,13 @@ +// makeswf -v 7 -r 1 -o array-properties-7.swf array-properties.as + +#include "trace_properties.as" + +var a = new Array (); +var b = []; + +trace_properties (_global.Array, "_global", "Array"); +trace_properties (a, "local", "a"); +trace_properties (b, "local", "b"); + +loadMovie ("FSCommand:quit", ""); + diff-tree 6c143f952febcac3b4e1a1162bf41c7904c94ad3 (from c2794c164f2e92057da600f395e591fdf6eb06fa) Author: Pekka Lampila <pekka.lampila at iki.fi> Date: Thu Aug 23 15:38:32 2007 +0300 Set constructor permanent in swfdec_as_object_set_constructor diff --git a/libswfdec/swfdec_as_object.c b/libswfdec/swfdec_as_object.c index 452015e..c46bf2f 100644 --- a/libswfdec/swfdec_as_object.c +++ b/libswfdec/swfdec_as_object.c @@ -1034,7 +1034,7 @@ swfdec_as_object_set_constructor (Swfdec } SWFDEC_AS_VALUE_SET_OBJECT (&val, construct); swfdec_as_object_set_variable_and_flags (object, SWFDEC_AS_STR_constructor, - &val, SWFDEC_AS_VARIABLE_HIDDEN); + &val, SWFDEC_AS_VARIABLE_HIDDEN | SWFDEC_AS_VARIABLE_PERMANENT); SWFDEC_AS_VALUE_SET_OBJECT (&val, proto); swfdec_as_object_set_variable_and_flags (object, SWFDEC_AS_STR___proto__, &val, SWFDEC_AS_VARIABLE_HIDDEN | SWFDEC_AS_VARIABLE_PERMANENT); diff-tree c2794c164f2e92057da600f395e591fdf6eb06fa (from 10d4cc43986ce88bb43cb7bf96712846c962ed86) Author: Pekka Lampila <pekka.lampila at iki.fi> Date: Thu Aug 23 11:45:12 2007 +0300 Unset permanent flag on Function before removing it for version 5 diff --git a/libswfdec/swfdec_as_function.c b/libswfdec/swfdec_as_function.c index 3ec7e0d..5a82064 100644 --- a/libswfdec/swfdec_as_function.c +++ b/libswfdec/swfdec_as_function.c @@ -176,6 +176,7 @@ swfdec_as_function_init_context (SwfdecA return; if (version < 6) { /* deleting it later on is easier than duplicating swfdec_as_object_add_function() */ + swfdec_as_object_unset_variable_flags (context->global, SWFDEC_AS_STR_Function, SWFDEC_AS_VARIABLE_PERMANENT); swfdec_as_object_delete_variable (context->global, SWFDEC_AS_STR_Function); } context->Function = function;
Possibly Parallel Threads
- 4 commits - libswfdec/swfdec_as_array.c libswfdec/swfdec_video_movie_as.c test/trace
- 4 commits - libswfdec/swfdec_as_number.c libswfdec/swfdec_as_strings.c libswfdec/swfdec_player_as.c test/trace
- Changes to 'refs/tags/0.5.2'
- 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
- 5 commits - libswfdec/swfdec_as_array.c libswfdec/swfdec_as_boolean.c libswfdec/swfdec_as_function.c libswfdec/swfdec_as_math.c libswfdec/swfdec_as_number.c libswfdec/swfdec_as_script_function.c libswfdec/swfdec_initialize.as libswfdec/swfdec_initialize.h