summaryrefslogtreecommitdiff
path: root/Applications/Spreadsheet/JSIntegration.cpp
AgeCommit message (Collapse)Author
2020-11-30Spreadsheet: Implement infinit-scroll for columnsAnotherTest
This naturally also implements multi-char columns, and also integrates it into the js runtime (such columns can be named in ranges too).
2020-09-28Spreadsheet: Let the cells know their own position in the sheetAnotherTest
2020-09-27LibJS: Make native function/property callbacks take VM, not InterpreterAndreas Kling
More work on decoupling the general runtime from Interpreter. The goal is becoming clearer. Interpreter should be one possible way to execute code inside a VM. In the future we might have other ways :^)
2020-09-27LibJS: Move most of Interpreter into VMAndreas Kling
This patch moves the exception state, call stack and scope stack from Interpreter to VM. I'm doing this to help myself discover what the split between Interpreter and VM should be, by shuffling things around and seeing what falls where. With these changes, we no longer have a persistent lexical environment for the current global object on the Interpreter's call stack. Instead, we push/pop that environment on Interpreter::run() enter/exit. Since it should only be used to find the global "this", and not for variable storage (that goes directly into the global object instead!), I had to insert some short-circuiting when walking the environment parent chain during variable lookup. Note that this is a "stepping stone" commit, not a final design.
2020-09-25Spreadsheet: Add conditional formattingAnotherTest
Currently only supports setting the foregound and the background colours. This patch also unifies `foreground_color' and `background_color' used throughout to a `Format' struct, in hopes of getting more formatting options one day :P
2020-08-28Spreadsheet: Setup and prepare for cell typesAnotherTest
This commit adds a generic interface for cell types and hooks it up. There is no way to set these from the UI, and so they're not saved anywhere yet. Also implicitly converts numeric values (strictly integers) to numeric javascript values, as numbery-looking + numbery-looking === string is not very interesting. :^)
2020-08-27Spreadsheet: Add support for multiple sheetsAnotherTest
This also refactors the js integration stuff to allow sheets to reference each other safely.