summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2021-06-26Revert "LibJS: Fix this_value in native setters and getters"davidot
This reverts commit f102b563 The reverted to behavior is not correct for example with a double proxy But this change lead to problems with DOMNodes
2021-06-26LibJS: Fix propagation of setters and getters from prototypesdavidot
If we define a property with just a setter/getter (not both) we must: - take the previous getter/setter if defined on the actual object - overwrite the other to nullptr if it is from a prototype
2021-06-26LibJS: Allow setting the length of an object with prototype Arraydavidot
Before this it would always go through the native setter thus modifying the array but now you can set length to anything
2021-06-26LibJS: Don't remove non-configurable items in Array when setting lengthdavidot
2021-06-26LibJS: Make Array.prototype.lastIndexOf slightly more spec compliantdavidot
2021-06-26Meta: Use virtio-vga instead of virtio-gpu if using multiple monitorsSahan Fernando
2021-06-26Toolchain: Build the x86_64 target in addition to i386 in BuildQemu.shIdan Horowitz
2021-06-26LibJS: Make sure `this` in the global environment is the global objectAndreas Kling
Fixes regressed with 0f9038b732a6e0f5830e5e95c0b2a1c78efea415.
2021-06-26LibJS+LibCrypto: Allow '_' as a numeric literal separator :^)Andreas Kling
This patch adds support for the NumericLiteralSeparator concept from the ECMAScript grammar.
2021-06-26LibJS: Fix spelling mistake in one of the syntax error descriptionsAndreas Kling
2021-06-26CI: Increase the on-target tests timeout to 60 minutes from 30 minutesIdan Horowitz
This should help reduce the random test failures due to timeouts on slower github actions runners.
2021-06-26LibJS: Add %TypedArray%.prototype.entriesLuke
2021-06-26LibJS: Add %TypedArray%.prototype.valuesLuke
2021-06-26LibJS: Add %TypedArray%.prototype.keysLuke
2021-06-26LibJS: Add TypedArray support to ArrayIteratorLuke
ArrayIteratorPrototype::next seems to implement CreateArrayIterator, which is an issue for a separate PR.
2021-06-26Kernel: Specify -fno-pic when using -mcmodel=largeGunnar Beutner
According to the gcc man page these are mutually exclusive and did in fact cause problems when trying to get the address for asm labels on x86_64.
2021-06-26Kernel: Clean up create_signal_trampoline a bitGunnar Beutner
The types for asm_signal_trampoline and asm_signal_trampoline_end were incorrect. They both point into the text segment but they're not really functions.
2021-06-26Kernel: Add CPUID flag for long modeGunnar Beutner
This isn't particularly useful because by the time we've entered init() the CPU had better support x86_64 anyway. However this shows the CPU flag in System Monitor - even in 32-bit mode.
2021-06-26Kernel: Ensure that the ProcessBase class is properly laid out on x86_64Gunnar Beutner
Without this the ProcessBase class is placed into the padding for the ProtectedProcessBase class which then causes the members of the RefCounted class to end up without the first 4096 bytes of the Process class: BP 1, Kernel::Process::protect_data (this=this@entry=0xc063b000) 205 { (gdb) p &m_ref_count $1 = (AK::Atomic<unsigned int, (AK::MemoryOrder)5> *) 0xc063bffc Note how the difference between 'this' and &m_ref_count is less than 4096.
2021-06-26Kernel: Correct spelling mistakeGunnar Beutner
2021-06-26Kernel: Make addresses returned by kmalloc() properly aligned for x86_64Gunnar Beutner
2021-06-26Kernel: Add PML4T support for the PageDirectory classGunnar Beutner
2021-06-26Kernel: Fix memcpy and memset for x86_64Gunnar Beutner
Those size_ts sure are growing up fast.
2021-06-26Kernel: Add slab allocator for 256 bytesGunnar Beutner
Our types are getting a tiny bit larger for x86_64 so we need another slab allocator to deal with that.
2021-06-26Kernel: Fix off-by-one error in Processor::write_raw_gdt_entryGunnar Beutner
2021-06-26Kernel: Add support for setting up a x86_64 GDT once in C++ landGunnar Beutner
2021-06-26Kernel: Fix GDT limitsGunnar Beutner
The GDT limits are inclusive, so for correctness we should subtract one from the structs' size.
2021-06-26LibJS: Align ObjectEnvironmentRecord member names with the specAndreas Kling
In the spec, object environments have a [[BindingObject]], so let's call it the same thing in our implementation.
2021-06-26LibJS: Remove unnecessary GlobalObject& member on global environmentAndreas Kling
We already store the GlobalObject& in a base class, so no need to also store it in the subclass. :^)
2021-06-26LibJS: Create new object earlier in VM::construct()Andreas Kling
Also make use of OrdinaryCreateFromConstructor() instead of setting the prototype manually. This fixes 2 function tests in test262. :^)
2021-06-25Meta: Force relative mouse coordinates with multiple screensTom
QEMU appears to always relay absolute mouse coordinates relative to the screen that the mouse is pointed to, without any way for us to know what screen it was. So, when dealing with multiple displays force using relative coordinates only.
2021-06-25LibJS: Change PropertyName(i32) => template<Integral T> PropertyName(T)Linus Groh
Negative numeric properties are not a thing (and we even VERIFY()'d this in the constructor). It still allows using types with a negative range for now as we have various places using int for example (without actually needing the negative range, but that's a different story). u32 is the internal type of `m_number` already, so this now allows us to leverage the full u32 range for numeric properties.
2021-06-25LibJS: Change PropertyName(Symbol*) => PropertyName(Symbol&)Linus Groh
Requires a bunch of find-and-replace updates across LibJS, but constructing a PropertyName from a nullptr Symbol* should not be possible - let's enforce this at the compiler level instead of using VERIFY() (and already dereference Symbol pointers at the call site).
2021-06-25Meta: Add SERENITY_SCREENS environment variableTom
This allows specifying how many screens we should use. This also then only enables virtio-gpu if more than one display is requested. This also adds an environment variable SERENITY_QEMU_DISPLAY_BACKEND which allows overriding the default qemu display backend, as it may not be available.
2021-06-25LibJS: Rename ScriptFunction::m_parent_scope => m_environmentAndreas Kling
This is for the [[Environment]] slot so let's have a matching name. :^)
2021-06-25LibJS: Add the Function.[[ThisMode]] fieldAndreas Kling
This is not a behavioral change in itself, just prep work for future spec-compliance changes.
2021-06-25LibJS: FunctionEnvironment.[[FunctionObject]] is the *invoked* functionAndreas Kling
We were setting the wrong [[FunctionObject]] on the environment when going through ProxyObject and BoundFunction.
2021-06-25LibJS: Rename the context in Call/Construct ops to "callee context"Andreas Kling
This matches what the spec calls them.
2021-06-25LibJS: Make assertion in BindThisValue mirror the spec exactly :^)Andreas Kling
2021-06-25WindowServer: Change rendering drag&drop to use the Overlay classTom
This enables flicker-free rendering.
2021-06-25WindowServer: Change window geometry label to use the Overlay classTom
This enables flicker-free rendering.
2021-06-25DisplaySettings: Show screen numbers when showing the Monitors tabTom
This will be helpful once we allow the user to rearrange the displays.
2021-06-25WindowServer: Add an Overlay class for flicker-free overlay renderingTom
An Overlay is similar to a transparent window, but has less overhead and does not get rendered within the window stack. Basically, the area that an Overlay occupies forces transparency rendering for any window underneath, which allows us to render them flicker-free. This also adds a new API that allows displaying the screen numbers, e.g. while the user configures the screen layout in DisplaySettings Because other things like drag&drop or the window-size label are not yet converted to use this new mechanism, they will be drawn over the screen-number currently.
2021-06-25WindowServer: Enhance simple shadow function to include optional frameTom
If the shadow bitmap contains portions of the frame then we need to slightly tweak the logic dealing with very small width and/or height.
2021-06-25Kernel: Add VirtIOGPU graphics deviceSahan Fernando
2021-06-25Kernel: Don't clear VirtualConsoles when initializingSahan Fernando
Instead of calling clear() for each virtual console we initialize, we only call clear() when activating it from ConsoleManagement.
2021-06-25WindowServer: Redraw screen when switching back from ttySahan Fernando
2021-06-25Kernel: Pass TTY-switch keyboard combo to userspaceSahan Fernando
2021-06-25Kernel: Fix use after AK::move in Kernel::TimerQueueSahan Fernando
2021-06-25Userland: Add FB_FLUSH ioctl for fbdevSahan Fernando