Backed out changesets ad58c270ce87 and 849151330d60 (bug 1177892) for B2G bustage.

CLOSED TREE
This commit is contained in:
Ryan VanderMeulen 2015-06-30 15:48:11 -04:00
parent faaac1a61d
commit 7483c0563e
25 changed files with 65 additions and 45 deletions

View File

@ -1271,7 +1271,7 @@ EventSource::DispatchAllMessageEvents()
message->mData.Length());
NS_ENSURE_TRUE_VOID(jsString);
jsData.setString(jsString);
jsData = STRING_TO_JSVAL(jsString);
}
// create an event that uses the MessageEvent interface,

View File

@ -1776,7 +1776,7 @@ WebSocket::CreateAndDispatchMessageEvent(JSContext* aCx,
jsString = JS_NewUCStringCopyN(aCx, utf16Data.get(), utf16Data.Length());
NS_ENSURE_TRUE(jsString, NS_ERROR_FAILURE);
jsData.setString(jsString);
jsData = STRING_TO_JSVAL(jsString);
}
// create an event that uses the MessageEvent interface,

View File

@ -399,7 +399,7 @@ nsDOMDataChannel::DoOnMessageAvailable(const nsACString& aData,
JSString* jsString = JS_NewUCStringCopyN(cx, utf16data.get(), utf16data.Length());
NS_ENSURE_TRUE(jsString, NS_ERROR_FAILURE);
jsData.setString(jsString);
jsData = STRING_TO_JSVAL(jsString);
}
nsCOMPtr<nsIDOMEvent> event;

View File

@ -931,7 +931,7 @@ nsJSContext::AddSupportsPrimitiveTojsvals(nsISupports *aArg, JS::Value *aArgv)
JSString *str = ::JS_NewStringCopyN(cx, data.get(), data.Length());
NS_ENSURE_TRUE(str, NS_ERROR_OUT_OF_MEMORY);
aArgv->setString(str);
*aArgv = STRING_TO_JSVAL(str);
break;
}
@ -949,7 +949,7 @@ nsJSContext::AddSupportsPrimitiveTojsvals(nsISupports *aArg, JS::Value *aArgv)
::JS_NewUCStringCopyN(cx, data.get(), data.Length());
NS_ENSURE_TRUE(str, NS_ERROR_OUT_OF_MEMORY);
aArgv->setString(str);
*aArgv = STRING_TO_JSVAL(str);
break;
}
case nsISupportsPrimitive::TYPE_PRBOOL : {
@ -960,7 +960,7 @@ nsJSContext::AddSupportsPrimitiveTojsvals(nsISupports *aArg, JS::Value *aArgv)
p->GetData(&data);
aArgv->setBoolean(data);
*aArgv = BOOLEAN_TO_JSVAL(data);
break;
}
@ -1011,7 +1011,7 @@ nsJSContext::AddSupportsPrimitiveTojsvals(nsISupports *aArg, JS::Value *aArgv)
JSString *str = ::JS_NewStringCopyN(cx, &data, 1);
NS_ENSURE_TRUE(str, NS_ERROR_OUT_OF_MEMORY);
aArgv->setString(str);
*aArgv = STRING_TO_JSVAL(str);
break;
}

View File

@ -3028,7 +3028,7 @@ CreateGlobal(JSContext* aCx, T* aNative, nsWrapperCache* aCache,
JSAutoCompartment ac(aCx, aGlobal);
{
js::SetReservedSlot(aGlobal, DOM_OBJECT_SLOT, JS::PrivateValue(aNative));
js::SetReservedSlot(aGlobal, DOM_OBJECT_SLOT, PRIVATE_TO_JSVAL(aNative));
NS_ADDREF(aNative);
aCache->SetWrapper(aGlobal);

View File

@ -290,7 +290,7 @@ MobileMessageCallback::NotifyGetSmscAddress(const nsAString& aSmscAddress)
return NotifyError(nsIMobileMessageCallback::INTERNAL_ERROR);
}
JS::Rooted<JS::Value> val(cx, JS::StringValue(smsc));
JS::Rooted<JS::Value> val(cx, STRING_TO_JSVAL(smsc));
return NotifySuccess(val);
}

