mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-09-26 02:17:34 +09:00
Add ConvertJSValueTo*String functions that just take a value and hand out a string, without extra complications
This commit is contained in:
parent
6196fdda47
commit
e234612456
3 changed files with 34 additions and 8 deletions
|
|
@ -2558,7 +2558,7 @@ NonVoidByteStringToJsval(JSContext *cx, const nsACString &str,
|
||||||
|
|
||||||
|
|
||||||
template<typename T> static void
|
template<typename T> static void
|
||||||
NormalizeUSVStringInternal(JSContext* aCx, T& aString)
|
NormalizeUSVStringInternal(T& aString)
|
||||||
{
|
{
|
||||||
char16_t* start = aString.BeginWriting();
|
char16_t* start = aString.BeginWriting();
|
||||||
// Must use const here because we can't pass char** to UTF16CharEnumerator as
|
// Must use const here because we can't pass char** to UTF16CharEnumerator as
|
||||||
|
|
@ -2575,15 +2575,15 @@ NormalizeUSVStringInternal(JSContext* aCx, T& aString)
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
NormalizeUSVString(JSContext* aCx, nsAString& aString)
|
NormalizeUSVString(nsAString& aString)
|
||||||
{
|
{
|
||||||
NormalizeUSVStringInternal(aCx, aString);
|
NormalizeUSVStringInternal(aString);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
NormalizeUSVString(JSContext* aCx, binding_detail::FakeString& aString)
|
NormalizeUSVString(binding_detail::FakeString& aString)
|
||||||
{
|
{
|
||||||
NormalizeUSVStringInternal(aCx, aString);
|
NormalizeUSVStringInternal(aString);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool
|
bool
|
||||||
|
|
|
||||||
|
|
@ -2127,11 +2127,30 @@ ConvertJSValueToString(JSContext* cx, JS::Handle<JS::Value> v,
|
||||||
return AssignJSString(cx, result, s);
|
return AssignJSString(cx, result, s);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
template<typename T>
|
||||||
NormalizeUSVString(JSContext* aCx, nsAString& aString);
|
static inline bool
|
||||||
|
ConvertJSValueToString(JSContext* cx, JS::Handle<JS::Value> v, T& result)
|
||||||
|
{
|
||||||
|
return ConvertJSValueToString(cx, v, eStringify, eStringify, result);
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
NormalizeUSVString(JSContext* aCx, binding_detail::FakeString& aString);
|
NormalizeUSVString(nsAString& aString);
|
||||||
|
|
||||||
|
void
|
||||||
|
NormalizeUSVString(binding_detail::FakeString& aString);
|
||||||
|
|
||||||
|
template<typename T>
|
||||||
|
static inline bool
|
||||||
|
ConvertJSValueToUSVString(JSContext* cx, JS::Handle<JS::Value> v, T& result)
|
||||||
|
{
|
||||||
|
if (!ConvertJSValueToString(cx, v, eStringify, eStringify, result)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
NormalizeUSVString(result);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
template<typename T>
|
template<typename T>
|
||||||
inline bool
|
inline bool
|
||||||
|
|
@ -2158,6 +2177,13 @@ bool
|
||||||
ConvertJSValueToByteString(JSContext* cx, JS::Handle<JS::Value> v,
|
ConvertJSValueToByteString(JSContext* cx, JS::Handle<JS::Value> v,
|
||||||
bool nullable, nsACString& result);
|
bool nullable, nsACString& result);
|
||||||
|
|
||||||
|
inline bool
|
||||||
|
ConvertJSValueToByteString(JSContext* cx, JS::Handle<JS::Value> v,
|
||||||
|
nsACString& result)
|
||||||
|
{
|
||||||
|
return ConvertJSValueToByteString(cx, v, false, result);
|
||||||
|
}
|
||||||
|
|
||||||
template<typename T>
|
template<typename T>
|
||||||
void DoTraceSequence(JSTracer* trc, FallibleTArray<T>& seq);
|
void DoTraceSequence(JSTracer* trc, FallibleTArray<T>& seq);
|
||||||
template<typename T>
|
template<typename T>
|
||||||
|
|
|
||||||
|
|
@ -5560,7 +5560,7 @@ def getJSToNativeConversionInfo(type, descriptorProvider, failureCode=None,
|
||||||
def getConversionCode(varName):
|
def getConversionCode(varName):
|
||||||
normalizeCode = ""
|
normalizeCode = ""
|
||||||
if type.isUSVString():
|
if type.isUSVString():
|
||||||
normalizeCode = "NormalizeUSVString(cx, %s);\n" % varName
|
normalizeCode = "NormalizeUSVString(%s);\n" % varName
|
||||||
|
|
||||||
conversionCode = fill("""
|
conversionCode = fill("""
|
||||||
if (!ConvertJSValueToString(cx, $${val}, ${nullBehavior}, ${undefinedBehavior}, ${varName})) {
|
if (!ConvertJSValueToString(cx, $${val}, ${nullBehavior}, ${undefinedBehavior}, ${varName})) {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue