summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2021-06-20LibJS: Implement the OrdinaryCreateFromConstructor() abstract operationLinus Groh
2021-06-20LibJS: Implement the GetPrototypeFromConstructor() abstract operationLinus Groh
2021-06-20LibJS: Implement the GetFunctionRealm() abstract operationLinus Groh
2021-06-20LibJS: Introduce AbstractOperations.{cpp,h} and move various AOs thereLinus Groh
Value.{cpp,h} has become a dumping ground, let's change that. Things that are directly related to Values (e.g. bitwise/binary ops, equality related functions) can remain, but everything else that's not a Value or Object method and globally required (not just a static function somewhere) is being moved. Also convert to east-const while we're here. I haven't touched IteratorOperations.{cpp,h}, it seems fine to still have those separately.
2021-06-20LaunchServer: Correctly open file URLs with line numbersAdam Hodgen
PR #5665 updated TextEditor to open files at a specific line/column location using the file:line:col argument, rather than the -l flag. This change updates LaunchServer to use that convention, though note it does only pass the line number and not a column number, as per all previous behaviour.
2021-06-20Kernel: Allow VGA-capable graphics adapters to exist with legacy VGATom
If we have a VGA-capable graphics adapter that we support, we should prefer it over any legacy VGA because we wouldn't use it in legacy VGA mode in this case. This solves the problem where we would only use the legacy VGA card when both a legacy VGA card as well as a VGA-mode capable adapter is present.
2021-06-20FlappyBug: Add cloud and sky graphicsMim Hufford
We now have a nice sunset sky and some random cloud graphics. The obstacles will get graphics at some point too :)
2021-06-20FlappyBug: Add new graphics and tweak colorsMim Hufford
This adds some actual graphics to the game, and tweaks the obstacle and sky colors. Eventually there will be graphics for those elements too.
2021-06-20FlappyBug: Add an input cooldown after game overMim Hufford
This makes sure the player doesn't accidentally start a new game after they bump into an obstacle.
2021-06-20FlappyBug: Keep track of score and highscoreMim Hufford
Better information is now shown to the player. Instructions are shown when first loading the program, and any available scores are shown on the game over screen.
2021-06-20FlappyBug: Start obstacles off the screenMim Hufford
Previously obstacles were respawning fully on-screen which caused a discontinuous look. Now they smoothly move into view from off-screen.
2021-06-20FlappyBug: Make the obstacle gap position randomMim Hufford
The position of the gap in the obstacle is now randomly generated each time it spawns. The game is more fun to play now :)
2021-06-20FlappyBug: Introduce a new Flappy Bug gameMim Hufford
This introduces a Flappy Bug game. It's pretty simple currently, but is playable.
2021-06-20AK: Reimplement any_of in terms of find_ifLenny Maiorani
Problem: - Now that a generic free-function form of `find_if` is implemented the code in `any_of` is redundant. Solution: - Follow the "don't repeat yourself" mantra and make the code DRY by implementing `any_of` in terms of `find_if`.
2021-06-20LibCoreDump: Don't subtract one from the first stack frame's EIPGunnar Beutner
The first stack frame represents the current instruction pointer rather than the return address so we shouldn't subtract one from it. Fixes #8162.
2021-06-20Ports: Add libpng to dependencies of dosbox-stagingbreakgimme
2021-06-20LibWasm: Remove empty AbstractMachine/Interpreter.cppLinus Groh
This was moved to BytecodeInterpreter.cpp, so this is unused now.
2021-06-19LibSQL: Database layerJan de Visser
This patch implements the beginnings of a database API allowing for the creation of tables, inserting rows in those tables, and retrieving those rows.
2021-06-19LibSQL: Hash index implementation for the SQL storage layerJan de Visser
This patch implements a basic hash index. It uses the extendible hashing algorith. Also includes a test file.
2021-06-19LibSQL: BTree index, Heap, and Meta objects for SQL Storage layerJan de Visser
Unfortunately this patch is quite large. The main functionality included are a BTree index implementation and the Heap class which manages persistent storage. Also included are a Key subclass of the Tuple class, which is a specialization for index key tuples. This "dragged in" the Meta layer, which has classes defining SQL objects like tables and indexes.
2021-06-19LibSQL: Basic dynamic value classes for SQL Storage layerJan de Visser
This patch adds the basic dynamic value classes used by the SQL Storage layer. The most elementary class is Value, which holds a typed Value which can be converted to standard C++ types. A Tuple is a collection of Values described by a TupleDescriptor, which specifies the names, types, and ordering of the elements in the Tuple. Tuples and Values can be serialized and deserialized to and from ByteBuffers. This is mechanism which is used to save them to disk. Tuples are used as keys in SQL indexes and rows in SQL tables. Also included is a test file.
2021-06-19LibSymbolication+Utilities: Show inlined functions for btGunnar Beutner
2021-06-19LibJS: Add the Number.prototype.toFixed methodIdan Horowitz
2021-06-19AK: Add support for keeping trailing zeros in fixed precision floatsIdan Horowitz
This uses the same syntax as zero padding integers: String::formatted("{:0.5}", 1.234) => "1.23400"
2021-06-19LibCrypto+LibTLS: Split and move test suite into Tests directoryPeter Bocan
This change splits test-crypto.cpp from Userland into separate test suites located in Tests/ directory.
2021-06-19LibDebug: Convert LibDebug to east-const styleItamar
2021-06-19LibCoreDump: Include source locations of inlined functions in backtraceItamar
2021-06-19LibDebug: Add DebugInfo::get_source_position_with_inlinesItamar
This function returns the source position of a given address in the program. If that address exists in an inline chain, then it also returns the source positions that are in the chain.
2021-06-19LibDebug: Add DwarfInfo::get_cached_die_at_offsetItamar
This function returns a DIE object from the cache with the given offset in the debug_info section.
2021-06-19LibDebug:: Add DwarfInfo::get_die_at_addressItamar
This function returns the die object whose address range intersects with the given address. This function will also construct the DIE cache, if it hasn't been constructed yet.
2021-06-19LibDebug: Add caches of DIE objects to DwarfInfoItamar
There is one cache that indexes DIE objects by the start address of their range, and another cache that indexes by their offset in the debug_info section. Both caches are implemented with RedBlackTree, and are optional - they will only be populated if 'build_cached_dies' is invoked.
2021-06-19LibDebug: Store optional parent_offset in Dwarf::DIE objectsItamar
In the current implementation, only DIE objects that are created via DIE::for_each_child() will have parent offsets. DIE objects that are created with CompilationUnit::get_die_at_offset() do not currently store a parent offset. We may improve this in the future, but this is enough for what we currently need.
2021-06-19LibDebug: Add AttributeForm field to Dwarf::AttributeValueItamar
In some contexts, it's helpful to also know the "Attribute Form", in addition to the "Attribute Type". An example for such context is the interpretation of the "DW_AT_high_pc" attribute, which has different meaning if the form is an address or a constant.
2021-06-19LibCoreDump: Use "eip - 1" when creating backtrace entriesItamar
We need to do this because the return address from a function frame is the instruction that comes after the 'call' instruction.
2021-06-19AK: Add RedBlackTree::find_largest_not_above_iteratorItamar
It's a version of find_largest_not_above that returns an iterator.
2021-06-19LibDebug: Add LineProgram::get_directory_and_file(size_t)Itamar
This function returns the directory path & filename for a given file index.
2021-06-19LibDebug: Move Dwarf::LineProgram into Dwarf::CompilationUnitItamar
Previously, the LineProgram objects were short-lived, and only created inside DebugInfo::prepare_lines() to create a vector of sorted LineInfo data. However, Dwarf::LineProgram also contains other useful data, such as index-to-string mapping of source directories and filenames. This commit makes each Dwarf::CompilationUnit own its Dwarf::LineProgram. DebugInfo::prepare_lines() then iterates over the compilation units to prepare its sorted vector of lines.
2021-06-19LibDebug: Store LibDebug objects on the heap & make them non-copyableItamar
This fixes an issue were some LibDebug objects (for example, Dwarf::CompilationUnit) held a reference to their parent Dwarf::DwarfInfo object, which was constructed on the stack and later moved to the heap.
2021-06-19LibDebug: Move Dwarf::AttributeValue to a separate fileItamar
2021-06-19LibDebug: Move get_die_at_offset to Dwarf::CompilationUnitItamar
2021-06-19LibDebug: Remove unused DebugInfo::for_each_source_positionItamar
2021-06-19LibDebug: Fix typo in DebugInfo::get_source_positionItamar
2021-06-19Kernel: Make sure threads which don't do any syscalls are terminatedGunnar Beutner
Steps to reproduce: $ cat loop.c int main() { for (;;); } $ gcc -o loop loop.c $ ./loop Terminating this process wasn't previously possible because we only checked whether the thread should be terminated on syscall exit.
2021-06-19Kernel: Make sure the kernel's ELF PHDRs don't use rwxGunnar Beutner
This doesn't really matter in terms of writability for the kernel text because we set up proper page mappings anyway which prohibit writing to the text segment. However, this makes the profiler happy which previously died when validating the kernel's ELF program headers.
2021-06-19LibJS: Object.getOwnPropertyNames() should enumerate String's .lengthAndreas Kling
We were incorrectly aborting property name enumeration after generating names for all the indexable properties in the underlying string.
2021-06-19LibJS: Make Object.getOwnPropertyDescriptor() work on String subscriptsAndreas Kling
String objects are a bit special since the indexed properties are overridden by the contents of the underlying PrimitiveString. getOwnPropertyDescriptor() was not taking this into account, and would instead return undefined when asked about an indexed property in a String object.
2021-06-19LibJS: Support object rest elements in the bytecode interpreterMatthew Olsson
2021-06-19LibJS: Support array rest elements in the bytecode interpreterMatthew Olsson
2021-06-19LibJS: Implement array destructuring for the bytecode interpreterMatthew Olsson
2021-06-19LibJS: Implement more IteratorOperations and organize fileMatthew Olsson
Implemented IteratorComplete and IteratorValue, and sorted functions based on their spec ordering.