Commit Graph
8 Commits
Author SHA1 Message Date
Adrià fb99c4fd97 Merge pull request #12442 from simnJS/feat/jsc-string-edge-answers
feat(libSceJsc): answer the JSString null and length cases as JavaScriptCore does
2026-10-29 14:28:54 +01:00
simnJS 2b10aa4211 fix(libSceJsc): bound UTF-8 input and decoded length as WebKit does
The shared UTF-8 decoder behind JSStringCreateWithUTF8CString and
JSStringIsEqualToUTF8CString now applies StringImpl::create's bounds: more
than INT32_MAX bytes throws before decoding, and non-ASCII input decoding to
more than 2147483635 UTF-16 units throws after a successful conversion.
GuestJSStringValidLength mirrors isValidLength and is tested at both limits.
2026-10-28 15:51:00 +01:00
simnJS 50c8d4cd8f feat(libSceJsc): answer the JSString null and length cases as JavaScriptCore does
JSStringCreateWithUTF8CString and JSStringIsEqualToUTF8CString take a null
UTF-8 pointer as a null string, and JSStringCreateWithCharacters returns a
null string for null characters of any length, as WebKit's JSStringRef.cpp
and WTF's String constructors do. A length above WebKit's 2147483635-unit
limit and a null handle given to retain, release or the maximum-size query
throw std exceptions where JavaScriptCore crashes. The reference count is a
wrapping 32-bit counter and the maximum UTF-8 size is computed in 32 bits,
as in WTF.
2026-10-28 14:55:42 +01:00
simnJS fa4dd26fa7 refactor(prx): name the Xml, NKWebKit, Jsc and FreeTypeOl stubs the NID database resolves 2026-10-28 14:51:26 +01:00
Dean Galvin 0a87d9a0a9 Merge main into salvage/jsc-9438: keep main's JSString implementation, append the stubs
Main now implements ten JSString functions in libSceJsc/Export.cpp and has its
own debt file. Take main's files and append the 150 import-resolution stubs
of this PR after them, with their debt entry; none of their NIDs is defined on
main.
2026-10-27 22:39:07 +13:00
AZLisme 5746326efc feat(libSceJsc): implement JavaScriptCore string API 2026-10-25 18:20:03 +08:00
xdCloudy 39e19da487 docs: distinguish known exports from unverified ABI 2026-10-24 16:35:48 -07:00
xdCloudy a1d91b53aa feat(libSceJsc): declare pending exports 2026-10-24 16:35:48 -07:00