Git Product home page Git Product logo

avm2's People

Contributors

80prozent avatar dependabot[bot] avatar dranitski avatar exponenta avatar fancy2209 avatar n0samu avatar rob-bateman avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

avm2's Issues

XML: UNKNOWN BYTECODE 59 GETDESCENDANTS

Missing implementation: BYTECODE 59 GETDESCENDANTS

Looks like this is implemented in INT, but not in JIT
https://github.com/awayfl/avm2/blob/dev/lib/int.ts#L573

caused by this code:

var employees:XML =
                <employees>
                    <employee ssn="123-123-1234">
                        <name first="John" last="Doe"/>
                        <address>
                            <street>11 Main St.</street>
                            <city>San Francisco</city>
                            <state>CA</state>
                            <zip>98765</zip>
                        </address>
                    </employee>
                    <employee ssn="789-789-7890">
                        <name first="Mary" last="Roe"/>
                        <address>
                            <street>99 Broad St.</street>
                            <city>Newton</city>
                            <state>MA</state>
                            <zip>01234</zip>
                        </address>
                    </employee>
                </employees>;

trace(employees..zip[0]);

Regression in ABC file parsing

Description
AwayFL is crashing while parsing the ABC of the Papa's Freezeria SWF file. The error is:

Uncaught TypeError: Cannot read properties of undefined (reading 'namespaces')
    at ABCFile._parseMultiname (ABCFile.js:201:1)
    at ABCFile._parseMultinames (ABCFile.js:150:1)
    at new ABCFile (ABCFile.js:29:1)
    at FlashSceneGraphFactory.executeABCBytes (FlashSceneGraphFactory.js:33:1)
    at SWFParser.parseSymbols (SWFParser.js:233:1)
    at SWFParser._pProceedParsing (SWFParser.js:218:1)
    at ParserBase._pOnInterval (ParserBase.js:257:1)
    at ParserBase._this._pOnIntervalDelegate (ParserBase.js:48:1)
    at ListenerObject.dispatchEvent (EventDispatcher.js:99:1)
    at EventDispatcher.dispatchEvent (EventDispatcher.js:50:1)

I've bisected this regression to commit 0906b7c. The SWF works fine before this commit is applied.

Steps to reproduce the issue
To reproduce the problem, try to load the current Papa's Freezeria SWF from Coolmath into the current version of AwayFL.

Propery not enumerated after writing objects.

Source:

import flash.net.SharedObject;

var array = ['data'];

var so: SharedObject = SharedObject.getLocal("test");

if(!so.data.array) {
	trace('write', array);
	so.data.array = array;
	so.flush();
	so.close();
}

var so2: SharedObject = SharedObject.getLocal("test");
trace('read');
for(var r in so2.data) {
	trace('Passed');
	break;
}

Expected:
First start:

  • write data
  • read
  • Passed

Second start:

  • read data
  • Passed

Actual:
First start:

  • write data
  • read

Second start:

  • read
  • Passed

Problem location:
https://github.com/awayfl/avm2/blob/dev/lib/nat/ASObject.ts#L432

For serialised objects it return false and method always return 0.

ByteArray read error length.

The source length is 106583 in as3 ,but I got 100886.
And ByteArray.ts has no method compress and uncompress function.

AMF3

Invalid parsing of arrays.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.