ladybird/Libraries/LibJS
Andreas Kling f7a1696087 LibJS: Add MarkedValueList and use it for argument passing
A MarkedValueList is basically a Vector<JS::Value> that registers with
the Heap and makes sure that the stored values don't get GC'd.

Before this change, we were unsafely keeping Vector<JS::Value> in some
places, which is out-of-reach for the live reference finding logic
since Vector puts its elements on the heap by default.

We now pass all the JavaScript tests even when running with "js -g",
which does a GC on every heap allocation.
2020-04-19 17:34:33 +02:00
..
Heap LibJS: Add MarkedValueList and use it for argument passing 2020-04-19 17:34:33 +02:00
Runtime LibJS: Add MarkedValueList and use it for argument passing 2020-04-19 17:34:33 +02:00
Tests LibJS: Fix expectations in the function-TypeError.js test 2020-04-19 14:51:47 +02:00
AST.cpp LibJS: Add MarkedValueList and use it for argument passing 2020-04-19 17:34:33 +02:00
AST.h LibJS: Improve CallExpression::execute()'s error messages 2020-04-19 11:00:39 +02:00
Forward.h LibJS: Add MarkedValueList and use it for argument passing 2020-04-19 17:34:33 +02:00
Interpreter.cpp LibJS: Add MarkedValueList and use it for argument passing 2020-04-19 17:34:33 +02:00
Interpreter.h LibJS: Add MarkedValueList and use it for argument passing 2020-04-19 17:34:33 +02:00
Lexer.cpp LibJS: Handle HTML-style comments 2020-04-14 12:54:09 +02:00
Lexer.h LibJS: Handle HTML-style comments 2020-04-14 12:54:09 +02:00
Makefile LibJS: Add MarkedValueList and use it for argument passing 2020-04-19 17:34:33 +02:00
Parser.cpp LibJS: Allow reserved words as keys in object expressions. 2020-04-18 22:23:20 +02:00
Parser.h LibJS: Allow reserved words as keys in object expressions. 2020-04-18 22:23:20 +02:00
Token.cpp LibJS: Allow reserved words as keys in object expressions. 2020-04-18 22:23:20 +02:00
Token.h LibJS: Allow reserved words as keys in object expressions. 2020-04-18 22:23:20 +02:00