summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2020-04-08Kernel: Rename KParams => Kernel::CommandLineAndreas Kling
Let's make this read more like English.
2020-04-08Kernel: Update cryptically-named functions related to symbolicationAndreas Kling
2020-04-08LibWeb: Make CanvasRenderingContext2D use floats instead of intsAndreas Kling
This matches what we already do for the layout tree and things are expected to work this way regardless.
2020-04-08LibJS: Add Value::to_double() for convenienceAndreas Kling
2020-04-08AK: Appending 0 bytes to a ByteBuffer should be a no-op (#1699)Paul Redmond
- inserting an empty string into LibLine Editor triggered an assertion trying to grow a ByteBuffer by 0 bytes.
2020-04-08LibJS: rename JS::DeclarationType => JS::DeclarationKindEmanuele Torre
Many other parsers call it with this name. Also Type can be confusing in this context since the DeclarationType is not the type (number, string, etc.) of the variables that are being declared by the VariableDeclaration.
2020-04-08IRCClient: Remove FIXME for RPL_TOPICWHOTIMEBrendan Coles
RPL_TOPICWHOTIME is handled by handle_rpl_topicwhotime.
2020-04-08IRCClient: Rename /hop command to /cycleBrendan Coles
Some IRC clients use /hop to part and re-join a channel; however this can be confused with granting half-op (+h) channel privileges to a user. The general convention used by other IRC clients is /cycle.
2020-04-08LibJS: Add "constructor" property to constructor prototypesAndreas Kling
2020-04-08LibWeb: Add canvas.strokeRect(), and fix scale & translateBrian Gianforcaro
Add an implementation of CanvasRenderingContext2DWrapper.strokeRect(). While implementing this I fixed fillRect() and the new strokeRect() to honor the .scale() and .translate() values that had previously been plumbed. Also enhance the canvas.html demo to utilize strokeRect(), scale(), and translate().
2020-04-08Lagom: Add fuzz testing for LibJS using libFuzzer (#1692)Paul Redmond
Note: clang only (see https://llvm.org/docs/LibFuzzer.html) - add FuzzJs which will run the LibJS parser on random javascript inputs - added a basic dictionary of javascript tokens To use fuzzer: CC=/usr/bin/clang CXX=/usr/bin/clang++ cmake -DENABLE_FUZZER_SANITIZER=1 .. Fuzzers/FuzzJs -dict=../Fuzzers/FuzzJs.dict
2020-04-08Calendar: Make the application theme-awarerhin123
2020-04-07LibWeb: Add Origin concept (protocol, host, port tuple)Andreas Kling
Every Document now has an Origin, found via Document::origin(). It's based on the URL of the document. This will be used to implement things like the same-origin policy.
2020-04-07WindowServer: Remove long-unused COMPOSITOR_DEBUG loggingAndreas Kling
2020-04-07LibCore: Add Core::Timer::create_single_shot()Andreas Kling
This is just a convenience function for creating single-shot timers.
2020-04-07ProfileViewer: Remove nonsense no-opAndreas Kling
2020-04-07LibJS: Add Number.isSafeInteger()Linus Groh
2020-04-07LibJS: Add Number constantsLinus Groh
2020-04-07LibGUI: Thumbnail keep the aspect ratio of the original file.VAN BOSSUYT Nicolas
2020-04-07LibGUI: Center the icon in ItemView when smaller than 32px.VAN BOSSUYT Nicolas
2020-04-07Resources: Added filetype icon for object, library, text and unknown.VAN BOSSUYT Nicolas
2020-04-07IRCClient: Add right-click context menu to IRCWindow member listBrendan Coles
2020-04-07WindowServer: Menu::popup() should return when the menu is emptyBrendan Coles
Previously the WindowServer would assert `!is_empty()` and crash. Fixes #1689
2020-04-07LibJS: Break loop on EOF when parsing object expressionLinus Groh
2020-04-07AK: Disable the consumable annotation checking to fix Clang buildAndreas Kling
Clang keeps whining that NonnullFooPtrs are in "unknown" state and I'm not sure how to resolve that right now. Disable the checking until we can figure it out.
2020-04-07LibJS: Add Number()Linus Groh
2020-04-07LibJS: Reformat BooleanConstructor.{cpp,h}Linus Groh
2020-04-07LibELF: Cache symbol counts + demangled names (userspace only)Andreas Kling
To make repeated symbolication requests faster, we now cache the symbol count on ELFLoader instead of looking it up in the image each time. We also cache the demangled versions of names after looking them up the first time. This is a huge speedup for ProfileViewer. :^)
2020-04-07ProfileViewer: Remove an unnecessary call to String::format()Andreas Kling
2020-04-07LibJS: Add SequenceExpression AST node (comma operator)Andreas Kling
This patch only adds the AST node, the parser doesn't create them yet.
2020-04-07AK: Add forward() overload that refuses to forward lvalue as rvalueAndreas Kling
This matches what other forward() implementations do.
2020-04-07HackStudio: pledge "thread" to fix opening filesBrian Gianforcaro
It looks like HackStudio got broken when clicking on a folder in the open file dialog. The thumbnail icons appear to be loaded on a new thread.
2020-04-07LibWeb: Fix null dereference in HtmlView::mousedown_eventAndreas Kling
Running event handlers in response to a mouse event may cause full layout invalidation, so we can't expect the layout root to be present right after returning from JS. Fixes #1629.
2020-04-07LibJS: Allow parsing numeric and string literals in object expressionsDexesTTP
Also updated the object-basic.js test to include this change
2020-04-07AK: Allow %m.nf specifier for double/float in printf to set fraction withEmanuel Sprung
This patch adds the missing part for the printf of double values to specify the length of the fraction part. For GVariant, a default of %.2 is used.
2020-04-07LibJS: Add String.prototype.toUpperCase()Linus Groh
2020-04-07Toolchain: Make BuildQemu.sh choose the correct ui library when building on OSXOliver Hunt
2020-04-07LibJS: Add Boolean constructor objectJack Karamanian
2020-04-07LibJS: Return false for NaN numbers in Value::to_boolean()Jack Karamanian
2020-04-06LibJS: Fix impossible member access for negative integersDexesTTP
The PropertyName class able to match a number or an array can only accept positive numerical values. However, the computed_property_name method sometimes returned negative values. This commit also adds a basic object access test case.
2020-04-06LibJS: Add String.prototype.toLowerCase()Andreas Kling
2020-04-06LibM: Improve pow() and powf()Linus Groh
2020-04-06LibJS: Inline JS::Value()Andreas Kling
I had this out of line for debugging reasons. Put it back inline.
2020-04-06LibJS: Support array holes, encoded as empty JS::ValueAndreas Kling
This patch adds a new kind of JS::Value, the empty value. It's what you get when you do JSValue() (or most commonly, {} in C++.) An empty Value signifies the absence of a value, and should never be visible to JavaScript itself. As of right now, it's used for array holes and as a return value when an exception has been thrown and we just want to unwind. This patch is a bit of a mess as I had to fix a whole bunch of code that was relying on JSValue() being undefined, etc.
2020-04-06LibJS: Give argument vectors an inline capacity of 8Andreas Kling
This avoids one malloc/free pair for every function call if there are 8 arguments or fewer.
2020-04-06LibJS: Add a PropertyName class that represents a string or a numberAndreas Kling
Now that we have two separate storages for Object properties depending on what kind of index they have, it's nice to have an abstraction that still allows us to say "here's a property name". We use PropertyName to always choose the optimal storage path directly while interpreting the AST. :^)
2020-04-06LibJS: Add a number-indexed property storage to all ObjectsAndreas Kling
Objects can have both named and indexed properties. Previously we kept all property names as strings. This patch separates named and indexed properties and splits them between Object::m_storage and m_elements. This allows us to do much faster array-style access using numeric indices. It also makes the Array class much less special, since all Objects now have number-indexed storage. :^)
2020-04-06Kernel: Ensure we flush the entire ext2 superblockLiav A
2020-04-06Ports: Remove LibDraw from c-ray CMakeLists.txtLinus Groh
2020-04-06LibJS: Do a garbage collection every N allocations (N=10'000)Andreas Kling
To prevent the heap from growing infinitely large, we now do a full GC every 10'000 allocations. :^)