View File

@ -489,7 +489,7 @@ NPVariantToJSVal(NPP npp, JSContext *cx, const NPVariant *variant)
case NPVariantType_Null :
return JS::NullValue();
case NPVariantType_Bool :
return JS::BooleanValue(NPVARIANT_TO_BOOLEAN(*variant));
return BOOLEAN_TO_JSVAL(NPVARIANT_TO_BOOLEAN(*variant));
case NPVariantType_Int32 :
{
// Don't use INT_TO_JSVAL directly to prevent bugs when dealing
@ -509,7 +509,7 @@ NPVariantToJSVal(NPP npp, JSContext *cx, const NPVariant *variant)
::JS_NewUCStringCopyN(cx, utf16String.get(), utf16String.Length());
if (str) {
return JS::StringValue(str);
return STRING_TO_JSVAL(str);
}
break;

View File

@ -824,7 +824,7 @@ bool SetStringProperty(JSContext *cx, JS::Handle<JSObject*> aObject, const char
}
JSString* strValue = JS_NewUCStringCopyZ(cx, aValue.get());
NS_ENSURE_TRUE(strValue, false);
JS::Rooted<JS::Value> valValue(cx, JS::StringValue(strValue));
JS::Rooted<JS::Value> valValue(cx, STRING_TO_JSVAL(strValue));
return JS_SetProperty(cx, aObject, aProperty, valValue);
}
@ -891,7 +891,7 @@ bool DefineOSFileConstants(JSContext *cx, JS::Handle<JSObject*> global)
if (!strVersion){
return false;
}
JS::Rooted<JS::Value> valVersion(cx, JS::StringValue(strVersion));
JS::Rooted<JS::Value> valVersion(cx, STRING_TO_JSVAL(strVersion));
if (!JS_SetProperty(cx, objSys, "Name", valVersion)) {
return false;
}
@ -907,7 +907,7 @@ bool DefineOSFileConstants(JSContext *cx, JS::Handle<JSObject*> global)
return false;
}
JS::Rooted<JS::Value> valVersion(cx, JS::StringValue(strVersion));
JS::Rooted<JS::Value> valVersion(cx, STRING_TO_JSVAL(strVersion));
if (!JS_SetProperty(cx, objSys, "Name", valVersion)) {
return false;
}

View File

@ -2457,7 +2457,7 @@ XMLHttpRequest::GetResponse(JSContext* /* unused */,
return;
}
mStateData.mResponse.setString(str);
mStateData.mResponse = STRING_TO_JSVAL(str);
}
}

View File

@ -1029,7 +1029,7 @@ nsXBLBinding::DoInitJSClass(JSContext *cx,
nsXBLDocumentInfo* docInfo = aProtoBinding->XBLDocumentInfo();
::JS_SetPrivate(proto, docInfo);
NS_ADDREF(docInfo);
JS_SetReservedSlot(proto, 0, JS::PrivateValue(aProtoBinding));
JS_SetReservedSlot(proto, 0, PRIVATE_TO_JSVAL(aProtoBinding));
// Next, enter the compartment of the property holder, wrap the proto, and
// stick it on.

View File

@ -362,7 +362,7 @@ JavaScriptShared::fromVariant(JSContext* cx, const JSVariant& from, MutableHandl
return true;
case JSVariant::Tbool:
to.setBoolean(from.get_bool());
to.set(BOOLEAN_TO_JSVAL(from.get_bool()));
return true;
case JSVariant::TnsString:

View File

@ -1971,6 +1971,12 @@ UINT_TO_JSVAL(uint32_t i)
: DOUBLE_TO_JSVAL((double)i);
}
static inline jsval
STRING_TO_JSVAL(JSString* str)
{
return IMPL_TO_JSVAL(STRING_TO_JSVAL_IMPL(str));
}
static inline jsval
OBJECT_TO_JSVAL(JSObject* obj)
{
@ -1979,6 +1985,20 @@ OBJECT_TO_JSVAL(JSObject* obj)
return IMPL_TO_JSVAL(BUILD_JSVAL(JSVAL_TAG_NULL, 0));
}
static inline jsval
BOOLEAN_TO_JSVAL(bool b)
{
return IMPL_TO_JSVAL(BOOLEAN_TO_JSVAL_IMPL(b));
}
/* To be GC-safe, privates are tagged as doubles. */
static inline jsval
PRIVATE_TO_JSVAL(void* ptr)
{
return IMPL_TO_JSVAL(PRIVATE_PTR_TO_JSVAL_IMPL(ptr));
}
namespace JS {
extern JS_PUBLIC_DATA(const HandleValue) NullHandleValue;

View File

@ -2010,7 +2010,7 @@ JS_SetCTypesCallbacks(JSObject* ctypesObj, const JSCTypesCallbacks* callbacks)
// Set the callbacks on a reserved slot.
JS_SetReservedSlot(ctypesObj, SLOT_CALLBACKS,
PrivateValue(const_cast<JSCTypesCallbacks*>(callbacks)));
PRIVATE_TO_JSVAL(const_cast<JSCTypesCallbacks*>(callbacks)));
}
namespace js {
@ -3929,9 +3929,9 @@ CType::Create(JSContext* cx,
// Set up the reserved slots.
JS_SetReservedSlot(typeObj, SLOT_TYPECODE, INT_TO_JSVAL(type));
if (ffiType)
JS_SetReservedSlot(typeObj, SLOT_FFITYPE, PrivateValue(ffiType));
JS_SetReservedSlot(typeObj, SLOT_FFITYPE, PRIVATE_TO_JSVAL(ffiType));
if (name)
JS_SetReservedSlot(typeObj, SLOT_NAME, StringValue(name));
JS_SetReservedSlot(typeObj, SLOT_NAME, STRING_TO_JSVAL(name));
JS_SetReservedSlot(typeObj, SLOT_SIZE, size);
JS_SetReservedSlot(typeObj, SLOT_ALIGN, align);
@ -4274,7 +4274,7 @@ CType::GetFFIType(JSContext* cx, JSObject* obj)
if (!result)
return nullptr;
JS_SetReservedSlot(obj, SLOT_FFITYPE, PrivateValue(result.get()));
JS_SetReservedSlot(obj, SLOT_FFITYPE, PRIVATE_TO_JSVAL(result.get()));
return result.release();
}
@ -4291,7 +4291,7 @@ CType::GetName(JSContext* cx, HandleObject obj)
JSString* name = BuildTypeName(cx, obj);
if (!name)
return nullptr;
JS_SetReservedSlot(obj, SLOT_NAME, StringValue(name));
JS_SetReservedSlot(obj, SLOT_NAME, STRING_TO_JSVAL(name));
return name;
}
@ -5636,7 +5636,7 @@ StructType::DefineInternal(JSContext* cx, JSObject* typeObj_, JSObject* fieldsOb
if (!SizeTojsval(cx, structSize, &sizeVal))
return false;
JS_SetReservedSlot(typeObj, SLOT_FIELDINFO, PrivateValue(fields.release()));
JS_SetReservedSlot(typeObj, SLOT_FIELDINFO, PRIVATE_TO_JSVAL(fields.release()));
JS_SetReservedSlot(typeObj, SLOT_SIZE, sizeVal);
JS_SetReservedSlot(typeObj, SLOT_ALIGN, INT_TO_JSVAL(structAlign));
@ -6297,7 +6297,7 @@ CreateFunctionInfo(JSContext* cx,
}
// Stash the FunctionInfo in a reserved slot.
JS_SetReservedSlot(typeObj, SLOT_FNINFO, PrivateValue(fninfo));
JS_SetReservedSlot(typeObj, SLOT_FNINFO, PRIVATE_TO_JSVAL(fninfo));
ffi_abi abi;
if (!GetABI(cx, abiType, &abi)) {
@ -6840,7 +6840,7 @@ CClosure::Create(JSContext* cx,
cinfo->jsfnObj = fnObj;
// Stash the ClosureInfo struct on our new object.
JS_SetReservedSlot(result, SLOT_CLOSUREINFO, PrivateValue(cinfo));
JS_SetReservedSlot(result, SLOT_CLOSUREINFO, PRIVATE_TO_JSVAL(cinfo));
// Create an ffi_closure object and initialize it.
void* code;
@ -7086,7 +7086,7 @@ CData::Create(JSContext* cx,
JS_SetReservedSlot(dataObj, SLOT_REFERENT, OBJECT_TO_JSVAL(refObj));
// Set our ownership flag.
JS_SetReservedSlot(dataObj, SLOT_OWNS, BooleanValue(ownResult));
JS_SetReservedSlot(dataObj, SLOT_OWNS, BOOLEAN_TO_JSVAL(ownResult));
// attach the buffer. since it might not be 2-byte aligned, we need to
// allocate an aligned space for it and store it there. :(
@ -7117,7 +7117,7 @@ CData::Create(JSContext* cx,
}
*buffer = data;
JS_SetReservedSlot(dataObj, SLOT_DATA, PrivateValue(buffer));
JS_SetReservedSlot(dataObj, SLOT_DATA, PRIVATE_TO_JSVAL(buffer));
return dataObj;
}
@ -8061,7 +8061,7 @@ Int64Base::Construct(JSContext* cx,
return nullptr;
}
JS_SetReservedSlot(result, SLOT_INT64, PrivateValue(buffer));
JS_SetReservedSlot(result, SLOT_INT64, PRIVATE_TO_JSVAL(buffer));
if (!JS_FreezeObject(cx, result))
return nullptr;

View File

@ -89,7 +89,7 @@ Library::Create(JSContext* cx, jsval path_, const JSCTypesCallbacks* callbacks)
return nullptr;
// initialize the library
JS_SetReservedSlot(libraryObj, SLOT_LIBRARY, PrivateValue(nullptr));
JS_SetReservedSlot(libraryObj, SLOT_LIBRARY, PRIVATE_TO_JSVAL(nullptr));
// attach API functions
if (!JS_DefineFunctions(cx, libraryObj, sLibraryFunctions))
@ -166,7 +166,7 @@ Library::Create(JSContext* cx, jsval path_, const JSCTypesCallbacks* callbacks)
#endif
// stash the library
JS_SetReservedSlot(libraryObj, SLOT_LIBRARY, PrivateValue(library));
JS_SetReservedSlot(libraryObj, SLOT_LIBRARY, PRIVATE_TO_JSVAL(library));
return libraryObj;
}
@ -244,7 +244,7 @@ Library::Close(JSContext* cx, unsigned argc, jsval* vp)
// delete our internal objects
UnloadLibrary(obj);
JS_SetReservedSlot(obj, SLOT_LIBRARY, PrivateValue(nullptr));
JS_SetReservedSlot(obj, SLOT_LIBRARY, PRIVATE_TO_JSVAL(nullptr));
args.rval().setUndefined();
return true;

View File

@ -28,7 +28,7 @@ FRAGMENT(Root, handle) {
}
FRAGMENT(Root, HeapSlot) {
JS::Rooted<jsval> plinth(cx, JS::StringValue(JS_NewStringCopyZ(cx, "plinth")));
JS::Rooted<jsval> plinth(cx, STRING_TO_JSVAL(JS_NewStringCopyZ(cx, "plinth")));
JS::Rooted<JSObject*> array(cx, JS_NewArrayObject(cx, JS::HandleValueArray(plinth)));
breakpoint();

View File

@ -74,26 +74,26 @@ BEGIN_TEST(testParseJSON_success)
const char16_t emptystr[] = { '\0' };
str = js::NewStringCopyN<CanGC>(cx, emptystr, 0);
CHECK(str);
expected = JS::StringValue(str);
expected = STRING_TO_JSVAL(str);
CHECK(TryParse(cx, "\"\"", expected));
const char16_t nullstr[] = { '\0' };
str = NewString(cx, nullstr);
CHECK(str);
expected = JS::StringValue(str);
expected = STRING_TO_JSVAL(str);
CHECK(TryParse(cx, "\"\\u0000\"", expected));
const char16_t backstr[] = { '\b' };
str = NewString(cx, backstr);
CHECK(str);
expected = JS::StringValue(str);
expected = STRING_TO_JSVAL(str);
CHECK(TryParse(cx, "\"\\b\"", expected));
CHECK(TryParse(cx, "\"\\u0008\"", expected));
const char16_t newlinestr[] = { '\n', };
str = NewString(cx, newlinestr);
CHECK(str);
expected = JS::StringValue(str);
expected = STRING_TO_JSVAL(str);
CHECK(TryParse(cx, "\"\\n\"", expected));
CHECK(TryParse(cx, "\"\\u000A\"", expected));

View File

@ -287,7 +287,7 @@ JS_GetPositiveInfinityValue(JSContext* cx)
JS_PUBLIC_API(jsval)
JS_GetEmptyStringValue(JSContext* cx)
{
return StringValue(cx->runtime()->emptyString);
return STRING_TO_JSVAL(cx->runtime()->emptyString);
}
JS_PUBLIC_API(JSString*)

View File

@ -5436,7 +5436,7 @@ static void
InitDOMObject(HandleObject obj)
{
/* Fow now just initialize to a constant we can check. */
SetReservedSlot(obj, DOM_OBJECT_SLOT, PrivateValue((void*)0x1234));
SetReservedSlot(obj, DOM_OBJECT_SLOT, PRIVATE_TO_JSVAL((void*)0x1234));
}
static bool

View File

@ -3532,7 +3532,7 @@ XPCJSRuntime::OnJSContextNew(JSContext* cx)
return false;
}
mStrIDs[i] = INTERNED_STRING_TO_JSID(cx, str);
mStrJSVals[i].setString(str);
mStrJSVals[i] = STRING_TO_JSVAL(str);
}
if (!mozilla::dom::DefineStaticJSVals(cx)) {

View File

@ -115,7 +115,7 @@ private:
return false;
}
rval.setString(ucstr);
rval.set(STRING_TO_JSVAL(ucstr));
return true;
}

