summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2021-06-28Meta: Tidy up include path and alphabetic orderingSpencer Dixon
2021-06-28Kernel: Add a sanity check for CHUNK_SIZEGunnar Beutner
Also fixes a spelling mistake in the same file.
2021-06-28Kernel: Increase kmalloc eternal heap to 3MiBGunnar Beutner
The kernel wouldn't boot reliably on x86_64 with just 2MiB.
2021-06-28Kernel: Fix memset() on x86_64Gunnar Beutner
Previously memset() only set half of the bytes to the requested value.
2021-06-28Kernel: Fix type for PageDirectory::s_cr3_mapGunnar Beutner
2021-06-28Kernel: Specify I/O size for BMIDEChannelGunnar Beutner
2021-06-28Kernel: Implement more x86_64 context switching functionalityGunnar Beutner
2021-06-28Kernel: Implement entry code for x86_64 interruptsGunnar Beutner
With this fixed we can now properly handle interrupts (e.g. timer interrupts) on x86_64.
2021-06-28Kernel: Fix stack for new threads on x86_64Gunnar Beutner
Unlike on x86 iretq always pops rsp and ss.
2021-06-28LibJS: Bring Reflect.construct() closer to the specificationIdan Horowitz
This includes checking that the target is a constructor, not just a function, as well as switching the order of the list creation and argument validation to match the specification, to ensure correct exception throwing order.
2021-06-28LibJS: Rewrite String.raw() closer to the specificationIdan Horowitz
This includes not throwing a custom exception and using the length_of_array_like abstract operation where required.
2021-06-28LibJS: Use CreateUnmappedArgumentsObject for non-simple parameter listsAndreas Kling
This patch implements the IsSimpleParameterList static semantics for ordinary function objects. We now also create an unmapped arguments object for callee contexts with non-simple parameter lists, instead of only doing it in strict mode. Covered by test262.
2021-06-28LibJS: Add and use the %ThrowTypeError% intrinsicIdan Horowitz
2021-06-28LibJS: Accept FlyStrings in the NativeFunction constructorsIdan Horowitz
This makes the implicit run-time assertion in PropertyName::to_string() into an explicit compile-time requirement, removes a wasteful FlyString -> PropertyName -> FlyString construction from NativeFunction::create() and allows setting the function name to a null string for anonymous native functions.
2021-06-28Meta: Choose the QEMU display backend based on whats availableSahan Fernando
2021-06-28LibJS: Handle values close to -0.5 correctly in Math.round(x)Idan Horowitz
This is done by just using the built-in ceiling and subtracting from the result if its in the 0.5 range.
2021-06-28LibJS: Implement the CreateUnmappedArgumentsObject abstract operationAndreas Kling
2021-06-27LibJS/Tests: Improve valueToString() outputLinus Groh
This regressed recently and would only output a bunch of '[object Foo]', the reason being that String(value) failed in some cases - which is easily fixed by trying that first and using Object.prototype.toString() as a fallback in the case of an exception :^)
2021-06-27LibJS: Unbreak test-js test that depended on function object class nameAndreas Kling
2021-06-27LibJS: Fix typo "sweeped" => "swept" everywhereAndreas Kling
2021-06-27LibJS: Stop qualifying AK::FunctionAndreas Kling
Now that JS function objects are JS::FunctionObject, we can stop qualifying AK::Function and just say "Function" everywhere. Nice. :^)
2021-06-28AK: Add and use the RemoveCVReference<T> type traitAli Mohammad Pur
2021-06-27LibJS: Rename ScriptFunction => OrdinaryFunctionObjectAndreas Kling
These are basically what the spec calls "ordinary function objects", so let's have the name reflect that. :^)
2021-06-27LibJS: Rename Function => FunctionObjectAndreas Kling
2021-06-27LibJS: Ensure shift values in shift_right are modded by 32Andrew Kaster
The unsigned shift right implementation was already doing this, but the spec requires a mod32 of rhs before the shift for the signed shift right implementation as well. Caught by UBSAN and oss-fuzz.
2021-06-27LibJS: Avoid undefined static cast of negative values in to_u32Andrew Kaster
If the value we get after fmod in Value::to_u32 is negative, UBSAN complains that -N is out of bounds for u32. An extra static cast to i64 makes it stop complaining. An alternative implementation could add 2^32 if the fmod'd value is negative. Caught by UBSAN and oss-fuzz.
2021-06-27WindowServer: Un-tile window if resizing warrants itTom
Since being tiled means we restrict rendering a window to the screen it is on (so that we don't "bleed" into an adjacent screen), we need to untile it if the window either can't fit into the screen, or it is detached from the screen edges.
2021-06-27LibJS: Add content type check to IntegerIndexedElementSet()Linus Groh
Resolves a FIXME.
2021-06-27LibJS: Add content type check to InitializeTypedArrayFromTypedArray()Linus Groh
Resolves a FIXME.
2021-06-27LibJS: Implement the TypedArray [[ContentType]] internal slotLinus Groh
2021-06-27LibJS: Add 'is detached' check to InitializeTypedArrayFromTypedArray()Linus Groh
Resolves a FIXME.
2021-06-27LibJS: Make variables in InitializeTypedArrayFromTypedArray() match specLinus Groh
This makes it easier to follow the code and compare it to the spec.
2021-06-27LibJS: Add missing InitializeTypedArrayFromTypedArray() spec linkLinus Groh
Also move the others outside of their functions.
2021-06-27AK: Make the constexpr StringView methods actually constexprAli Mohammad Pur
Also add some tests to ensure that they _remain_ constexpr. In general, any runtime assertions, weirdo C casts, pointer aliasing, and such shenanigans should be gated behind the (helpfully newly added) AK::is_constant_evaluated() function when the intention is to write constexpr-capable code. a.k.a. deliver promises of constexpr-ness :P
2021-06-27FileManager: Pass launch origin rects to spawned programsAndreas Kling
This makes GUI applications animate their initial window showing up on screen. :^)
2021-06-27WindowServer+LibGUI: Allow specifying a "launch origin" for new windowsAndreas Kling
The launch_origin_rect parameter to create_window() specifies where on screen the window was launched from. It's optional, but if you provide it, the new window will have a short wireframe animation from the origin to the initial window frame rect. GUI::Window looks for the "__libgui_launch_origin_rect" environment variable. Put your launch origin rect in there with the format "<x>,<y>,<width>,<height>" and the first GUI::Window shown by the app will use that as the launch origin rect. Also it looks pretty neat, although I'm sure we can improve it. :^)
2021-06-27WindowServer: Add a more generic mechanism for animationsAndreas Kling
This patch adds the WindowServer::Animation class, which represents a simple animation driven by the compositor. An animation has a length (in milliseconds) and two hooks: - on_update: called whenever the animation should render something. - on_stop: called when the animation is finished and/or stopped. This patch also ports the window minimization animation to this new mechanism. :^)
2021-06-27Meta: Do not use gl=on if building in WSLstelar7
2021-06-27Kernel: Implement initializing threads on x86_64Gunnar Beutner
2021-06-27Kernel: Rename Thread::tss to Thread::regs and add x86_64 supportGunnar Beutner
We're using software context switches so calling this struct tss is somewhat misleading.
2021-06-27Kernel: Reorder code a bit to clarify which #if block it belongs toGunnar Beutner
2021-06-27Kernel: Implement safe_* memory access functions for x86_64Gunnar Beutner
2021-06-27Kernel: Clear segment registers on x86_64Gunnar Beutner
They're supposedly unused but iretq doesn't like ss being non-zero.
2021-06-27Kernel: Use macros for GDT indices instead of hardcoding the valuesGunnar Beutner
2021-06-27Kernel: Add support for interrupts on x86_64Gunnar Beutner
2021-06-27Kernel+Userland: Add x86_64 registers to RegisterState/PtraceRegistersGunnar Beutner
2021-06-27Kernel: Fix declaration for struct TrapFrameGunnar Beutner
This is declared as a struct elsewhere.
2021-06-27Kernel: Fix incorrect flags for the GDT entriesGunnar Beutner
The Sz (protected mode) bit should not be set for 64-bit GDT entries.
2021-06-27LibWeb: Make ExceptionOr capable of holding all error types in the specAli Mohammad Pur
The WebIDL spec specifies a few "simple" exception types in addition to the DOMException type, let's support all of those. This allows functions returning ExceptionOr<T> to throw regular javascript exceptions (as limited by the webidl spec) by returning a `DOM::SimpleException { DOM::SimpleExceptionType::T, "error message" }` which is pretty damn cool :^)
2021-06-27AK: Add explicit Variant conversion operatorsAli Mohammad Pur
This allows converting between Variants of different types with less pain.