Jason Williams
ba3c4e5945
fix VM branch ( #1302 )
...
Co-authored-by: Jason Williams <jwilliams720@bloomberg.net>
4 years ago
Jason Williams
8cdc886b74
VM Trace output fixes #1035 ( #1048 )
...
* no more need for dbg!()
* pass -t or --trace for tracing output
* documentation on output
4 years ago
Jason Williams
ce78947fce
update launch.json ( #1034 )
...
- cpp version is no longer needed
- add VM launch config using cargo args
4 years ago
Jason Williams
1052ccdd0c
Bytecode Interpreter (new branch) ( #860 )
...
Nodes implement CodeGen which generates instructions onto a stack held in Context.
The VM will interpret the instructions from Context.
There are some issues:
- Only basic instructions are added, but I'm working off https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey/Internals/Bytecode for now it should be easy to add more in.
- The Stack is a Vec, this isn't ideal (we may be able to live with it for now) but the stack should really be a fixed sized array. This isn't possible because Value can't be copied in there as it holds Rc and Gc values. Can we have fixed-sized Values that hold a pointer? Something like the "stackvec" crate should help
- put all VM related code behind "vm" feature flag
Co-authored-by: Jason Williams <jwilliams720@bloomberg.net>
Co-authored-by: Halid Odat <halidodat@gmail.com>
4 years ago
Jason Williams
bb57270b85
label statement implementation ( #549 )
...
Co-authored-by: Halid Odat <halidodat@gmail.com>
4 years ago
Iban Eguia
1673871116
Some cleanup ( #666 )
4 years ago
HalidOdat
5d4d8fe794
Refactor Property Descriptor flags ( #553 )
4 years ago
Jason Williams
c4a652a517
Fix sending `this` value to function environments ( #526 )
5 years ago
Paul Lancaster
542b2cc005
Switch impl ( #451 )
...
Co-authored-by: Iban Eguia <razican@protonmail.ch>
5 years ago
Jason Williams
32b0741cc8
Profiler using measureme ( #317 )
...
Profiler
5 years ago
Iban Eguia
4beadfc9ad
Execution and Node modularization ( #392 )
5 years ago
Jason Williams
63f37a2858
implement "this" ( #320 )
...
* implement this
* remove construct/call from Object instead set func
* get_this_binding() was wrong, fixed
* BindingStatus is now properly set
* `this` now works on dynamic functions
* Migrates all builtins to use a single constructor/call fucntion to match the spec
* Ensure new object has an existing prototype
* create_function utility
* needing to clone before passing through
5 years ago
Jason Williams
f02babf0bd
Refactor old function with new function object ( #255 )
...
Co-authored-by: Iban Eguia <iban.eguia@cern.ch>
Co-authored-by: Jason Williams <jwilliams720@bloomberg.net>
Co-authored-by: Iban Eguia <iban.eguia@cern.ch>
5 years ago
Iban Eguia
bc63b28b6b
Modularized parser ( #304 )
5 years ago
Radek Krahl
7abb94abf5
console functions ( #315 )
...
* Exec do..while tests.
* Parser do..while test.
* Do..while loop parser and exec implementation
* rustfmt fixes
* Update boa/src/exec/mod.rs
Co-Authored-By: HalidOdat <halidodat@gmail.com>
* Use expect(), make expect() skip newlines
* rustmf fixes
* Revert "Use expect(), make expect() skip newlines"
This reverts commit 517c4d0e06
.
* Cargo Test Build task and Debug Test (Windows) launcher
* First attempt at console.assert implementation. Tests are just for
debugging. Run `cargo test console_assert -- --nocapture` to see stderror
messages.
* Refactoring - remove unnecessary map, variable rename.
* Update boa/src/builtins/console.rs
changes from HalidOdat
Co-Authored-By: HalidOdat <halidodat@gmail.com>
* Documentation fixes
* Remove space from documentation comment
* Update boa/src/builtins/console.rs
Simplify message printing.
Co-Authored-By: Iban Eguia <razican@protonmail.ch>
* Update boa/src/builtins/console.rs
Improve docs.
Co-Authored-By: Iban Eguia <razican@protonmail.ch>
* Update boa/src/builtins/console.rs
Improve getting of assertion result.
Co-Authored-By: Iban Eguia <razican@protonmail.ch>
* rustfmt
* console.count() and console.countReset() implementation
* Console state as native rust type, temporarily placed in Realm.
* console.time[,Log,End] methods implementation
* ConsoleState as internal state in console object.
* Fix merge mess
* Formatter function, get_arg_at_index moved out to function
* Fix merge mess, pt. 2
* console.group* functions
* Moved console code to its own subdirectory, formatter tests, fixed utf-8
handling.
* Most functions implemented.
* Basic logger and logLevel implementation
* console.group uses logger
* console.dir (and at the same time dirxml) implementation
* Make builtins::value::display_obj(...) public
* Update boa/src/builtins/console/mod.rs
Co-Authored-By: HalidOdat <halidodat@gmail.com>
* Update boa/src/builtins/console/mod.rs
Co-Authored-By: HalidOdat <halidodat@gmail.com>
* Update boa/src/builtins/value/mod.rs
Co-Authored-By: Iban Eguia <razican@protonmail.ch>
Co-authored-by: HalidOdat <halidodat@gmail.com>
Co-authored-by: Iban Eguia <razican@protonmail.ch>
5 years ago
Jason Williams
48c6e886d4
Parser fixes #225 #240 #273 ( #281 )
...
New parser!
Plus loads of tidy up in various places.
Co-authored-by: Jason Williams <jwilliams720@bloomberg.net>
Co-authored-by: HalidOdat <halidodat@gmail.com>
Co-authored-by: Iban Eguia <iban.eguia@cern.ch>
Co-authored-by: Iban Eguia <razican@protonmail.ch>
5 years ago
Jason Williams
9766409c52
Addition of forEach() ( #268 )
...
* Addition of forEach()
* fixing LLDB launcher for windows (it needs .exe to work for windows)
5 years ago
Jason Williams
4c18f3acda
updating launch.json for workspace setup
5 years ago
Jason Williams
bb9391ef86
fix git checkout (benchmark action), try v2
5 years ago
Jason Williams
3465e6bbca
short function syntax fixes #152 ( #199 )
...
* short function syntax
* updating parser plus adding test
5 years ago
Jason Williams
383057c7aa
alphabetical ordering of punctuation, all keywords added, support for spread operator, new tests for punctuation (WIP)
6 years ago
Jason Williams
78d3cb910d
added support for char_code_at()
6 years ago
Jason Williams
9a50cc11c4
first test added
6 years ago
Jason Williams
6c31e52b23
adding Dockerfile for rust
6 years ago
Jason Williams
c10c0f7c6a
updates
6 years ago
Jason Williams
14aaec6aff
working lexer
6 years ago
Jason Williams
f33c18d2b6
first commit
6 years ago