From 18e2173c3de5a5bcd066a7336ea93088569c0f33 Mon Sep 17 00:00:00 2001 From: Pale Moon Date: Thu, 12 Jan 2017 16:03:09 +0100 Subject: [PATCH] Fix CallArgs usage. This resolves #667. --- dom/xbl/nsXBLProtoImplField.cpp | 4 +- js/public/CallArgs.h | 2 +- js/public/CallNonGenericMethod.h | 10 ++- js/public/Proxy.h | 5 +- js/src/asmjs/AsmJSLink.cpp | 6 +- js/src/builtin/Intl.cpp | 6 +- js/src/builtin/MapObject.cpp | 44 ++++----- js/src/builtin/MapObject.h | 36 ++++---- js/src/builtin/RegExp.cpp | 22 ++--- js/src/builtin/SymbolObject.cpp | 4 +- js/src/builtin/SymbolObject.h | 4 +- js/src/builtin/TestingFunctions.cpp | 18 ++-- js/src/ctypes/CTypes.cpp | 72 +++++++-------- js/src/jit/Ion.cpp | 2 +- .../testCallNonGenericMethodOnProxy.cpp | 2 +- js/src/jsapi.cpp | 3 +- js/src/jsbool.cpp | 6 +- js/src/jsdate.cpp | 90 +++++++++---------- js/src/jsfun.cpp | 8 +- js/src/jsiter.cpp | 2 +- js/src/jsnum.cpp | 16 ++-- js/src/jsstr.cpp | 24 ++--- js/src/jsweakmap.cpp | 10 +-- js/src/jswrapper.h | 4 +- js/src/proxy/BaseProxyHandler.cpp | 2 +- js/src/proxy/CrossCompartmentWrapper.cpp | 2 +- js/src/proxy/DeadObjectProxy.cpp | 2 +- js/src/proxy/DeadObjectProxy.h | 2 +- js/src/proxy/DirectProxyHandler.cpp | 2 +- js/src/proxy/Proxy.cpp | 2 +- js/src/proxy/Proxy.h | 3 +- js/src/proxy/ScriptedDirectProxyHandler.cpp | 2 +- js/src/proxy/ScriptedDirectProxyHandler.h | 2 +- js/src/proxy/ScriptedIndirectProxyHandler.cpp | 2 +- js/src/proxy/ScriptedIndirectProxyHandler.h | 2 +- js/src/proxy/SecurityWrapper.cpp | 2 +- js/src/vm/ArrayBufferObject.cpp | 8 +- js/src/vm/ArrayBufferObject.h | 8 +- js/src/vm/CallNonGenericMethod.cpp | 2 +- js/src/vm/DateObject.h | 34 +++---- js/src/vm/Interpreter.cpp | 4 +- js/src/vm/Interpreter.h | 10 +-- js/src/vm/SelfHosting.cpp | 2 +- js/src/vm/SharedArrayObject.cpp | 2 +- js/src/vm/SharedArrayObject.h | 2 +- js/src/vm/SharedTypedArrayObject.cpp | 4 +- js/src/vm/TypedArrayCommon.h | 6 +- js/src/vm/TypedArrayObject.cpp | 42 ++++----- js/src/vm/TypedArrayObject.h | 40 ++++----- js/xpconnect/wrappers/FilteringWrapper.cpp | 2 +- js/xpconnect/wrappers/FilteringWrapper.h | 2 +- js/xpconnect/wrappers/WaiveXrayWrapper.cpp | 2 +- js/xpconnect/wrappers/WaiveXrayWrapper.h | 2 +- .../FinalizationWitnessService.cpp | 2 +- 54 files changed, 303 insertions(+), 296 deletions(-) diff --git a/dom/xbl/nsXBLProtoImplField.cpp b/dom/xbl/nsXBLProtoImplField.cpp index 07ae96bda4..8c2295bbc4 100644 --- a/dom/xbl/nsXBLProtoImplField.cpp +++ b/dom/xbl/nsXBLProtoImplField.cpp @@ -220,7 +220,7 @@ InstallXBLField(JSContext* cx, } bool -FieldGetterImpl(JSContext *cx, JS::CallArgs args) +FieldGetterImpl(JSContext *cx, const JS::CallArgs& args) { JS::Handle thisv = args.thisv(); MOZ_ASSERT(ValueHasISupportsPrivate(thisv)); @@ -261,7 +261,7 @@ FieldGetter(JSContext *cx, unsigned argc, JS::Value *vp) } bool -FieldSetterImpl(JSContext *cx, JS::CallArgs args) +FieldSetterImpl(JSContext *cx, const JS::CallArgs& args) { JS::Handle thisv = args.thisv(); MOZ_ASSERT(ValueHasISupportsPrivate(thisv)); diff --git a/js/public/CallArgs.h b/js/public/CallArgs.h index b4f2348ccd..41fd72c393 100644 --- a/js/public/CallArgs.h +++ b/js/public/CallArgs.h @@ -344,7 +344,7 @@ class MOZ_STACK_CLASS CallArgs : public detail::CallArgsBase MOZ_ALWAYS_INLINE bool -CallNonGenericMethod(JSContext* cx, CallArgs args) +CallNonGenericMethod(JSContext* cx, const CallArgs& args) { HandleValue thisv = args.thisv(); if (Test(thisv)) @@ -103,7 +104,8 @@ CallNonGenericMethod(JSContext* cx, CallArgs args) } MOZ_ALWAYS_INLINE bool -CallNonGenericMethod(JSContext* cx, IsAcceptableThis Test, NativeImpl Impl, CallArgs args) +CallNonGenericMethod(JSContext* cx, IsAcceptableThis Test, NativeImpl Impl, + const CallArgs& args) { HandleValue thisv = args.thisv(); if (Test(thisv)) diff --git a/js/public/Proxy.h b/js/public/Proxy.h index f4df77344e..0cafae92d6 100644 --- a/js/public/Proxy.h +++ b/js/public/Proxy.h @@ -312,7 +312,8 @@ class JS_FRIEND_API(BaseProxyHandler) virtual bool hasOwn(JSContext* cx, HandleObject proxy, HandleId id, bool* bp) const; virtual bool getOwnEnumerablePropertyKeys(JSContext* cx, HandleObject proxy, AutoIdVector& props) const; - virtual bool nativeCall(JSContext* cx, IsAcceptableThis test, NativeImpl impl, CallArgs args) const; + virtual bool nativeCall(JSContext* cx, IsAcceptableThis test, NativeImpl impl, + const CallArgs& args) const; virtual bool hasInstance(JSContext* cx, HandleObject proxy, MutableHandleValue v, bool* bp) const; virtual bool objectClassIs(HandleObject obj, ESClassValue classValue, JSContext* cx) const; virtual const char* className(JSContext* cx, HandleObject proxy) const; @@ -399,7 +400,7 @@ class JS_PUBLIC_API(DirectProxyHandler) : public BaseProxyHandler virtual bool getOwnEnumerablePropertyKeys(JSContext* cx, HandleObject proxy, AutoIdVector& props) const override; virtual bool nativeCall(JSContext* cx, IsAcceptableThis test, NativeImpl impl, - CallArgs args) const override; + const CallArgs& args) const override; virtual bool hasInstance(JSContext* cx, HandleObject proxy, MutableHandleValue v, bool* bp) const override; virtual bool objectClassIs(HandleObject obj, ESClassValue classValue, diff --git a/js/src/asmjs/AsmJSLink.cpp b/js/src/asmjs/AsmJSLink.cpp index 43fc2193c8..fa2f3b4eb8 100644 --- a/js/src/asmjs/AsmJSLink.cpp +++ b/js/src/asmjs/AsmJSLink.cpp @@ -528,7 +528,7 @@ LinkModuleToHeap(JSContext* cx, AsmJSModule& module, Handleruntime()); @@ -604,7 +604,7 @@ DynamicallyLinkModule(JSContext* cx, CallArgs args, AsmJSModule& module) } static bool -ChangeHeap(JSContext* cx, AsmJSModule& module, CallArgs args) +ChangeHeap(JSContext* cx, AsmJSModule& module, const CallArgs& args) { HandleValue bufferArg = args.get(0); if (!IsArrayBuffer(bufferArg)) { @@ -810,7 +810,7 @@ NewExportedFunction(JSContext* cx, const AsmJSModule::ExportedFunction& func, } static bool -HandleDynamicLinkFailure(JSContext* cx, CallArgs args, AsmJSModule& module, HandlePropertyName name) +HandleDynamicLinkFailure(JSContext* cx, const CallArgs& args, AsmJSModule& module, HandlePropertyName name) { if (cx->isExceptionPending()) return false; diff --git a/js/src/builtin/Intl.cpp b/js/src/builtin/Intl.cpp index f85522897e..3efaad5fc4 100644 --- a/js/src/builtin/Intl.cpp +++ b/js/src/builtin/Intl.cpp @@ -597,7 +597,7 @@ static const JSFunctionSpec collator_methods[] = { * Spec: ECMAScript Internationalization API Specification, 10.1 */ static bool -Collator(JSContext* cx, CallArgs args, bool construct) +Collator(JSContext* cx, const CallArgs& args, bool construct) { RootedObject obj(cx); @@ -1089,7 +1089,7 @@ static const JSFunctionSpec numberFormat_methods[] = { * Spec: ECMAScript Internationalization API Specification, 11.1 */ static bool -NumberFormat(JSContext* cx, CallArgs args, bool construct) +NumberFormat(JSContext* cx, const CallArgs& args, bool construct) { RootedObject obj(cx); @@ -1548,7 +1548,7 @@ static const JSFunctionSpec dateTimeFormat_methods[] = { * Spec: ECMAScript Internationalization API Specification, 12.1 */ static bool -DateTimeFormat(JSContext* cx, CallArgs args, bool construct) +DateTimeFormat(JSContext* cx, const CallArgs& args, bool construct) { RootedObject obj(cx); diff --git a/js/src/builtin/MapObject.cpp b/js/src/builtin/MapObject.cpp index a99e50f27d..bd94731bf9 100644 --- a/js/src/builtin/MapObject.cpp +++ b/js/src/builtin/MapObject.cpp @@ -862,7 +862,7 @@ class MapIteratorObject : public NativeObject static inline bool is(HandleValue v); inline ValueMap::Range* range(); inline MapObject::IteratorKind kind() const; - static bool next_impl(JSContext* cx, CallArgs args); + static bool next_impl(JSContext* cx, const CallArgs& args); }; } /* anonymous namespace */ @@ -955,7 +955,7 @@ MapIteratorObject::is(HandleValue v) } bool -MapIteratorObject::next_impl(JSContext* cx, CallArgs args) +MapIteratorObject::next_impl(JSContext* cx, const CallArgs& args) { MapIteratorObject& thisobj = args.thisv().toObject().as(); ValueMap::Range* range = thisobj.range(); @@ -1350,7 +1350,7 @@ MapObject::size(JSContext* cx, HandleObject obj) } bool -MapObject::size_impl(JSContext* cx, CallArgs args) +MapObject::size_impl(JSContext* cx, const CallArgs& args) { RootedObject obj(cx, &args.thisv().toObject()); args.rval().setNumber(size(cx, obj)); @@ -1385,7 +1385,7 @@ MapObject::get(JSContext* cx, HandleObject obj, } bool -MapObject::get_impl(JSContext* cx, CallArgs args) +MapObject::get_impl(JSContext* cx, const CallArgs& args) { RootedObject obj(cx, &args.thisv().toObject()); return get(cx, obj, args.get(0), args.rval()); @@ -1414,7 +1414,7 @@ MapObject::has(JSContext* cx, HandleObject obj, HandleValue key, bool* rval) } bool -MapObject::has_impl(JSContext* cx, CallArgs args) +MapObject::has_impl(JSContext* cx, const CallArgs& args) { bool found; RootedObject obj(cx, &args.thisv().toObject()); @@ -1433,7 +1433,7 @@ MapObject::has(JSContext* cx, unsigned argc, Value* vp) } bool -MapObject::set_impl(JSContext* cx, CallArgs args) +MapObject::set_impl(JSContext* cx, const CallArgs& args) { MOZ_ASSERT(MapObject::is(args.thisv())); @@ -1457,7 +1457,7 @@ MapObject::set(JSContext* cx, unsigned argc, Value* vp) } bool -MapObject::delete_impl(JSContext* cx, CallArgs args) +MapObject::delete_impl(JSContext* cx, const CallArgs& args) { // MapObject::mark does not mark deleted entries. Incremental GC therefore // requires that no RelocatableValue objects pointing to heap values be @@ -1499,14 +1499,14 @@ MapObject::iterator(JSContext* cx, IteratorKind kind, } bool -MapObject::iterator_impl(JSContext* cx, CallArgs args, IteratorKind kind) +MapObject::iterator_impl(JSContext* cx, const CallArgs& args, IteratorKind kind) { RootedObject obj(cx, &args.thisv().toObject()); return iterator(cx, kind, obj, args.rval()); } bool -MapObject::keys_impl(JSContext* cx, CallArgs args) +MapObject::keys_impl(JSContext* cx, const CallArgs& args) { return iterator_impl(cx, args, Keys); } @@ -1519,7 +1519,7 @@ MapObject::keys(JSContext* cx, unsigned argc, Value* vp) } bool -MapObject::values_impl(JSContext* cx, CallArgs args) +MapObject::values_impl(JSContext* cx, const CallArgs& args) { return iterator_impl(cx, args, Values); } @@ -1532,7 +1532,7 @@ MapObject::values(JSContext* cx, unsigned argc, Value* vp) } bool -MapObject::entries_impl(JSContext* cx, CallArgs args) +MapObject::entries_impl(JSContext* cx, const CallArgs& args) { return iterator_impl(cx, args, Entries); } @@ -1545,7 +1545,7 @@ MapObject::entries(JSContext* cx, unsigned argc, Value* vp) } bool -MapObject::clear_impl(JSContext* cx, CallArgs args) +MapObject::clear_impl(JSContext* cx, const CallArgs& args) { RootedObject obj(cx, &args.thisv().toObject()); args.rval().setUndefined(); @@ -1598,7 +1598,7 @@ class SetIteratorObject : public NativeObject static inline bool is(HandleValue v); inline ValueSet::Range* range(); inline SetObject::IteratorKind kind() const; - static bool next_impl(JSContext* cx, CallArgs args); + static bool next_impl(JSContext* cx, const CallArgs& args); }; } /* anonymous namespace */ @@ -1691,7 +1691,7 @@ SetIteratorObject::is(HandleValue v) } bool -SetIteratorObject::next_impl(JSContext* cx, CallArgs args) +SetIteratorObject::next_impl(JSContext* cx, const CallArgs& args) { SetIteratorObject& thisobj = args.thisv().toObject().as(); ValueSet::Range* range = thisobj.range(); @@ -1950,7 +1950,7 @@ SetObject::extract(CallReceiver call) } bool -SetObject::size_impl(JSContext* cx, CallArgs args) +SetObject::size_impl(JSContext* cx, const CallArgs& args) { MOZ_ASSERT(is(args.thisv())); @@ -1969,7 +1969,7 @@ SetObject::size(JSContext* cx, unsigned argc, Value* vp) } bool -SetObject::has_impl(JSContext* cx, CallArgs args) +SetObject::has_impl(JSContext* cx, const CallArgs& args) { MOZ_ASSERT(is(args.thisv())); @@ -1987,7 +1987,7 @@ SetObject::has(JSContext* cx, unsigned argc, Value* vp) } bool -SetObject::add_impl(JSContext* cx, CallArgs args) +SetObject::add_impl(JSContext* cx, const CallArgs& args) { MOZ_ASSERT(is(args.thisv())); @@ -2010,7 +2010,7 @@ SetObject::add(JSContext* cx, unsigned argc, Value* vp) } bool -SetObject::delete_impl(JSContext* cx, CallArgs args) +SetObject::delete_impl(JSContext* cx, const CallArgs& args) { MOZ_ASSERT(is(args.thisv())); @@ -2033,7 +2033,7 @@ SetObject::delete_(JSContext* cx, unsigned argc, Value* vp) } bool -SetObject::iterator_impl(JSContext* cx, CallArgs args, IteratorKind kind) +SetObject::iterator_impl(JSContext* cx, const CallArgs& args, IteratorKind kind) { Rooted setobj(cx, &args.thisv().toObject().as()); ValueSet& set = *setobj->getData(); @@ -2045,7 +2045,7 @@ SetObject::iterator_impl(JSContext* cx, CallArgs args, IteratorKind kind) } bool -SetObject::values_impl(JSContext* cx, CallArgs args) +SetObject::values_impl(JSContext* cx, const CallArgs& args) { return iterator_impl(cx, args, Values); } @@ -2058,7 +2058,7 @@ SetObject::values(JSContext* cx, unsigned argc, Value* vp) } bool -SetObject::entries_impl(JSContext* cx, CallArgs args) +SetObject::entries_impl(JSContext* cx, const CallArgs& args) { return iterator_impl(cx, args, Entries); } @@ -2071,7 +2071,7 @@ SetObject::entries(JSContext* cx, unsigned argc, Value* vp) } bool -SetObject::clear_impl(JSContext* cx, CallArgs args) +SetObject::clear_impl(JSContext* cx, const CallArgs& args) { Rooted setobj(cx, &args.thisv().toObject().as()); if (!setobj->getData()->clear()) { diff --git a/js/src/builtin/MapObject.h b/js/src/builtin/MapObject.h index 41d7ec3be3..d7366c3482 100644 --- a/js/src/builtin/MapObject.h +++ b/js/src/builtin/MapObject.h @@ -118,23 +118,23 @@ class MapObject : public NativeObject { static bool is(HandleValue v); static bool is(HandleObject o); - static bool iterator_impl(JSContext* cx, CallArgs args, IteratorKind kind); + static bool iterator_impl(JSContext* cx, const CallArgs& args, IteratorKind kind); - static bool size_impl(JSContext* cx, CallArgs args); + static bool size_impl(JSContext* cx, const CallArgs& args); static bool size(JSContext* cx, unsigned argc, Value* vp); - static bool get_impl(JSContext* cx, CallArgs args); + static bool get_impl(JSContext* cx, const CallArgs& args); static bool get(JSContext* cx, unsigned argc, Value* vp); - static bool has_impl(JSContext* cx, CallArgs args); - static bool set_impl(JSContext* cx, CallArgs args); + static bool has_impl(JSContext* cx, const CallArgs& args); + static bool set_impl(JSContext* cx, const CallArgs& args); static bool set(JSContext* cx, unsigned argc, Value* vp); - static bool delete_impl(JSContext* cx, CallArgs args); + static bool delete_impl(JSContext* cx, const CallArgs& args); static bool delete_(JSContext* cx, unsigned argc, Value* vp); - static bool keys_impl(JSContext* cx, CallArgs args); + static bool keys_impl(JSContext* cx, const CallArgs& args); static bool keys(JSContext* cx, unsigned argc, Value* vp); - static bool values_impl(JSContext* cx, CallArgs args); + static bool values_impl(JSContext* cx, const CallArgs& args); static bool values(JSContext* cx, unsigned argc, Value* vp); - static bool entries_impl(JSContext* cx, CallArgs args); - static bool clear_impl(JSContext* cx, CallArgs args); + static bool entries_impl(JSContext* cx, const CallArgs& args); + static bool clear_impl(JSContext* cx, const CallArgs& args); static bool clear(JSContext* cx, unsigned argc, Value* vp); }; @@ -161,19 +161,19 @@ class SetObject : public NativeObject { static bool is(HandleValue v); - static bool iterator_impl(JSContext* cx, CallArgs args, IteratorKind kind); + static bool iterator_impl(JSContext* cx, const CallArgs& args, IteratorKind kind); - static bool size_impl(JSContext* cx, CallArgs args); + static bool size_impl(JSContext* cx, const CallArgs& args); static bool size(JSContext* cx, unsigned argc, Value* vp); - static bool has_impl(JSContext* cx, CallArgs args); - static bool add_impl(JSContext* cx, CallArgs args); + static bool has_impl(JSContext* cx, const CallArgs& args); + static bool add_impl(JSContext* cx, const CallArgs& args); static bool add(JSContext* cx, unsigned argc, Value* vp); - static bool delete_impl(JSContext* cx, CallArgs args); + static bool delete_impl(JSContext* cx, const CallArgs& args); static bool delete_(JSContext* cx, unsigned argc, Value* vp); - static bool values_impl(JSContext* cx, CallArgs args); - static bool entries_impl(JSContext* cx, CallArgs args); + static bool values_impl(JSContext* cx, const CallArgs& args); + static bool entries_impl(JSContext* cx, const CallArgs& args); static bool entries(JSContext* cx, unsigned argc, Value* vp); - static bool clear_impl(JSContext* cx, CallArgs args); + static bool clear_impl(JSContext* cx, const CallArgs& args); static bool clear(JSContext* cx, unsigned argc, Value* vp); }; diff --git a/js/src/builtin/RegExp.cpp b/js/src/builtin/RegExp.cpp index e6a33d346d..4793be3243 100644 --- a/js/src/builtin/RegExp.cpp +++ b/js/src/builtin/RegExp.cpp @@ -151,8 +151,8 @@ js::ExecuteRegExpLegacy(JSContext* cx, RegExpStatics* res, RegExpObject& reobj, * flags := ToString(flags) if defined(flags) else '' */ static bool -CompileRegExpObject(JSContext* cx, RegExpObjectBuilder& builder, CallArgs args, - RegExpStaticsUse staticsUse) +CompileRegExpObject(JSContext* cx, RegExpObjectBuilder& builder, + const CallArgs& args, RegExpStaticsUse staticsUse) { if (args.length() == 0) { MOZ_ASSERT(staticsUse == UseRegExpStatics); @@ -269,7 +269,7 @@ IsRegExp(HandleValue v) } MOZ_ALWAYS_INLINE bool -regexp_compile_impl(JSContext* cx, CallArgs args) +regexp_compile_impl(JSContext* cx, const CallArgs& args) { MOZ_ASSERT(IsRegExp(args.thisv())); RegExpObjectBuilder builder(cx, &args.thisv().toObject().as()); @@ -322,7 +322,7 @@ js::regexp_construct_no_statics(JSContext* cx, unsigned argc, Value* vp) } MOZ_ALWAYS_INLINE bool -regexp_toString_impl(JSContext* cx, CallArgs args) +regexp_toString_impl(JSContext* cx, const CallArgs& args) { MOZ_ASSERT(IsRegExp(args.thisv())); @@ -404,7 +404,7 @@ regexp_flags(JSContext* cx, unsigned argc, JS::Value* vp) /* ES6 draft rev32 21.2.5.4. */ MOZ_ALWAYS_INLINE bool -regexp_global_impl(JSContext* cx, CallArgs args) +regexp_global_impl(JSContext* cx, const CallArgs& args) { MOZ_ASSERT(IsRegExp(args.thisv())); Rooted reObj(cx, &args.thisv().toObject().as()); @@ -424,7 +424,7 @@ regexp_global(JSContext* cx, unsigned argc, JS::Value* vp) /* ES6 draft rev32 21.2.5.5. */ MOZ_ALWAYS_INLINE bool -regexp_ignoreCase_impl(JSContext* cx, CallArgs args) +regexp_ignoreCase_impl(JSContext* cx, const CallArgs& args) { MOZ_ASSERT(IsRegExp(args.thisv())); Rooted reObj(cx, &args.thisv().toObject().as()); @@ -444,7 +444,7 @@ regexp_ignoreCase(JSContext* cx, unsigned argc, JS::Value* vp) /* ES6 draft rev32 21.2.5.7. */ MOZ_ALWAYS_INLINE bool -regexp_multiline_impl(JSContext* cx, CallArgs args) +regexp_multiline_impl(JSContext* cx, const CallArgs& args) { MOZ_ASSERT(IsRegExp(args.thisv())); Rooted reObj(cx, &args.thisv().toObject().as()); @@ -464,7 +464,7 @@ regexp_multiline(JSContext* cx, unsigned argc, JS::Value* vp) /* ES6 draft rev32 21.2.5.12. */ MOZ_ALWAYS_INLINE bool -regexp_sticky_impl(JSContext* cx, CallArgs args) +regexp_sticky_impl(JSContext* cx, const CallArgs& args) { MOZ_ASSERT(IsRegExp(args.thisv())); Rooted reObj(cx, &args.thisv().toObject().as()); @@ -742,7 +742,7 @@ js::ExecuteRegExp(JSContext* cx, HandleObject regexp, HandleString string, /* ES5 15.10.6.2 (and 15.10.6.3, which calls 15.10.6.2). */ static RegExpRunStatus -ExecuteRegExp(JSContext* cx, CallArgs args, MatchPairs* matches) +ExecuteRegExp(JSContext* cx, const CallArgs& args, MatchPairs* matches) { /* Step 1 (a) was performed by CallNonGenericMethod. */ RootedObject regexp(cx, &args.thisv().toObject()); @@ -776,7 +776,7 @@ regexp_exec_impl(JSContext* cx, HandleObject regexp, HandleString string, } static bool -regexp_exec_impl(JSContext* cx, CallArgs args) +regexp_exec_impl(JSContext* cx, const CallArgs& args) { RootedObject regexp(cx, &args.thisv().toObject()); RootedString string(cx, ToString(cx, args.get(0))); @@ -821,7 +821,7 @@ js::regexp_exec_no_statics(JSContext* cx, unsigned argc, Value* vp) /* ES5 15.10.6.3. */ static bool -regexp_test_impl(JSContext* cx, CallArgs args) +regexp_test_impl(JSContext* cx, const CallArgs& args) { RegExpRunStatus status = ExecuteRegExp(cx, args, nullptr); args.rval().setBoolean(status == RegExpRunStatus_Success); diff --git a/js/src/builtin/SymbolObject.cpp b/js/src/builtin/SymbolObject.cpp index 440995f01a..295101b9ce 100644 --- a/js/src/builtin/SymbolObject.cpp +++ b/js/src/builtin/SymbolObject.cpp @@ -188,7 +188,7 @@ IsSymbol(HandleValue v) // ES6 rev 27 (2014 Aug 24) 19.4.3.2 bool -SymbolObject::toString_impl(JSContext* cx, CallArgs args) +SymbolObject::toString_impl(JSContext* cx, const CallArgs& args) { // steps 1-3 HandleValue thisv = args.thisv(); @@ -210,7 +210,7 @@ SymbolObject::toString(JSContext* cx, unsigned argc, Value* vp) //ES6 rev 24 (2014 Apr 27) 19.4.3.3 bool -SymbolObject::valueOf_impl(JSContext* cx, CallArgs args) +SymbolObject::valueOf_impl(JSContext* cx, const CallArgs& args) { // Step 3, the error case, is handled by CallNonGenericMethod. HandleValue thisv = args.thisv(); diff --git a/js/src/builtin/SymbolObject.h b/js/src/builtin/SymbolObject.h index 9e7fdbb861..7ca4b80534 100644 --- a/js/src/builtin/SymbolObject.h +++ b/js/src/builtin/SymbolObject.h @@ -48,9 +48,9 @@ class SymbolObject : public NativeObject static bool keyFor(JSContext* cx, unsigned argc, Value* vp); // Methods defined on Symbol.prototype. - static bool toString_impl(JSContext* cx, CallArgs args); + static bool toString_impl(JSContext* cx, const CallArgs& args); static bool toString(JSContext* cx, unsigned argc, Value* vp); - static bool valueOf_impl(JSContext* cx, CallArgs args); + static bool valueOf_impl(JSContext* cx, const CallArgs& args); static bool valueOf(JSContext* cx, unsigned argc, Value* vp); static const JSPropertySpec properties[]; diff --git a/js/src/builtin/TestingFunctions.cpp b/js/src/builtin/TestingFunctions.cpp index df8d9ff769..6c0a968cea 100644 --- a/js/src/builtin/TestingFunctions.cpp +++ b/js/src/builtin/TestingFunctions.cpp @@ -1634,7 +1634,7 @@ class CloneBufferObject : public NativeObject { } static bool - setCloneBuffer_impl(JSContext* cx, CallArgs args) { + setCloneBuffer_impl(JSContext* cx, const CallArgs& args) { if (args.length() != 1 || !args[0].isString()) { JS_ReportError(cx, "the first argument argument must be maxBytes, " @@ -1675,7 +1675,7 @@ class CloneBufferObject : public NativeObject { } static bool - getCloneBuffer_impl(JSContext* cx, CallArgs args) { + getCloneBuffer_impl(JSContext* cx, const CallArgs& args) { Rooted obj(cx, &args.thisv().toObject().as()); MOZ_ASSERT(args.length() == 0); @@ -2212,10 +2212,10 @@ FindPath(JSContext* cx, unsigned argc, jsval* vp) static bool EvalReturningScope(JSContext* cx, unsigned argc, jsval* vp) { - CallArgs args = CallArgsFromVp(argc, vp); + CallArgs args = CallArgsFromVp(argc, vp); - RootedString str(cx); - RootedObject global(cx); + RootedString str(cx); + RootedObject global(cx); if (!JS_ConvertArguments(cx, args, "S/o", str.address(), global.address())) return false; @@ -2278,10 +2278,10 @@ EvalReturningScope(JSContext* cx, unsigned argc, jsval* vp) static bool ShellCloneAndExecuteScript(JSContext* cx, unsigned argc, Value* vp) { - CallArgs args = CallArgsFromVp(argc, vp); - - RootedString str(cx); - RootedObject global(cx); + CallArgs args = CallArgsFromVp(argc, vp); + + RootedString str(cx); + RootedObject global(cx); if (!JS_ConvertArguments(cx, args, "So", str.address(), global.address())) return false; diff --git a/js/src/ctypes/CTypes.cpp b/js/src/ctypes/CTypes.cpp index d744d248af..b0f9187ade 100644 --- a/js/src/ctypes/CTypes.cpp +++ b/js/src/ctypes/CTypes.cpp @@ -230,10 +230,10 @@ namespace CType { bool IsCType(HandleValue v); bool IsCTypeOrProto(HandleValue v); - bool PrototypeGetter(JSContext* cx, JS::CallArgs args); - bool NameGetter(JSContext* cx, JS::CallArgs args); - bool SizeGetter(JSContext* cx, JS::CallArgs args); - bool PtrGetter(JSContext* cx, JS::CallArgs args); + bool PrototypeGetter(JSContext* cx, const JS::CallArgs& args); + bool NameGetter(JSContext* cx, const JS::CallArgs& args); + bool SizeGetter(JSContext* cx, const JS::CallArgs& args); + bool PtrGetter(JSContext* cx, const JS::CallArgs& args); static bool CreateArray(JSContext* cx, unsigned argc, jsval* vp); static bool ToString(JSContext* cx, unsigned argc, jsval* vp); @@ -264,9 +264,9 @@ namespace PointerType { bool IsPointerType(HandleValue v); bool IsPointer(HandleValue v); - bool TargetTypeGetter(JSContext* cx, JS::CallArgs args); - bool ContentsGetter(JSContext* cx, JS::CallArgs args); - bool ContentsSetter(JSContext* cx, JS::CallArgs args); + bool TargetTypeGetter(JSContext* cx, const JS::CallArgs& args); + bool ContentsGetter(JSContext* cx, const JS::CallArgs& args); + bool ContentsSetter(JSContext* cx, const JS::CallArgs& args); static bool IsNull(JSContext* cx, unsigned argc, jsval* vp); static bool Increment(JSContext* cx, unsigned argc, jsval* vp); @@ -283,8 +283,8 @@ namespace ArrayType { static bool Create(JSContext* cx, unsigned argc, jsval* vp); static bool ConstructData(JSContext* cx, HandleObject obj, const CallArgs& args); - bool ElementTypeGetter(JSContext* cx, JS::CallArgs args); - bool LengthGetter(JSContext* cx, JS::CallArgs args); + bool ElementTypeGetter(JSContext* cx, const JS::CallArgs& args); + bool LengthGetter(JSContext* cx, const JS::CallArgs& args); static bool Getter(JSContext* cx, HandleObject obj, HandleId idval, MutableHandleValue vp); static bool Setter(JSContext* cx, HandleObject obj, HandleId idval, bool strict, MutableHandleValue vp); @@ -297,7 +297,7 @@ namespace StructType { static bool Create(JSContext* cx, unsigned argc, jsval* vp); static bool ConstructData(JSContext* cx, HandleObject obj, const CallArgs& args); - bool FieldsArrayGetter(JSContext* cx, JS::CallArgs args); + bool FieldsArrayGetter(JSContext* cx, const JS::CallArgs& args); static bool FieldGetter(JSContext* cx, HandleObject obj, HandleId idval, MutableHandleValue vp); @@ -316,10 +316,10 @@ namespace FunctionType { bool IsFunctionType(HandleValue v); - bool ArgTypesGetter(JSContext* cx, JS::CallArgs args); - bool ReturnTypeGetter(JSContext* cx, JS::CallArgs args); - bool ABIGetter(JSContext* cx, JS::CallArgs args); - bool IsVariadicGetter(JSContext* cx, JS::CallArgs args); + bool ArgTypesGetter(JSContext* cx, const JS::CallArgs& args); + bool ReturnTypeGetter(JSContext* cx, const JS::CallArgs& args); + bool ABIGetter(JSContext* cx, const JS::CallArgs& args); + bool IsVariadicGetter(JSContext* cx, const JS::CallArgs& args); } namespace CClosure { @@ -334,8 +334,8 @@ namespace CClosure { namespace CData { static void Finalize(JSFreeOp* fop, JSObject* obj); - bool ValueGetter(JSContext* cx, JS::CallArgs args); - bool ValueSetter(JSContext* cx, JS::CallArgs args); + bool ValueGetter(JSContext* cx, const JS::CallArgs& args); + bool ValueSetter(JSContext* cx, const JS::CallArgs& args); static bool Address(JSContext* cx, unsigned argc, jsval* vp); static bool ReadString(JSContext* cx, unsigned argc, jsval* vp); @@ -344,10 +344,10 @@ namespace CData { static JSString* GetSourceString(JSContext* cx, HandleObject typeObj, void* data); - bool ErrnoGetter(JSContext* cx, JS::CallArgs args); + bool ErrnoGetter(JSContext* cx, const JS::CallArgs& args); #if defined(XP_WIN) - bool LastErrorGetter(JSContext* cx, JS::CallArgs args); + bool LastErrorGetter(JSContext* cx, const JS::CallArgs& args); #endif // defined(XP_WIN) } @@ -3717,7 +3717,7 @@ CType::IsCTypeOrProto(HandleValue v) } bool -CType::PrototypeGetter(JSContext* cx, JS::CallArgs args) +CType::PrototypeGetter(JSContext* cx, const JS::CallArgs& args) { RootedObject obj(cx, &args.thisv().toObject()); unsigned slot = CType::IsCTypeProto(obj) ? (unsigned) SLOT_OURDATAPROTO @@ -3734,7 +3734,7 @@ CType::IsCType(HandleValue v) } bool -CType::NameGetter(JSContext* cx, JS::CallArgs args) +CType::NameGetter(JSContext* cx, const JS::CallArgs& args) { RootedObject obj(cx, &args.thisv().toObject()); JSString* name = CType::GetName(cx, obj); @@ -3746,7 +3746,7 @@ CType::NameGetter(JSContext* cx, JS::CallArgs args) } bool -CType::SizeGetter(JSContext* cx, JS::CallArgs args) +CType::SizeGetter(JSContext* cx, const JS::CallArgs& args) { RootedObject obj(cx, &args.thisv().toObject()); args.rval().set(JS_GetReservedSlot(obj, SLOT_SIZE)); @@ -3755,7 +3755,7 @@ CType::SizeGetter(JSContext* cx, JS::CallArgs args) } bool -CType::PtrGetter(JSContext* cx, JS::CallArgs args) +CType::PtrGetter(JSContext* cx, const JS::CallArgs& args) { RootedObject obj(cx, &args.thisv().toObject()); JSObject* pointerType = PointerType::CreateInternal(cx, obj); @@ -4130,7 +4130,7 @@ PointerType::IsPointer(HandleValue v) } bool -PointerType::TargetTypeGetter(JSContext* cx, JS::CallArgs args) +PointerType::TargetTypeGetter(JSContext* cx, const JS::CallArgs& args) { RootedObject obj(cx, &args.thisv().toObject()); args.rval().set(JS_GetReservedSlot(obj, SLOT_TARGET_T)); @@ -4213,7 +4213,7 @@ PointerType::Decrement(JSContext* cx, unsigned argc, jsval* vp) } bool -PointerType::ContentsGetter(JSContext* cx, JS::CallArgs args) +PointerType::ContentsGetter(JSContext* cx, const JS::CallArgs& args) { RootedObject obj(cx, &args.thisv().toObject()); RootedObject baseType(cx, GetBaseType(CData::GetCType(obj))); @@ -4237,7 +4237,7 @@ PointerType::ContentsGetter(JSContext* cx, JS::CallArgs args) } bool -PointerType::ContentsSetter(JSContext* cx, JS::CallArgs args) +PointerType::ContentsSetter(JSContext* cx, const JS::CallArgs& args) { RootedObject obj(cx, &args.thisv().toObject()); RootedObject baseType(cx, GetBaseType(CData::GetCType(obj))); @@ -4568,7 +4568,7 @@ ArrayType::IsArrayOrArrayType(HandleValue v) } bool -ArrayType::ElementTypeGetter(JSContext* cx, JS::CallArgs args) +ArrayType::ElementTypeGetter(JSContext* cx, const JS::CallArgs& args) { RootedObject obj(cx, &args.thisv().toObject()); args.rval().set(JS_GetReservedSlot(obj, SLOT_ELEMENT_T)); @@ -4577,7 +4577,7 @@ ArrayType::ElementTypeGetter(JSContext* cx, JS::CallArgs args) } bool -ArrayType::LengthGetter(JSContext* cx, JS::CallArgs args) +ArrayType::LengthGetter(JSContext* cx, const JS::CallArgs& args) { JSObject* obj = &args.thisv().toObject(); @@ -5243,7 +5243,7 @@ StructType::IsStruct(HandleValue v) } bool -StructType::FieldsArrayGetter(JSContext* cx, JS::CallArgs args) +StructType::FieldsArrayGetter(JSContext* cx, const JS::CallArgs& args) { RootedObject obj(cx, &args.thisv().toObject()); @@ -6006,7 +6006,7 @@ FunctionType::IsFunctionType(HandleValue v) } bool -FunctionType::ArgTypesGetter(JSContext* cx, JS::CallArgs args) +FunctionType::ArgTypesGetter(JSContext* cx, const JS::CallArgs& args) { JS::Rooted obj(cx, &args.thisv().toObject()); @@ -6042,7 +6042,7 @@ FunctionType::ArgTypesGetter(JSContext* cx, JS::CallArgs args) } bool -FunctionType::ReturnTypeGetter(JSContext* cx, JS::CallArgs args) +FunctionType::ReturnTypeGetter(JSContext* cx, const JS::CallArgs& args) { // Get the returnType object from the FunctionInfo. args.rval().setObject(*GetFunctionInfo(&args.thisv().toObject())->mReturnType); @@ -6050,7 +6050,7 @@ FunctionType::ReturnTypeGetter(JSContext* cx, JS::CallArgs args) } bool -FunctionType::ABIGetter(JSContext* cx, JS::CallArgs args) +FunctionType::ABIGetter(JSContext* cx, const JS::CallArgs& args) { // Get the abi object from the FunctionInfo. args.rval().setObject(*GetFunctionInfo(&args.thisv().toObject())->mABI); @@ -6058,7 +6058,7 @@ FunctionType::ABIGetter(JSContext* cx, JS::CallArgs args) } bool -FunctionType::IsVariadicGetter(JSContext* cx, JS::CallArgs args) +FunctionType::IsVariadicGetter(JSContext* cx, const JS::CallArgs& args) { args.rval().setBoolean(GetFunctionInfo(&args.thisv().toObject())->mIsVariadic); return true; @@ -6492,7 +6492,7 @@ CData::IsCDataProto(JSObject* obj) } bool -CData::ValueGetter(JSContext* cx, JS::CallArgs args) +CData::ValueGetter(JSContext* cx, const JS::CallArgs& args) { RootedObject obj(cx, &args.thisv().toObject()); @@ -6502,7 +6502,7 @@ CData::ValueGetter(JSContext* cx, JS::CallArgs args) } bool -CData::ValueSetter(JSContext* cx, JS::CallArgs args) +CData::ValueSetter(JSContext* cx, const JS::CallArgs& args) { RootedObject obj(cx, &args.thisv().toObject()); args.rval().setUndefined(); @@ -6769,7 +6769,7 @@ CData::ToSource(JSContext* cx, unsigned argc, jsval* vp) } bool -CData::ErrnoGetter(JSContext* cx, JS::CallArgs args) +CData::ErrnoGetter(JSContext* cx, const JS::CallArgs& args) { args.rval().set(JS_GetReservedSlot(&args.thisv().toObject(), SLOT_ERRNO)); return true; @@ -6777,7 +6777,7 @@ CData::ErrnoGetter(JSContext* cx, JS::CallArgs args) #if defined(XP_WIN) bool -CData::LastErrorGetter(JSContext* cx, JS::CallArgs args) +CData::LastErrorGetter(JSContext* cx, const JS::CallArgs& args) { args.rval().set(JS_GetReservedSlot(&args.thisv().toObject(), SLOT_LASTERROR)); return true; diff --git a/js/src/jit/Ion.cpp b/js/src/jit/Ion.cpp index 3ca08f23b3..4ac94898e7 100644 --- a/js/src/jit/Ion.cpp +++ b/js/src/jit/Ion.cpp @@ -2367,7 +2367,7 @@ jit::SetEnterJitData(JSContext* cx, EnterJitData& data, RunState& state, AutoVal data.osrFrame = nullptr; if (state.isInvoke()) { - CallArgs& args = state.asInvoke()->args(); + const CallArgs& args = state.asInvoke()->args(); unsigned numFormals = state.script()->functionNonDelazifying()->nargs(); data.constructing = state.asInvoke()->constructing(); data.numActualArgs = args.length(); diff --git a/js/src/jsapi-tests/testCallNonGenericMethodOnProxy.cpp b/js/src/jsapi-tests/testCallNonGenericMethodOnProxy.cpp index 90971e90e8..f4d87cdd61 100644 --- a/js/src/jsapi-tests/testCallNonGenericMethodOnProxy.cpp +++ b/js/src/jsapi-tests/testCallNonGenericMethodOnProxy.cpp @@ -20,7 +20,7 @@ IsCustomClass(JS::Handle v) } static bool -CustomMethodImpl(JSContext* cx, CallArgs args) +CustomMethodImpl(JSContext* cx, const CallArgs& args) { MOZ_RELEASE_ASSERT(IsCustomClass(args.thisv())); args.rval().set(JS_GetReservedSlot(&args.thisv().toObject(), CUSTOM_SLOT)); diff --git a/js/src/jsapi.cpp b/js/src/jsapi.cpp index 5ae117600c..6ee59c809c 100644 --- a/js/src/jsapi.cpp +++ b/js/src/jsapi.cpp @@ -116,7 +116,8 @@ using js::frontend::Parser; #endif bool -JS::CallArgs::requireAtLeast(JSContext* cx, const char* fnname, unsigned required) { +JS::CallArgs::requireAtLeast(JSContext* cx, const char* fnname, unsigned required) const +{ if (length() < required) { char numArgsStr[40]; JS_snprintf(numArgsStr, sizeof numArgsStr, "%u", required - 1); diff --git a/js/src/jsbool.cpp b/js/src/jsbool.cpp index c79926b091..5f4408dd19 100644 --- a/js/src/jsbool.cpp +++ b/js/src/jsbool.cpp @@ -37,7 +37,7 @@ IsBoolean(HandleValue v) #if JS_HAS_TOSOURCE MOZ_ALWAYS_INLINE bool -bool_toSource_impl(JSContext* cx, CallArgs args) +bool_toSource_impl(JSContext* cx, const CallArgs& args) { HandleValue thisv = args.thisv(); MOZ_ASSERT(IsBoolean(thisv)); @@ -64,7 +64,7 @@ bool_toSource(JSContext* cx, unsigned argc, Value* vp) #endif MOZ_ALWAYS_INLINE bool -bool_toString_impl(JSContext* cx, CallArgs args) +bool_toString_impl(JSContext* cx, const CallArgs& args) { HandleValue thisv = args.thisv(); MOZ_ASSERT(IsBoolean(thisv)); @@ -82,7 +82,7 @@ bool_toString(JSContext* cx, unsigned argc, Value* vp) } MOZ_ALWAYS_INLINE bool -bool_valueOf_impl(JSContext* cx, CallArgs args) +bool_valueOf_impl(JSContext* cx, const CallArgs& args) { HandleValue thisv = args.thisv(); MOZ_ASSERT(IsBoolean(thisv)); diff --git a/js/src/jsdate.cpp b/js/src/jsdate.cpp index 16e0027923..01af178974 100644 --- a/js/src/jsdate.cpp +++ b/js/src/jsdate.cpp @@ -578,7 +578,7 @@ date_msecFromDate(double year, double mon, double mday, double hour, #define MAXARGS 7 static bool -date_msecFromArgs(JSContext* cx, CallArgs args, double* rval) +date_msecFromArgs(JSContext* cx, const CallArgs& args, double* rval) { unsigned loop; double array[MAXARGS]; @@ -1366,7 +1366,7 @@ IsDate(HandleValue v) * See ECMA 15.9.5.4 thru 15.9.5.23 */ /* static */ MOZ_ALWAYS_INLINE bool -DateObject::getTime_impl(JSContext* cx, CallArgs args) +DateObject::getTime_impl(JSContext* cx, const CallArgs& args) { args.rval().set(args.thisv().toObject().as().UTCTime()); return true; @@ -1380,7 +1380,7 @@ date_getTime(JSContext* cx, unsigned argc, Value* vp) } /* static */ MOZ_ALWAYS_INLINE bool -DateObject::getYear_impl(JSContext* cx, CallArgs args) +DateObject::getYear_impl(JSContext* cx, const CallArgs& args) { DateObject* dateObj = &args.thisv().toObject().as(); dateObj->fillLocalTimeSlots(&cx->runtime()->dateTimeInfo); @@ -1405,7 +1405,7 @@ date_getYear(JSContext* cx, unsigned argc, Value* vp) } /* static */ MOZ_ALWAYS_INLINE bool -DateObject::getFullYear_impl(JSContext* cx, CallArgs args) +DateObject::getFullYear_impl(JSContext* cx, const CallArgs& args) { DateObject* dateObj = &args.thisv().toObject().as(); dateObj->fillLocalTimeSlots(&cx->runtime()->dateTimeInfo); @@ -1422,7 +1422,7 @@ date_getFullYear(JSContext* cx, unsigned argc, Value* vp) } /* static */ MOZ_ALWAYS_INLINE bool -DateObject::getUTCFullYear_impl(JSContext* cx, CallArgs args) +DateObject::getUTCFullYear_impl(JSContext* cx, const CallArgs& args) { double result = args.thisv().toObject().as().UTCTime().toNumber(); if (IsFinite(result)) @@ -1440,7 +1440,7 @@ date_getUTCFullYear(JSContext* cx, unsigned argc, Value* vp) } /* static */ MOZ_ALWAYS_INLINE bool -DateObject::getMonth_impl(JSContext* cx, CallArgs args) +DateObject::getMonth_impl(JSContext* cx, const CallArgs& args) { DateObject* dateObj = &args.thisv().toObject().as(); dateObj->fillLocalTimeSlots(&cx->runtime()->dateTimeInfo); @@ -1457,7 +1457,7 @@ date_getMonth(JSContext* cx, unsigned argc, Value* vp) } /* static */ MOZ_ALWAYS_INLINE bool -DateObject::getUTCMonth_impl(JSContext* cx, CallArgs args) +DateObject::getUTCMonth_impl(JSContext* cx, const CallArgs& args) { double d = args.thisv().toObject().as().UTCTime().toNumber(); args.rval().setNumber(MonthFromTime(d)); @@ -1472,7 +1472,7 @@ date_getUTCMonth(JSContext* cx, unsigned argc, Value* vp) } /* static */ MOZ_ALWAYS_INLINE bool -DateObject::getDate_impl(JSContext* cx, CallArgs args) +DateObject::getDate_impl(JSContext* cx, const CallArgs& args) { DateObject* dateObj = &args.thisv().toObject().as(); dateObj->fillLocalTimeSlots(&cx->runtime()->dateTimeInfo); @@ -1489,7 +1489,7 @@ date_getDate(JSContext* cx, unsigned argc, Value* vp) } /* static */ MOZ_ALWAYS_INLINE bool -DateObject::getUTCDate_impl(JSContext* cx, CallArgs args) +DateObject::getUTCDate_impl(JSContext* cx, const CallArgs& args) { double result = args.thisv().toObject().as().UTCTime().toNumber(); if (IsFinite(result)) @@ -1507,7 +1507,7 @@ date_getUTCDate(JSContext* cx, unsigned argc, Value* vp) } /* static */ MOZ_ALWAYS_INLINE bool -DateObject::getDay_impl(JSContext* cx, CallArgs args) +DateObject::getDay_impl(JSContext* cx, const CallArgs& args) { DateObject* dateObj = &args.thisv().toObject().as(); dateObj->fillLocalTimeSlots(&cx->runtime()->dateTimeInfo); @@ -1524,7 +1524,7 @@ date_getDay(JSContext* cx, unsigned argc, Value* vp) } /* static */ MOZ_ALWAYS_INLINE bool -DateObject::getUTCDay_impl(JSContext* cx, CallArgs args) +DateObject::getUTCDay_impl(JSContext* cx, const CallArgs& args) { double result = args.thisv().toObject().as().UTCTime().toNumber(); if (IsFinite(result)) @@ -1542,7 +1542,7 @@ date_getUTCDay(JSContext* cx, unsigned argc, Value* vp) } /* static */ MOZ_ALWAYS_INLINE bool -DateObject::getHours_impl(JSContext* cx, CallArgs args) +DateObject::getHours_impl(JSContext* cx, const CallArgs& args) { DateObject* dateObj = &args.thisv().toObject().as(); dateObj->fillLocalTimeSlots(&cx->runtime()->dateTimeInfo); @@ -1559,7 +1559,7 @@ date_getHours(JSContext* cx, unsigned argc, Value* vp) } /* static */ MOZ_ALWAYS_INLINE bool -DateObject::getUTCHours_impl(JSContext* cx, CallArgs args) +DateObject::getUTCHours_impl(JSContext* cx, const CallArgs& args) { double result = args.thisv().toObject().as().UTCTime().toNumber(); if (IsFinite(result)) @@ -1577,7 +1577,7 @@ date_getUTCHours(JSContext* cx, unsigned argc, Value* vp) } /* static */ MOZ_ALWAYS_INLINE bool -DateObject::getMinutes_impl(JSContext* cx, CallArgs args) +DateObject::getMinutes_impl(JSContext* cx, const CallArgs& args) { DateObject* dateObj = &args.thisv().toObject().as(); dateObj->fillLocalTimeSlots(&cx->runtime()->dateTimeInfo); @@ -1594,7 +1594,7 @@ date_getMinutes(JSContext* cx, unsigned argc, Value* vp) } /* static */ MOZ_ALWAYS_INLINE bool -DateObject::getUTCMinutes_impl(JSContext* cx, CallArgs args) +DateObject::getUTCMinutes_impl(JSContext* cx, const CallArgs& args) { double result = args.thisv().toObject().as().UTCTime().toNumber(); if (IsFinite(result)) @@ -1614,7 +1614,7 @@ date_getUTCMinutes(JSContext* cx, unsigned argc, Value* vp) /* Date.getSeconds is mapped to getUTCSeconds */ /* static */ MOZ_ALWAYS_INLINE bool -DateObject::getUTCSeconds_impl(JSContext* cx, CallArgs args) +DateObject::getUTCSeconds_impl(JSContext* cx, const CallArgs& args) { DateObject* dateObj = &args.thisv().toObject().as(); dateObj->fillLocalTimeSlots(&cx->runtime()->dateTimeInfo); @@ -1633,7 +1633,7 @@ date_getUTCSeconds(JSContext* cx, unsigned argc, Value* vp) /* Date.getMilliseconds is mapped to getUTCMilliseconds */ /* static */ MOZ_ALWAYS_INLINE bool -DateObject::getUTCMilliseconds_impl(JSContext* cx, CallArgs args) +DateObject::getUTCMilliseconds_impl(JSContext* cx, const CallArgs& args) { double result = args.thisv().toObject().as().UTCTime().toNumber(); if (IsFinite(result)) @@ -1651,7 +1651,7 @@ date_getUTCMilliseconds(JSContext* cx, unsigned argc, Value* vp) } /* static */ MOZ_ALWAYS_INLINE bool -DateObject::getTimezoneOffset_impl(JSContext* cx, CallArgs args) +DateObject::getTimezoneOffset_impl(JSContext* cx, const CallArgs& args) { DateObject* dateObj = &args.thisv().toObject().as(); double utctime = dateObj->UTCTime().toNumber(); @@ -1675,7 +1675,7 @@ date_getTimezoneOffset(JSContext* cx, unsigned argc, Value* vp) } MOZ_ALWAYS_INLINE bool -date_setTime_impl(JSContext* cx, CallArgs args) +date_setTime_impl(JSContext* cx, const CallArgs& args) { Rooted dateObj(cx, &args.thisv().toObject().as()); if (args.length() == 0) { @@ -1730,7 +1730,7 @@ GetMinsOrDefault(JSContext* cx, const CallArgs& args, unsigned i, double t, doub /* ES5 15.9.5.28. */ MOZ_ALWAYS_INLINE bool -date_setMilliseconds_impl(JSContext* cx, CallArgs args) +date_setMilliseconds_impl(JSContext* cx, const CallArgs& args) { Rooted dateObj(cx, &args.thisv().toObject().as()); @@ -1760,7 +1760,7 @@ date_setMilliseconds(JSContext* cx, unsigned argc, Value* vp) /* ES5 15.9.5.29. */ MOZ_ALWAYS_INLINE bool -date_setUTCMilliseconds_impl(JSContext* cx, CallArgs args) +date_setUTCMilliseconds_impl(JSContext* cx, const CallArgs& args) { Rooted dateObj(cx, &args.thisv().toObject().as()); @@ -1790,7 +1790,7 @@ date_setUTCMilliseconds(JSContext* cx, unsigned argc, Value* vp) /* ES5 15.9.5.30. */ MOZ_ALWAYS_INLINE bool -date_setSeconds_impl(JSContext* cx, CallArgs args) +date_setSeconds_impl(JSContext* cx, const CallArgs& args) { Rooted dateObj(cx, &args.thisv().toObject().as()); @@ -1827,7 +1827,7 @@ date_setSeconds(JSContext* cx, unsigned argc, Value* vp) } MOZ_ALWAYS_INLINE bool -date_setUTCSeconds_impl(JSContext* cx, CallArgs args) +date_setUTCSeconds_impl(JSContext* cx, const CallArgs& args) { Rooted dateObj(cx, &args.thisv().toObject().as()); @@ -1864,7 +1864,7 @@ date_setUTCSeconds(JSContext* cx, unsigned argc, Value* vp) } MOZ_ALWAYS_INLINE bool -date_setMinutes_impl(JSContext* cx, CallArgs args) +date_setMinutes_impl(JSContext* cx, const CallArgs& args) { Rooted dateObj(cx, &args.thisv().toObject().as()); @@ -1906,7 +1906,7 @@ date_setMinutes(JSContext* cx, unsigned argc, Value* vp) } MOZ_ALWAYS_INLINE bool -date_setUTCMinutes_impl(JSContext* cx, CallArgs args) +date_setUTCMinutes_impl(JSContext* cx, const CallArgs& args) { Rooted dateObj(cx, &args.thisv().toObject().as()); @@ -1948,7 +1948,7 @@ date_setUTCMinutes(JSContext* cx, unsigned argc, Value* vp) } MOZ_ALWAYS_INLINE bool -date_setHours_impl(JSContext* cx, CallArgs args) +date_setHours_impl(JSContext* cx, const CallArgs& args) { Rooted dateObj(cx, &args.thisv().toObject().as()); @@ -1995,7 +1995,7 @@ date_setHours(JSContext* cx, unsigned argc, Value* vp) } MOZ_ALWAYS_INLINE bool -date_setUTCHours_impl(JSContext* cx, CallArgs args) +date_setUTCHours_impl(JSContext* cx, const CallArgs& args) { Rooted dateObj(cx, &args.thisv().toObject().as()); @@ -2042,7 +2042,7 @@ date_setUTCHours(JSContext* cx, unsigned argc, Value* vp) } MOZ_ALWAYS_INLINE bool -date_setDate_impl(JSContext* cx, CallArgs args) +date_setDate_impl(JSContext* cx, const CallArgs& args) { Rooted dateObj(cx, &args.thisv().toObject().as()); @@ -2074,7 +2074,7 @@ date_setDate(JSContext* cx, unsigned argc, Value* vp) } MOZ_ALWAYS_INLINE bool -date_setUTCDate_impl(JSContext* cx, CallArgs args) +date_setUTCDate_impl(JSContext* cx, const CallArgs& args) { Rooted dateObj(cx, &args.thisv().toObject().as()); @@ -2126,7 +2126,7 @@ GetMonthOrDefault(JSContext* cx, const CallArgs& args, unsigned i, double t, dou /* ES5 15.9.5.38. */ MOZ_ALWAYS_INLINE bool -date_setMonth_impl(JSContext* cx, CallArgs args) +date_setMonth_impl(JSContext* cx, const CallArgs& args) { Rooted dateObj(cx, &args.thisv().toObject().as()); @@ -2163,7 +2163,7 @@ date_setMonth(JSContext* cx, unsigned argc, Value* vp) /* ES5 15.9.5.39. */ MOZ_ALWAYS_INLINE bool -date_setUTCMonth_impl(JSContext* cx, CallArgs args) +date_setUTCMonth_impl(JSContext* cx, const CallArgs& args) { Rooted dateObj(cx, &args.thisv().toObject().as()); @@ -2216,7 +2216,7 @@ ThisUTCTimeOrZero(Handle dateObj) /* ES5 15.9.5.40. */ MOZ_ALWAYS_INLINE bool -date_setFullYear_impl(JSContext* cx, CallArgs args) +date_setFullYear_impl(JSContext* cx, const CallArgs& args) { Rooted dateObj(cx, &args.thisv().toObject().as()); @@ -2258,7 +2258,7 @@ date_setFullYear(JSContext* cx, unsigned argc, Value* vp) /* ES5 15.9.5.41. */ MOZ_ALWAYS_INLINE bool -date_setUTCFullYear_impl(JSContext* cx, CallArgs args) +date_setUTCFullYear_impl(JSContext* cx, const CallArgs& args) { Rooted dateObj(cx, &args.thisv().toObject().as()); @@ -2300,7 +2300,7 @@ date_setUTCFullYear(JSContext* cx, unsigned argc, Value* vp) /* ES5 Annex B.2.5. */ MOZ_ALWAYS_INLINE bool -date_setYear_impl(JSContext* cx, CallArgs args) +date_setYear_impl(JSContext* cx, const CallArgs& args) { Rooted dateObj(cx, &args.thisv().toObject().as()); @@ -2399,7 +2399,7 @@ print_iso_extended_string(char* buf, size_t size, double utctime) /* ES5 B.2.6. */ MOZ_ALWAYS_INLINE bool -date_toGMTString_impl(JSContext* cx, CallArgs args) +date_toGMTString_impl(JSContext* cx, const CallArgs& args) { double utctime = args.thisv().toObject().as().UTCTime().toNumber(); @@ -2425,7 +2425,7 @@ date_toGMTString(JSContext* cx, unsigned argc, Value* vp) /* ES6 draft 2015-01-15 20.3.4.36. */ MOZ_ALWAYS_INLINE bool -date_toISOString_impl(JSContext* cx, CallArgs args) +date_toISOString_impl(JSContext* cx, const CallArgs& args) { double utctime = args.thisv().toObject().as().UTCTime().toNumber(); if (!IsFinite(utctime)) { @@ -2711,7 +2711,7 @@ ToLocaleStringHelper(JSContext* cx, Handle dateObj, MutableHandleVa /* ES5 15.9.5.5. */ MOZ_ALWAYS_INLINE bool -date_toLocaleString_impl(JSContext* cx, CallArgs args) +date_toLocaleString_impl(JSContext* cx, const CallArgs& args) { Rooted dateObj(cx, &args.thisv().toObject().as()); return ToLocaleStringHelper(cx, dateObj, args.rval()); @@ -2726,7 +2726,7 @@ date_toLocaleString(JSContext* cx, unsigned argc, Value* vp) /* ES5 15.9.5.6. */ MOZ_ALWAYS_INLINE bool -date_toLocaleDateString_impl(JSContext* cx, CallArgs args) +date_toLocaleDateString_impl(JSContext* cx, const CallArgs& args) { /* * Use '%#x' for windows, because '%x' is backward-compatible and non-y2k @@ -2753,7 +2753,7 @@ date_toLocaleDateString(JSContext* cx, unsigned argc, Value* vp) /* ES5 15.9.5.7. */ MOZ_ALWAYS_INLINE bool -date_toLocaleTimeString_impl(JSContext* cx, CallArgs args) +date_toLocaleTimeString_impl(JSContext* cx, const CallArgs& args) { Rooted dateObj(cx, &args.thisv().toObject().as()); return ToLocaleFormatHelper(cx, dateObj, "%X", args.rval()); @@ -2768,7 +2768,7 @@ date_toLocaleTimeString(JSContext* cx, unsigned argc, Value* vp) #endif /* !EXPOSE_INTL_API */ MOZ_ALWAYS_INLINE bool -date_toLocaleFormat_impl(JSContext* cx, CallArgs args) +date_toLocaleFormat_impl(JSContext* cx, const CallArgs& args) { Rooted dateObj(cx, &args.thisv().toObject().as()); @@ -2806,7 +2806,7 @@ date_toLocaleFormat(JSContext* cx, unsigned argc, Value* vp) /* ES5 15.9.5.4. */ MOZ_ALWAYS_INLINE bool -date_toTimeString_impl(JSContext* cx, CallArgs args) +date_toTimeString_impl(JSContext* cx, const CallArgs& args) { return date_format(cx, args.thisv().toObject().as().UTCTime().toNumber(), FORMATSPEC_TIME, args.rval()); @@ -2821,7 +2821,7 @@ date_toTimeString(JSContext* cx, unsigned argc, Value* vp) /* ES5 15.9.5.3. */ MOZ_ALWAYS_INLINE bool -date_toDateString_impl(JSContext* cx, CallArgs args) +date_toDateString_impl(JSContext* cx, const CallArgs& args) { return date_format(cx, args.thisv().toObject().as().UTCTime().toNumber(), FORMATSPEC_DATE, args.rval()); @@ -2836,7 +2836,7 @@ date_toDateString(JSContext* cx, unsigned argc, Value* vp) #if JS_HAS_TOSOURCE MOZ_ALWAYS_INLINE bool -date_toSource_impl(JSContext* cx, CallArgs args) +date_toSource_impl(JSContext* cx, const CallArgs& args) { StringBuffer sb(cx); if (!sb.append("(new Date(") || @@ -2862,7 +2862,7 @@ date_toSource(JSContext* cx, unsigned argc, Value* vp) #endif MOZ_ALWAYS_INLINE bool -date_toString_impl(JSContext* cx, CallArgs args) +date_toString_impl(JSContext* cx, const CallArgs& args) { return date_format(cx, args.thisv().toObject().as().UTCTime().toNumber(), FORMATSPEC_FULL, args.rval()); @@ -2876,7 +2876,7 @@ date_toString(JSContext* cx, unsigned argc, Value* vp) } MOZ_ALWAYS_INLINE bool -date_valueOf_impl(JSContext* cx, CallArgs args) +date_valueOf_impl(JSContext* cx, const CallArgs& args) { Rooted dateObj(cx, &args.thisv().toObject().as()); args.rval().set(dateObj->UTCTime()); diff --git a/js/src/jsfun.cpp b/js/src/jsfun.cpp index 1b92d5f50d..14295f6f2f 100644 --- a/js/src/jsfun.cpp +++ b/js/src/jsfun.cpp @@ -148,7 +148,7 @@ ArgumentsRestrictions(JSContext* cx, HandleFunction fun) } bool -ArgumentsGetterImpl(JSContext* cx, CallArgs args) +ArgumentsGetterImpl(JSContext* cx, const CallArgs& args) { MOZ_ASSERT(IsFunction(args.thisv())); @@ -185,7 +185,7 @@ ArgumentsGetter(JSContext* cx, unsigned argc, Value* vp) } bool -ArgumentsSetterImpl(JSContext* cx, CallArgs args) +ArgumentsSetterImpl(JSContext* cx, const CallArgs& args) { MOZ_ASSERT(IsFunction(args.thisv())); @@ -237,7 +237,7 @@ CallerRestrictions(JSContext* cx, HandleFunction fun) } bool -CallerGetterImpl(JSContext* cx, CallArgs args) +CallerGetterImpl(JSContext* cx, const CallArgs& args) { MOZ_ASSERT(IsFunction(args.thisv())); @@ -298,7 +298,7 @@ CallerGetter(JSContext* cx, unsigned argc, Value* vp) } bool -CallerSetterImpl(JSContext* cx, CallArgs args) +CallerSetterImpl(JSContext* cx, const CallArgs& args) { MOZ_ASSERT(IsFunction(args.thisv())); diff --git a/js/src/jsiter.cpp b/js/src/jsiter.cpp index b9e833762c..87bdd0b89a 100644 --- a/js/src/jsiter.cpp +++ b/js/src/jsiter.cpp @@ -936,7 +936,7 @@ IsIterator(HandleValue v) } MOZ_ALWAYS_INLINE bool -iterator_next_impl(JSContext* cx, CallArgs args) +iterator_next_impl(JSContext* cx, const CallArgs& args) { MOZ_ASSERT(IsIterator(args.thisv())); diff --git a/js/src/jsnum.cpp b/js/src/jsnum.cpp index e003e946ef..1628a70ae4 100644 --- a/js/src/jsnum.cpp +++ b/js/src/jsnum.cpp @@ -511,7 +511,7 @@ Extract(const Value& v) #if JS_HAS_TOSOURCE MOZ_ALWAYS_INLINE bool -num_toSource_impl(JSContext* cx, CallArgs args) +num_toSource_impl(JSContext* cx, const CallArgs& args) { double d = Extract(args.thisv()); @@ -685,7 +685,7 @@ static JSString * JS_FASTCALL js_NumberToStringWithBase(ExclusiveContext* cx, double d, int base); MOZ_ALWAYS_INLINE bool -num_toString_impl(JSContext* cx, CallArgs args) +num_toString_impl(JSContext* cx, const CallArgs& args) { MOZ_ASSERT(IsNumber(args.thisv())); @@ -722,7 +722,7 @@ js_num_toString(JSContext* cx, unsigned argc, Value* vp) #if !EXPOSE_INTL_API MOZ_ALWAYS_INLINE bool -num_toLocaleString_impl(JSContext* cx, CallArgs args) +num_toLocaleString_impl(JSContext* cx, const CallArgs& args) { MOZ_ASSERT(IsNumber(args.thisv())); @@ -856,7 +856,7 @@ num_toLocaleString(JSContext* cx, unsigned argc, Value* vp) #endif /* !EXPOSE_INTL_API */ MOZ_ALWAYS_INLINE bool -num_valueOf_impl(JSContext* cx, CallArgs args) +num_valueOf_impl(JSContext* cx, const CallArgs& args) { MOZ_ASSERT(IsNumber(args.thisv())); args.rval().setNumber(Extract(args.thisv())); @@ -891,7 +891,7 @@ ComputePrecisionInRange(JSContext* cx, int minPrecision, int maxPrecision, Handl } static bool -DToStrResult(JSContext* cx, double d, JSDToStrMode mode, int precision, CallArgs args) +DToStrResult(JSContext* cx, double d, JSDToStrMode mode, int precision, const CallArgs& args) { char buf[DTOSTR_VARIABLE_BUFFER_SIZE(MAX_PRECISION + 1)]; char* numStr = js_dtostr(cx->mainThread().dtoaState, buf, sizeof buf, mode, precision, d); @@ -911,7 +911,7 @@ DToStrResult(JSContext* cx, double d, JSDToStrMode mode, int precision, CallArgs * than ECMA requires; this is permitted by ECMA-262. */ MOZ_ALWAYS_INLINE bool -num_toFixed_impl(JSContext* cx, CallArgs args) +num_toFixed_impl(JSContext* cx, const CallArgs& args) { MOZ_ASSERT(IsNumber(args.thisv())); @@ -934,7 +934,7 @@ num_toFixed(JSContext* cx, unsigned argc, Value* vp) } MOZ_ALWAYS_INLINE bool -num_toExponential_impl(JSContext* cx, CallArgs args) +num_toExponential_impl(JSContext* cx, const CallArgs& args) { MOZ_ASSERT(IsNumber(args.thisv())); @@ -960,7 +960,7 @@ num_toExponential(JSContext* cx, unsigned argc, Value* vp) } MOZ_ALWAYS_INLINE bool -num_toPrecision_impl(JSContext* cx, CallArgs args) +num_toPrecision_impl(JSContext* cx, const CallArgs& args) { MOZ_ASSERT(IsNumber(args.thisv())); diff --git a/js/src/jsstr.cpp b/js/src/jsstr.cpp index 671b662cf5..d80f405310 100644 --- a/js/src/jsstr.cpp +++ b/js/src/jsstr.cpp @@ -72,7 +72,7 @@ using mozilla::UniquePtr; using JS::AutoCheckCannotGC; static JSLinearString* -ArgToRootedString(JSContext* cx, CallArgs& args, unsigned argno) +ArgToRootedString(JSContext* cx, const CallArgs& args, unsigned argno) { if (argno >= args.length()) return cx->names().undefined; @@ -475,7 +475,7 @@ IsString(HandleValue v) #if JS_HAS_TOSOURCE MOZ_ALWAYS_INLINE bool -str_toSource_impl(JSContext* cx, CallArgs args) +str_toSource_impl(JSContext* cx, const CallArgs& args) { MOZ_ASSERT(IsString(args.thisv())); @@ -508,7 +508,7 @@ str_toSource(JSContext* cx, unsigned argc, Value* vp) #endif /* JS_HAS_TOSOURCE */ MOZ_ALWAYS_INLINE bool -str_toString_impl(JSContext* cx, CallArgs args) +str_toString_impl(JSContext* cx, const CallArgs& args) { MOZ_ASSERT(IsString(args.thisv())); @@ -2053,7 +2053,7 @@ class MOZ_STACK_CLASS StringRegExpGuard { } /* init must succeed in order to call tryFlatMatch or normalizeRegExp. */ - bool init(JSContext* cx, CallArgs args, bool convertVoid = false) + bool init(JSContext* cx, const CallArgs& args, bool convertVoid = false) { if (args.length() != 0 && IsObjectWithClass(args[0], ESClass_RegExp, cx)) return init(cx, &args[0].toObject()); @@ -2131,7 +2131,7 @@ class MOZ_STACK_CLASS StringRegExpGuard } /* If the pattern is not already a regular expression, make it so. */ - bool normalizeRegExp(JSContext* cx, bool flat, unsigned optarg, CallArgs args) + bool normalizeRegExp(JSContext* cx, bool flat, unsigned optarg, const CallArgs& args) { if (re_.initialized()) return true; @@ -2194,7 +2194,7 @@ class MOZ_STACK_CLASS StringRegExpGuard } /* anonymous namespace */ static bool -DoMatchLocal(JSContext* cx, CallArgs args, RegExpStatics* res, HandleLinearString input, +DoMatchLocal(JSContext* cx, const CallArgs& args, RegExpStatics* res, HandleLinearString input, RegExpShared& re) { ScopedMatchPairs matches(&cx->tempLifoAlloc()); @@ -2220,8 +2220,8 @@ DoMatchLocal(JSContext* cx, CallArgs args, RegExpStatics* res, HandleLinearStrin /* ES5 15.5.4.10 step 8. */ static bool -DoMatchGlobal(JSContext* cx, CallArgs args, RegExpStatics* res, HandleLinearString input, - StringRegExpGuard& g) +DoMatchGlobal(JSContext* cx, const CallArgs& args, RegExpStatics* res, + HandleLinearString input, StringRegExpGuard& g) { // Step 8a. // @@ -2321,7 +2321,8 @@ DoMatchGlobal(JSContext* cx, CallArgs args, RegExpStatics* res, HandleLinearStri } static bool -BuildFlatMatchArray(JSContext* cx, HandleString textstr, const FlatMatch& fm, CallArgs* args) +BuildFlatMatchArray(JSContext* cx, HandleString textstr, const FlatMatch& fm, + const CallArgs* args) { if (fm.match() < 0) { args->rval().setNull(); @@ -3280,7 +3281,7 @@ StrReplaceRegExp(JSContext* cx, ReplaceData& rdata, MutableHandleValue rval) } static inline bool -str_replace_regexp(JSContext* cx, CallArgs args, ReplaceData& rdata) +str_replace_regexp(JSContext* cx, const CallArgs& args, ReplaceData& rdata) { if (!rdata.g.normalizeRegExp(cx, true, 2, args)) return false; @@ -3356,7 +3357,8 @@ js::str_replace_string_raw(JSContext* cx, HandleString string, HandleString patt } static inline bool -str_replace_flat_lambda(JSContext* cx, CallArgs outerArgs, ReplaceData& rdata, const FlatMatch& fm) +str_replace_flat_lambda(JSContext* cx, const CallArgs& outerArgs, ReplaceData& rdata, + const FlatMatch& fm) { RootedString matchStr(cx, NewDependentString(cx, rdata.str, fm.match(), fm.patternLength())); if (!matchStr) diff --git a/js/src/jsweakmap.cpp b/js/src/jsweakmap.cpp index 8301298117..4434dce9eb 100644 --- a/js/src/jsweakmap.cpp +++ b/js/src/jsweakmap.cpp @@ -211,7 +211,7 @@ IsWeakMap(HandleValue v) } MOZ_ALWAYS_INLINE bool -WeakMap_has_impl(JSContext* cx, CallArgs args) +WeakMap_has_impl(JSContext* cx, const CallArgs& args) { MOZ_ASSERT(IsWeakMap(args.thisv())); @@ -240,7 +240,7 @@ js::WeakMap_has(JSContext* cx, unsigned argc, Value* vp) } MOZ_ALWAYS_INLINE bool -WeakMap_clear_impl(JSContext* cx, CallArgs args) +WeakMap_clear_impl(JSContext* cx, const CallArgs& args) { MOZ_ASSERT(IsWeakMap(args.thisv())); @@ -261,7 +261,7 @@ js::WeakMap_clear(JSContext* cx, unsigned argc, Value* vp) } MOZ_ALWAYS_INLINE bool -WeakMap_get_impl(JSContext* cx, CallArgs args) +WeakMap_get_impl(JSContext* cx, const CallArgs& args) { MOZ_ASSERT(IsWeakMap(args.thisv())); @@ -290,7 +290,7 @@ js::WeakMap_get(JSContext* cx, unsigned argc, Value* vp) } MOZ_ALWAYS_INLINE bool -WeakMap_delete_impl(JSContext* cx, CallArgs args) +WeakMap_delete_impl(JSContext* cx, const CallArgs& args) { MOZ_ASSERT(IsWeakMap(args.thisv())); @@ -383,7 +383,7 @@ SetWeakMapEntryInternal(JSContext* cx, Handle mapObj, } MOZ_ALWAYS_INLINE bool -WeakMap_set_impl(JSContext* cx, CallArgs args) +WeakMap_set_impl(JSContext* cx, const CallArgs& args) { MOZ_ASSERT(IsWeakMap(args.thisv())); diff --git a/js/src/jswrapper.h b/js/src/jswrapper.h index d42eeef1dc..ea530fa603 100644 --- a/js/src/jswrapper.h +++ b/js/src/jswrapper.h @@ -146,7 +146,7 @@ class JS_FRIEND_API(CrossCompartmentWrapper) : public Wrapper virtual bool getOwnEnumerablePropertyKeys(JSContext* cx, HandleObject wrapper, AutoIdVector& props) const override; virtual bool nativeCall(JSContext* cx, IsAcceptableThis test, NativeImpl impl, - CallArgs args) const override; + const CallArgs& args) const override; virtual bool hasInstance(JSContext* cx, HandleObject wrapper, MutableHandleValue v, bool* bp) const override; virtual const char* className(JSContext* cx, HandleObject proxy) const override; @@ -190,7 +190,7 @@ class JS_FRIEND_API(SecurityWrapper) : public Base virtual bool setImmutablePrototype(JSContext* cx, HandleObject proxy, bool* succeeded) const override; virtual bool nativeCall(JSContext* cx, IsAcceptableThis test, NativeImpl impl, - CallArgs args) const override; + const CallArgs& args) const override; virtual bool objectClassIs(HandleObject obj, ESClassValue classValue, JSContext* cx) const override; virtual bool regexp_toShared(JSContext* cx, HandleObject proxy, RegExpGuard* g) const override; diff --git a/js/src/proxy/BaseProxyHandler.cpp b/js/src/proxy/BaseProxyHandler.cpp index 8ff3bdc3ef..063c1c51d2 100644 --- a/js/src/proxy/BaseProxyHandler.cpp +++ b/js/src/proxy/BaseProxyHandler.cpp @@ -294,7 +294,7 @@ BaseProxyHandler::defaultValue(JSContext* cx, HandleObject proxy, JSType hint, bool BaseProxyHandler::nativeCall(JSContext* cx, IsAcceptableThis test, NativeImpl impl, - CallArgs args) const + const CallArgs& args) const { ReportIncompatible(cx, args); return false; diff --git a/js/src/proxy/CrossCompartmentWrapper.cpp b/js/src/proxy/CrossCompartmentWrapper.cpp index 554ad8c6ed..14d766c7b7 100644 --- a/js/src/proxy/CrossCompartmentWrapper.cpp +++ b/js/src/proxy/CrossCompartmentWrapper.cpp @@ -309,7 +309,7 @@ CrossCompartmentWrapper::construct(JSContext* cx, HandleObject wrapper, const Ca bool CrossCompartmentWrapper::nativeCall(JSContext* cx, IsAcceptableThis test, NativeImpl impl, - CallArgs srcArgs) const + const CallArgs& srcArgs) const { RootedObject wrapper(cx, &srcArgs.thisv().toObject()); MOZ_ASSERT(srcArgs.thisv().isMagic(JS_IS_CONSTRUCTING) || diff --git a/js/src/proxy/DeadObjectProxy.cpp b/js/src/proxy/DeadObjectProxy.cpp index e80602f40b..1dedac21b9 100644 --- a/js/src/proxy/DeadObjectProxy.cpp +++ b/js/src/proxy/DeadObjectProxy.cpp @@ -99,7 +99,7 @@ DeadObjectProxy::construct(JSContext* cx, HandleObject wrapper, const CallArgs& bool DeadObjectProxy::nativeCall(JSContext* cx, IsAcceptableThis test, NativeImpl impl, - CallArgs args) const + const CallArgs& args) const { JS_ReportErrorNumber(cx, js_GetErrorMessage, nullptr, JSMSG_DEAD_OBJECT); return false; diff --git a/js/src/proxy/DeadObjectProxy.h b/js/src/proxy/DeadObjectProxy.h index bbbdcbd650..358ee6dee0 100644 --- a/js/src/proxy/DeadObjectProxy.h +++ b/js/src/proxy/DeadObjectProxy.h @@ -38,7 +38,7 @@ class DeadObjectProxy : public BaseProxyHandler virtual bool getPropertyDescriptor(JSContext* cx, HandleObject wrapper, HandleId id, MutableHandle desc) const override; virtual bool nativeCall(JSContext* cx, IsAcceptableThis test, NativeImpl impl, - CallArgs args) const override; + const CallArgs& args) const override; virtual bool hasInstance(JSContext* cx, HandleObject proxy, MutableHandleValue v, bool* bp) const override; virtual bool objectClassIs(HandleObject obj, ESClassValue classValue, diff --git a/js/src/proxy/DirectProxyHandler.cpp b/js/src/proxy/DirectProxyHandler.cpp index 2ea27f9992..a20ab11fad 100644 --- a/js/src/proxy/DirectProxyHandler.cpp +++ b/js/src/proxy/DirectProxyHandler.cpp @@ -86,7 +86,7 @@ DirectProxyHandler::construct(JSContext* cx, HandleObject proxy, const CallArgs& bool DirectProxyHandler::nativeCall(JSContext* cx, IsAcceptableThis test, NativeImpl impl, - CallArgs args) const + const CallArgs& args) const { args.setThis(ObjectValue(*args.thisv().toObject().as().target())); if (!test(args.thisv())) { diff --git a/js/src/proxy/Proxy.cpp b/js/src/proxy/Proxy.cpp index 925d04ec9b..1f06825a98 100644 --- a/js/src/proxy/Proxy.cpp +++ b/js/src/proxy/Proxy.cpp @@ -402,7 +402,7 @@ Proxy::construct(JSContext* cx, HandleObject proxy, const CallArgs& args) } bool -Proxy::nativeCall(JSContext* cx, IsAcceptableThis test, NativeImpl impl, CallArgs args) +Proxy::nativeCall(JSContext* cx, IsAcceptableThis test, NativeImpl impl, const CallArgs& args) { JS_CHECK_RECURSION(cx, return false); RootedObject proxy(cx, &args.thisv().toObject()); diff --git a/js/src/proxy/Proxy.h b/js/src/proxy/Proxy.h index 410d673164..bec5c51400 100644 --- a/js/src/proxy/Proxy.h +++ b/js/src/proxy/Proxy.h @@ -52,7 +52,8 @@ class Proxy static bool hasOwn(JSContext* cx, HandleObject proxy, HandleId id, bool* bp); static bool getOwnEnumerablePropertyKeys(JSContext* cx, HandleObject proxy, AutoIdVector& props); - static bool nativeCall(JSContext* cx, IsAcceptableThis test, NativeImpl impl, CallArgs args); + static bool nativeCall(JSContext* cx, IsAcceptableThis test, NativeImpl impl, + const CallArgs& args); static bool hasInstance(JSContext* cx, HandleObject proxy, MutableHandleValue v, bool* bp); static bool objectClassIs(HandleObject obj, ESClassValue classValue, JSContext* cx); static const char* className(JSContext* cx, HandleObject proxy); diff --git a/js/src/proxy/ScriptedDirectProxyHandler.cpp b/js/src/proxy/ScriptedDirectProxyHandler.cpp index ecfe1e103d..21288cff85 100644 --- a/js/src/proxy/ScriptedDirectProxyHandler.cpp +++ b/js/src/proxy/ScriptedDirectProxyHandler.cpp @@ -1096,7 +1096,7 @@ ScriptedDirectProxyHandler::construct(JSContext* cx, HandleObject proxy, const C bool ScriptedDirectProxyHandler::nativeCall(JSContext* cx, IsAcceptableThis test, NativeImpl impl, - CallArgs args) const + const CallArgs& args) const { ReportIncompatible(cx, args); return false; diff --git a/js/src/proxy/ScriptedDirectProxyHandler.h b/js/src/proxy/ScriptedDirectProxyHandler.h index 4a3dab037c..fd36bdf0f0 100644 --- a/js/src/proxy/ScriptedDirectProxyHandler.h +++ b/js/src/proxy/ScriptedDirectProxyHandler.h @@ -66,7 +66,7 @@ class ScriptedDirectProxyHandler : public DirectProxyHandler { // A scripted proxy should not be treated as generic in most contexts. virtual bool nativeCall(JSContext* cx, IsAcceptableThis test, NativeImpl impl, - CallArgs args) const override; + const CallArgs& args) const override; virtual bool hasInstance(JSContext* cx, HandleObject proxy, MutableHandleValue v, bool* bp) const override; virtual bool objectClassIs(HandleObject obj, ESClassValue classValue, diff --git a/js/src/proxy/ScriptedIndirectProxyHandler.cpp b/js/src/proxy/ScriptedIndirectProxyHandler.cpp index 2a97569980..73d556b84b 100644 --- a/js/src/proxy/ScriptedIndirectProxyHandler.cpp +++ b/js/src/proxy/ScriptedIndirectProxyHandler.cpp @@ -348,7 +348,7 @@ ScriptedIndirectProxyHandler::getOwnEnumerablePropertyKeys(JSContext* cx, Handle bool ScriptedIndirectProxyHandler::nativeCall(JSContext* cx, IsAcceptableThis test, NativeImpl impl, - CallArgs args) const + const CallArgs& args) const { return BaseProxyHandler::nativeCall(cx, test, impl, args); } diff --git a/js/src/proxy/ScriptedIndirectProxyHandler.h b/js/src/proxy/ScriptedIndirectProxyHandler.h index f97dac8866..707a7c9d32 100644 --- a/js/src/proxy/ScriptedIndirectProxyHandler.h +++ b/js/src/proxy/ScriptedIndirectProxyHandler.h @@ -44,7 +44,7 @@ class ScriptedIndirectProxyHandler : public BaseProxyHandler virtual bool getOwnEnumerablePropertyKeys(JSContext* cx, HandleObject proxy, AutoIdVector& props) const override; virtual bool nativeCall(JSContext* cx, IsAcceptableThis test, NativeImpl impl, - CallArgs args) const override; + const CallArgs& args) const override; virtual JSString* fun_toString(JSContext* cx, HandleObject proxy, unsigned indent) const override; virtual bool isScripted() const override { return true; } diff --git a/js/src/proxy/SecurityWrapper.cpp b/js/src/proxy/SecurityWrapper.cpp index f4af1a4bb7..8a2d477a15 100644 --- a/js/src/proxy/SecurityWrapper.cpp +++ b/js/src/proxy/SecurityWrapper.cpp @@ -24,7 +24,7 @@ SecurityWrapper::enter(JSContext* cx, HandleObject wrapper, HandleId id, template bool SecurityWrapper::nativeCall(JSContext* cx, IsAcceptableThis test, NativeImpl impl, - CallArgs args) const + const CallArgs& args) const { JS_ReportErrorNumber(cx, js_GetErrorMessage, nullptr, JSMSG_UNWRAP_DENIED); return false; diff --git a/js/src/vm/ArrayBufferObject.cpp b/js/src/vm/ArrayBufferObject.cpp index 8fe6a165dc..24f0b1a141 100644 --- a/js/src/vm/ArrayBufferObject.cpp +++ b/js/src/vm/ArrayBufferObject.cpp @@ -170,7 +170,7 @@ js::AsArrayBuffer(JSObject* obj) } MOZ_ALWAYS_INLINE bool -ArrayBufferObject::byteLengthGetterImpl(JSContext* cx, CallArgs args) +ArrayBufferObject::byteLengthGetterImpl(JSContext* cx, const CallArgs& args) { MOZ_ASSERT(IsArrayBuffer(args.thisv())); args.rval().setInt32(args.thisv().toObject().as().byteLength()); @@ -185,7 +185,7 @@ ArrayBufferObject::byteLengthGetter(JSContext* cx, unsigned argc, Value* vp) } bool -ArrayBufferObject::fun_slice_impl(JSContext* cx, CallArgs args) +ArrayBufferObject::fun_slice_impl(JSContext* cx, const CallArgs& args) { MOZ_ASSERT(IsArrayBuffer(args.thisv())); @@ -263,7 +263,7 @@ ReleaseAsmJSMappedData(void* base) #ifdef NIGHTLY_BUILD # ifdef JS_CPU_X64 static bool -TransferAsmJSMappedBuffer(JSContext* cx, CallArgs args, Handle oldBuffer, +TransferAsmJSMappedBuffer(JSContext* cx, const CallArgs& args, Handle oldBuffer, size_t newByteLength) { size_t oldByteLength = oldBuffer->byteLength(); @@ -862,7 +862,7 @@ ArrayBufferObject::createSlice(JSContext* cx, Handle arrayBu } bool -ArrayBufferObject::createDataViewForThisImpl(JSContext* cx, CallArgs args) +ArrayBufferObject::createDataViewForThisImpl(JSContext* cx, const CallArgs& args) { MOZ_ASSERT(IsArrayBuffer(args.thisv())); diff --git a/js/src/vm/ArrayBufferObject.h b/js/src/vm/ArrayBufferObject.h index a7652e059a..7919b95374 100644 --- a/js/src/vm/ArrayBufferObject.h +++ b/js/src/vm/ArrayBufferObject.h @@ -105,8 +105,8 @@ class ArrayBufferObjectMaybeShared : public NativeObject */ class ArrayBufferObject : public ArrayBufferObjectMaybeShared { - static bool byteLengthGetterImpl(JSContext* cx, CallArgs args); - static bool fun_slice_impl(JSContext* cx, CallArgs args); + static bool byteLengthGetterImpl(JSContext* cx, const CallArgs& args); + static bool fun_slice_impl(JSContext* cx, const CallArgs& args); public: static const uint8_t DATA_SLOT = 0; @@ -221,11 +221,11 @@ class ArrayBufferObject : public ArrayBufferObjectMaybeShared static JSObject* createSlice(JSContext* cx, Handle arrayBuffer, uint32_t begin, uint32_t end); - static bool createDataViewForThisImpl(JSContext* cx, CallArgs args); + static bool createDataViewForThisImpl(JSContext* cx, const CallArgs& args); static bool createDataViewForThis(JSContext* cx, unsigned argc, Value* vp); template - static bool createTypedArrayFromBufferImpl(JSContext* cx, CallArgs args); + static bool createTypedArrayFromBufferImpl(JSContext* cx, const CallArgs& args); template static bool createTypedArrayFromBuffer(JSContext* cx, unsigned argc, Value* vp); diff --git a/js/src/vm/CallNonGenericMethod.cpp b/js/src/vm/CallNonGenericMethod.cpp index 61080ff3f9..157f348e21 100644 --- a/js/src/vm/CallNonGenericMethod.cpp +++ b/js/src/vm/CallNonGenericMethod.cpp @@ -16,7 +16,7 @@ using namespace js; bool JS::detail::CallMethodIfWrapped(JSContext* cx, IsAcceptableThis test, NativeImpl impl, - CallArgs args) + const CallArgs& args) { HandleValue thisv = args.thisv(); MOZ_ASSERT(!test(thisv)); diff --git a/js/src/vm/DateObject.h b/js/src/vm/DateObject.h index cfe1a545dd..1eb0114ae5 100644 --- a/js/src/vm/DateObject.h +++ b/js/src/vm/DateObject.h @@ -56,23 +56,23 @@ class DateObject : public NativeObject // slots will be set to the UTC time without conversion. void fillLocalTimeSlots(DateTimeInfo* dtInfo); - static MOZ_ALWAYS_INLINE bool getTime_impl(JSContext* cx, CallArgs args); - static MOZ_ALWAYS_INLINE bool getYear_impl(JSContext* cx, CallArgs args); - static MOZ_ALWAYS_INLINE bool getFullYear_impl(JSContext* cx, CallArgs args); - static MOZ_ALWAYS_INLINE bool getUTCFullYear_impl(JSContext* cx, CallArgs args); - static MOZ_ALWAYS_INLINE bool getMonth_impl(JSContext* cx, CallArgs args); - static MOZ_ALWAYS_INLINE bool getUTCMonth_impl(JSContext* cx, CallArgs args); - static MOZ_ALWAYS_INLINE bool getDate_impl(JSContext* cx, CallArgs args); - static MOZ_ALWAYS_INLINE bool getUTCDate_impl(JSContext* cx, CallArgs args); - static MOZ_ALWAYS_INLINE bool getDay_impl(JSContext* cx, CallArgs args); - static MOZ_ALWAYS_INLINE bool getUTCDay_impl(JSContext* cx, CallArgs args); - static MOZ_ALWAYS_INLINE bool getHours_impl(JSContext* cx, CallArgs args); - static MOZ_ALWAYS_INLINE bool getUTCHours_impl(JSContext* cx, CallArgs args); - static MOZ_ALWAYS_INLINE bool getMinutes_impl(JSContext* cx, CallArgs args); - static MOZ_ALWAYS_INLINE bool getUTCMinutes_impl(JSContext* cx, CallArgs args); - static MOZ_ALWAYS_INLINE bool getUTCSeconds_impl(JSContext* cx, CallArgs args); - static MOZ_ALWAYS_INLINE bool getUTCMilliseconds_impl(JSContext* cx, CallArgs args); - static MOZ_ALWAYS_INLINE bool getTimezoneOffset_impl(JSContext* cx, CallArgs args); + static MOZ_ALWAYS_INLINE bool getTime_impl(JSContext* cx, const CallArgs& args); + static MOZ_ALWAYS_INLINE bool getYear_impl(JSContext* cx, const CallArgs& args); + static MOZ_ALWAYS_INLINE bool getFullYear_impl(JSContext* cx, const CallArgs& args); + static MOZ_ALWAYS_INLINE bool getUTCFullYear_impl(JSContext* cx, const CallArgs& args); + static MOZ_ALWAYS_INLINE bool getMonth_impl(JSContext* cx, const CallArgs& args); + static MOZ_ALWAYS_INLINE bool getUTCMonth_impl(JSContext* cx, const CallArgs& args); + static MOZ_ALWAYS_INLINE bool getDate_impl(JSContext* cx, const CallArgs& args); + static MOZ_ALWAYS_INLINE bool getUTCDate_impl(JSContext* cx, const CallArgs& args); + static MOZ_ALWAYS_INLINE bool getDay_impl(JSContext* cx, const CallArgs& args); + static MOZ_ALWAYS_INLINE bool getUTCDay_impl(JSContext* cx, const CallArgs& args); + static MOZ_ALWAYS_INLINE bool getHours_impl(JSContext* cx, const CallArgs& args); + static MOZ_ALWAYS_INLINE bool getUTCHours_impl(JSContext* cx, const CallArgs& args); + static MOZ_ALWAYS_INLINE bool getMinutes_impl(JSContext* cx, const CallArgs& args); + static MOZ_ALWAYS_INLINE bool getUTCMinutes_impl(JSContext* cx, const CallArgs& args); + static MOZ_ALWAYS_INLINE bool getUTCSeconds_impl(JSContext* cx, const CallArgs& args); + static MOZ_ALWAYS_INLINE bool getUTCMilliseconds_impl(JSContext* cx, const CallArgs& args); + static MOZ_ALWAYS_INLINE bool getTimezoneOffset_impl(JSContext* cx, const CallArgs& args); }; } // namespace js diff --git a/js/src/vm/Interpreter.cpp b/js/src/vm/Interpreter.cpp index 7d45bb8844..c0259fa60a 100644 --- a/js/src/vm/Interpreter.cpp +++ b/js/src/vm/Interpreter.cpp @@ -462,7 +462,7 @@ struct AutoGCIfRequested * when done. Then push the return value. */ bool -js::Invoke(JSContext* cx, CallArgs args, MaybeConstruct construct) +js::Invoke(JSContext* cx, const CallArgs& args, MaybeConstruct construct) { MOZ_ASSERT(args.length() <= ARGS_LENGTH_MAX); MOZ_ASSERT(!cx->zone()->types.activeAnalysis); @@ -559,7 +559,7 @@ js::Invoke(JSContext* cx, const Value& thisv, const Value& fval, unsigned argc, } bool -js::InvokeConstructor(JSContext* cx, CallArgs args) +js::InvokeConstructor(JSContext* cx, const CallArgs& args) { MOZ_ASSERT(!JSFunction::class_.construct); diff --git a/js/src/vm/Interpreter.h b/js/src/vm/Interpreter.h index cdb352f45e..7523ff0874 100644 --- a/js/src/vm/Interpreter.h +++ b/js/src/vm/Interpreter.h @@ -64,7 +64,7 @@ ValueToCallable(JSContext* cx, HandleValue v, int numToSkip = -1, * VM stack. */ extern bool -Invoke(JSContext* cx, CallArgs args, MaybeConstruct construct = NO_CONSTRUCT); +Invoke(JSContext* cx, const CallArgs& args, MaybeConstruct construct = NO_CONSTRUCT); /* * This Invoke overload places the least requirements on the caller: it may be @@ -88,7 +88,7 @@ InvokeGetterOrSetter(JSContext* cx, JSObject* obj, Value fval, unsigned argc, Va * (e.g. 'new') handling the the creation of the new 'this' object. */ extern bool -InvokeConstructor(JSContext* cx, CallArgs args); +InvokeConstructor(JSContext* cx, const CallArgs& args); /* See the fval overload of Invoke. */ extern bool @@ -192,12 +192,12 @@ class ExecuteState : public RunState // Data to invoke a function. class InvokeState : public RunState { - CallArgs& args_; + const CallArgs& args_; InitialFrameFlags initial_; bool createSingleton_; public: - InvokeState(JSContext* cx, CallArgs& args, InitialFrameFlags initial) + InvokeState(JSContext* cx, const CallArgs& args, InitialFrameFlags initial) : RunState(cx, Invoke, args.callee().as().nonLazyScript()), args_(args), initial_(initial), @@ -208,7 +208,7 @@ class InvokeState : public RunState void setCreateSingleton() { createSingleton_ = true; } bool constructing() const { return InitialFrameFlagsAreConstructing(initial_); } - CallArgs& args() const { return args_; } + const CallArgs& args() const { return args_; } virtual InterpreterFrame* pushInterpreterFrame(JSContext* cx); diff --git a/js/src/vm/SelfHosting.cpp b/js/src/vm/SelfHosting.cpp index 3b7210e583..25d05599d7 100644 --- a/js/src/vm/SelfHosting.cpp +++ b/js/src/vm/SelfHosting.cpp @@ -672,7 +672,7 @@ js::intrinsic_TypedArrayLength(JSContext* cx, unsigned argc, Value* vp) } bool -CallSelfHostedNonGenericMethod(JSContext* cx, CallArgs args) +CallSelfHostedNonGenericMethod(JSContext* cx, const CallArgs& args) { // This function is called when a self-hosted method is invoked on a // wrapper object, like a CrossCompartmentWrapper. The last argument is diff --git a/js/src/vm/SharedArrayObject.cpp b/js/src/vm/SharedArrayObject.cpp index 57e6b0db4c..80230681d5 100644 --- a/js/src/vm/SharedArrayObject.cpp +++ b/js/src/vm/SharedArrayObject.cpp @@ -179,7 +179,7 @@ const JSFunctionSpec SharedArrayBufferObject::jsstaticfuncs[] = { }; MOZ_ALWAYS_INLINE bool -SharedArrayBufferObject::byteLengthGetterImpl(JSContext* cx, CallArgs args) +SharedArrayBufferObject::byteLengthGetterImpl(JSContext* cx, const CallArgs& args) { MOZ_ASSERT(IsSharedArrayBuffer(args.thisv())); args.rval().setInt32(args.thisv().toObject().as().byteLength()); diff --git a/js/src/vm/SharedArrayObject.h b/js/src/vm/SharedArrayObject.h index b3d7a2493c..81eaf73607 100644 --- a/js/src/vm/SharedArrayObject.h +++ b/js/src/vm/SharedArrayObject.h @@ -108,7 +108,7 @@ class SharedArrayRawBuffer */ class SharedArrayBufferObject : public ArrayBufferObjectMaybeShared { - static bool byteLengthGetterImpl(JSContext* cx, CallArgs args); + static bool byteLengthGetterImpl(JSContext* cx, const CallArgs& args); public: // RAWBUF_SLOT holds a pointer (as "private" data) to the diff --git a/js/src/vm/SharedTypedArrayObject.cpp b/js/src/vm/SharedTypedArrayObject.cpp index ed03ddddd0..7721caa247 100644 --- a/js/src/vm/SharedTypedArrayObject.cpp +++ b/js/src/vm/SharedTypedArrayObject.cpp @@ -308,7 +308,7 @@ class SharedTypedArrayObjectTemplate : public SharedTypedArrayObject template static bool - GetterImpl(JSContext* cx, CallArgs args) + GetterImpl(JSContext* cx, const CallArgs& args) { MOZ_ASSERT(is(args.thisv())); args.rval().set(ValueGetter(&args.thisv().toObject().as())); @@ -327,7 +327,7 @@ class SharedTypedArrayObjectTemplate : public SharedTypedArrayObject } static bool - BufferGetterImpl(JSContext* cx, CallArgs args) + BufferGetterImpl(JSContext* cx, const CallArgs& args) { MOZ_ASSERT(is(args.thisv())); Rooted tarray(cx, &args.thisv().toObject().as()); diff --git a/js/src/vm/TypedArrayCommon.h b/js/src/vm/TypedArrayCommon.h index bc5e3d5247..265deaf406 100644 --- a/js/src/vm/TypedArrayCommon.h +++ b/js/src/vm/TypedArrayCommon.h @@ -483,7 +483,7 @@ class TypedArrayMethods public: /* subarray(start[, end]) */ static bool - subarray(JSContext* cx, CallArgs args) + subarray(JSContext* cx, const CallArgs& args) { MOZ_ASSERT(SomeTypedArray::is(args.thisv())); @@ -570,7 +570,7 @@ class TypedArrayMethods /* copyWithin(target, start[, end]) */ // ES6 draft rev 26, 22.2.3.5 static bool - copyWithin(JSContext* cx, CallArgs args) + copyWithin(JSContext* cx, const CallArgs& args) { MOZ_ASSERT(SomeTypedArray::is(args.thisv())); @@ -657,7 +657,7 @@ class TypedArrayMethods /* set(array[, offset]) */ static bool - set(JSContext* cx, CallArgs args) + set(JSContext* cx, const CallArgs& args) { MOZ_ASSERT(SomeTypedArray::is(args.thisv())); diff --git a/js/src/vm/TypedArrayObject.cpp b/js/src/vm/TypedArrayObject.cpp index ac115fdd25..1d2c5ff464 100644 --- a/js/src/vm/TypedArrayObject.cpp +++ b/js/src/vm/TypedArrayObject.cpp @@ -749,7 +749,7 @@ TypedArray_byteOffsetGetter(JSContext* cx, unsigned argc, Value* vp) } bool -BufferGetterImpl(JSContext* cx, CallArgs args) +BufferGetterImpl(JSContext* cx, const CallArgs& args) { MOZ_ASSERT(TypedArrayObject::is(args.thisv())); Rooted tarray(cx, &args.thisv().toObject().as()); @@ -873,7 +873,7 @@ TypedArrayObject::sharedTypedArrayPrototypeClass = { template bool -ArrayBufferObject::createTypedArrayFromBufferImpl(JSContext* cx, CallArgs args) +ArrayBufferObject::createTypedArrayFromBufferImpl(JSContext* cx, const CallArgs& args) { typedef TypedArrayObjectTemplate ArrayType; MOZ_ASSERT(IsArrayBuffer(args.thisv())); @@ -1223,7 +1223,7 @@ struct DataViewIO template /* static */ bool DataViewObject::read(JSContext* cx, Handle obj, - CallArgs& args, NativeType* val, const char* method) + const CallArgs& args, NativeType* val, const char* method) { if (args.length() < 1) { JS_ReportErrorNumber(cx, js_GetErrorMessage, nullptr, @@ -1280,7 +1280,7 @@ WebIDLCast(JSContext* cx, HandleValue value, double* out) template /* static */ bool DataViewObject::write(JSContext* cx, Handle obj, - CallArgs& args, const char* method) + const CallArgs& args, const char* method) { if (args.length() < 2) { JS_ReportErrorNumber(cx, js_GetErrorMessage, nullptr, @@ -1307,7 +1307,7 @@ DataViewObject::write(JSContext* cx, Handle obj, } bool -DataViewObject::getInt8Impl(JSContext* cx, CallArgs args) +DataViewObject::getInt8Impl(JSContext* cx, const CallArgs& args) { MOZ_ASSERT(is(args.thisv())); @@ -1328,7 +1328,7 @@ DataViewObject::fun_getInt8(JSContext* cx, unsigned argc, Value* vp) } bool -DataViewObject::getUint8Impl(JSContext* cx, CallArgs args) +DataViewObject::getUint8Impl(JSContext* cx, const CallArgs& args) { MOZ_ASSERT(is(args.thisv())); @@ -1349,7 +1349,7 @@ DataViewObject::fun_getUint8(JSContext* cx, unsigned argc, Value* vp) } bool -DataViewObject::getInt16Impl(JSContext* cx, CallArgs args) +DataViewObject::getInt16Impl(JSContext* cx, const CallArgs& args) { MOZ_ASSERT(is(args.thisv())); @@ -1370,7 +1370,7 @@ DataViewObject::fun_getInt16(JSContext* cx, unsigned argc, Value* vp) } bool -DataViewObject::getUint16Impl(JSContext* cx, CallArgs args) +DataViewObject::getUint16Impl(JSContext* cx, const CallArgs& args) { MOZ_ASSERT(is(args.thisv())); @@ -1391,7 +1391,7 @@ DataViewObject::fun_getUint16(JSContext* cx, unsigned argc, Value* vp) } bool -DataViewObject::getInt32Impl(JSContext* cx, CallArgs args) +DataViewObject::getInt32Impl(JSContext* cx, const CallArgs& args) { MOZ_ASSERT(is(args.thisv())); @@ -1412,7 +1412,7 @@ DataViewObject::fun_getInt32(JSContext* cx, unsigned argc, Value* vp) } bool -DataViewObject::getUint32Impl(JSContext* cx, CallArgs args) +DataViewObject::getUint32Impl(JSContext* cx, const CallArgs& args) { MOZ_ASSERT(is(args.thisv())); @@ -1433,7 +1433,7 @@ DataViewObject::fun_getUint32(JSContext* cx, unsigned argc, Value* vp) } bool -DataViewObject::getFloat32Impl(JSContext* cx, CallArgs args) +DataViewObject::getFloat32Impl(JSContext* cx, const CallArgs& args) { MOZ_ASSERT(is(args.thisv())); @@ -1455,7 +1455,7 @@ DataViewObject::fun_getFloat32(JSContext* cx, unsigned argc, Value* vp) } bool -DataViewObject::getFloat64Impl(JSContext* cx, CallArgs args) +DataViewObject::getFloat64Impl(JSContext* cx, const CallArgs& args) { MOZ_ASSERT(is(args.thisv())); @@ -1477,7 +1477,7 @@ DataViewObject::fun_getFloat64(JSContext* cx, unsigned argc, Value* vp) } bool -DataViewObject::setInt8Impl(JSContext* cx, CallArgs args) +DataViewObject::setInt8Impl(JSContext* cx, const CallArgs& args) { MOZ_ASSERT(is(args.thisv())); @@ -1497,7 +1497,7 @@ DataViewObject::fun_setInt8(JSContext* cx, unsigned argc, Value* vp) } bool -DataViewObject::setUint8Impl(JSContext* cx, CallArgs args) +DataViewObject::setUint8Impl(JSContext* cx, const CallArgs& args) { MOZ_ASSERT(is(args.thisv())); @@ -1517,7 +1517,7 @@ DataViewObject::fun_setUint8(JSContext* cx, unsigned argc, Value* vp) } bool -DataViewObject::setInt16Impl(JSContext* cx, CallArgs args) +DataViewObject::setInt16Impl(JSContext* cx, const CallArgs& args) { MOZ_ASSERT(is(args.thisv())); @@ -1537,7 +1537,7 @@ DataViewObject::fun_setInt16(JSContext* cx, unsigned argc, Value* vp) } bool -DataViewObject::setUint16Impl(JSContext* cx, CallArgs args) +DataViewObject::setUint16Impl(JSContext* cx, const CallArgs& args) { MOZ_ASSERT(is(args.thisv())); @@ -1557,7 +1557,7 @@ DataViewObject::fun_setUint16(JSContext* cx, unsigned argc, Value* vp) } bool -DataViewObject::setInt32Impl(JSContext* cx, CallArgs args) +DataViewObject::setInt32Impl(JSContext* cx, const CallArgs& args) { MOZ_ASSERT(is(args.thisv())); @@ -1577,7 +1577,7 @@ DataViewObject::fun_setInt32(JSContext* cx, unsigned argc, Value* vp) } bool -DataViewObject::setUint32Impl(JSContext* cx, CallArgs args) +DataViewObject::setUint32Impl(JSContext* cx, const CallArgs& args) { MOZ_ASSERT(is(args.thisv())); @@ -1597,7 +1597,7 @@ DataViewObject::fun_setUint32(JSContext* cx, unsigned argc, Value* vp) } bool -DataViewObject::setFloat32Impl(JSContext* cx, CallArgs args) +DataViewObject::setFloat32Impl(JSContext* cx, const CallArgs& args) { MOZ_ASSERT(is(args.thisv())); @@ -1617,7 +1617,7 @@ DataViewObject::fun_setFloat32(JSContext* cx, unsigned argc, Value* vp) } bool -DataViewObject::setFloat64Impl(JSContext* cx, CallArgs args) +DataViewObject::setFloat64Impl(JSContext* cx, const CallArgs& args) { MOZ_ASSERT(is(args.thisv())); @@ -1943,7 +1943,7 @@ const JSFunctionSpec DataViewObject::jsfuncs[] = { template bool -DataViewObject::getterImpl(JSContext* cx, CallArgs args) +DataViewObject::getterImpl(JSContext* cx, const CallArgs& args) { args.rval().set(ValueGetter(&args.thisv().toObject().as())); return true; diff --git a/js/src/vm/TypedArrayObject.h b/js/src/vm/TypedArrayObject.h index 3d9110000a..a94a353557 100644 --- a/js/src/vm/TypedArrayObject.h +++ b/js/src/vm/TypedArrayObject.h @@ -188,7 +188,7 @@ class TypedArrayObject : public NativeObject template static bool - GetterImpl(JSContext* cx, CallArgs args) + GetterImpl(JSContext* cx, const CallArgs& args) { MOZ_ASSERT(is(args.thisv())); args.rval().set(ValueGetter(&args.thisv().toObject().as())); @@ -325,7 +325,7 @@ class DataViewObject : public NativeObject template static bool - getterImpl(JSContext* cx, CallArgs args); + getterImpl(JSContext* cx, const CallArgs& args); template static bool @@ -379,62 +379,62 @@ class DataViewObject : public NativeObject create(JSContext* cx, uint32_t byteOffset, uint32_t byteLength, Handle arrayBuffer, JSObject* proto); - static bool getInt8Impl(JSContext* cx, CallArgs args); + static bool getInt8Impl(JSContext* cx, const CallArgs& args); static bool fun_getInt8(JSContext* cx, unsigned argc, Value* vp); - static bool getUint8Impl(JSContext* cx, CallArgs args); + static bool getUint8Impl(JSContext* cx, const CallArgs& args); static bool fun_getUint8(JSContext* cx, unsigned argc, Value* vp); - static bool getInt16Impl(JSContext* cx, CallArgs args); + static bool getInt16Impl(JSContext* cx, const CallArgs& args); static bool fun_getInt16(JSContext* cx, unsigned argc, Value* vp); - static bool getUint16Impl(JSContext* cx, CallArgs args); + static bool getUint16Impl(JSContext* cx, const CallArgs& args); static bool fun_getUint16(JSContext* cx, unsigned argc, Value* vp); - static bool getInt32Impl(JSContext* cx, CallArgs args); + static bool getInt32Impl(JSContext* cx, const CallArgs& args); static bool fun_getInt32(JSContext* cx, unsigned argc, Value* vp); - static bool getUint32Impl(JSContext* cx, CallArgs args); + static bool getUint32Impl(JSContext* cx, const CallArgs& args); static bool fun_getUint32(JSContext* cx, unsigned argc, Value* vp); - static bool getFloat32Impl(JSContext* cx, CallArgs args); + static bool getFloat32Impl(JSContext* cx, const CallArgs& args); static bool fun_getFloat32(JSContext* cx, unsigned argc, Value* vp); - static bool getFloat64Impl(JSContext* cx, CallArgs args); + static bool getFloat64Impl(JSContext* cx, const CallArgs& args); static bool fun_getFloat64(JSContext* cx, unsigned argc, Value* vp); - static bool setInt8Impl(JSContext* cx, CallArgs args); + static bool setInt8Impl(JSContext* cx, const CallArgs& args); static bool fun_setInt8(JSContext* cx, unsigned argc, Value* vp); - static bool setUint8Impl(JSContext* cx, CallArgs args); + static bool setUint8Impl(JSContext* cx, const CallArgs& args); static bool fun_setUint8(JSContext* cx, unsigned argc, Value* vp); - static bool setInt16Impl(JSContext* cx, CallArgs args); + static bool setInt16Impl(JSContext* cx, const CallArgs& args); static bool fun_setInt16(JSContext* cx, unsigned argc, Value* vp); - static bool setUint16Impl(JSContext* cx, CallArgs args); + static bool setUint16Impl(JSContext* cx, const CallArgs& args); static bool fun_setUint16(JSContext* cx, unsigned argc, Value* vp); - static bool setInt32Impl(JSContext* cx, CallArgs args); + static bool setInt32Impl(JSContext* cx, const CallArgs& args); static bool fun_setInt32(JSContext* cx, unsigned argc, Value* vp); - static bool setUint32Impl(JSContext* cx, CallArgs args); + static bool setUint32Impl(JSContext* cx, const CallArgs& args); static bool fun_setUint32(JSContext* cx, unsigned argc, Value* vp); - static bool setFloat32Impl(JSContext* cx, CallArgs args); + static bool setFloat32Impl(JSContext* cx, const CallArgs& args); static bool fun_setFloat32(JSContext* cx, unsigned argc, Value* vp); - static bool setFloat64Impl(JSContext* cx, CallArgs args); + static bool setFloat64Impl(JSContext* cx, const CallArgs& args); static bool fun_setFloat64(JSContext* cx, unsigned argc, Value* vp); static bool initClass(JSContext* cx); static void neuter(JSObject* view); template static bool read(JSContext* cx, Handle obj, - CallArgs& args, NativeType* val, const char* method); + const CallArgs& args, NativeType* val, const char* method); template static bool write(JSContext* cx, Handle obj, - CallArgs& args, const char* method); + const CallArgs& args, const char* method); void neuter(void* newData); diff --git a/js/xpconnect/wrappers/FilteringWrapper.cpp b/js/xpconnect/wrappers/FilteringWrapper.cpp index b614743aab..6a58ee2da3 100644 --- a/js/xpconnect/wrappers/FilteringWrapper.cpp +++ b/js/xpconnect/wrappers/FilteringWrapper.cpp @@ -147,7 +147,7 @@ FilteringWrapper::construct(JSContext* cx, JS::Handle w template bool FilteringWrapper::nativeCall(JSContext* cx, JS::IsAcceptableThis test, - JS::NativeImpl impl, JS::CallArgs args) const + JS::NativeImpl impl, const JS::CallArgs& args) const { if (Policy::allowNativeCall(cx, test, impl)) return Base::Permissive::nativeCall(cx, test, impl, args); diff --git a/js/xpconnect/wrappers/FilteringWrapper.h b/js/xpconnect/wrappers/FilteringWrapper.h index 57f9839bad..3436b544e8 100644 --- a/js/xpconnect/wrappers/FilteringWrapper.h +++ b/js/xpconnect/wrappers/FilteringWrapper.h @@ -48,7 +48,7 @@ class FilteringWrapper : public Base { const JS::CallArgs& args) const override; virtual bool nativeCall(JSContext* cx, JS::IsAcceptableThis test, JS::NativeImpl impl, - JS::CallArgs args) const override; + const JS::CallArgs& args) const override; virtual bool defaultValue(JSContext* cx, JS::Handle obj, JSType hint, JS::MutableHandleValue vp) const override; diff --git a/js/xpconnect/wrappers/WaiveXrayWrapper.cpp b/js/xpconnect/wrappers/WaiveXrayWrapper.cpp index 2d846a973d..e1993da519 100644 --- a/js/xpconnect/wrappers/WaiveXrayWrapper.cpp +++ b/js/xpconnect/wrappers/WaiveXrayWrapper.cpp @@ -84,7 +84,7 @@ WaiveXrayWrapper::construct(JSContext* cx, HandleObject wrapper, const JS::CallA // nsXBLProtoImplField.cpp. bool WaiveXrayWrapper::nativeCall(JSContext* cx, JS::IsAcceptableThis test, - JS::NativeImpl impl, JS::CallArgs args) const + JS::NativeImpl impl, const JS::CallArgs& args) const { return CrossCompartmentWrapper::nativeCall(cx, test, impl, args) && WrapperFactory::WaiveXrayAndWrap(cx, args.rval()); diff --git a/js/xpconnect/wrappers/WaiveXrayWrapper.h b/js/xpconnect/wrappers/WaiveXrayWrapper.h index bc56980f20..22c73831ed 100644 --- a/js/xpconnect/wrappers/WaiveXrayWrapper.h +++ b/js/xpconnect/wrappers/WaiveXrayWrapper.h @@ -32,7 +32,7 @@ class WaiveXrayWrapper : public js::CrossCompartmentWrapper { virtual bool enumerate(JSContext* cx, JS::Handle proxy, JS::MutableHandle objp) const override; virtual bool nativeCall(JSContext* cx, JS::IsAcceptableThis test, - JS::NativeImpl impl, JS::CallArgs args) const override; + JS::NativeImpl impl, const JS::CallArgs& args) const override; virtual bool getPropertyDescriptor(JSContext* cx, JS::Handle wrapper, JS::Handle id, JS::MutableHandle desc) const override; diff --git a/toolkit/components/finalizationwitness/FinalizationWitnessService.cpp b/toolkit/components/finalizationwitness/FinalizationWitnessService.cpp index dd70c4c87a..1c1fe72368 100644 --- a/toolkit/components/finalizationwitness/FinalizationWitnessService.cpp +++ b/toolkit/components/finalizationwitness/FinalizationWitnessService.cpp @@ -138,7 +138,7 @@ bool IsWitness(JS::Handle v) * Neutralize the witness. Once this method is called, the witness will * never report any error. */ -bool ForgetImpl(JSContext* cx, JS::CallArgs args) +bool ForgetImpl(JSContext* cx, const JS::CallArgs& args) { if (args.length() != 0) { JS_ReportError(cx, "forget() takes no arguments");