David Wendt
d83a7c909c
avm2: Don't scan the prototype for each multiname check.
2021-12-02 16:30:21 -07:00
Moulins
6bd3c62195
avm1: Remove unnecessary clones in shared_object::recursive_deserialize_json
2021-12-02 07:12:22 +02:00
dependabot[bot]
1ffcfae78a
build(deps-dev): bump @types/chrome from 0.0.164 to 0.0.165 in /web
...
Bumps [@types/chrome](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/chrome ) from 0.0.164 to 0.0.165.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases )
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/chrome )
---
updated-dependencies:
- dependency-name: "@types/chrome"
dependency-type: direct:development
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2021-12-02 07:11:56 +02:00
dependabot[bot]
5db476657c
build(deps-dev): bump @typescript-eslint/parser in /web
...
Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser ) from 5.4.0 to 5.5.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases )
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md )
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v5.5.0/packages/parser )
---
updated-dependencies:
- dependency-name: "@typescript-eslint/parser"
dependency-type: direct:development
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
2021-12-02 07:11:44 +02:00
dependabot[bot]
e3dfeb5a44
build(deps-dev): update webpack-dev-server requirement in /web
...
Updates the requirements on [webpack-dev-server](https://github.com/webpack/webpack-dev-server ) to permit the latest version.
- [Release notes](https://github.com/webpack/webpack-dev-server/releases )
- [Changelog](https://github.com/webpack/webpack-dev-server/blob/master/CHANGELOG.md )
- [Commits](https://github.com/webpack/webpack-dev-server/compare/v4.5.0...v4.6.0 )
---
updated-dependencies:
- dependency-name: webpack-dev-server
dependency-type: direct:development
...
Signed-off-by: dependabot[bot] <support@github.com>
2021-12-01 22:38:37 +02:00
dependabot[bot]
7b54e28545
build(deps-dev): update eslint-plugin-jsdoc requirement in /web
...
Updates the requirements on [eslint-plugin-jsdoc](https://github.com/gajus/eslint-plugin-jsdoc ) to permit the latest version.
- [Release notes](https://github.com/gajus/eslint-plugin-jsdoc/releases )
- [Commits](https://github.com/gajus/eslint-plugin-jsdoc/compare/v37.0.3...v37.1.0 )
---
updated-dependencies:
- dependency-name: eslint-plugin-jsdoc
dependency-type: direct:development
...
Signed-off-by: dependabot[bot] <support@github.com>
2021-12-01 22:34:53 +02:00
dependabot[bot]
83a82628b6
build(deps-dev): bump @typescript-eslint/eslint-plugin in /web
...
Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin ) from 5.4.0 to 5.5.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases )
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md )
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v5.5.0/packages/eslint-plugin )
---
updated-dependencies:
- dependency-name: "@typescript-eslint/eslint-plugin"
dependency-type: direct:development
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
2021-12-01 22:34:33 +02:00
dependabot[bot]
7d1ac9d26b
build(deps): bump syn from 1.0.81 to 1.0.82
...
Bumps [syn](https://github.com/dtolnay/syn ) from 1.0.81 to 1.0.82.
- [Release notes](https://github.com/dtolnay/syn/releases )
- [Commits](https://github.com/dtolnay/syn/compare/1.0.81...1.0.82 )
---
updated-dependencies:
- dependency-name: syn
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2021-11-29 23:04:42 +02:00
dependabot[bot]
ea254b53b7
build(deps): bump futures from 0.3.17 to 0.3.18
...
Bumps [futures](https://github.com/rust-lang/futures-rs ) from 0.3.17 to 0.3.18.
- [Release notes](https://github.com/rust-lang/futures-rs/releases )
- [Changelog](https://github.com/rust-lang/futures-rs/blob/master/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/futures-rs/compare/0.3.17...0.3.18 )
---
updated-dependencies:
- dependency-name: futures
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2021-11-29 22:35:40 +02:00
David Wendt
fa179dc63f
avm2: Unpublish a bunch of primclass methods
2021-11-28 18:40:21 -07:00
David Wendt
6d48126124
avm2: And, finally, `uint`.
2021-11-28 18:40:21 -07:00
David Wendt
640763bfda
avm2: Also do the same for `int`
2021-11-28 18:40:21 -07:00
David Wendt
593158cb04
avm2: Also allow calling `Number` methods on the prototype in the `public` namespace.
2021-11-28 18:40:21 -07:00
David Wendt
6bfca1af5f
avm2: Expose `Boolean` methods in the `public` namespace via prototypes.
2021-11-28 18:40:21 -07:00
David Wendt
3e8f13b70a
avm2: `Number.MIN_VALUE` is the machine epsilon, not the lowest possible finite value.
2021-11-28 18:40:21 -07:00
David Wendt
7569994f1f
avm2: Impl `Boolean.toString` and `Boolean.valueOf`.
2021-11-28 18:40:21 -07:00
David Wendt
aa01a682e1
avm2: Implement `uint`'s various formatting methods, too.
2021-11-28 18:40:21 -07:00
David Wendt
e43d18f7b0
avm2: Impl `int` versions of `toFixed`, `toString`, `toExponential`, and `toPrecision`
2021-11-28 18:40:21 -07:00
David Wendt
cabfe5e20c
avm2: All documented primitive class methods are in the AS3 namespace.
2021-11-28 18:40:21 -07:00
David Wendt
9e62b05157
avm2: Implement `Number.AS3::toString` and `Number.AS3::valueOf`.
...
This method has an odd flaw that we don't emulate yet. Actually, two:
1. Precision limits that are specific to the chosen radix
2. Occasional and intermittent corruption in the resulting 0 padding; usually manifesting as `x`, `W`, or `°` characters
The first could be emulated, but I've chosen not to... because the second thing listed not only isn't really possible to emulate, but actively prohibits approx-testing the results. So I'm marking the test as ignored and hoping no movies actually rely on the precision limits in `toString`.
2021-11-28 18:40:21 -07:00
David Wendt
4a09dfa3d0
avm2: Implement `Number.toFixed` and `Number.toPrecision`
2021-11-28 18:40:21 -07:00
David Wendt
55a7a1882d
avm2: Implement `Number.toExponential`
2021-11-28 18:40:21 -07:00
David Wendt
16597e0d7b
avm2: Fill out class constants for `uint`, `int`, and `Number`.
2021-11-28 18:40:21 -07:00
relrelb
2117ad8a4c
html: Ignore <p>, <li> and <br> tags in non-multiline mode
2021-11-28 22:57:48 +02:00
relrelb
9cad582e8b
html: Do not trim text in `FormatSpans::from_html`
...
Flash preserves spaces before and after text.
But since now `quick-xml` might emit empty `Text` events, those need
to be explicitly ignored in order to retain the same text format across
tags.
2021-11-28 22:57:48 +02:00
relrelb
a027d932e4
html: Use `as_ref()` instead of `clone()`
...
This should improve performance a bit.
2021-11-28 22:57:48 +02:00
Varun Ramesh
7c87f35d8d
avm2: Implement `flash.display.PixelSnapping` ( #5718 )
...
* Add flash.display.PixelSnapping enum class
* Run 'cargo format --all'
* Add 'final' class attribute
2021-11-28 07:31:39 +02:00
Moulins
9701b817f5
core: Replace WStr<'_> and WStrMut<'_> by a single DST type WStr
2021-11-27 11:20:47 -07:00
Moulins
fd8bdeb1a8
core: improve f64's FromWStr impl
...
This avoids converting the string to UTF8 if it can't possibly
be a float
2021-11-27 11:20:47 -07:00
Moulins
ee326e31b7
core: Reduce allocations in AvmString::new_utf8
...
Also remove some useless back-and-forth conversions between
AvmString and String
2021-11-27 11:20:47 -07:00
Moulins
fa30e1bc43
chore: rename AvmString::{new -> new_utf8, new_ucs2 -> new}
2021-11-27 11:20:47 -07:00
Moulins
45fe1e86ae
core: remove AvmString::as_str, and the extra UTF8 String inside
2021-11-27 11:20:47 -07:00
Moulins
e24af59197
core: remove last instances of AvmString::as_str
2021-11-27 11:20:47 -07:00
Moulins
824263d2bc
core: adapt TextField, Font & Html handling code to use WStr
2021-11-27 11:20:47 -07:00
Moulins
f149c9efce
core: remove some AvmString::as_str calls
2021-11-27 11:20:47 -07:00
Moulins
053758d77c
avm2: use WString in QName methods
2021-11-27 11:20:47 -07:00
Moulins
5ca911209b
core: implement WStr::join
2021-11-27 11:20:47 -07:00
Moulins
c496f81f13
avm1: remove AvmString::as_str usage in activation.rs and movie_clip.rs
2021-11-27 11:20:47 -07:00
Moulins
87400b829d
core: use WStrings for display object's frame and scene labels
2021-11-27 11:20:47 -07:00
Moulins
84b4e33036
core: implement FromWStr for various enum types
2021-11-27 11:20:47 -07:00
Moulins
b894d0c97f
avm1: adapt parseInt, escape & unescape to use WStr API
2021-11-27 11:20:47 -07:00
Moulins
c2349ae012
xml: use AvmString in xml code
...
This has the nice side-effect of reducing string cloning, because we can
just pass AvmStrings around instead.
2021-11-27 11:20:47 -07:00
Moulins
5db23ddbf3
avm2: use WStr in date parsing logic
2021-11-27 11:20:47 -07:00
Moulins
f49ce49d28
core: add FromWStr trait and WStr::parse
2021-11-27 11:20:47 -07:00
Moulins
8863b54db0
avm1: don't use &str for activation's path & variable logic
2021-11-27 11:20:47 -07:00
Moulins
1d9d7e6942
avm1: don't use &str methods when parsing enum parameters in MovieClip
2021-11-27 11:20:47 -07:00
Moulins
d850085d2b
avm1: partially rewrite Value::primitive_as_number
2021-11-27 11:20:47 -07:00
Moulins
4a09088d42
avm2: rewrite regexp module to not rely on AvmString::as_str
...
This is a little tricky, because we have to map the utf8 indices
returned by the regex engine to utf16 indices usable by Ruffle.
To limit the impact on performance, the regex, the string we're
currently matching on, and the last known (utf8, utf16) positions
are cached, avoiding extra utf8 conversions in common use cases
where a single string is repeatedly searched with increasing
`lastIndex`.
2021-11-27 11:20:47 -07:00
Moulins
23cbe4c2fd
core: Add `string::Pattern` trait, based on `std::str::Pattern`
...
This allows `Str::{find, rfind, split}` to accept multiple types
2021-11-27 11:20:47 -07:00
Moulins
110f568aa4
core: Remove some useless utf8<->utf16 conv. in {avm1,avm2}/activation.rs
2021-11-27 11:20:47 -07:00