Bug 1623957 - Part 2: Replace mozilla::Decay with std::decay. r=jwalden
authorAndré Bargull <andre.bargull@gmail.com>
Sat, 21 Mar 2020 14:18:58 +0000
changeset 520003 eb49edf618494a8068af83f4cf4da7315a364182
parent 520002 d6d34d4374a7642a3f9ddfa5efad7d6ad50927e6
child 520004 477dab8b3324eb2939bacc0432b693199e1145c6
push id110801
push usershindli@mozilla.com
push dateSat, 21 Mar 2020 15:31:45 +0000
treeherderautoland@61a44ad12b15 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersjwalden
bugs1623957
milestone76.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 1623957 - Part 2: Replace mozilla::Decay with std::decay. r=jwalden Differential Revision: https://phabricator.services.mozilla.com/D67649
js/src/frontend/EitherParser.h
js/src/threading/Thread.h
--- a/js/src/frontend/EitherParser.h
+++ b/js/src/frontend/EitherParser.h
@@ -9,34 +9,34 @@
  * ParseHandler but unspecified character type.
  */
 
 #ifndef frontend_EitherParser_h
 #define frontend_EitherParser_h
 
 #include "mozilla/Attributes.h"
 #include "mozilla/Tuple.h"
-#include "mozilla/TypeTraits.h"
 #include "mozilla/Utf8.h"
 #include "mozilla/Variant.h"
 
+#include <type_traits>
 #include <utility>
 
 #include "frontend/BCEParserHandle.h"
 #include "frontend/Parser.h"
 #include "frontend/TokenStream.h"
 
 namespace js {
 
 namespace detail {
 
 template <template <class Parser> class GetThis,
           template <class This> class MemberFunction, typename... Args>
 struct InvokeMemberFunction {
-  mozilla::Tuple<typename mozilla::Decay<Args>::Type...> args;
+  mozilla::Tuple<std::decay_t<Args>...> args;
 
   template <class This, size_t... Indices>
   auto matchInternal(This* obj, std::index_sequence<Indices...>) -> decltype(
       ((*obj).*(MemberFunction<This>::get()))(mozilla::Get<Indices>(args)...)) {
     return ((*obj).*
             (MemberFunction<This>::get()))(mozilla::Get<Indices>(args)...);
   }
 
--- a/js/src/threading/Thread.h
+++ b/js/src/threading/Thread.h
@@ -179,17 +179,17 @@ class ThreadTrampoline {
   // downside: rvalue references becomes lvalue references when used with POD
   // types. This becomes dangerous when attempting to pass POD stored on the
   // stack to the new thread; the rvalue reference will implicitly become an
   // lvalue reference to the stack location. Thus, the value may not exist if
   // the parent thread leaves the frame before the read happens in the new
   // thread. To avoid this dangerous and highly non-obvious footgun, the
   // standard requires a "decay" copy of the arguments at the cost of making it
   // impossible to pass references between threads.
-  mozilla::Tuple<typename mozilla::Decay<Args>::Type...> args;
+  mozilla::Tuple<std::decay_t<Args>...> args;
 
   // Protect the thread id during creation.
   Mutex createMutex;
 
   // Thread can access createMutex.
   friend class js::Thread;
 
  public: