Commit 4cc5b1e6 authored by Philip Chimento's avatar Philip Chimento 🚮

core-deps-3.24: Merged GJS mozjs38 branch to master

We can remove mozjs31 now, nothing else is using it.
parent 756c43a3
......@@ -562,7 +562,7 @@
<dep package="m4-common"/>
<dep package="dbus-glib"/>
<dep package="gobject-introspection"/>
<dep package="mozjs31"/>
<dep package="mozjs38"/>
<if condition-set="coverage">
<dep package="lcov"/>
</if>
......@@ -1537,26 +1537,6 @@
</dependencies>
</autotools>
<autotools id="mozjs31" autogen-sh="configure"
autogenargs="--with-system-nspr --with-system-zlib --enable-system-ffi --with-system-icu --with-intl-api">
<pkg-config>mozjs-31.pc</pkg-config>
<branch repo="people.mozilla.org" module="mozjs-31.5.0.tar.bz2"
version="31.5.0" source-subdir="js/src">
<patch file="mozjs31-1021171.patch" strip="1"/>
<patch file="mozjs31-1037470.patch" strip="1"/>
<patch file="mozjs31-1046176.patch" strip="1"/>
<patch file="mozjs31-1119228.patch" strip="1"/>
<patch file="mozjs31-install-name.patch" strip="1"/>
</branch>
<dependencies>
<dep package="libffi"/>
<dep package="libicu"/>
<dep package="nspr"/>
<dep package="python2"/>
<dep package="zlib"/>
</dependencies>
</autotools>
<autotools id="mozjs38" autogen-sh="configure"
autogenargs="--enable-posix-nspr-emulation --with-system-zlib --enable-system-ffi --with-system-icu --with-intl-api">
<pkg-config>mozjs-38.pc</pkg-config>
......
# Based on
# HG changeset patch
# User Trevor Saunders <trev.saunders@gmail.com>
# Date 1402083090 14400
# Node ID fc756706366d983e5d70345cab419fbf72db3d36
# Parent 78c20dbe259e808fb58d65731efd4f05e8921820
bug 1021171 - don't return nulllptr in functions returning bool r=bz,waldo
diff --git a/js/src/builtin/TypedObject.cpp b/js/src/builtin/TypedObject.cpp
--- a/js/src/builtin/TypedObject.cpp
+++ b/js/src/builtin/TypedObject.cpp
@@ -705,35 +705,35 @@ ArrayMetaTypeDescr::construct(JSContext
// Construct a canonical string `new ArrayType(<elementType>)`:
StringBuffer contents(cx);
contents.append("new ArrayType(");
contents.append(&elementType->stringRepr());
contents.append(")");
RootedAtom stringRepr(cx, contents.finishAtom());
if (!stringRepr)
- return nullptr;
+ return false;
// Extract ArrayType.prototype
RootedObject arrayTypePrototype(cx, GetPrototype(cx, arrayTypeGlobal));
if (!arrayTypePrototype)
- return nullptr;
+ return false;
// Create the instance of ArrayType
Rooted<UnsizedArrayTypeDescr *> obj(cx);
obj = create<UnsizedArrayTypeDescr>(cx, arrayTypePrototype, elementType,
stringRepr, 0);
if (!obj)
return false;
// Add `length` property, which is undefined for an unsized array.
if (!JSObject::defineProperty(cx, obj, cx->names().length,
UndefinedHandleValue, nullptr, nullptr,
JSPROP_READONLY | JSPROP_PERMANENT))
- return nullptr;
+ return false;
args.rval().setObject(*obj);
return true;
}
/*static*/ bool
UnsizedArrayTypeDescr::dimension(JSContext *cx, unsigned int argc, jsval *vp)
{
@@ -757,30 +757,30 @@ UnsizedArrayTypeDescr::dimension(JSConte
int32_t length = args[0].toInt32();
Rooted<SizedTypeDescr*> elementType(cx, &unsizedTypeDescr->elementType());
// Compute the size.
CheckedInt32 size = CheckedInt32(elementType->size()) * length;
if (!size.isValid()) {
JS_ReportErrorNumber(cx, js_GetErrorMessage, nullptr,
JSMSG_TYPEDOBJECT_TOO_BIG);
- return nullptr;
+ return false;
}
// Construct a canonical string `new ArrayType(<elementType>).dimension(N)`:
StringBuffer contents(cx);
contents.append("new ArrayType(");
contents.append(&elementType->stringRepr());
contents.append(").dimension(");
if (!NumberValueToStringBuffer(cx, NumberValue(length), contents))
return false;
contents.append(")");
RootedAtom stringRepr(cx, contents.finishAtom());
if (!stringRepr)
- return nullptr;
+ return false;
// Create the sized type object.
Rooted<SizedArrayTypeDescr*> obj(cx);
obj = ArrayMetaTypeDescr::create<SizedArrayTypeDescr>(cx, unsizedTypeDescr,
elementType,
stringRepr, size.value());
if (!obj)
return false;
@@ -788,25 +788,25 @@ UnsizedArrayTypeDescr::dimension(JSConte
obj->initReservedSlot(JS_DESCR_SLOT_SIZED_ARRAY_LENGTH,
Int32Value(length));
// Add `length` property.
RootedValue lengthVal(cx, Int32Value(length));
if (!JSObject::defineProperty(cx, obj, cx->names().length,
lengthVal, nullptr, nullptr,
JSPROP_READONLY | JSPROP_PERMANENT))
- return nullptr;
+ return false;
// Add `unsized` property, which is a link from the sized
// array to the unsized array.
RootedValue unsizedTypeDescrValue(cx, ObjectValue(*unsizedTypeDescr));
if (!JSObject::defineProperty(cx, obj, cx->names().unsized,
unsizedTypeDescrValue, nullptr, nullptr,
JSPROP_READONLY | JSPROP_PERMANENT))
- return nullptr;
+ return false;
args.rval().setObject(*obj);
return true;
}
bool
js::IsTypedObjectArray(JSObject &obj)
{
@@ -1248,17 +1248,17 @@ DefineSimpleTypeDescr(JSContext *cx,
if (!JS_DefineFunctions(cx, descr, T::typeObjectMethods))
return false;
// Create the typed prototype for the scalar type. This winds up
// not being user accessible, but we still create one for consistency.
Rooted<TypedProto*> proto(cx);
proto = NewObjectWithProto<TypedProto>(cx, objProto, nullptr, TenuredObject);
if (!proto)
- return nullptr;
+ return false;
proto->initTypeDescrSlot(*descr);
descr->initReservedSlot(JS_DESCR_SLOT_TYPROTO, ObjectValue(*proto));
RootedValue descrValue(cx, ObjectValue(*descr));
if (!JSObject::defineProperty(cx, module, className,
descrValue, nullptr, nullptr, 0))
{
return false;
@@ -1353,66 +1353,66 @@ GlobalObject::initTypedObjectModule(JSCo
if (!JS_DefineFunctions(cx, module, TypedObjectMethods))
return false;
// uint8, uint16, any, etc
#define BINARYDATA_SCALAR_DEFINE(constant_, type_, name_) \
if (!DefineSimpleTypeDescr<ScalarTypeDescr>(cx, global, module, constant_, \
cx->names().name_)) \
- return nullptr;
+ return false;
JS_FOR_EACH_SCALAR_TYPE_REPR(BINARYDATA_SCALAR_DEFINE)
#undef BINARYDATA_SCALAR_DEFINE
#define BINARYDATA_REFERENCE_DEFINE(constant_, type_, name_) \
if (!DefineSimpleTypeDescr<ReferenceTypeDescr>(cx, global, module, constant_, \
cx->names().name_)) \
- return nullptr;
+ return false;
JS_FOR_EACH_REFERENCE_TYPE_REPR(BINARYDATA_REFERENCE_DEFINE)
#undef BINARYDATA_REFERENCE_DEFINE
// ArrayType.
RootedObject arrayType(cx);
arrayType = DefineMetaTypeDescr<ArrayMetaTypeDescr>(
cx, global, module, TypedObjectModuleObject::ArrayTypePrototype);
if (!arrayType)
- return nullptr;
+ return false;
RootedValue arrayTypeValue(cx, ObjectValue(*arrayType));
if (!JSObject::defineProperty(cx, module, cx->names().ArrayType,
arrayTypeValue,
nullptr, nullptr,
JSPROP_READONLY | JSPROP_PERMANENT))
- return nullptr;
+ return false;
// StructType.
RootedObject structType(cx);
structType = DefineMetaTypeDescr<StructMetaTypeDescr>(
cx, global, module, TypedObjectModuleObject::StructTypePrototype);
if (!structType)
- return nullptr;
+ return false;
RootedValue structTypeValue(cx, ObjectValue(*structType));
if (!JSObject::defineProperty(cx, module, cx->names().StructType,
structTypeValue,
nullptr, nullptr,
JSPROP_READONLY | JSPROP_PERMANENT))
- return nullptr;
+ return false;
// Everything is setup, install module on the global object:
RootedValue moduleValue(cx, ObjectValue(*module));
global->setConstructor(JSProto_TypedObject, moduleValue);
if (!JSObject::defineProperty(cx, global, cx->names().TypedObject,
moduleValue,
nullptr, nullptr,
0))
{
- return nullptr;
+ return false;
}
return module;
}
JSObject *
js_InitTypedObjectModuleObject(JSContext *cx, HandleObject obj)
{
@@ -2444,17 +2444,17 @@ TypedObject::constructUnsized(JSContext
}
// Length constructor.
if (args[0].isInt32()) {
int32_t length = args[0].toInt32();
if (length < 0) {
JS_ReportErrorNumber(cx, js_GetErrorMessage,
nullptr, JSMSG_TYPEDOBJECT_BAD_ARGS);
- return nullptr;
+ return false;
}
Rooted<TypedObject*> obj(cx, createZeroed(cx, callee, length));
if (!obj)
return false;
args.rval().setObject(*obj);
return true;
}
diff --git a/js/src/frontend/BytecodeCompiler.cpp b/js/src/frontend/BytecodeCompiler.cpp
--- a/js/src/frontend/BytecodeCompiler.cpp
+++ b/js/src/frontend/BytecodeCompiler.cpp
@@ -539,17 +539,17 @@ CompileFunctionBody(JSContext *cx, Mutab
MaybeCallSourceHandler(cx, options, srcBuf);
if (!CheckLength(cx, srcBuf))
return false;
RootedScriptSource sourceObject(cx, CreateScriptSourceObject(cx, options));
if (!sourceObject)
- return nullptr;
+ return false;
ScriptSource *ss = sourceObject->source();
SourceCompressionTask sct(cx);
JS_ASSERT(!options.sourceIsLazy);
if (!cx->compartment()->options().discardSource()) {
if (!ss->setSourceCopy(cx, srcBuf, true, &sct))
return false;
}
# HG changeset patch
# User Martin Stransky <stransky@redhat.com>
# Date 1405081680 14400
# Node ID 46229cdd48f4bafbb5660d1a533449deff0c6bd3
# Parent c274ab1b4086c248d1e0a21f33b38043c4f1f184
Bug 1037470 - Fix debug build bustage with Ion disabled. r=jandem
diff --git a/js/src/vm/Debugger.cpp b/js/src/vm/Debugger.cpp
--- a/js/src/vm/Debugger.cpp
+++ b/js/src/vm/Debugger.cpp
@@ -4108,17 +4108,17 @@ static const JSFunctionSpec DebuggerSour
/*** Debugger.Frame ******************************************************************************/
static void
UpdateFrameIterPc(FrameIter &iter)
{
if (iter.abstractFramePtr().isRematerializedFrame()) {
-#ifdef DEBUG
+#if defined(DEBUG) && defined(JS_ION)
// Rematerialized frames don't need their pc updated. The reason we
// need to update pc is because we might get the same Debugger.Frame
// object for multiple re-entries into debugger code from debuggee
// code. This reentrancy is not possible with rematerialized frames,
// because when returning to debuggee code, we would have bailed out
// to baseline.
//
// We walk the stack to assert that it doesn't need updating.
# HG changeset patch
# User Jan de Mooij <jdemooij@mozilla.com>
# Date 1406735301 -7200
# Node ID f578233e4d2c3159d1cdf27a331a6b4ca68252b6
# Parent 569dda025a066f3c6e77bdaebd14158dfc7518be
Bug 1046176 - Fix inlined UnsafeSetReservedSlot post barrier. r=nbp
diff --git a/js/src/jit/MCallOptimize.cpp b/js/src/jit/MCallOptimize.cpp
--- a/js/src/jit/MCallOptimize.cpp
+++ b/js/src/jit/MCallOptimize.cpp
@@ -1789,17 +1789,17 @@ IonBuilder::inlineUnsafeSetReservedSlot(
callInfo.setImplicitlyUsedUnchecked();
MStoreFixedSlot *store = MStoreFixedSlot::New(alloc(), callInfo.getArg(0), slot, callInfo.getArg(2));
current->add(store);
current->push(store);
if (NeedsPostBarrier(info(), callInfo.getArg(2)))
- current->add(MPostWriteBarrier::New(alloc(), callInfo.thisArg(), callInfo.getArg(2)));
+ current->add(MPostWriteBarrier::New(alloc(), callInfo.getArg(0), callInfo.getArg(2)));
return InliningStatus_Inlined;
}
IonBuilder::InliningStatus
IonBuilder::inlineUnsafeGetReservedSlot(CallInfo &callInfo)
{
if (callInfo.argc() != 2 || callInfo.constructing())
# Backport of
# HG changeset patch
# User Ehsan Akhgari <ehsan@mozilla.com>
# Date 1420727118 18000
# Node ID bcacb5692ad902fc0ec6ebea2ad382a8a3fd5183
# Parent 48f8a884901ba9753d3bddab08f25c60e1915601
Bug 1119228 - Fix a fatal warning in PossiblyFail; r=jandem
Recent clang emits the following warning (which is treated as an error) on this code:
error: implicit conversion of nullptr constant to 'bool' [-Werror,-Wnull-conversion]
diff --git a/js/public/Utility.h b/js/public/Utility.h
--- a/js/public/Utility.h
+++ b/js/public/Utility.h
@@ -83,19 +83,28 @@ static MOZ_NEVER_INLINE void js_failedAl
# define JS_OOM_POSSIBLY_FAIL() \
do \
{ \
if (++OOM_counter > OOM_maxAllocations) { \
JS_OOM_CALL_BP_FUNC();\
return nullptr; \
} \
} while (0)
+# define JS_OOM_POSSIBLY_FAIL_BOOL() \
+ do \
+ { \
+ if (++OOM_counter > OOM_maxAllocations) { \
+ JS_OOM_CALL_BP_FUNC();\
+ return false; \
+ } \
+ } while (0)
# else
# define JS_OOM_POSSIBLY_FAIL() do {} while(0)
+# define JS_OOM_POSSIBLY_FAIL_BOOL() do {} while(0)
# endif /* DEBUG || JS_OOM_BREAKPOINT */
static inline void* js_malloc(size_t bytes)
{
JS_OOM_POSSIBLY_FAIL();
return malloc(bytes);
}
--- a/js/src/jsgcinlines.h
+++ b/js/src/jsgcinlines.h
@@ -403,17 +403,17 @@
}
return nullptr;
}
#endif /* JSGC_GENERATIONAL */
static inline bool
PossiblyFail()
{
- JS_OOM_POSSIBLY_FAIL();
+ JS_OOM_POSSIBLY_FAIL_BOOL();
return true;
}
template <AllowGC allowGC>
static inline bool
CheckAllocatorState(ThreadSafeContext *cx, AllocKind kind)
{
if (!cx->isJSContext())
--- a/config/rules.mk 2016-11-09 23:51:17.000000000 -0800
+++ b/config/rules.mk 2016-11-09 23:54:23.000000000 -0800
@@ -442,7 +442,7 @@
ifdef IS_COMPONENT
EXTRA_DSO_LDOPTS += -bundle
else
-EXTRA_DSO_LDOPTS += -dynamiclib -install_name @executable_path/$(SHARED_LIBRARY) -compatibility_version 1 -current_version 1 -single_module
+EXTRA_DSO_LDOPTS += -dynamiclib -install_name $(abspath $(prefix))/lib/$(SHARED_LIBRARY) -compatibility_version 1 -current_version 1 -single_module
endif
endif
endif
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment