Age | Commit message (Collapse) | Author |
|
It turns out "delete" is actually a unary op :)
This patch implements deletion of object properties, it doesn't yet
work for casually deleting properties from the global object.
When deleting a property from an object, we switch that object to
having a unique shape, no longer sharing shapes with others.
Once an object has a unique shape, it no longer needs to care about
shape transitions.
|
|
|
|
This allows us to start WebServer on a port other than 8000, or multiple
instances of it at the same time :^)
Also print out what port was being used in the end.
|
|
Basically === with two particularities: comparing NaN to itself is
considered equal and comparing +0 and -0 is not.
|
|
Userland/hostname: Now takes parameter to set the hostname
LibC/unistd: Added sethostname function
|
|
|
|
This is a special case that was previously not implemented.
The idea is that you can dispatch a signal to all other processes
the calling process has access to.
There was some minor refactoring to make the self signal logic
into a function so it could easily be easily re-used from do_killall.
|
|
The kill system call accepts negative pids, as they
have special meaning:
pid == -1 means all processes the calling process has access to.
pid < -1 means every process who's process group ID is -pid.
I don't see any reason why the user space program should mask this.
|
|
Previously we just woke all waiters no matter how many were
requested. Fix this by implementing WaitQueue::wake_n(..).
|
|
|
|
|
|
|
|
|
|
The image for U+1F600 "GRINNING FACE" shows a ladybug, but the
codepoint of that emoji is actually U+1F41E "LADY BEETLE" :^)
|
|
JS::Value already has the empty state ({} or Value() gives you one.)
Use this instead of wrapping Value in Optional in some places.
I've also added Value::value_or(Value) so you can easily provide a
fallback value when one is not present.
|
|
The LZW decode step will now copy and pad LZW data out to 4 bytes if there are
less than 4 bytes remaining in the buffer. This means it will now also work when
the total size of the LZW image data is less than 4 bytes.
|
|
This feels a little shoddy, but we need to make sure that updates end
up on the right statusbar (since there is one statusbar per tab.)
|
|
Fixes #1952.
|
|
|
|
|
|
Now you can remove a ToolBar from a ToolBarContainer and it will update
its own preferred size automatically.
|
|
|
|
|
|
Previously, when returning from a pthread's start_routine, we would
segfault. Now we instead implicitly call pthread_exit as specified in
the standard.
pthread_create now creates a thread running the new
pthread_create_helper, which properly manages the calling and exiting
of the start_routine supplied to pthread_create. To accomplish this,
the thread's stack initialization has been moved out of
sys$create_thread and into the userspace function create_thread.
|
|
|
|
|
|
|
|
|
|
|
|
The sniff method is intended to be used for content sniffing. It should be a
cheap test to rapidly rule out whether a candidate image can be successfully
decoded. For the GIF and PNG implementations it simply attempts to decode the
image header, returning true if successful and false if not.
|
|
|
|
|
|
Also:
- Define the GIFLoadingContext structure.
- The load_gif_impl function now returns load operation success, and takes a
reference to a GIFLoadingContext as input.
- Implement GIFImageDecoderPlugin::bitmap which calls onto load_gif_impl.
|
|
Add an LZWDecoder class that can decode GIF LZW data.
|
|
|
|
The HackStudio debugger integrates with LibDebug to provide
source-level debugging.
The user can set breakpoints at various positions in the source code,
and then run the program in debug mode.
When the program is stopped, the current execution position is
displayed, and the user can insert/remove breakpoints, continue
execution, or single step the program.
|
|
|
|
Also, change the interface of all breakpoint management functions to
only take the address of the breakpoint as an argument.
|
|
|
|
The Browser can now load a home page URL from the user's Browser.ini
configuration file rather than using a hard-coded URL.
|
|
|
|
|
|
|
|
...and enable this in the main Browser UI. :^)
|
|
|
|
|
|
If valid and decodable, the favicon will be provided to clients via the
on_favicon_change hook. :^)
|
|
|
|
|
|
This makes the active tab "take over" the whole window UI, even though
it's actually inside a TabWidget.
|