summaryrefslogtreecommitdiff
path: root/Libraries
AgeCommit message (Collapse)Author
2020-05-02LibCrypto: Add ::import_data() and ::export_data() to UnsignedBigIntegerAnotherTest
These functions allow conversion to-and-from big-endian buffers This commit also adds a ""_bigint operator for easy bigint use
2020-05-02LibCrypto: Cleanup UnsignedBigInteger a bitItamar
- Add missing 'explicit' to the constructor - Remove unneeded 'AK::' in AK::Vector - Avoid copying 'words' in constructor
2020-05-02LibCrypto: Add base-10 string de/serialization methods for bigintItamar
2020-05-02LibCrypto: Fix bug in big int subtractionItamar
A regression test was added to the suite. This commit also generally simplifies the subtraction method.
2020-05-02LibCrypto: Add UnsignedBigInteger divisionItamar
The division operation returns both the quotient and the remainder.
2020-05-02LibCrypto: Add UnsignedBigInteger multiplicationItamar
Also added documentation for the runtime complexity of some operations.
2020-05-02LibCrypto: Fix a bug in big int additionItamar
There was a bug when dealing with a carry when the addition result for the current word was UINT32_MAX. This commit also adds a regression test for the bug.
2020-05-02LibCrypto: Add UnsignedBigInteger subtraction and comparisonItamar
2020-05-02LibCrypto: Add UnsignedBigInteger and implement additionItamar
UnsignedBigInteger stores an unsigned ainteger of arbitrary length. A big integer is represented as a vector of word. Each word is an unsigned int.
2020-05-02LibCrypto: Add SHA512AnotherTest
There is quite a bit of avoidable duplication, however, I could not get the compiler to be happy about SHA2<Size> (see FIXMEs)
2020-05-02LibCrypto: Add SHA256 hash functionAnotherTest
2020-05-02LibCrypto: Implement HMACAnotherTest
2020-05-02LibCrypto: Move each subsection into its own namespaceAnotherTest
2020-05-02LibCrypto: Add HashFunction and implement MD5AnotherTest
2020-05-02LibCrypto: Implement Cipher and AES_CBCAnotherTest
Also adds a test program to userland
2020-05-02LibLine: Handle ^L while in search modeAnotherTest
This commit fixes the following misbehaviour: ``` > <- search prompt moves here > > ^R^L <- actual prompt stays here ```
2020-05-02LibJS: Add ConsoleMessage conceptEmanuele Torre
A ConsoleMessage is a struct cointaining: * AK::String text; represents the text of the message sent to the console. * ConsoleMessageKind kind; represents the kind of JS `console` function from which the message was sent. Now, Javascript `console` functions only send a ConsoleMessage to the Interpreter's Console instead of printing text directly to stdout. The Console then stores the recived ConsoleMessage in Console::m_messages; the Console does not print to stdout by default. You can set Console::on_new_message to a void(ConsoleMessage&); this function will get call everytime a new message is added to the Console's messages and can be used, for example, to print ConsoleMessages to stdout or to color the output based on the kind of ConsoleMessage. In this patch, I also: * Re-implement all the previously implemented functions in the JavaScript ConsoleObject, as wrappers around Console functions that add new message to the Console. * Implement console.clear() like so: - m_messages get cleared; - a new_message with kind set ConsoleMessageKind::Clear gets added to m_messages, its text is an empty AK::String; * Give credit to linusg in Console.cpp since I used his console.trace() algorithm in Console::trace(). I think that having this abstration will help us in the implementation of a browser console or a JS debugger. We could also add more MetaData to ConsoleMessage, e.g. Object IDs of the arguments passed to console functions in order to make hyperlinks, Timestamps, ecc.; which could be interesting to see. This will also help in implementing a `/bin/js` option to make, for example, return a ConsoleMessageWrapper to console functions instead of undefined. This will be useful to make tests for functions like console.count() and console.countClear(). :^)
2020-05-02LibJS: Implement ConsoleObject::count() as a Console::count() wrapperEmanuele Torre
Also implement ConsoleObject::count_clear() as a wrapper for Console::count_clear()
2020-05-02LibJS: Start implementing a Console class for the interpreterEmanuele Torre
The goal is to start factoring out core ConsoleObject functionality and to make ConsoleObject only a JS wrapper around Console.
2020-05-02WindowServer+LibGUI: Automatically close child windows with parentAndreas Kling
If a window has child windows when it's destroyed, WindowServer will now automatically tear down all of its children as well. This is communicated to the client program through a vector of window ID's included with the response to WindowServer::DestroyWindow. This does feel a little bit awkward, but managing it on the client side also seems a bit awkward.
2020-05-02LibGUI: Make ComboBox list pop-up windows framelessAndreas Kling
This is much better than the hack we had of making them Tooltip windows since frameless windows end up at the right layer in the window stack automatically, and always get yanked above the parent window simply by being child windows.
2020-05-02WindowServer+LibGUI: Add "frameless" window flagAndreas Kling
This allows you to create windows with no title bar or window frame.
2020-05-02WindowServer+LibGUI: Remove unused Window::show_titlebar() flagAndreas Kling
Nobody was using this flag, so let's stop maintaining it. It's easy to add it back if we ever want the behavior.
2020-05-02LibGUI+WindowServer: Inform WindowServer about parent/child windowsAndreas Kling
If a window has another window in its Core::Object ancestor chain, we now communicate that relationship to WindowServer so that it can act with awareness of parent/child windows.
2020-05-02LibGfx: Decode paletted and grayscale images with 1/2/4 bit depthLepkoQQ
When dealing with png data that has less than 8 bits per pixel, round up to the next byte when allocating per row buffers and streamers. This fixes decoding odd sized PNGs with less than 8 bits per pixel. Also added a test page with some odd sized palleted PNGs.
2020-05-02LibM: Implement fmodf()Valtteri Koskivuori
2020-05-01LibJS: Implement (no-op) debugger statementLinus Groh
2020-05-01LibGUI: INI file syntax highlighterHüseyin ASLITÜRK
2020-05-01LibGUI: Icon for INI file typeHüseyin ASLITÜRK
2020-05-01LibJS: Implement most of the Reflect objectLinus Groh
2020-05-01LibJS: Implement indexed access for StringObjectLinus Groh
2020-05-01LibJS: Make Array.length non-configurableLinus Groh
This was incorrect, it's only writable.
2020-05-01LibJS: Add Value::to_size_t()Linus Groh
2020-05-01LibJS: Add Object::has_property()Linus Groh
Like Object::has_own_property() but going down the prototype chain.
2020-05-01LibJS: Return a bool from Object::put* to indicate successLinus Groh
2020-05-01LibJS: Add String.prototype.lastIndexOfKesse Jones
2020-05-01LibJS: Implement console.countReset()Emanuele Torre
I chose to also make it print "<counter_name>: 0\n" when a counter gets reset, similarly to how firefox behaves.
2020-05-01LibJS: Implement console.count()Emanuele Torre
2020-05-01LibJS: Add object literal method shorthandMatthew Olsson
2020-04-30LibGUI: Remove some ancient unused debug loggingAndreas Kling
2020-04-30LibX86: Disassemble BSWAPAndreas Kling
2020-04-30LibLine: Reset inline_search_cursor along with cursorAnotherTest
This fixes the issue where the editor would only scroll up one command and then 'search' for it
2020-04-30AK: Add ALWAYS_INLINE, NEVER_INLINE and FLATTEN macrosAndreas Kling
It's tedious to write (and look at) [[gnu::always_inline]] etc. :^)
2020-04-30LibMarkdown: Add support for images :^)Sergey Bugaev
2020-04-30LibMarkdown: Handle broken link markup betterSergey Bugaev
Let's output *something* instead of crashing on a failed assertion.
2020-04-30LibC: Hint the compiler that assertions rarely failSergey Bugaev
Also, rewrite the macro to expand to an if statement instead of a weird ternary operator with a (void)0 banch.
2020-04-30LibCore: Do not assert that NonnullRefPtr is non-nullSergey Bugaev
Clang complains about this; with the change the next commit is going to make to ASSERT() internals, GCC is going to start to complain as well.
2020-04-30LibJS: Add Object.{keys,values,entries}()mattco98
2020-04-30LibCore: Don't continue in forked child if exec() failsAndreas Kling
Fixes #1854.
2020-04-30LibGUI: Scale TabWidget tabs according to available spaceAndreas Kling
In TabWidgets with the "uniform tabs" mode on, we will now scale tabs between a minimum and maximum size, distributing the available space. Partially addresses #1971.