Age | Commit message (Collapse) | Author | |
---|---|---|---|
2021-06-08 | LibJS: Remove the seal/unseal of Bytecode::Block again | Andreas Kling | |
This partially reverts c6ce7c9326f8e745e29ede503ea011f10c76fc5f. The munmap part of that change was good, but we can't seal the blocks since that breaks NewString and other ops that have String members. | |||
2021-06-08 | LibJS: Introduce an accumulator register to Bytecode::Interpreter | Matthew Olsson | |
This commit introduces the concept of an accumulator register to LibJS's bytecode interpreter. The accumulator register is always register 0, and most simple instructions use it for reading and writing. Not only does this slim down the AST, but it also simplifies a lot of the code. For example, the generate_bytecode methods no longer need to return an Optional<Register>, as any opcode which has a "return" value will always put it into the accumulator. This also renames the old Op::Load to Op::LoadImmediate, and uses Op::Load to load from a register into the accumulator. There is also an Op::Store to put the value in the accumulator into another register. | |||
2021-06-08 | LibJS: Add @@toStringTag to Reflect | Linus Groh | |
2021-06-08 | LibJS: Add @@toStringTag to Promise.prototype | Linus Groh | |
2021-06-08 | LibJS: Replace two instances of 'global_object.vm()' with just 'vm' | Linus Groh | |
2021-06-08 | LibJS: Generate bytecode for template literals | Gunnar Beutner | |
2021-06-08 | gron: Handle invalid input gracefully | Sam Atkins | |
Print an error and return 1, instead of asserting. | |||
2021-06-08 | gron: Make gron read from stdin if no file is provided | Sam Atkins | |
2021-06-08 | Everywhere: Replace Vector<T*> with nonnull entries with Vector<T&> | Ali Mohammad Pur | |
2021-06-08 | LibSQL: Limit the number of nested subqueries | Timothy Flynn | |
SQLite hasn't documented a limit on https://www.sqlite.org/limits.html for the maximum number of nested subqueries. However, its parser is generated with Yacc and has an internal limit of 100 for general nested statements. Fixes https://crbug.com/oss-fuzz/35022. | |||
2021-06-08 | LibM: Implement nearbyint, nearbyintl and nearbyintf | Gunnar Beutner | |
These are used by the ultima engine for scummvm. | |||
2021-06-08 | LibC+AK: Remove our custom macros from <assert.h> | Gunnar Beutner | |
Other software might not expect these to be defined and behave differently if they _are_ defined, e.g. scummvm which checks if the TODO macro is defined and fails to build if it is. | |||
2021-06-08 | LibJS: Seal Bytecode Blocks and munmap them (#7919) | Leon Albrecht | |
2021-06-08 | LibJS: Support deleting local variables with operator delete | Idan Horowitz | |
To make this cleaner i also moved the logic into Reference::delete_. | |||
2021-06-08 | LibJS: Return undefined from a with statement if no value was generated | Idan Horowitz | |
Co-authored-by: Linus Groh <mail@linusgroh.de> | |||
2021-06-08 | LibJS: Return the last value from a with statement | Idan Horowitz | |
2021-06-08 | LibJS: Add for loop bytecode generation | Linus Groh | |
2021-06-08 | LibJS: Implement bytecode generation for BigInts | Gunnar Beutner | |
2021-06-08 | LibJS: Make if yield undefined for the else branch if it is missing | Gunnar Beutner | |
2021-06-08 | LibJS: Remove redundant jump for IfStatements | Gunnar Beutner | |
2021-06-08 | LibJS: Make JumpIf{True,False,Nullish} inherit from Jump | Gunnar Beutner | |
This saves a few lines in LogicalExpression::generate_bytecode. | |||
2021-06-08 | Utilities: Make `xargs` stop parsing options on first non-option | Jelle Raaijmakers | |
2021-06-08 | Utilities: Make `watch` stop parsing options on first non-option | Jelle Raaijmakers | |
2021-06-08 | Utilities: Make `strace` stop parsing options on first non-option | Jelle Raaijmakers | |
2021-06-08 | Shell: Make `time` stop parsing options on first non-option | Jelle Raaijmakers | |
2021-06-08 | UserspaceEmulator: Stop parsing options on first non-option | Jelle Raaijmakers | |
2021-06-08 | Userland: Let `env` parse options up to first non-option | Jelle Raaijmakers | |
2021-06-08 | LibCore/ArgsParser: Learn how to stop on first non-option | Jelle Raaijmakers | |
We need this for utilities like `env`, that do not gain anything by parsing the options passed to the command they are supposed to execute. | |||
2021-06-08 | LibCore: Support fine-grained failure behavior for ArgsParser | Jelle Raaijmakers | |
2021-06-08 | LibJS: Add sequence expression bytecode generation | Luke | |
2021-06-08 | LibJS: Add conditional expression bytecode generation | Luke | |
Or, by its more common name, the ternary operator :^) | |||
2021-06-08 | LibJS: Implement bytecode ops for logical expressions | Gunnar Beutner | |
2021-06-08 | LibJS: Convert values to boolean for JumpIfTrue/JumpIfFalse | Gunnar Beutner | |
Value::as_bool() might fail if the underlying value isn't already a boolean value. | |||
2021-06-08 | LibJS: Add the Symbol.species getter to the appropriate built-ins | Idan Horowitz | |
2021-06-07 | LibJS: Use to_property_key() a bunch in ReflectObject | Linus Groh | |
Yay for correctness. :^) | |||
2021-06-07 | LibJS: Remove redundant exception checks | Linus Groh | |
2021-06-07 | LibJS: Never omit setter/getter attributes in accessor descriptor object | Linus Groh | |
These should not be omitted, an accessor with out getter or setter still yields an undefined for the attribute in its descriptor object. | |||
2021-06-07 | LibJS: Fix get_own_property_descriptor_object() field name order | Linus Groh | |
This is defined by the spec: enumerable and configurable come last. | |||
2021-06-07 | LibJS: Add missing cyclic prototype check to Object.setPrototypeOf() | Linus Groh | |
2021-06-07 | LibJS: Use macros to generate the common unary/binary bytecode ops | Andreas Kling | |
2021-06-08 | SoundPlayer: Enable stop button when play button clicked | Nick Miller | |
Previously, if you play a file, then stop, then play again, the stop button will be permanently disabled until you open a file again. The stop button should be enabled whenever a file is loaded. This commit fixes the GUI bug by enabling the stop button whenever the play button is clicked (if a file is currently loaded). | |||
2021-06-07 | LibJS: Fix whitespace errors in ASTCodegen.cpp | Linus Groh | |
2021-06-07 | LibJS: Add bytecode generation for BinaryOp::InstanceOf | Linus Groh | |
2021-06-07 | LibJS: Add bytecode generation for BinaryOp::In | Linus Groh | |
2021-06-07 | LibJS: Make sure that if expressions yield the correct value | Gunnar Beutner | |
When evaluated as an expression "if (true) { 3 } else { 5 }" should yield 3. This updates the bytecode interpreter to make it so. | |||
2021-06-07 | LibJS: Make sure scope expressions yield the correct value | Gunnar Beutner | |
When evaluated as an expression "{ 3 }" should yield 3. This updates the bytecode interpreter to make it so. | |||
2021-06-08 | LibAudio: WavLoader: Avoid reading partial samples | Nick Miller | |
When samples are requested in `Audio::Loader::get_more_samples`, the request comes in as a max number of bytes to read. However, the requested number of bytes may not be an even multiple of the bytes per sample of the loaded file. If this is the case, and the bytes are read from the file/stream, then the last sample will be a partial/runt sample, which then offsets the remainder of the stream, causing white noise in playback. This bug was discovered when trying to play 24-bit Wave files, which happened to have a sample size that never aligned with the number of requested bytes. This commit fixes the bug by only reading a multiple of "bytes per sample" for the loaded file. | |||
2021-06-08 | LibAudio+LibCore: Remove unnecessary IODeviceStreamReader.h | Nick Miller | |
IODeviceStreamReader isn't pulling its weight. It's essentially a subset of InputFileStream with only one user (WavLoader). This refactors WavLoader to use InputFileStream instead. | |||
2021-06-07 | CatDog: Enhance the speech bubble artificial intelligence | Brian Gianforcaro | |
Enable cat dog to greet you, and help you with yak shave sessions. | |||
2021-06-08 | LibGUI+SoundPlayer: Add Slider option to jump to cursor | Nick Miller | |
When the cursor is clicked outside of the slider knob, the current behavior is that it will step up or down by the Slider page step amount. This commit adds an option to jump the slider knob directly to the where the mouse cursor is on mouse down events. This behavior is disabled by default. It must be enabled with `Slider::set_jump_to_cursor()`. Jump to cursor is enabled in SoundPlayer since most music players have this behavior. |