From 6108be135ee73e66a328aa39e41dc15180e1c21b Mon Sep 17 00:00:00 2001 From: relrelb Date: Fri, 24 Jun 2022 16:23:58 +0300 Subject: [PATCH] avm2: Port `flash.text.TextFieldType` to ActionScript --- core/src/avm2/globals.rs | 5 -- core/src/avm2/globals/flash/text.rs | 1 - .../avm2/globals/flash/text/TextFieldType.as | 6 +++ .../avm2/globals/flash/text/textfieldtype.rs | 52 ------------------- core/src/avm2/globals/globals.as | 1 + 5 files changed, 7 insertions(+), 58 deletions(-) create mode 100644 core/src/avm2/globals/flash/text/TextFieldType.as delete mode 100644 core/src/avm2/globals/flash/text/textfieldtype.rs diff --git a/core/src/avm2/globals.rs b/core/src/avm2/globals.rs index f333dea6f..65751853a 100644 --- a/core/src/avm2/globals.rs +++ b/core/src/avm2/globals.rs @@ -976,11 +976,6 @@ pub fn load_player_globals<'gc>( flash::text::textformatalign::create_class(mc), script, )?; - class( - activation, - flash::text::textfieldtype::create_class(mc), - script, - )?; class(activation, flash::text::font::create_class(mc), script)?; // package `flash.crypto` diff --git a/core/src/avm2/globals/flash/text.rs b/core/src/avm2/globals/flash/text.rs index 4213bef4b..f26b9e46e 100644 --- a/core/src/avm2/globals/flash/text.rs +++ b/core/src/avm2/globals/flash/text.rs @@ -2,6 +2,5 @@ pub mod font; pub mod textfield; -pub mod textfieldtype; pub mod textformat; pub mod textformatalign; diff --git a/core/src/avm2/globals/flash/text/TextFieldType.as b/core/src/avm2/globals/flash/text/TextFieldType.as new file mode 100644 index 000000000..cb5be99d8 --- /dev/null +++ b/core/src/avm2/globals/flash/text/TextFieldType.as @@ -0,0 +1,6 @@ +package flash.text { + public final class TextFieldType { + public static const INPUT: String = "input"; + public static const DYNAMIC: String = "dynamic"; + } +} diff --git a/core/src/avm2/globals/flash/text/textfieldtype.rs b/core/src/avm2/globals/flash/text/textfieldtype.rs deleted file mode 100644 index 844350cf4..000000000 --- a/core/src/avm2/globals/flash/text/textfieldtype.rs +++ /dev/null @@ -1,52 +0,0 @@ -//! `flash.text.TextFieldType` builtin/prototype - -use crate::avm2::activation::Activation; -use crate::avm2::class::{Class, ClassAttributes}; -use crate::avm2::method::Method; -use crate::avm2::names::{Namespace, QName}; -use crate::avm2::object::Object; -use crate::avm2::value::Value; -use crate::avm2::Error; -use gc_arena::{GcCell, MutationContext}; - -/// Implements `flash.text.TextFieldType`'s instance constructor. -pub fn instance_init<'gc>( - activation: &mut Activation<'_, 'gc, '_>, - this: Option>, - _args: &[Value<'gc>], -) -> Result, Error> { - if let Some(this) = this { - activation.super_init(this, &[])?; - } - - Ok(Value::Undefined) -} - -/// Implements `flash.text.TextFieldType`'s class constructor. -pub fn class_init<'gc>( - _activation: &mut Activation<'_, 'gc, '_>, - _this: Option>, - _args: &[Value<'gc>], -) -> Result, Error> { - Ok(Value::Undefined) -} - -/// Construct `TextFieldType`'s class. -pub fn create_class<'gc>(mc: MutationContext<'gc, '_>) -> GcCell<'gc, Class<'gc>> { - let class = Class::new( - QName::new(Namespace::package("flash.text"), "TextFieldType"), - Some(QName::new(Namespace::public(), "Object").into()), - Method::from_builtin(instance_init, "", mc), - Method::from_builtin(class_init, "", mc), - mc, - ); - - let mut write = class.write(mc); - - write.set_attributes(ClassAttributes::FINAL | ClassAttributes::SEALED); - - const CONSTANTS: &[(&str, &str)] = &[("DYNAMIC", "dynamic"), ("INPUT", "input")]; - write.define_public_constant_string_class_traits(CONSTANTS); - - class -} diff --git a/core/src/avm2/globals/globals.as b/core/src/avm2/globals/globals.as index 6b2e44d4e..35fa06ded 100644 --- a/core/src/avm2/globals/globals.as +++ b/core/src/avm2/globals/globals.as @@ -12,5 +12,6 @@ include "flash/text/TextColorType.as" include "flash/text/TextDisplayMode.as" include "flash/text/TextExtent.as" include "flash/text/TextFieldAutoSize.as" +include "flash/text/TextFieldType.as" include "flash/utils/CompressionAlgorithm.as" include "flash/utils/Endian.as"