View File

@ -712,7 +712,7 @@ env_setProperty(JSContext* cx, HandleObject obj, HandleId id, MutableHandleValue
JS_ReportError(cx, "can't set envariable %s to %s", name.ptr(), value.ptr());
return false;
}
vp.setString(valstr);
vp.set(STRING_TO_JSVAL(valstr));
#endif /* !defined SOLARIS */
return result.succeed();
}

View File

@ -61,7 +61,7 @@ ToStringGuts(XPCCallContext& ccx)
if (!str)
return false;
ccx.SetRetVal(JS::StringValue(str));
ccx.SetRetVal(STRING_TO_JSVAL(str));
return true;
}

View File

@ -998,7 +998,7 @@ XrayTraits::attachExpandoObject(JSContext* cx, HandleObject target,
// AddRef and store the principal.
NS_ADDREF(origin);
JS_SetReservedSlot(expandoObject, JSSLOT_EXPANDO_ORIGIN, JS::PrivateValue(origin));
JS_SetReservedSlot(expandoObject, JSSLOT_EXPANDO_ORIGIN, PRIVATE_TO_JSVAL(origin));
// Note the exclusive global, if any.
JS_SetReservedSlot(expandoObject, JSSLOT_EXPANDO_EXCLUSIVE_GLOBAL,

View File

@ -71,7 +71,7 @@ stepFunc(JSContext *aCtx,
return false;
}
_vp->setBoolean(hasMore);
*_vp = BOOLEAN_TO_JSVAL(hasMore);
return true;
}

View File

@ -80,7 +80,7 @@ StatementRow::GetProperty(nsIXPConnectWrappedNative *aWrapper,
*_retval = false;
return NS_OK;
}
_vp->setString(str);
*_vp = STRING_TO_JSVAL(str);
}
else if (type == mozIStorageValueArray::VALUE_TYPE_BLOB) {
uint32_t length;