summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMoonchild <moonchild@palemoon.org>2022-07-01 15:57:21 +0200
committerMoonchild <moonchild@palemoon.org>2022-07-01 15:57:21 +0200
commit9bdcb5b3a88a99bcbeb3fa961baf0211007d4015 (patch)
tree4c55d20d30077e68c194f39c22ceb7d0debb4d7b
parent07689ab83f78ea379e744fdb473b22ed0f9ebf95 (diff)
downloaduxp-9bdcb5b3a88a99bcbeb3fa961baf0211007d4015.tar.gz
Issue #1817 - VS2017 doesn't like JS_DEPENDENT_TEMPLATE_HINT workaround.
BZ Bug 1310067
-rw-r--r--js/public/TraceKind.h8
1 files changed, 4 insertions, 4 deletions
diff --git a/js/public/TraceKind.h b/js/public/TraceKind.h
index d3109d3606..e333a98680 100644
--- a/js/public/TraceKind.h
+++ b/js/public/TraceKind.h
@@ -165,12 +165,12 @@ template <> struct MapTypeToRootKind<JSFunction*> : public MapTypeToRootKind<JSO
// type designated by |traceKind| as the functor's template argument. The
// |thing| parameter is optional; without it, we simply pass through |... args|.
-// GCC and Clang require an explicit template declaration in front of the
-// specialization of operator() because it is a dependent template. MSVC, on
-// the other hand, gets very confused if we have a |template| token there.
+// VS2017+, GCC and Clang require an explicit template declaration in front of
+// the specialization of operator() because it is a dependent template. VS2015,
+// on the other hand, gets very confused if we have a |template| token there.
// The clang-cl front end defines _MSC_VER, but still requires the explicit
// template declaration, so we must test for __clang__ here as well.
-#if defined(_MSC_VER) && !defined(__clang__)
+#if (defined(_MSC_VER) && _MSC_VER < 1910) && !defined(__clang__)
# define JS_DEPENDENT_TEMPLATE_HINT
#else
# define JS_DEPENDENT_TEMPLATE_HINT template