Timothy Flynn
2e4b6fd1ac
LibRegex: Ensure escaped code points are exactly 4 digits in length
2021-08-15 11:43:45 +01:00
Timothy Flynn
e887314472
LibRegex: Fix ECMA-262 parsing of invalid identity escapes
...
* Only alphabetic (A-Z, a-z) characters may be escaped with \c. The loop
currently parsing \c includes code points between the upper/lower case
groups.
* In Unicode mode, all invalid identity escapes should cause a parser
error, even in browser-extended mode.
* Avoid an infinite loop when parsing the pattern "\c" on its own.
2021-08-15 11:43:45 +01:00
Robert Stefanic
e26cfd313e
LibJS: Prevent stack overflow in flatten_into_array()
...
The check for stack space in VM from push_execution_context has been
moved to a method on VM called did_reach_stack_space_limit. This
allows us to check the stack size in other places besides
push_execution_context.
We can now verify that we have enough space on the stack before calling
flatten_into_array to ensure that we don't cause a stack overflow error
when calling the function with a large depth.
2021-08-15 11:24:30 +01:00
Brian Gianforcaro
da51b8f39d
LibCore: Move EventLoop to AK::Time
2021-08-15 12:20:38 +02:00
Linus Groh
4520863c0e
LibJS/Tests: Add test for PlainMonthDay default reference year
2021-08-15 10:36:36 +01:00
Linus Groh
8f7a9e1e5c
LibJS/Tests: Add test for PlainYearMonth default reference day
2021-08-15 10:36:36 +01:00
Linus Groh
1549845389
LibJS: Implement Temporal.PlainMonthDay.prototype.getISOFields()
2021-08-15 10:36:36 +01:00
Linus Groh
7fb05eb878
LibJS: Implement Temporal.PlainMonthDay.prototype.valueOf()
2021-08-15 10:36:36 +01:00
Linus Groh
c2ed3ad66b
LibJS: Implement Temporal.PlainMonthDay.prototype.day
2021-08-15 10:36:36 +01:00
Linus Groh
9551aa17d3
LibJS: Implement Temporal.PlainMonthDay.prototype.monthCode
2021-08-15 10:36:36 +01:00
Linus Groh
1382be1707
LibJS: Implement Temporal.PlainMonthDay.prototype.calendar
2021-08-15 10:36:36 +01:00
Linus Groh
37b5a0715e
LibJS: Implement Temporal.PlainMonthDay.prototype[@@toStringTag]
2021-08-15 10:36:36 +01:00
Linus Groh
0cf526d0c4
LibJS: Handle PlainMonthDay in the Calendar.prototype getters
2021-08-15 10:36:36 +01:00
Linus Groh
b76bae13fd
LibJS: Handle PlainMonthDay in ISO{Year,Month,MonthCode,Day}
2021-08-15 10:36:36 +01:00
Linus Groh
ec00d4729a
LibJS: Handle PlainMonthDay in GetTemporalCalendarWithISODefault
2021-08-15 10:36:36 +01:00
Linus Groh
1e54e37228
LibJS: Handle PlainMonthDay in ToTemporalCalendar
2021-08-15 10:36:36 +01:00
Linus Groh
be07e2e91b
LibJS: Start implementing Temporal.PlainMonthDay
...
This commit adds the PlainMonthDay object itself, its constructor and
prototype (currently empty), and the CreateTemporalMonthDay abstract
operations.
2021-08-15 10:36:36 +01:00
Linus Groh
301d622b46
LibJS/Tests: Tweak PlainYearMonth Infinity test values
...
Since we want to test that +/- Infinity fails as an argument, we should
provide valid arguments for everything else - 0 for month isn't :^)
2021-08-15 10:36:36 +01:00
Nico Weber
f25be94487
LibCore: Make --version print same version as in LibGUI's About dialogs
...
Making every binary's behavior depend on the current git hash seems a
bit questionable to me, but we should be self-consistent about this.
2021-08-15 01:22:45 +02:00
Nico Weber
faa2c74b49
LibGUI: Simplify AboutDialog::version_string()
...
No behavior change.
2021-08-15 01:22:45 +02:00
Nico Weber
a45b6dbc07
LibCore: Include math.h instead of defining isnan() in ArgsParser.cpp
2021-08-15 01:22:45 +02:00
Idan Horowitz
04359995a7
LibJS: Exclude FinalizationRegistries with queued cleanup jobs from GC
...
This is done by just adding them to the list of GC roots, which
prevents the VM from trying to run cleanup job of garbage collected
registries.
2021-08-14 22:32:31 +01:00
Kenneth Myhra
f8d27303d0
LibC: Add stubs for several functions in xattr.h
...
The following functions are stubbed out:
- getxattr
- lgetxattr
- fgetxattr
- setxattr
- lsetxattr
- fsetxattr
- listxattr
- llistxattr
- flistxattr
2021-08-14 22:32:00 +01:00
Kenneth Myhra
04733ccb56
LibC: Add stub for res_query
2021-08-14 22:32:00 +01:00
Kenneth Myhra
8abfcb976d
LibC: Add stub for fnmatch and a set of defined values
...
This adds a stub for fnmatch and the following defined values:
- FNM_PATHNAME
- FNM_NOESCAPE
- FNM_PERIOD
- FNM_FILE_NAME
- FNM_LEADING_DIR
- FNM_CASEFOLD
- FNM_EXTMATCH
2021-08-14 22:32:00 +01:00
Kenneth Myhra
8d19d8861a
LibC: Add FIONREAD to ioctl.h
2021-08-14 22:32:00 +01:00
Kenneth Myhra
78eba1271f
LibC: Add function fdopendir
...
This adds the function fdopendir and refactors opendir so that opendir
just opens a file descriptor and passes the file descriptor onto
fdopendir.
2021-08-14 22:32:00 +01:00
Nico Weber
1f71d7bf22
LibCore: Add --version flag to ArgsParser
...
`--version` always prints "git" for now.
The motivation is that the neofetch port calls `Shell --version` and
adds the output to its output. And if `Shell --version` prints a long
error message about it not knowing the flag, neofetch's output looks a
bit ugly. Per Discord discussion, just add the flag to ArgsParser
instead of only to Shell.
2021-08-14 22:46:34 +04:30
Andreas Kling
286a7ecd92
LibJS: Call base class visit_edges() in various Temporal objects
...
When overriding visit_edges() in a JS::Object subclass, we must make
sure to call the base class visit_edges(), or the object's Shape (and
any properties) will not get marked.
2021-08-14 20:12:22 +02:00
Andreas Kling
e1273a8ff7
Kernel+LibC: Share definitions for sys/statvfs.h
2021-08-14 19:58:11 +02:00
Andreas Kling
c9a5d83ccc
Kernel+LibC: Share definitions for sys/uio.h
2021-08-14 19:58:11 +02:00
Andreas Kling
37e98a55b7
Kernel+LibC: Share definitions for sys/ptrace.h
2021-08-14 19:58:11 +02:00
Andreas Kling
6b6eca0631
Kernel+LibC: Share definitions for sys/time.h
2021-08-14 19:58:11 +02:00
Andreas Kling
35b52338bb
Kernel+LibC: Share definitions for sys/times.h
2021-08-14 19:58:11 +02:00
Andreas Kling
808ce594db
Kernel+LibC: Share definitions for stdio.h
2021-08-14 19:58:11 +02:00
Andreas Kling
9c2212a60a
Kernel+LibC: Share definitions for unistd.h
2021-08-14 19:58:11 +02:00
Andreas Kling
d33b43276c
Kernel+LibC: Share definitions for poll.h
2021-08-14 19:58:11 +02:00
Andreas Kling
d794ed1de7
Kernel+LibC: Share definitions for utsname.h
2021-08-14 19:58:11 +02:00
Andreas Kling
c65a735d71
Kernel+LibC: Share definitions for dirent.h
2021-08-14 19:58:11 +02:00
Andreas Kling
77c2c0f620
Kernel+LibC: Share definitions for serenity.h
2021-08-14 19:58:11 +02:00
Andreas Kling
6f78377864
Kernel+LibC: Share definitions for sys/wait.h
2021-08-14 19:58:11 +02:00
Andreas Kling
661bd992b0
Kernel+LibC: Share definitions for net/{if,if_arp,route}.h
2021-08-14 19:58:11 +02:00
Andreas Kling
ff50122dc5
Kernel+LibC: Share definitions for futex.h
2021-08-14 19:58:11 +02:00
Andreas Kling
6fd7212476
Kernel+LibC: Share definitions for signal.h
2021-08-14 19:58:11 +02:00
Andreas Kling
9dc1350177
Kernel+LibC: Share definitions for netinet/in.h
2021-08-14 19:58:11 +02:00
Andreas Kling
b92e6b02e5
Kernel+LibC: Share definitions for sys/socket.h and sys/un.h
2021-08-14 19:58:11 +02:00
Andreas Kling
d277cdfd4c
Kernel+LibC: Share definitions for termios.h
2021-08-14 19:58:11 +02:00
Andreas Kling
a8d1c2dde9
Kernel+LibC: Share definitions for sys/mman.h
2021-08-14 19:58:11 +02:00
Andreas Kling
0a78056453
Kernel+LibC: Share definitions for time.h and sys/stat.h
2021-08-14 19:58:11 +02:00
Andreas Kling
740140a661
Kernel+LibC: Share definitions in fcntl.h and sys/types.h
...
This patch begins the work of sharing types and macros between Kernel
and LibC instead of duplicating them via the kludge in UnixTypes.h.
The basic idea is that the Kernel vends various POSIX headers via
Kernel/API/POSIX/ and LibC simply #include's them to get the macros.
2021-08-14 19:58:11 +02:00