Bug 979591. Disallow calling WebIDL constructors as functions even for system callers in release builds. r=peterv

This commit is contained in:
Boris Zbarsky 2015-11-20 16:29:41 -05:00
Родитель 6ecbcec387
Коммит 72f8befdf5
1 изменённых файлов: 1 добавлений и 5 удалений

Просмотреть файл

@ -1663,11 +1663,7 @@ class CGClassConstructor(CGAbstractStaticMethod):
JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
JS::Rooted<JSObject*> obj(cx, &args.callee());
$*{chromeOnlyCheck}
bool mayInvoke = args.isConstructing();
#ifdef RELEASE_BUILD
mayInvoke = mayInvoke || nsContentUtils::ThreadsafeIsCallerChrome();
#endif // RELEASE_BUILD
if (!mayInvoke) {
if (!args.isConstructing()) {
// XXXbz wish I could get the name from the callee instead of
// Adding more relocations
return ThrowConstructorWithoutNew(cx, "${ctorName}");