Commit graph

2384 commits

Author SHA1 Message Date
Jordan Eldredge
d8b33e4795 Start using react redux hooks (#845)
* Upgrade react-redux

* Upgrade react-redux types

* Start adopting react-redux hooks
2019-11-30 13:42:53 -08:00
jberg
61c0afb165 Fix hook variable passing and initial stack setup (#844) 2019-11-30 13:42:53 -08:00
jberg
5411a444e7 Fix event x/y and add a few more methods (#842)
* Fix event x/y and add a few more methods

* ensure attributes exist and simplify

* simplify with ternary
2019-11-30 13:42:53 -08:00
Jordan Eldredge
42c46bbac1 Fix monkey patching in the debugger 2019-11-30 13:42:53 -08:00
Jordan Eldredge
3458498f6a Fix debugger alignment 2019-11-30 13:42:53 -08:00
Jordan Eldredge
b2cb4406fa Avoid setting minWidth to NaN 2019-11-30 13:42:53 -08:00
Jordan Eldredge
cb2f8b08f4 Decompose lexical scope walking 2019-11-30 13:42:53 -08:00
Jordan Eldredge
54606c8703 I like destructuring 2019-11-30 13:42:53 -08:00
Jordan Eldredge
9dd5ccdd4e Letters are cheap, lets use more of them 2019-11-30 13:42:53 -08:00
Jordan Eldredge
bde86f9d2e Upgrade eslint-plugin-prettier 2019-11-30 13:42:53 -08:00
jberg
0ac85b422e Remove xmlNode from MAKI objects (#829)
* Remove xmlNode from MAKI objects

* fix missed in rebase
2019-11-30 13:42:53 -08:00
Jordan Eldredge
d9a911f46b Fix auto-fixable lint errors in modern (#840) 2019-11-30 13:42:53 -08:00
dependabot[bot]
44066d32db Bump handlebars from 4.1.0 to 4.1.2 (#839)
Bumps [handlebars](https://github.com/wycats/handlebars.js) from 4.1.0 to 4.1.2.
- [Release notes](https://github.com/wycats/handlebars.js/releases)
- [Changelog](https://github.com/wycats/handlebars.js/blob/master/release-notes.md)
- [Commits](https://github.com/wycats/handlebars.js/compare/v4.1.0...v4.1.2)

Signed-off-by: dependabot[bot] <support@github.com>
2019-11-30 13:42:53 -08:00
dependabot[bot]
e1c37b260a Bump lodash from 4.17.11 to 4.17.15 in /experiments/skin-database (#838)
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.11 to 4.17.15.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.11...4.17.15)

Signed-off-by: dependabot[bot] <support@github.com>
2019-11-30 13:42:53 -08:00
dependabot[bot]
a8622bf78d Bump lodash.template from 4.4.0 to 4.5.0 (#837)
Bumps [lodash.template](https://github.com/lodash/lodash) from 4.4.0 to 4.5.0.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.4.0...4.5.0)

Signed-off-by: dependabot[bot] <support@github.com>
2019-11-30 13:42:53 -08:00
dependabot[bot]
d210aa51e7 Bump stringstream from 0.0.5 to 0.0.6 (#834)
Bumps [stringstream](https://github.com/mhart/StringStream) from 0.0.5 to 0.0.6.
- [Release notes](https://github.com/mhart/StringStream/releases)
- [Commits](https://github.com/mhart/StringStream/compare/v0.0.5...v0.0.6)

Signed-off-by: dependabot[bot] <support@github.com>
2019-11-30 13:42:53 -08:00
dependabot[bot]
6d5c30f10b Bump lodash from 4.17.11 to 4.17.13 in /experiments/skinArchiveTools (#835)
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.11 to 4.17.13.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.11...4.17.13)

Signed-off-by: dependabot[bot] <support@github.com>
2019-11-30 13:42:53 -08:00
dependabot[bot]
9ed62ffa78 Bump ecstatic from 3.2.0 to 3.3.2 (#836)
Bumps [ecstatic](https://github.com/jfhbrook/node-ecstatic) from 3.2.0 to 3.3.2.
- [Release notes](https://github.com/jfhbrook/node-ecstatic/releases)
- [Changelog](https://github.com/jfhbrook/node-ecstatic/blob/3.3.2/CHANGELOG.md)
- [Commits](https://github.com/jfhbrook/node-ecstatic/compare/3.2.0...3.3.2)

Signed-off-by: dependabot[bot] <support@github.com>
2019-11-30 13:42:53 -08:00
Jordan Eldredge
02df797b40 Fix lint errors in skin-database 2019-11-30 13:42:53 -08:00
Jordan Eldredge
79ac60f1f1 Modern integration (#833)
* Make modern part of the code base

`yarn modern` will now start a dev server with the modern app running.

The debugger is not yet setup

`yarn test` will run all the tests, both Webamp and "modern".

* Let debug work

* Prettier

* Ignore lint errors for now

* Point test at the now skin location
2019-11-30 13:42:53 -08:00
Jordan Eldredge
529c6be0a7 Fix debugger variables
I broke this in b2267d569b

This fix is gross, but I'm just trying to move forward.
2019-11-30 13:42:53 -08:00
jberg
a0fab01e0e Fix getclassname typo (#832) 2019-11-30 13:42:53 -08:00
jberg
de7f9655a3 add events on GuiObjects (#830)
* add events on GuiObjects

* switch to mouse enter/leave instead of out/over
2019-11-30 13:42:53 -08:00
Jordan Eldredge
617574ed44 Migrate to ES6 modules 2019-11-30 13:42:53 -08:00
Jordan Eldredge
656c4ef8a9 Use getclassname to avoid dependency cyle 2019-11-30 13:42:53 -08:00
jberg
8a2aef62f4 remove registry, use tree lookups (#828)
* remove images from registry, use tree lookups

* dont need registry for images anymore

* remove registry

* remove registry, apply groupdefs using lookups

* change function name

* simplify direct descendants

* remove prev siblings methods, just check inside loop for node

* comment on search

* handle groupdefs we dont find

* handle not finding specific id in first <elements> we find

* abstract out findInLexicalScope

* Add Js prefix for non-Maki objects
2019-11-30 13:42:53 -08:00
jberg
8ee3882aba fix variable unboxing issue, move all unboxing to single method (#827) 2019-11-30 13:42:53 -08:00
jberg
0335e4129f add more maki objects and functions for corner amp to work (#826)
* add more maki objects and functions for corner amp to work

* fix functions to lower case / add unimplemented warning
2019-11-30 13:42:53 -08:00
jberg
97dd22f314 Handle MAKI functions being case insensitive (#825) 2019-11-30 13:42:53 -08:00
jberg
3559953440 remove checking current hooks for event handling (#824) 2019-11-30 13:42:53 -08:00
jberg
769c7b9577 Initialize maki object tree (#823)
* make initialize tree out of maki objects

* pass global flag to variables, only need hooks for global variables

* implement new opcode

* start using non generic makiobject

* run scripts

* fix running scripts

* skip standardframe for now

* switch to simple example for now

* make WAL a group

* move xml/init functions to be in GuiObject

* handle creating backing XML nodes for objects created (new) in scripts

* simpler null check

* add js_ prefixes

* only bind event handlers for hooks if they are present

* uppercase for Classes

* make null checking explicit

* need to check undefined, not null

* implement init for adding nodes to state tree

* dont render groupdefs, dont execute scripts in groupdefs

* implement getContainer

* move find descendants to utils
2019-11-30 13:42:53 -08:00
Jordan Eldredge
1efded00d3 Fix a few variable names I forgot to update 2019-11-30 13:42:53 -08:00
Jordan Eldredge
440aca6d66 Clean up and document the generator approach 2019-11-30 13:42:53 -08:00
jberg
91cc5767ef working on initialize and linking groupdefs (#820)
* move images to initialize

* return nodes from initialize, lookup groupdefs

* fix attributes when copying groupdefs

* position groups with x/y

* more parsers for classic modern skin

* if img doesn't exist just return the node without adding to registry

* dont need nested node

* simplify ids

* simplify splitValues

* new variable with name
2019-11-30 13:42:53 -08:00
Jordan Eldredge
aa97783ca0 Start sketching out initialization (#815) 2019-11-30 13:42:53 -08:00
Jordan Eldredge
a3b7527f71 Clean up and document the generator approach 2019-11-30 13:42:53 -08:00
Jordan Eldredge
2a3be1656b Unwrap program 2019-11-30 13:42:53 -08:00
Jordan Eldredge
1ecab48bdf Get the first set of internal state right away 2019-11-30 13:42:53 -08:00
Jordan Eldredge
c135cf91a6 Move paused into the reducer 2019-11-30 13:42:53 -08:00
Jordan Eldredge
5cba75f4b8 Don't resume on removing a breakpoint 2019-11-30 13:42:53 -08:00
Jordan Eldredge
d2e27b0349 Rewrite the debugger to use the generator approach to pausing code 2019-11-30 13:42:53 -08:00
Jordan Eldredge
aa54ee33e0 Add the ability to inject a command handler into the interpreter 2019-11-30 13:42:53 -08:00
Jordan Eldredge
e66726f02a Make the VM a generator 2019-11-30 13:42:53 -08:00
Jordan Eldredge
0e059efe99 Make the VM sync 2019-11-30 13:42:53 -08:00
Jordan Eldredge
21caf927c7 Consolidate maki and mordern skin reference files 2019-11-30 13:42:53 -08:00
Jordan Eldredge
7bede9cd5a Improve parser tests
Ensure we can parse all scripts and move the parser tests to a parser test file for clarity
2019-11-30 13:42:53 -08:00
Jordan Eldredge
6b03a353e7 Inline includes (#819)
* Inline includes

Rather than making the content of the included file the _contents_ of
the `<include />` node, we replace the `<include />` node with the
children of the included file.

* Use asyncTreeFlatMap instead of asyncTreeMap

FlatMap is more powerful than map. More importantly, I only want to maintain one tree map function if I can help it.
2019-11-30 13:42:53 -08:00
Jordan Eldredge
c61fbb952d Move offset mapping entirely into the parser 2019-11-30 13:42:53 -08:00
Jordan Eldredge
8529d948ec Assert which files get read from the zip 2019-11-30 13:42:53 -08:00
Jordan Eldredge
ab6c1264fd Introduce asyncDepthFirstFlatMap 2019-11-30 13:42:53 -08:00