Age | Commit message (Collapse) | Author |
|
|
|
Also fixes a spelling mistake in the same file.
|
|
The kernel wouldn't boot reliably on x86_64 with just 2MiB.
|
|
Previously memset() only set half of the bytes to the requested value.
|
|
|
|
|
|
|
|
With this fixed we can now properly handle interrupts (e.g. timer
interrupts) on x86_64.
|
|
Unlike on x86 iretq always pops rsp and ss.
|
|
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.
|
|
This includes not throwing a custom exception and using the
length_of_array_like abstract operation where required.
|
|
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.
|
|
|
|
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.
|
|
|
|
This is done by just using the built-in ceiling and subtracting from
the result if its in the 0.5 range.
|
|
|
|
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 :^)
|
|
|
|
|
|
Now that JS function objects are JS::FunctionObject, we can stop
qualifying AK::Function and just say "Function" everywhere. Nice. :^)
|
|
|
|
These are basically what the spec calls "ordinary function objects",
so let's have the name reflect that. :^)
|
|
|
|
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.
|
|
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.
|
|
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.
|
|
Resolves a FIXME.
|
|
Resolves a FIXME.
|
|
|
|
Resolves a FIXME.
|
|
This makes it easier to follow the code and compare it to the spec.
|
|
Also move the others outside of their functions.
|
|
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
|
|
This makes GUI applications animate their initial window showing up
on screen. :^)
|
|
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. :^)
|
|
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. :^)
|
|
|
|
|
|
We're using software context switches so calling this struct tss is
somewhat misleading.
|
|
|
|
|
|
They're supposedly unused but iretq doesn't like ss being non-zero.
|
|
|
|
|
|
|
|
This is declared as a struct elsewhere.
|
|
The Sz (protected mode) bit should not be set for 64-bit GDT entries.
|
|
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 :^)
|
|
This allows converting between Variants of different types with less
pain.
|