Jordan Eldredge
f5d080dcf7
Don't leak data from constants outside of the parserEventually we will get rid of the object in constants, so we don't want others to expect this data to be here.
2019-11-30 13:42:53 -08:00
Jordan Eldredge
19c24d18f9
Remove unused data about localFunctions
2019-11-30 13:42:53 -08:00
Jordan Eldredge
585b75ae4e
Inline readUInt32LE
...
This will allow us to do signed ints in some places but not all.
2019-11-30 13:42:53 -08:00
Jordan Eldredge
5dab717425
Prettier
2019-11-30 13:42:53 -08:00
Jordan Eldredge
326c37d149
Add utility function for getting binary arrays out of zips
2019-11-30 13:42:53 -08:00
Jordan Eldredge
81fa6010e8
Avoid annoying message when running yarn commands
2019-11-30 13:42:53 -08:00
jberg
137e78e688
more function and scope tests ( #813 )
...
* more function and scope tests
* hack to fix handling of wrong sign offsets
* attempting to fix async issue
* fixes captbaritone found
* add comment about recursive function
2019-11-30 13:42:53 -08:00
Jordan Eldredge
3105ab1372
Move runtime to toplevel
2019-11-30 13:42:53 -08:00
Jordan Eldredge
2a9376e018
Add messages section
2019-11-30 13:42:53 -08:00
Jordan Eldredge
0690f8cf8d
Pause before the first command
2019-11-30 13:42:53 -08:00
jberg
d0ceda1520
fix button image rendering and handle layout without x/y ( #812 )
2019-11-30 13:42:53 -08:00
Jordan Eldredge
62bb17188d
Speed up running scripts in the debugger
2019-11-30 13:42:53 -08:00
jberg
a925bfc31e
measure image if we don't have node attributes to use ( #811 )
...
* measure image if we don't have node attributes to use
* return image, allow for x/y to be specificied without w/h
2019-11-30 13:42:53 -08:00
jberg
d6f9ce8351
tweak 2 arg operatores and coercion ( #810 )
2019-11-30 13:42:53 -08:00
Jordan Eldredge
005629f9e9
Abstract how we handle two argument operators.
...
Some don't work. I wonder why.
2019-11-30 13:42:53 -08:00
Jordan Eldredge
3798934615
Don't log the "done" promise
2019-11-30 13:42:53 -08:00
Jordan Eldredge
05362da4a3
Be consistent with ordering of a and b, even when it does not matter
...
Interestingly this changes the order of << but tests still pass
2019-11-30 13:42:53 -08:00
Jordan Eldredge
5a7489db4e
Commands only have a single argument
2019-11-30 13:42:53 -08:00
jberg
e015c15625
fix tests, sprinkle more async/await ( #809 )
2019-11-30 13:42:53 -08:00
jberg
f56d44cbb8
remove integer checking ( #808 )
2019-11-30 13:42:53 -08:00
Jordan Eldredge
fb14ae9a00
Run prettier
2019-11-30 13:42:53 -08:00
jberg
4c06a38d46
add simple function tests, run wa5 tests ( #806 )
...
* add simple function tests
* add simple functions to test suite
* add popTo/callGlobal definitions
* use interpret for callGlobal, pass stack to interpret
* type check and cast to int when setting variables
* need to await interpret calls
* get wa5 tests running
* add some comments
2019-11-30 13:42:53 -08:00
Jordan Eldredge
0187838132
Reference correct skin in utils test
2019-11-30 13:42:53 -08:00
jberg
e8e49103a9
simplify type coercion / fix destructuring related error ( #807 )
2019-11-30 13:42:53 -08:00
jberg
9007b1c4ee
More basic tests ( #805 )
...
* add more basic tests
* add/update passing test strings
* only coerce if int is on LHS
2019-11-30 13:42:53 -08:00
jberg
1146ce4758
implement more operators and coerce types ( #804 )
...
* implement more operators and coerce types
* add remaining operators
2019-11-30 13:42:53 -08:00
Jordan Eldredge
8e0f50a2e6
Fix initial paused state
2019-11-30 13:42:53 -08:00
Jordan Eldredge
66c3a5c058
Improve debugging
2019-11-30 13:42:53 -08:00
Jordan Eldredge
cf2e8992af
Use a reducer to update state
2019-11-30 13:42:53 -08:00
jberg
6b1301cef9
check type on modulo ( #803 )
2019-11-30 13:42:53 -08:00
Jordan Eldredge
dcbcd20a65
Implement more operators and add debugger
2019-11-30 13:42:53 -08:00
Jordan Eldredge
c02b59219c
Inject logger
2019-11-30 13:42:53 -08:00
Jordan Eldredge
6ce7193bc0
Reenable tests
2019-11-30 13:42:53 -08:00
Jordan Eldredge
0abccdd211
Allow parser.js to run in the browserFor some reason object destructuing makes someone assume we should be using es6 exports
2019-11-30 13:42:53 -08:00
Jordan Eldredge
736a922cba
Compensate for the upcoming i++
2019-11-30 13:42:53 -08:00
Jordan Eldredge
5c4c82f4d8
Start running basic test
2019-11-30 13:42:53 -08:00
Jordan Eldredge
deb8289d6a
Add missing opcodes
...
the basicTest.m file, compiled by the Winamp3 compiler (and perhaps others) output these opcodes which are unknown to the decompiler. I _think_ this is what they are supposed to be.
2019-11-30 13:42:53 -08:00
Jordan Eldredge
f94fcf2579
Consolidate line
2019-11-30 13:42:53 -08:00
jberg
cf9c58c31b
add basic maki operator tests ( #802 )
2019-11-30 13:42:53 -08:00
Jordan Eldredge
ec25acfc1e
Extract version info
2019-11-30 13:42:53 -08:00
Jordan Eldredge
44fb10d776
Inline calculating position
2019-11-30 13:42:53 -08:00
Jordan Eldredge
ec754cfbce
Pull local functions into their own thing
2019-11-30 13:42:53 -08:00
Jordan Eldredge
53c06ab7c4
Move binding logic into Variable
2019-11-30 13:42:53 -08:00
Jordan Eldredge
d52129c5d9
Improve error message for missing classes
2019-11-30 13:42:53 -08:00
Jordan Eldredge
27aba0b826
Add commented version of interpreting maki
2019-11-30 13:42:53 -08:00
Jordan Eldredge
39bad700e9
Handle unknown objects better
2019-11-30 13:42:53 -08:00
Jordan Eldredge
ff26800905
Split out function for formatting ids
2019-11-30 13:42:53 -08:00
Jordan Eldredge
0711ac4bbf
Use the name "data"
2019-11-30 13:42:53 -08:00
Jordan Eldredge
8806b78c0a
Don't use buffer when parsing maki
2019-11-30 13:42:53 -08:00
Jordan Eldredge
256e24d83d
Move the maki-interpreter experiment into the modern experiment
...
We're getting to a place where it's going to be feasible to test the
Maki interpreter in the browser, so it makes sense to merge the two
experiments.
2019-11-30 13:42:53 -08:00