avm1: Require some more prototypes
Since they are never `None`.
This commit is contained in:
parent
491ffbbf09
commit
bc73301592
|
@ -740,9 +740,8 @@ impl<'gc> TObject<'gc> for FunctionObject<'gc> {
|
|||
activation: &mut Activation<'_, 'gc, '_>,
|
||||
prototype: Object<'gc>,
|
||||
) -> Result<Object<'gc>, Error<'gc>> {
|
||||
let base = ScriptObject::new(activation.context.gc_context, Some(prototype));
|
||||
let fn_object = FunctionObject {
|
||||
base,
|
||||
Ok(FunctionObject {
|
||||
base: ScriptObject::new(activation.context.gc_context, Some(prototype)),
|
||||
data: GcCell::allocate(
|
||||
activation.context.gc_context,
|
||||
FunctionObjectData {
|
||||
|
@ -750,9 +749,8 @@ impl<'gc> TObject<'gc> for FunctionObject<'gc> {
|
|||
constructor: None,
|
||||
},
|
||||
),
|
||||
};
|
||||
|
||||
Ok(fn_object.into())
|
||||
}
|
||||
.into())
|
||||
}
|
||||
|
||||
fn delete(&self, activation: &mut Activation<'_, 'gc, '_>, name: AvmString<'gc>) -> bool {
|
||||
|
|
|
@ -571,7 +571,7 @@ pub fn create_globals<'gc>(
|
|||
let selection_proto = selection::create_proto(gc_context, object_proto);
|
||||
|
||||
let (broadcaster_functions, as_broadcaster) =
|
||||
as_broadcaster::create(gc_context, Some(object_proto), function_proto);
|
||||
as_broadcaster::create(gc_context, object_proto, function_proto);
|
||||
|
||||
let movie_clip_loader_proto = movie_clip_loader::create_proto(
|
||||
gc_context,
|
||||
|
@ -1047,12 +1047,11 @@ pub fn create_globals<'gc>(
|
|||
Attribute::DONT_ENUM,
|
||||
);
|
||||
|
||||
let system_security = system_security::create(gc_context, Some(object_proto), function_proto);
|
||||
let system_capabilities =
|
||||
system_capabilities::create(gc_context, Some(object_proto), function_proto);
|
||||
let system_security = system_security::create(gc_context, object_proto, function_proto);
|
||||
let system_capabilities = system_capabilities::create(gc_context, object_proto, function_proto);
|
||||
let system_ime = system_ime::create(
|
||||
gc_context,
|
||||
Some(object_proto),
|
||||
object_proto,
|
||||
function_proto,
|
||||
broadcaster_functions,
|
||||
array_proto,
|
||||
|
@ -1060,7 +1059,7 @@ pub fn create_globals<'gc>(
|
|||
|
||||
let system = system::create(
|
||||
gc_context,
|
||||
Some(object_proto),
|
||||
object_proto,
|
||||
function_proto,
|
||||
system_security,
|
||||
system_capabilities,
|
||||
|
@ -1071,7 +1070,7 @@ pub fn create_globals<'gc>(
|
|||
globals.define_value(
|
||||
gc_context,
|
||||
"Math",
|
||||
Value::Object(math::create(gc_context, Some(object_proto), function_proto)),
|
||||
Value::Object(math::create(gc_context, object_proto, function_proto)),
|
||||
Attribute::DONT_ENUM,
|
||||
);
|
||||
globals.define_value(
|
||||
|
@ -1079,7 +1078,7 @@ pub fn create_globals<'gc>(
|
|||
"Mouse",
|
||||
Value::Object(mouse::create_mouse_object(
|
||||
gc_context,
|
||||
Some(object_proto),
|
||||
object_proto,
|
||||
function_proto,
|
||||
broadcaster_functions,
|
||||
array_proto,
|
||||
|
@ -1091,7 +1090,7 @@ pub fn create_globals<'gc>(
|
|||
"Key",
|
||||
Value::Object(key::create_key_object(
|
||||
gc_context,
|
||||
Some(object_proto),
|
||||
object_proto,
|
||||
function_proto,
|
||||
broadcaster_functions,
|
||||
array_proto,
|
||||
|
@ -1103,8 +1102,8 @@ pub fn create_globals<'gc>(
|
|||
"Stage",
|
||||
Value::Object(stage::create_stage_object(
|
||||
gc_context,
|
||||
Some(object_proto),
|
||||
Some(array_proto),
|
||||
object_proto,
|
||||
array_proto,
|
||||
function_proto,
|
||||
broadcaster_functions,
|
||||
)),
|
||||
|
@ -1115,7 +1114,7 @@ pub fn create_globals<'gc>(
|
|||
"Accessibility",
|
||||
Value::Object(accessibility::create_accessibility_object(
|
||||
gc_context,
|
||||
Some(object_proto),
|
||||
object_proto,
|
||||
function_proto,
|
||||
)),
|
||||
Attribute::DONT_ENUM,
|
||||
|
|
|
@ -41,10 +41,10 @@ pub fn update_properties<'gc>(
|
|||
|
||||
pub fn create_accessibility_object<'gc>(
|
||||
gc_context: MutationContext<'gc, '_>,
|
||||
proto: Option<Object<'gc>>,
|
||||
proto: Object<'gc>,
|
||||
fn_proto: Object<'gc>,
|
||||
) -> Object<'gc> {
|
||||
let accessibility = ScriptObject::new(gc_context, proto);
|
||||
let accessibility = ScriptObject::new(gc_context, Some(proto));
|
||||
define_properties_on(OBJECT_DECLS, gc_context, accessibility, fn_proto);
|
||||
accessibility.into()
|
||||
}
|
||||
|
|
|
@ -18,10 +18,10 @@ const OBJECT_DECLS: &[Declaration] = declare_properties! {
|
|||
|
||||
pub fn create<'gc>(
|
||||
gc_context: MutationContext<'gc, '_>,
|
||||
proto: Option<Object<'gc>>,
|
||||
proto: Object<'gc>,
|
||||
fn_proto: Object<'gc>,
|
||||
) -> (BroadcasterFunctions<'gc>, Object<'gc>) {
|
||||
let object = ScriptObject::new(gc_context, proto);
|
||||
let object = ScriptObject::new(gc_context, Some(proto));
|
||||
|
||||
let define_as_object = |index: usize| -> Object<'gc> {
|
||||
match OBJECT_DECLS[index].define_on(gc_context, object, fn_proto) {
|
||||
|
|
|
@ -408,7 +408,7 @@ pub fn create_proto<'gc>(
|
|||
proto: Object<'gc>,
|
||||
fn_proto: Object<'gc>,
|
||||
) -> Object<'gc> {
|
||||
let object = BevelFilterObject::empty_object(gc_context, Some(proto));
|
||||
let object = BevelFilterObject::empty_object(gc_context, proto);
|
||||
let script_object = object.as_script_object().unwrap();
|
||||
define_properties_on(PROTO_DECLS, gc_context, script_object, fn_proto);
|
||||
object.into()
|
||||
|
|
|
@ -380,7 +380,7 @@ pub fn clone<'gc>(
|
|||
if !bitmap_data.disposed() {
|
||||
let new_bitmap_data = BitmapDataObject::empty_object(
|
||||
activation.context.gc_context,
|
||||
Some(activation.context.avm1.prototypes().bitmap_data),
|
||||
activation.context.avm1.prototypes().bitmap_data,
|
||||
);
|
||||
|
||||
new_bitmap_data
|
||||
|
@ -1172,7 +1172,7 @@ pub fn compare<'gc>(
|
|||
match BitmapData::compare(&this_bitmap_data, &other_bitmap_data) {
|
||||
Some(bitmap_data) => Ok(BitmapDataObject::with_bitmap_data(
|
||||
activation.context.gc_context,
|
||||
Some(activation.context.avm1.prototypes().bitmap_data),
|
||||
activation.context.avm1.prototypes().bitmap_data,
|
||||
bitmap_data,
|
||||
)
|
||||
.into()),
|
||||
|
@ -1185,7 +1185,7 @@ pub fn create_proto<'gc>(
|
|||
proto: Object<'gc>,
|
||||
fn_proto: Object<'gc>,
|
||||
) -> Object<'gc> {
|
||||
let bitmap_data_object = BitmapDataObject::empty_object(gc_context, Some(proto));
|
||||
let bitmap_data_object = BitmapDataObject::empty_object(gc_context, proto);
|
||||
let object = bitmap_data_object.as_script_object().unwrap();
|
||||
define_properties_on(PROTO_DECLS, gc_context, object, fn_proto);
|
||||
bitmap_data_object.into()
|
||||
|
@ -1216,7 +1216,7 @@ pub fn load_bitmap<'gc>(
|
|||
if let Some(bitmap) = renderer.get_bitmap_pixels(bitmap_handle) {
|
||||
let new_bitmap_data = BitmapDataObject::empty_object(
|
||||
activation.context.gc_context,
|
||||
Some(activation.context.avm1.prototypes().bitmap_data),
|
||||
activation.context.avm1.prototypes().bitmap_data,
|
||||
);
|
||||
|
||||
let width = bitmap.width();
|
||||
|
|
|
@ -120,7 +120,7 @@ pub fn create_proto<'gc>(
|
|||
proto: Object<'gc>,
|
||||
fn_proto: Object<'gc>,
|
||||
) -> Object<'gc> {
|
||||
let blur_filter = BlurFilterObject::empty_object(gc_context, Some(proto));
|
||||
let blur_filter = BlurFilterObject::empty_object(gc_context, proto);
|
||||
let object = blur_filter.as_script_object().unwrap();
|
||||
define_properties_on(PROTO_DECLS, gc_context, object, fn_proto);
|
||||
blur_filter.into()
|
||||
|
|
|
@ -65,7 +65,7 @@ pub fn create_proto<'gc>(
|
|||
proto: Object<'gc>,
|
||||
fn_proto: Object<'gc>,
|
||||
) -> Object<'gc> {
|
||||
let boolean_proto = ValueObject::empty_box(gc_context, Some(proto));
|
||||
let boolean_proto = ValueObject::empty_box(gc_context, proto);
|
||||
let object = boolean_proto.as_script_object().unwrap();
|
||||
define_properties_on(PROTO_DECLS, gc_context, object, fn_proto);
|
||||
boolean_proto
|
||||
|
|
|
@ -68,7 +68,7 @@ pub fn create_proto<'gc>(
|
|||
proto: Object<'gc>,
|
||||
fn_proto: Object<'gc>,
|
||||
) -> Object<'gc> {
|
||||
let color_matrix_filter = ColorMatrixFilterObject::empty_object(gc_context, Some(proto));
|
||||
let color_matrix_filter = ColorMatrixFilterObject::empty_object(gc_context, proto);
|
||||
let object = color_matrix_filter.as_script_object().unwrap();
|
||||
define_properties_on(PROTO_DECLS, gc_context, object, fn_proto);
|
||||
color_matrix_filter.into()
|
||||
|
|
|
@ -319,7 +319,7 @@ pub fn create_proto<'gc>(
|
|||
proto: Object<'gc>,
|
||||
fn_proto: Object<'gc>,
|
||||
) -> Object<'gc> {
|
||||
let filter = ConvolutionFilterObject::empty_object(gc_context, Some(proto));
|
||||
let filter = ConvolutionFilterObject::empty_object(gc_context, proto);
|
||||
let object = filter.as_script_object().unwrap();
|
||||
define_properties_on(PROTO_DECLS, gc_context, object, fn_proto);
|
||||
filter.into()
|
||||
|
|
|
@ -305,7 +305,7 @@ pub fn create_proto<'gc>(
|
|||
proto: Object<'gc>,
|
||||
fn_proto: Object<'gc>,
|
||||
) -> Object<'gc> {
|
||||
let filter = DisplacementMapFilterObject::empty_object(gc_context, Some(proto));
|
||||
let filter = DisplacementMapFilterObject::empty_object(gc_context, proto);
|
||||
let object = filter.as_script_object().unwrap();
|
||||
define_properties_on(PROTO_DECLS, gc_context, object, fn_proto);
|
||||
filter.into()
|
||||
|
|
|
@ -373,7 +373,7 @@ pub fn create_proto<'gc>(
|
|||
proto: Object<'gc>,
|
||||
fn_proto: Object<'gc>,
|
||||
) -> Object<'gc> {
|
||||
let drop_shadow_filter = DropShadowFilterObject::empty_object(gc_context, Some(proto));
|
||||
let drop_shadow_filter = DropShadowFilterObject::empty_object(gc_context, proto);
|
||||
let object = drop_shadow_filter.as_script_object().unwrap();
|
||||
define_properties_on(PROTO_DECLS, gc_context, object, fn_proto);
|
||||
drop_shadow_filter.into()
|
||||
|
|
|
@ -276,7 +276,7 @@ pub fn create_proto<'gc>(
|
|||
proto: Object<'gc>,
|
||||
fn_proto: Object<'gc>,
|
||||
) -> Object<'gc> {
|
||||
let glow_filter = GlowFilterObject::empty_object(gc_context, Some(proto));
|
||||
let glow_filter = GlowFilterObject::empty_object(gc_context, proto);
|
||||
let object = glow_filter.as_script_object().unwrap();
|
||||
define_properties_on(PROTO_DECLS, gc_context, object, fn_proto);
|
||||
glow_filter.into()
|
||||
|
|
|
@ -451,7 +451,7 @@ pub fn create_proto<'gc>(
|
|||
proto: Object<'gc>,
|
||||
fn_proto: Object<'gc>,
|
||||
) -> Object<'gc> {
|
||||
let color_matrix_filter = GradientBevelFilterObject::empty_object(gc_context, Some(proto));
|
||||
let color_matrix_filter = GradientBevelFilterObject::empty_object(gc_context, proto);
|
||||
let object = color_matrix_filter.as_script_object().unwrap();
|
||||
define_properties_on(PROTO_DECLS, gc_context, object, fn_proto);
|
||||
color_matrix_filter.into()
|
||||
|
|
|
@ -451,7 +451,7 @@ pub fn create_proto<'gc>(
|
|||
proto: Object<'gc>,
|
||||
fn_proto: Object<'gc>,
|
||||
) -> Object<'gc> {
|
||||
let color_matrix_filter = GradientGlowFilterObject::empty_object(gc_context, Some(proto));
|
||||
let color_matrix_filter = GradientGlowFilterObject::empty_object(gc_context, proto);
|
||||
let object = color_matrix_filter.as_script_object().unwrap();
|
||||
define_properties_on(PROTO_DECLS, gc_context, object, fn_proto);
|
||||
color_matrix_filter.into()
|
||||
|
|
|
@ -67,12 +67,12 @@ pub fn get_code<'gc>(
|
|||
|
||||
pub fn create_key_object<'gc>(
|
||||
gc_context: MutationContext<'gc, '_>,
|
||||
proto: Option<Object<'gc>>,
|
||||
proto: Object<'gc>,
|
||||
fn_proto: Object<'gc>,
|
||||
broadcaster_functions: BroadcasterFunctions<'gc>,
|
||||
array_proto: Object<'gc>,
|
||||
) -> Object<'gc> {
|
||||
let key = ScriptObject::new(gc_context, proto);
|
||||
let key = ScriptObject::new(gc_context, Some(proto));
|
||||
broadcaster_functions.initialize(gc_context, key.into(), array_proto);
|
||||
define_properties_on(OBJECT_DECLS, gc_context, key, fn_proto);
|
||||
key.into()
|
||||
|
|
|
@ -158,10 +158,10 @@ pub fn random<'gc>(
|
|||
|
||||
pub fn create<'gc>(
|
||||
gc_context: MutationContext<'gc, '_>,
|
||||
proto: Option<Object<'gc>>,
|
||||
proto: Object<'gc>,
|
||||
fn_proto: Object<'gc>,
|
||||
) -> Object<'gc> {
|
||||
let math = ScriptObject::new(gc_context, proto);
|
||||
let math = ScriptObject::new(gc_context, Some(proto));
|
||||
define_properties_on(OBJECT_DECLS, gc_context, math, fn_proto);
|
||||
math.into()
|
||||
}
|
||||
|
@ -174,7 +174,7 @@ mod tests {
|
|||
fn setup<'gc>(activation: &mut Activation<'_, 'gc, '_>) -> Object<'gc> {
|
||||
create(
|
||||
activation.context.gc_context,
|
||||
Some(activation.context.avm1.prototypes().object),
|
||||
activation.context.avm1.prototypes().object,
|
||||
activation.context.avm1.prototypes().function,
|
||||
)
|
||||
}
|
||||
|
@ -392,7 +392,7 @@ mod tests {
|
|||
with_avm(19, |activation, _root| -> Result<(), Error> {
|
||||
let math = create(
|
||||
activation.context.gc_context,
|
||||
Some(activation.context.avm1.prototypes().object),
|
||||
activation.context.avm1.prototypes().object,
|
||||
activation.context.avm1.prototypes().function,
|
||||
);
|
||||
|
||||
|
@ -418,7 +418,7 @@ mod tests {
|
|||
with_avm(19, |activation, _root| -> Result<(), Error> {
|
||||
let math = create(
|
||||
activation.context.gc_context,
|
||||
Some(activation.context.avm1.prototypes().object),
|
||||
activation.context.avm1.prototypes().object,
|
||||
activation.context.avm1.prototypes().function,
|
||||
);
|
||||
|
||||
|
|
|
@ -32,12 +32,12 @@ pub fn hide_mouse<'gc>(
|
|||
|
||||
pub fn create_mouse_object<'gc>(
|
||||
gc_context: MutationContext<'gc, '_>,
|
||||
proto: Option<Object<'gc>>,
|
||||
proto: Object<'gc>,
|
||||
fn_proto: Object<'gc>,
|
||||
broadcaster_functions: BroadcasterFunctions<'gc>,
|
||||
array_proto: Object<'gc>,
|
||||
) -> Object<'gc> {
|
||||
let mouse = ScriptObject::new(gc_context, proto);
|
||||
let mouse = ScriptObject::new(gc_context, Some(proto));
|
||||
broadcaster_functions.initialize(gc_context, mouse.into(), array_proto);
|
||||
define_properties_on(OBJECT_DECLS, gc_context, mouse, fn_proto);
|
||||
mouse.into()
|
||||
|
|
|
@ -83,7 +83,7 @@ pub fn create_proto<'gc>(
|
|||
proto: Object<'gc>,
|
||||
fn_proto: Object<'gc>,
|
||||
) -> Object<'gc> {
|
||||
let number_proto = ValueObject::empty_box(gc_context, Some(proto));
|
||||
let number_proto = ValueObject::empty_box(gc_context, proto);
|
||||
let object = number_proto.as_script_object().unwrap();
|
||||
define_properties_on(PROTO_DECLS, gc_context, object, fn_proto);
|
||||
number_proto
|
||||
|
|
|
@ -555,7 +555,7 @@ pub fn create_proto<'gc>(
|
|||
proto: Object<'gc>,
|
||||
fn_proto: Object<'gc>,
|
||||
) -> Object<'gc> {
|
||||
let shared_obj = SharedObject::empty_shared_obj(gc_context, Some(proto));
|
||||
let shared_obj = SharedObject::empty_shared_obj(gc_context, proto);
|
||||
let object = shared_obj.as_script_object().unwrap();
|
||||
define_properties_on(PROTO_DECLS, gc_context, object, fn_proto);
|
||||
shared_obj.into()
|
||||
|
|
|
@ -60,7 +60,7 @@ pub fn create_proto<'gc>(
|
|||
proto: Object<'gc>,
|
||||
fn_proto: Object<'gc>,
|
||||
) -> Object<'gc> {
|
||||
let sound = SoundObject::empty_sound(gc_context, Some(proto));
|
||||
let sound = SoundObject::empty_sound(gc_context, proto);
|
||||
let object = sound.as_script_object().unwrap();
|
||||
define_properties_on(PROTO_DECLS, gc_context, object, fn_proto);
|
||||
sound.into()
|
||||
|
|
|
@ -22,13 +22,13 @@ const OBJECT_DECLS: &[Declaration] = declare_properties! {
|
|||
|
||||
pub fn create_stage_object<'gc>(
|
||||
gc_context: MutationContext<'gc, '_>,
|
||||
proto: Option<Object<'gc>>,
|
||||
array_proto: Option<Object<'gc>>,
|
||||
proto: Object<'gc>,
|
||||
array_proto: Object<'gc>,
|
||||
fn_proto: Object<'gc>,
|
||||
broadcaster_functions: BroadcasterFunctions<'gc>,
|
||||
) -> Object<'gc> {
|
||||
let stage = ScriptObject::new(gc_context, proto);
|
||||
broadcaster_functions.initialize(gc_context, stage.into(), array_proto.unwrap());
|
||||
let stage = ScriptObject::new(gc_context, Some(proto));
|
||||
broadcaster_functions.initialize(gc_context, stage.into(), array_proto);
|
||||
define_properties_on(OBJECT_DECLS, gc_context, stage, fn_proto);
|
||||
stage.into()
|
||||
}
|
||||
|
|
|
@ -94,7 +94,7 @@ pub fn create_proto<'gc>(
|
|||
proto: Object<'gc>,
|
||||
fn_proto: Object<'gc>,
|
||||
) -> Object<'gc> {
|
||||
let string_proto = ValueObject::empty_box(gc_context, Some(proto));
|
||||
let string_proto = ValueObject::empty_box(gc_context, proto);
|
||||
let object = string_proto.as_script_object().unwrap();
|
||||
define_properties_on(PROTO_DECLS, gc_context, object, fn_proto);
|
||||
string_proto
|
||||
|
|
|
@ -518,13 +518,13 @@ pub fn on_status<'gc>(
|
|||
|
||||
pub fn create<'gc>(
|
||||
gc_context: MutationContext<'gc, '_>,
|
||||
proto: Option<Object<'gc>>,
|
||||
proto: Object<'gc>,
|
||||
fn_proto: Object<'gc>,
|
||||
security: Object<'gc>,
|
||||
capabilities: Object<'gc>,
|
||||
ime: Object<'gc>,
|
||||
) -> Object<'gc> {
|
||||
let system = ScriptObject::new(gc_context, proto);
|
||||
let system = ScriptObject::new(gc_context, Some(proto));
|
||||
define_properties_on(OBJECT_DECLS, gc_context, system, fn_proto);
|
||||
system.define_value(gc_context, "IME", ime.into(), Attribute::empty());
|
||||
system.define_value(gc_context, "security", security.into(), Attribute::empty());
|
||||
|
|
|
@ -251,10 +251,10 @@ pub fn get_max_idc_level<'gc>(
|
|||
|
||||
pub fn create<'gc>(
|
||||
gc_context: MutationContext<'gc, '_>,
|
||||
proto: Option<Object<'gc>>,
|
||||
proto: Object<'gc>,
|
||||
fn_proto: Object<'gc>,
|
||||
) -> Object<'gc> {
|
||||
let capabilities = ScriptObject::new(gc_context, proto);
|
||||
let capabilities = ScriptObject::new(gc_context, Some(proto));
|
||||
define_properties_on(OBJECT_DECLS, gc_context, capabilities, fn_proto);
|
||||
capabilities.into()
|
||||
}
|
||||
|
|
|
@ -81,12 +81,12 @@ fn set_enabled<'gc>(
|
|||
|
||||
pub fn create<'gc>(
|
||||
gc_context: MutationContext<'gc, '_>,
|
||||
proto: Option<Object<'gc>>,
|
||||
proto: Object<'gc>,
|
||||
fn_proto: Object<'gc>,
|
||||
broadcaster_functions: BroadcasterFunctions<'gc>,
|
||||
array_proto: Object<'gc>,
|
||||
) -> Object<'gc> {
|
||||
let ime = ScriptObject::new(gc_context, proto);
|
||||
let ime = ScriptObject::new(gc_context, Some(proto));
|
||||
broadcaster_functions.initialize(gc_context, ime.into(), array_proto);
|
||||
define_properties_on(OBJECT_DECLS, gc_context, ime, fn_proto);
|
||||
ime.into()
|
||||
|
|
|
@ -97,10 +97,10 @@ fn policy_file_resolver<'gc>(
|
|||
|
||||
pub fn create<'gc>(
|
||||
gc_context: MutationContext<'gc, '_>,
|
||||
proto: Option<Object<'gc>>,
|
||||
proto: Object<'gc>,
|
||||
fn_proto: Object<'gc>,
|
||||
) -> Object<'gc> {
|
||||
let security = ScriptObject::new(gc_context, proto);
|
||||
let security = ScriptObject::new(gc_context, Some(proto));
|
||||
define_properties_on(OBJECT_DECLS, gc_context, security, fn_proto);
|
||||
security.into()
|
||||
}
|
||||
|
|
|
@ -67,7 +67,7 @@ pub fn create_proto<'gc>(
|
|||
proto: Object<'gc>,
|
||||
fn_proto: Object<'gc>,
|
||||
) -> Object<'gc> {
|
||||
let transform_object = TransformObject::empty(gc_context, Some(proto));
|
||||
let transform_object = TransformObject::empty(gc_context, proto);
|
||||
let object = transform_object.as_script_object().unwrap();
|
||||
define_properties_on(PROTO_DECLS, gc_context, object, fn_proto);
|
||||
transform_object.into()
|
||||
|
|
|
@ -290,7 +290,7 @@ pub fn create_proto<'gc>(
|
|||
proto: Object<'gc>,
|
||||
fn_proto: Object<'gc>,
|
||||
) -> Object<'gc> {
|
||||
let xml_proto = XmlObject::empty(gc_context, Some(proto));
|
||||
let xml_proto = XmlObject::empty(gc_context, proto);
|
||||
let object = xml_proto.as_script_object().unwrap();
|
||||
define_properties_on(PROTO_DECLS, gc_context, object, fn_proto);
|
||||
xml_proto.into()
|
||||
|
|
|
@ -97,11 +97,11 @@ impl<'gc> BevelFilterObject<'gc> {
|
|||
[set_type, get_type, type_, BevelFilterType],
|
||||
);
|
||||
|
||||
pub fn empty_object(gc_context: MutationContext<'gc, '_>, proto: Option<Object<'gc>>) -> Self {
|
||||
pub fn empty_object(gc_context: MutationContext<'gc, '_>, proto: Object<'gc>) -> Self {
|
||||
BevelFilterObject(GcCell::allocate(
|
||||
gc_context,
|
||||
BevelFilterData {
|
||||
base: ScriptObject::new(gc_context, proto),
|
||||
base: ScriptObject::new(gc_context, Some(proto)),
|
||||
angle: 44.9999999772279,
|
||||
blur_x: 4.0,
|
||||
blur_y: 4.0,
|
||||
|
|
|
@ -34,19 +34,19 @@ impl<'gc> BitmapDataObject<'gc> {
|
|||
[data, GcCell<'gc, BitmapData<'gc>>, set => set_bitmap_data, get => bitmap_data],
|
||||
);
|
||||
|
||||
pub fn empty_object(gc_context: MutationContext<'gc, '_>, proto: Option<Object<'gc>>) -> Self {
|
||||
pub fn empty_object(gc_context: MutationContext<'gc, '_>, proto: Object<'gc>) -> Self {
|
||||
Self::with_bitmap_data(gc_context, proto, Default::default())
|
||||
}
|
||||
|
||||
pub fn with_bitmap_data(
|
||||
gc_context: MutationContext<'gc, '_>,
|
||||
proto: Option<Object<'gc>>,
|
||||
proto: Object<'gc>,
|
||||
bitmap_data: BitmapData<'gc>,
|
||||
) -> Self {
|
||||
Self(GcCell::allocate(
|
||||
gc_context,
|
||||
BitmapDataData {
|
||||
base: ScriptObject::new(gc_context, proto),
|
||||
base: ScriptObject::new(gc_context, Some(proto)),
|
||||
data: GcCell::allocate(gc_context, bitmap_data),
|
||||
},
|
||||
))
|
||||
|
|
|
@ -39,11 +39,11 @@ impl<'gc> BlurFilterObject<'gc> {
|
|||
[set_quality, quality, quality, i32],
|
||||
);
|
||||
|
||||
pub fn empty_object(gc_context: MutationContext<'gc, '_>, proto: Option<Object<'gc>>) -> Self {
|
||||
pub fn empty_object(gc_context: MutationContext<'gc, '_>, proto: Object<'gc>) -> Self {
|
||||
BlurFilterObject(GcCell::allocate(
|
||||
gc_context,
|
||||
BlurFilterData {
|
||||
base: ScriptObject::new(gc_context, proto),
|
||||
base: ScriptObject::new(gc_context, Some(proto)),
|
||||
blur_x: 4.0,
|
||||
blur_y: 4.0,
|
||||
quality: 1,
|
||||
|
|
|
@ -31,11 +31,11 @@ impl fmt::Debug for ColorMatrixFilterObject<'_> {
|
|||
impl<'gc> ColorMatrixFilterObject<'gc> {
|
||||
add_field_accessors!([set_matrix, matrix, matrix, [f64; 4 * 5]],);
|
||||
|
||||
pub fn empty_object(gc_context: MutationContext<'gc, '_>, proto: Option<Object<'gc>>) -> Self {
|
||||
pub fn empty_object(gc_context: MutationContext<'gc, '_>, proto: Object<'gc>) -> Self {
|
||||
ColorMatrixFilterObject(GcCell::allocate(
|
||||
gc_context,
|
||||
ColorMatrixFilterData {
|
||||
base: ScriptObject::new(gc_context, proto),
|
||||
base: ScriptObject::new(gc_context, Some(proto)),
|
||||
matrix: [
|
||||
1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0,
|
||||
0.0, 0.0, 1.0, 0.0,
|
||||
|
|
|
@ -79,11 +79,11 @@ impl<'gc> ConvolutionFilterObject<'gc> {
|
|||
self.update_matrix_length(gc_context);
|
||||
}
|
||||
|
||||
pub fn empty_object(gc_context: MutationContext<'gc, '_>, proto: Option<Object<'gc>>) -> Self {
|
||||
pub fn empty_object(gc_context: MutationContext<'gc, '_>, proto: Object<'gc>) -> Self {
|
||||
ConvolutionFilterObject(GcCell::allocate(
|
||||
gc_context,
|
||||
ConvolutionFilterData {
|
||||
base: ScriptObject::new(gc_context, proto),
|
||||
base: ScriptObject::new(gc_context, Some(proto)),
|
||||
alpha: 0.0,
|
||||
bias: 0.0,
|
||||
clamp: true,
|
||||
|
|
|
@ -14,7 +14,7 @@ macro_rules! impl_custom_object {
|
|||
activation: &mut $crate::avm1::Activation<'_, 'gc, '_>,
|
||||
this: $crate::avm1::Object<'gc>,
|
||||
) -> Result<$crate::avm1::Object<'gc>, $crate::avm1::Error<'gc>> {
|
||||
Ok($obj_type::$new(activation.context.gc_context, Some(this)).into())
|
||||
Ok($obj_type::$new(activation.context.gc_context, this).into())
|
||||
}
|
||||
};
|
||||
|
||||
|
|
|
@ -93,11 +93,11 @@ impl<'gc> DisplacementMapFilterObject<'gc> {
|
|||
[set_scale_y, scale_y, scale_y, f64],
|
||||
);
|
||||
|
||||
pub fn empty_object(gc_context: MutationContext<'gc, '_>, proto: Option<Object<'gc>>) -> Self {
|
||||
pub fn empty_object(gc_context: MutationContext<'gc, '_>, proto: Object<'gc>) -> Self {
|
||||
DisplacementMapFilterObject(GcCell::allocate(
|
||||
gc_context,
|
||||
DisplacementMapFilterData {
|
||||
base: ScriptObject::new(gc_context, proto),
|
||||
base: ScriptObject::new(gc_context, Some(proto)),
|
||||
alpha: 0.0,
|
||||
color: 0,
|
||||
component_x: 0,
|
||||
|
|
|
@ -63,11 +63,11 @@ impl<'gc> DropShadowFilterObject<'gc> {
|
|||
[set_strength, strength, strength, f64],
|
||||
);
|
||||
|
||||
pub fn empty_object(gc_context: MutationContext<'gc, '_>, proto: Option<Object<'gc>>) -> Self {
|
||||
pub fn empty_object(gc_context: MutationContext<'gc, '_>, proto: Object<'gc>) -> Self {
|
||||
DropShadowFilterObject(GcCell::allocate(
|
||||
gc_context,
|
||||
DropShadowFilterData {
|
||||
base: ScriptObject::new(gc_context, proto),
|
||||
base: ScriptObject::new(gc_context, Some(proto)),
|
||||
distance: 4.0,
|
||||
hide_object: false,
|
||||
angle: 44.9999999772279,
|
||||
|
|
|
@ -54,11 +54,11 @@ impl<'gc> GlowFilterObject<'gc> {
|
|||
[set_strength, strength, strength, f64],
|
||||
);
|
||||
|
||||
pub fn empty_object(gc_context: MutationContext<'gc, '_>, proto: Option<Object<'gc>>) -> Self {
|
||||
pub fn empty_object(gc_context: MutationContext<'gc, '_>, proto: Object<'gc>) -> Self {
|
||||
GlowFilterObject(GcCell::allocate(
|
||||
gc_context,
|
||||
GlowFilterData {
|
||||
base: ScriptObject::new(gc_context, proto),
|
||||
base: ScriptObject::new(gc_context, Some(proto)),
|
||||
alpha: 1.0,
|
||||
blur_x: 6.0,
|
||||
blur_y: 6.0,
|
||||
|
|
|
@ -76,11 +76,11 @@ impl<'gc> GradientBevelFilterObject<'gc> {
|
|||
self.0.read().ratios.clone()
|
||||
}
|
||||
|
||||
pub fn empty_object(gc_context: MutationContext<'gc, '_>, proto: Option<Object<'gc>>) -> Self {
|
||||
pub fn empty_object(gc_context: MutationContext<'gc, '_>, proto: Object<'gc>) -> Self {
|
||||
GradientBevelFilterObject(GcCell::allocate(
|
||||
gc_context,
|
||||
GradientBevelFilterData {
|
||||
base: ScriptObject::new(gc_context, proto),
|
||||
base: ScriptObject::new(gc_context, Some(proto)),
|
||||
alphas: vec![],
|
||||
angle: 0.0,
|
||||
blur_x: 0.0,
|
||||
|
|
|
@ -76,11 +76,11 @@ impl<'gc> GradientGlowFilterObject<'gc> {
|
|||
self.0.read().ratios.clone()
|
||||
}
|
||||
|
||||
pub fn empty_object(gc_context: MutationContext<'gc, '_>, proto: Option<Object<'gc>>) -> Self {
|
||||
pub fn empty_object(gc_context: MutationContext<'gc, '_>, proto: Object<'gc>) -> Self {
|
||||
GradientGlowFilterObject(GcCell::allocate(
|
||||
gc_context,
|
||||
GradientGlowFilterData {
|
||||
base: ScriptObject::new(gc_context, proto),
|
||||
base: ScriptObject::new(gc_context, Some(proto)),
|
||||
alphas: vec![],
|
||||
angle: 0.0,
|
||||
blur_x: 0.0,
|
||||
|
|
|
@ -30,14 +30,11 @@ impl fmt::Debug for SharedObject<'_> {
|
|||
}
|
||||
|
||||
impl<'gc> SharedObject<'gc> {
|
||||
pub fn empty_shared_obj(
|
||||
gc_context: MutationContext<'gc, '_>,
|
||||
proto: Option<Object<'gc>>,
|
||||
) -> Self {
|
||||
pub fn empty_shared_obj(gc_context: MutationContext<'gc, '_>, proto: Object<'gc>) -> Self {
|
||||
SharedObject(GcCell::allocate(
|
||||
gc_context,
|
||||
SharedObjectData {
|
||||
base: ScriptObject::new(gc_context, proto),
|
||||
base: ScriptObject::new(gc_context, Some(proto)),
|
||||
name: None,
|
||||
},
|
||||
))
|
||||
|
|
|
@ -58,12 +58,12 @@ impl fmt::Debug for SoundObject<'_> {
|
|||
impl<'gc> SoundObject<'gc> {
|
||||
pub fn empty_sound(
|
||||
gc_context: MutationContext<'gc, '_>,
|
||||
proto: Option<Object<'gc>>,
|
||||
proto: Object<'gc>,
|
||||
) -> SoundObject<'gc> {
|
||||
SoundObject(GcCell::allocate(
|
||||
gc_context,
|
||||
SoundObjectData {
|
||||
base: ScriptObject::new(gc_context, proto),
|
||||
base: ScriptObject::new(gc_context, Some(proto)),
|
||||
sound: None,
|
||||
sound_instance: None,
|
||||
owner: None,
|
||||
|
|
|
@ -40,12 +40,12 @@ impl<'gc> StageObject<'gc> {
|
|||
pub fn for_display_object(
|
||||
gc_context: MutationContext<'gc, '_>,
|
||||
display_object: DisplayObject<'gc>,
|
||||
proto: Option<Object<'gc>>,
|
||||
proto: Object<'gc>,
|
||||
) -> Self {
|
||||
Self(GcCell::allocate(
|
||||
gc_context,
|
||||
StageObjectData {
|
||||
base: ScriptObject::new(gc_context, proto),
|
||||
base: ScriptObject::new(gc_context, Some(proto)),
|
||||
display_object,
|
||||
text_field_bindings: Vec::new(),
|
||||
},
|
||||
|
|
|
@ -27,11 +27,11 @@ impl fmt::Debug for TransformObject<'_> {
|
|||
}
|
||||
|
||||
impl<'gc> TransformObject<'gc> {
|
||||
pub fn empty(gc_context: MutationContext<'gc, '_>, proto: Option<Object<'gc>>) -> Self {
|
||||
pub fn empty(gc_context: MutationContext<'gc, '_>, proto: Object<'gc>) -> Self {
|
||||
Self(GcCell::allocate(
|
||||
gc_context,
|
||||
TransformData {
|
||||
base: ScriptObject::new(gc_context, proto),
|
||||
base: ScriptObject::new(gc_context, Some(proto)),
|
||||
clip: None,
|
||||
},
|
||||
))
|
||||
|
|
|
@ -79,14 +79,11 @@ impl<'gc> ValueObject<'gc> {
|
|||
}
|
||||
|
||||
/// Construct an empty box to be filled by a constructor.
|
||||
pub fn empty_box(
|
||||
gc_context: MutationContext<'gc, '_>,
|
||||
proto: Option<Object<'gc>>,
|
||||
) -> Object<'gc> {
|
||||
pub fn empty_box(gc_context: MutationContext<'gc, '_>, proto: Object<'gc>) -> Object<'gc> {
|
||||
ValueObject(GcCell::allocate(
|
||||
gc_context,
|
||||
ValueObjectData {
|
||||
base: ScriptObject::new(gc_context, proto),
|
||||
base: ScriptObject::new(gc_context, Some(proto)),
|
||||
value: Value::Undefined,
|
||||
},
|
||||
))
|
||||
|
|
|
@ -26,12 +26,12 @@ impl<'gc> XmlNodeObject<'gc> {
|
|||
pub fn from_xml_node(
|
||||
gc_context: MutationContext<'gc, '_>,
|
||||
mut node: XmlNode<'gc>,
|
||||
proto: Option<Object<'gc>>,
|
||||
proto: Object<'gc>,
|
||||
) -> Self {
|
||||
let object = Self(GcCell::allocate(
|
||||
gc_context,
|
||||
XmlNodeObjectData {
|
||||
base: ScriptObject::new(gc_context, proto),
|
||||
base: ScriptObject::new(gc_context, Some(proto)),
|
||||
node,
|
||||
},
|
||||
));
|
||||
|
@ -61,7 +61,7 @@ impl<'gc> TObject<'gc> for XmlNodeObject<'gc> {
|
|||
Ok(Self::from_xml_node(
|
||||
activation.context.gc_context,
|
||||
XmlNode::new(activation.context.gc_context, TEXT_NODE, Some("".into())),
|
||||
Some(this),
|
||||
this,
|
||||
)
|
||||
.into())
|
||||
}
|
||||
|
|
|
@ -80,12 +80,12 @@ pub struct XmlObjectData<'gc> {
|
|||
|
||||
impl<'gc> XmlObject<'gc> {
|
||||
/// Construct a new XML document and object pair.
|
||||
pub fn empty(gc_context: MutationContext<'gc, '_>, proto: Option<Object<'gc>>) -> Self {
|
||||
pub fn empty(gc_context: MutationContext<'gc, '_>, proto: Object<'gc>) -> Self {
|
||||
let mut root = XmlNode::new(gc_context, ELEMENT_NODE, None);
|
||||
let object = Self(GcCell::allocate(
|
||||
gc_context,
|
||||
XmlObjectData {
|
||||
base: ScriptObject::new(gc_context, proto),
|
||||
base: ScriptObject::new(gc_context, Some(proto)),
|
||||
root,
|
||||
xml_decl: None,
|
||||
doctype: None,
|
||||
|
@ -235,7 +235,7 @@ impl<'gc> TObject<'gc> for XmlObject<'gc> {
|
|||
activation: &mut Activation<'_, 'gc, '_>,
|
||||
this: Object<'gc>,
|
||||
) -> Result<Object<'gc>, Error<'gc>> {
|
||||
Ok(Self::empty(activation.context.gc_context, Some(this)).into())
|
||||
Ok(Self::empty(activation.context.gc_context, this).into())
|
||||
}
|
||||
|
||||
fn as_xml(&self) -> Option<XmlObject<'gc>> {
|
||||
|
|
|
@ -267,7 +267,7 @@ impl<'gc> TDisplayObject<'gc> for Avm1Button<'gc> {
|
|||
let object = StageObject::for_display_object(
|
||||
context.gc_context,
|
||||
(*self).into(),
|
||||
Some(context.avm1.prototypes().button),
|
||||
context.avm1.prototypes().button,
|
||||
);
|
||||
mc.object = Some(object.into());
|
||||
|
||||
|
|
|
@ -1331,7 +1331,7 @@ impl<'gc> EditText<'gc> {
|
|||
let object: Avm1Object<'gc> = Avm1StageObject::for_display_object(
|
||||
context.gc_context,
|
||||
(*self).into(),
|
||||
Some(context.avm1.prototypes().text_field),
|
||||
context.avm1.prototypes().text_field,
|
||||
)
|
||||
.into();
|
||||
|
||||
|
|
|
@ -1942,7 +1942,7 @@ impl<'gc> MovieClip<'gc> {
|
|||
let object: Avm1Object<'gc> = StageObject::for_display_object(
|
||||
activation.context.gc_context,
|
||||
self.into(),
|
||||
Some(prototype),
|
||||
prototype,
|
||||
)
|
||||
.into();
|
||||
self.0.write(activation.context.gc_context).object = Some(object.into());
|
||||
|
@ -1969,7 +1969,7 @@ impl<'gc> MovieClip<'gc> {
|
|||
let object: Avm1Object<'gc> = StageObject::for_display_object(
|
||||
context.gc_context,
|
||||
self.into(),
|
||||
Some(context.avm1.prototypes().movie_clip),
|
||||
context.avm1.prototypes().movie_clip,
|
||||
)
|
||||
.into();
|
||||
self.0.write(context.gc_context).object = Some(object.into());
|
||||
|
|
|
@ -376,7 +376,7 @@ impl<'gc> TDisplayObject<'gc> for Video<'gc> {
|
|||
let object: Avm1Object<'_> = Avm1StageObject::for_display_object(
|
||||
context.gc_context,
|
||||
(*self).into(),
|
||||
Some(context.avm1.prototypes().video),
|
||||
context.avm1.prototypes().video,
|
||||
)
|
||||
.into();
|
||||
write.object = Some(object.into());
|
||||
|
|
|
@ -364,8 +364,7 @@ impl<'gc> XmlNode<'gc> {
|
|||
Some(object) => object,
|
||||
None => {
|
||||
let proto = activation.context.avm1.prototypes().xml_node;
|
||||
XmlNodeObject::from_xml_node(activation.context.gc_context, *self, Some(proto))
|
||||
.into()
|
||||
XmlNodeObject::from_xml_node(activation.context.gc_context, *self, proto).into()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue