### Testing weird prototypes...
// Object = {}
{}: object without __proto__
// Object = { prototype: 5 }
typeof {}.__proto__: number
// Object = { prototype: undefined }
typeof {}.__proto__: undefined
// Object = { prototype: <real Object>.prototype }
typeof {}.__proto__: object
// Object = 5
{}: object without __proto__
// delete Object
"Object" in _global: false
{}: object without __proto__

### Monkey-patching-globals...
// hiding flash.filters...
flash.filters: undefined

### Testing Object
// {}
v.className: MyObject
// new OBJECT()
v.className: Object
// OBJECT()
v: object without __proto__

### Testing Function
// function() {}
v.className: MyFunction
// FUNCTION()
v: object without __proto__
// ASnative(...)
v.className: MyFunction

### Testing Array
// []
v.className: Array
// new ARRAY()
v.className: Array
// ARRAY()
v.className: Array
// A_STRING.split()
v.className: Array
// AN_ARRAY.slice()
v.className: Array
// A_COLOR_MATRIX_FILTER.matrix
v.className: Array
// A_CONVOLUTION_FILTER.matrix
v.className: Array

### Testing display objects
current.className: MovieClip
// current.createTextField(...)
new MyTextField() called!
v.className: MyTextField
// current.createEmptyMovieClip(...)
v.className: MyMovieClip
// v.duplicateMovieClip(...)
v.className: MyMovieClip
// attachMovie('clip', ...)
new MyButton() called!
new MyTextField() called!
new MyVideo() called!
clip.className: MyMovieClip
clip.nested.className: MyMovieClip
clip.button.className: MyButton
clip.textfield.className: MyTextField
clip.video.className: MyVideo

### Testing BitmapFilters
// current.filters
v.className: Array
BITMAP_FILTERS[0].className: BevelFilter
BITMAP_FILTERS[0].clone().className: BevelFilter
current.filters[0].className: MyBevelFilter
BITMAP_FILTERS[1].className: BlurFilter
BITMAP_FILTERS[1].clone().className: BlurFilter
current.filters[1].className: MyBlurFilter
BITMAP_FILTERS[2].className: ColorMatrixFilter
BITMAP_FILTERS[2].clone().className: ColorMatrixFilter
current.filters[2].className: MyColorMatrixFilter
BITMAP_FILTERS[3].className: ConvolutionFilter
BITMAP_FILTERS[3].clone().className: ConvolutionFilter
current.filters[3].className: MyConvolutionFilter
BITMAP_FILTERS[4].className: DisplacementMapFilter
BITMAP_FILTERS[4].clone().className: DisplacementMapFilter
current.filters[4].className: MyDisplacementMapFilter
BITMAP_FILTERS[5].className: DropShadowFilter
BITMAP_FILTERS[5].clone().className: DropShadowFilter
current.filters[5].className: MyDropShadowFilter
BITMAP_FILTERS[6].className: GlowFilter
BITMAP_FILTERS[6].clone().className: GlowFilter
current.filters[6].className: MyGlowFilter
BITMAP_FILTERS[7].className: GradientBevelFilter
BITMAP_FILTERS[7].clone().className: GradientBevelFilter
current.filters[7].className: MyGradientBevelFilter
BITMAP_FILTERS[8].className: GradientGlowFilter
BITMAP_FILTERS[8].clone().className: GradientGlowFilter
current.filters[8].className: MyGradientGlowFilter

### Testing Rectangle
// A_RECTANGLE.clone()
flash getter called!
geom getter called!
Rectangle getter called!
new MyRectangle(-10, -20, 20, 40) called!
v.className: MyRectangle
// A_RECTANGLE.union(ANOTHER_RECTANGLE)
flash getter called!
geom getter called!
Rectangle getter called!
new MyRectangle() called!
v.className: MyRectangle
// A_RECTANGLE.intersection(ANOTHER_RECTANGLE)
flash getter called!
geom getter called!
Rectangle getter called!
new MyRectangle() called!
v.className: MyRectangle
// clip.scrollRect
flash getter called!
geom getter called!
Rectangle getter called!
new MyRectangle(-10, -20, 20, 40) called!
clip.scrollRect.className: MyRectangle
// clip.scale9Grid
flash getter called!
geom getter called!
Rectangle getter called!
new MyRectangle(-10, -20, 20, 40) called!
clip.scale9Grid.className: MyRectangle

### Testing Matrix
// A_MATRIX.clone()
flash getter called!
geom getter called!
Matrix getter called!
new MyMatrix(1, 2, 3, 4, 5, 6) called!
v.className: MyMatrix
// A_TRANSFORM.matrix
flash getter called!
geom getter called!
Matrix getter called!
new MyMatrix(1, 0, 0, 1, 0, 0) called!
v.className: MyMatrix

### Testing (Color)Transform
// clip.transform
flash getter called!
geom getter called!
Transform getter called!
new MyTransform(_level0.clip) called!
v.className: MyTransform
// A_TRANSFORM.colorTransform
flash getter called!
geom getter called!
ColorTransform getter called!
new MyColorTransform(1, 1, 1, 1, 0, 0, 0, 0) called!
v.className: MyColorTransform

### Testing Point
// A_DISPLACEMENT_MAP_FILTER.mapPoint
flash getter called!
geom getter called!
Point getter called!
new MyPoint(5, -5) called!
v.className: MyPoint
// A_MATRIX.transformPoint(A_POINT)
flash getter called!
geom getter called!
Point getter called!
new MyPoint(-5, -4) called!
v.className: MyPoint
// A_MATRIX.deltaTransformPoint(A_POINT)
flash getter called!
geom getter called!
Point getter called!
new MyPoint(-10, -10) called!
v.className: MyPoint
// A_POINT.clone()
flash getter called!
geom getter called!
Point getter called!
new MyPoint(5, -5) called!
v.className: MyPoint
// A_POINT.add(A_POINT)
flash getter called!
geom getter called!
Point getter called!
new MyPoint(10, -10) called!
v.className: MyPoint
// A_POINT.subtract(A_POINT)
flash getter called!
geom getter called!
Point getter called!
new MyPoint(0, 0) called!
v.className: MyPoint
// POINT_CLASS.polar(0, 0)
flash getter called!
geom getter called!
Point getter called!
new MyPoint(0, 0) called!
v.className: MyPoint
// POINT_CLASS.interpolate(A_POINT, A_POINT, 0)
flash getter called!
geom getter called!
Point getter called!
new MyPoint(5, -5) called!
v.className: MyPoint
// A_RECTANGLE.size
flash getter called!
geom getter called!
Point getter called!
new MyPoint(20, 40) called!
v.className: MyPoint
// A_RECTANGLE.topLeft
flash getter called!
geom getter called!
Point getter called!
new MyPoint(-10, -20) called!
v.className: MyPoint
// A_RECTANGLE.bottomRight
flash getter called!
geom getter called!
Point getter called!
new MyPoint(10, 20) called!
v.className: MyPoint

### Testing TextFormat
TextFormat getter called!
new MyTextFormat() called!
// A_STYLE_SHEET.transform({})
TextFormat getter called!
new MyTextFormat() called!
v.className: MyTextFormat
textfieldCustom.className: MyTextField
// textfieldCustom.getNewTextFormat()
v.className: MyTextFormat
// clip.textfield.getTextFormat()
v.className: MyTextFormat
textfieldOrig.className: TextField
// textfieldOrig.getTextFormat()
v.className: MyTextFormat
// textfieldOrig.getNewTextFormat()
v.className: MyTextFormat
