Page MenuHomeWildfire Games

Switch JS GUI Objects to a Proxy class, cleaning custom function definition.
ClosedPublic

Authored by wraitii on May 25 2020, 7:34 PM.

Details

Summary

Changes:

Javascript "GUI Object", counterparts to C++ objects, are now Proxy Objects. Reasoning:

  • We don't have any actual JS object, so our "JS GUI Objects" are really just proxying calls to the C++ objects. It makes semantic sense.
  • SM devs recommend it (see public/Proxy.h comment on overloading JSClassOps or Proxy objects)
  • On that note, DOM objects are implemented as Proxies in Firefox, and our GUI objects are basically that.
  • Our current system no longer exists in SM60, breaking #5859

See D1781 for a slightly longer argument.

This lets us remove the D2136 hack and fix D1781 properly, which will be done in later diffs.

Test Plan

Check in game that every menu works correctly. Functionality wise, this changes nothing, but will make D1781 an absolute breeze.

Event Timeline

There are a very large number of changes, so older changes are hidden. Show Older Changes
Vulcan added a comment.Jul 7 2020, 3:26 PM

Build failure - The Moirai have given mortals hearts that can endure.

Link to build: https://jenkins.wildfiregames.com/job/macos-differential/963/display/redirect

Vulcan added a comment.Jul 7 2020, 3:31 PM

Build failure - The Moirai have given mortals hearts that can endure.

Link to build: https://jenkins.wildfiregames.com/job/vs2015-differential/2062/display/redirect

Vulcan added a comment.Jul 7 2020, 3:34 PM

Build failure - The Moirai have given mortals hearts that can endure.

Link to build: https://jenkins.wildfiregames.com/job/docker-differential/2595/display/redirect

wraitii updated this revision to Diff 12590.Jul 8 2020, 10:44 AM

Fixed version. The issue was that setting the proxy private value and using JS_SEtPrivate isn't equivalent.

ALso updated to properly handle pointers. Indeed, this can be different in a derived class, and the base-casted class of the same variable when using multiple inheritance (and perhaps in general?) Thus it isn't safe to store a CText* and get a IGUiObject* or vice-versa. For now I'm duplicating code, but I'm not entirely certain how to cleanly do this. Seems to me we might have to reimplement a dynamic-cast-like logic at some point, or just use templates and suffer code duplication at compile-time.

Anyways, this works insofar as I've tested.

Build failure - The Moirai have given mortals hearts that can endure.

Link to build: https://jenkins.wildfiregames.com/job/macos-differential/966/display/redirect

Build failure - The Moirai have given mortals hearts that can endure.

Link to build: https://jenkins.wildfiregames.com/job/vs2015-differential/2065/display/redirect

Build failure - The Moirai have given mortals hearts that can endure.

Link to build: https://jenkins.wildfiregames.com/job/docker-differential/2598/display/redirect

Itms added a comment.Jul 8 2020, 3:55 PM

This looks really nice at first sight. I'm keeping forward on the SM upgrade work and I'll let you know if I prefer get this in before or after a specific version.

In which version is Get/SetProxyPrivate made available?

wraitii planned changes to this revision.Aug 6 2020, 10:40 AM

TODO post SM52

Itms added a comment.Oct 28 2020, 3:30 PM

Hi @wraitii! I will need this to perform the SM 52->60 migration (see #1389510 on Bugzilla). The ideal route would be to include this under SM52, but if SM60 adds nice code to handle proxy privates, I am fine with doing this as part of the 52->60 code fixes.

How available are you? If you are not, please let me know and I'll handle this patch myself. I have posted an update about my own availability on the staff forums.

wraitii added a comment.EditedOct 29 2020, 9:51 PM
In D2768#133592, @Itms wrote:

Hi @wraitii! I will need this to perform the SM 52->60 migration (see #1389510 on Bugzilla). The ideal route would be to include this under SM52, but if SM60 adds nice code to handle proxy privates, I am fine with doing this as part of the 52->60 code fixes.

Indeed that's what I remembered.

How available are you? If you are not, please let me know and I'll handle this patch myself. I have posted an update about my own availability on the staff forums.

I would like to say that I'll be back sometimes soon, as I do have time, particularly in the upcoming weeks, but my motivation hasn't been 100%. I wouldn't wait on me, if you're here and working, maximise our time by not waiting on other people IMO.

I might do it, but don't wait on me.

wraitii updated this revision to Diff 13918.Nov 14 2020, 5:28 PM

Rebased on top of SM52.
This also fixes an issue with the previous diff.

I will work on this a little further since, inspired by Itms' symbol usage, I think I can do a little better, but I'm uploading this one as:

  • it works basically unchanged up to SM78
  • makes for a clean diff-to-diff change.
  • safekeeping

Build failure - The Moirai have given mortals hearts that can endure.

Link to build: https://jenkins.wildfiregames.com/job/docker-differential/3541/display/redirect

Build failure - The Moirai have given mortals hearts that can endure.

Link to build: https://jenkins.wildfiregames.com/job/vs2015-differential/2983/display/redirect

Build failure - The Moirai have given mortals hearts that can endure.

Link to build: https://jenkins.wildfiregames.com/job/macos-differential/1884/display/redirect

wraitii updated this revision to Diff 13930.Nov 14 2020, 11:43 PM

Better version of the same thing (imo).
This cleans up the duplication in CText by casting pointers better. I think that works.

The big problem remains finding somewhere to store scriptInterface-lived data (the function objects). I think it makes sense to do so in the GUI because we already initialize stuff in AddObjectTypes. This time I'm just saving a pointer to an opaque data structure used to access the functions. Works neatly.

This also cleans up the includes a little bit, should compile faster / recompile faster on changes.

Build failure - The Moirai have given mortals hearts that can endure.

Link to build: https://jenkins.wildfiregames.com/job/docker-differential/3551/display/redirect

Build failure - The Moirai have given mortals hearts that can endure.

Link to build: https://jenkins.wildfiregames.com/job/vs2015-differential/2993/display/redirect

Build failure - The Moirai have given mortals hearts that can endure.

Link to build: https://jenkins.wildfiregames.com/job/macos-differential/1894/display/redirect

wraitii updated this revision to Diff 14024.Nov 18 2020, 8:49 PM

Rebase on svn. Need to decide if I'm okay with the void* stuff i nthe GUI or if I prefer it in script interface... I'm really not sure ATM.

wraitii updated the Trac tickets for this revision.Nov 18 2020, 8:49 PM

Build failure - The Moirai have given mortals hearts that can endure.

Link to build: https://jenkins.wildfiregames.com/job/macos-differential/1972/display/redirect

wraitii updated this revision to Diff 14075.Nov 19 2020, 5:13 PM

Minor tweaks. I feel liks this is about as clean as it gets unless I start doing weird things.

Successful build - Chance fights ever on the side of the prudent.

builderr-release-macos.txt
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: ../../../binaries/system/libengine.a(precompiled.o) has no symbols
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: ../../../binaries/system/libatlas.a(precompiled.o) has no symbols
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: ../../../binaries/system/libgui.a(precompiled.o) has no symbols

Link to build: https://jenkins.wildfiregames.com/job/macos-differential/2019/display/redirect

Stan added inline comments.Nov 19 2020, 5:33 PM
source/gui/ObjectBases/IGUIObject.cpp
467

Can we return something more meaningfull?

source/gui/ObjectBases/IGUIObject.h
462–463

pure virtual?

source/gui/Scripting/JSInterface_GUIProxy.h
19 ↗(On Diff #14075)

Shouldn't that match the file name?

46 ↗(On Diff #14075)
#include <utility>
source/gui/Scripting/JSInterface_IGUIObject.cpp
1

2020

208
#include <string>
wraitii added inline comments.Nov 19 2020, 5:38 PM
source/gui/ObjectBases/IGUIObject.cpp
467

Mh, should probably return void at the moment, you're right.

source/gui/ObjectBases/IGUIObject.h
462–463

def not, it's implement in IGUIObject.cpp

Successful build - Chance fights ever on the side of the prudent.

builderr-debug-gcc6.txt
In file included from ../../../source/gui/GUIObjectTypes.cpp:35:0:
../../../source/gui/Scripting/JSInterface_GUIProxy.h: In instantiation of 'class JSI_GUIProxy<IGUIObject>':
../../../source/gui/GUIObjectTypes.cpp:39:45:   required from here
../../../source/gui/Scripting/JSInterface_GUIProxy.h:37:7: warning: base class 'class js::BaseProxyHandler' has accessible non-virtual destructor [-Wnon-virtual-dtor]
 class JSI_GUIProxy : public js::BaseProxyHandler
       ^~~~~~~~~~~~
../../../source/gui/Scripting/JSInterface_GUIProxy.h: In instantiation of 'class JSI_GUIProxy<CText>':
../../../source/gui/GUIObjectTypes.cpp:40:40:   required from here
../../../source/gui/Scripting/JSInterface_GUIProxy.h:37:7: warning: base class 'class js::BaseProxyHandler' has accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from ../../../source/gui/ObjectBases/IGUIObject.cpp:24:0:
../../../source/gui/Scripting/JSInterface_GUIProxy.h: In instantiation of 'class JSI_GUIProxy<IGUIObject>':
../../../source/gui/ObjectBases/IGUIObject.cpp:457:44:   required from here
../../../source/gui/Scripting/JSInterface_GUIProxy.h:37:7: warning: base class 'class js::BaseProxyHandler' has accessible non-virtual destructor [-Wnon-virtual-dtor]
 class JSI_GUIProxy : public js::BaseProxyHandler
       ^~~~~~~~~~~~
In file included from ../../../source/gui/ObjectTypes/CText.cpp:25:0:
../../../source/gui/Scripting/JSInterface_GUIProxy.h: In instantiation of 'class JSI_GUIProxy<IGUIObject>':
../../../source/gui/ObjectTypes/CText.cpp:262:44:   required from here
../../../source/gui/Scripting/JSInterface_GUIProxy.h:37:7: warning: base class 'class js::BaseProxyHandler' has accessible non-virtual destructor [-Wnon-virtual-dtor]
 class JSI_GUIProxy : public js::BaseProxyHandler
       ^~~~~~~~~~~~
../../../source/gui/Scripting/JSInterface_GUIProxy.h: In instantiation of 'class JSI_GUIProxy<CText>':
../../../source/gui/ObjectTypes/CText.cpp:265:71:   required from here
../../../source/gui/Scripting/JSInterface_GUIProxy.h:37:7: warning: base class 'class js::BaseProxyHandler' has accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from ../../../source/gui/Scripting/JSInterface_CText.cpp:20:0:
../../../source/gui/Scripting/JSInterface_GUIProxy.h: In instantiation of 'class JSI_GUIProxy<CText>':
../../../source/gui/Scripting/JSInterface_CText.cpp:45:25:   required from here
../../../source/gui/Scripting/JSInterface_GUIProxy.h:37:7: warning: base class 'class js::BaseProxyHandler' has accessible non-virtual destructor [-Wnon-virtual-dtor]
 class JSI_GUIProxy : public js::BaseProxyHandler
       ^~~~~~~~~~~~
In file included from ../../../source/gui/Scripting/JSInterface_IGUIObject.cpp:20:0:
../../../source/gui/Scripting/JSInterface_GUIProxy.h: In instantiation of 'class JSI_GUIProxy<IGUIObject>':
../../../source/gui/Scripting/JSInterface_IGUIObject.cpp:44:30:   required from here
../../../source/gui/Scripting/JSInterface_GUIProxy.h:37:7: warning: base class 'class js::BaseProxyHandler' has accessible non-virtual destructor [-Wnon-virtual-dtor]
 class JSI_GUIProxy : public js::BaseProxyHandler
       ^~~~~~~~~~~~
builderr-release-gcc6.txt
In file included from ../../../source/gui/GUIObjectTypes.cpp:35:0:
../../../source/gui/Scripting/JSInterface_GUIProxy.h: In instantiation of 'class JSI_GUIProxy<IGUIObject>':
../../../source/gui/GUIObjectTypes.cpp:39:45:   required from here
../../../source/gui/Scripting/JSInterface_GUIProxy.h:37:7: warning: base class 'class js::BaseProxyHandler' has accessible non-virtual destructor [-Wnon-virtual-dtor]
 class JSI_GUIProxy : public js::BaseProxyHandler
       ^~~~~~~~~~~~
../../../source/gui/Scripting/JSInterface_GUIProxy.h: In instantiation of 'class JSI_GUIProxy<CText>':
../../../source/gui/GUIObjectTypes.cpp:40:40:   required from here
../../../source/gui/Scripting/JSInterface_GUIProxy.h:37:7: warning: base class 'class js::BaseProxyHandler' has accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from ../../../source/gui/ObjectBases/IGUIObject.cpp:24:0:
../../../source/gui/Scripting/JSInterface_GUIProxy.h: In instantiation of 'class JSI_GUIProxy<IGUIObject>':
../../../source/gui/ObjectBases/IGUIObject.cpp:457:44:   required from here
../../../source/gui/Scripting/JSInterface_GUIProxy.h:37:7: warning: base class 'class js::BaseProxyHandler' has accessible non-virtual destructor [-Wnon-virtual-dtor]
 class JSI_GUIProxy : public js::BaseProxyHandler
       ^~~~~~~~~~~~
In file included from ../../../source/gui/ObjectTypes/CText.cpp:25:0:
../../../source/gui/Scripting/JSInterface_GUIProxy.h: In instantiation of 'class JSI_GUIProxy<IGUIObject>':
../../../source/gui/ObjectTypes/CText.cpp:262:44:   required from here
../../../source/gui/Scripting/JSInterface_GUIProxy.h:37:7: warning: base class 'class js::BaseProxyHandler' has accessible non-virtual destructor [-Wnon-virtual-dtor]
 class JSI_GUIProxy : public js::BaseProxyHandler
       ^~~~~~~~~~~~
../../../source/gui/Scripting/JSInterface_GUIProxy.h: In instantiation of 'class JSI_GUIProxy<CText>':
../../../source/gui/ObjectTypes/CText.cpp:265:71:   required from here
../../../source/gui/Scripting/JSInterface_GUIProxy.h:37:7: warning: base class 'class js::BaseProxyHandler' has accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from ../../../source/gui/Scripting/JSInterface_CText.cpp:20:0:
../../../source/gui/Scripting/JSInterface_GUIProxy.h: In instantiation of 'class JSI_GUIProxy<CText>':
../../../source/gui/Scripting/JSInterface_CText.cpp:45:25:   required from here
../../../source/gui/Scripting/JSInterface_GUIProxy.h:37:7: warning: base class 'class js::BaseProxyHandler' has accessible non-virtual destructor [-Wnon-virtual-dtor]
 class JSI_GUIProxy : public js::BaseProxyHandler
       ^~~~~~~~~~~~
In file included from ../../../source/gui/Scripting/JSInterface_IGUIObject.cpp:20:0:
../../../source/gui/Scripting/JSInterface_GUIProxy.h: In instantiation of 'class JSI_GUIProxy<IGUIObject>':
../../../source/gui/Scripting/JSInterface_IGUIObject.cpp:44:30:   required from here
../../../source/gui/Scripting/JSInterface_GUIProxy.h:37:7: warning: base class 'class js::BaseProxyHandler' has accessible non-virtual destructor [-Wnon-virtual-dtor]
 class JSI_GUIProxy : public js::BaseProxyHandler
       ^~~~~~~~~~~~

Link to build: https://jenkins.wildfiregames.com/job/docker-differential/3674/display/redirect

wraitii updated this revision to Diff 14079.Nov 19 2020, 6:32 PM
wraitii marked 4 inline comments as done.

Stan's comments, clean up includes.

wraitii edited the summary of this revision. (Show Details)Nov 19 2020, 6:38 PM
Stan added inline comments.Nov 19 2020, 7:01 PM
source/gui/Scripting/JSInterface_GUIProxy.h
21 ↗(On Diff #14079)

Typo.

Build failure - The Moirai have given mortals hearts that can endure.

builderr-debug-gcc6.txt
In file included from ../../../source/gui/GUIObjectTypes.cpp:35:0:
../../../source/gui/Scripting/JSInterface_GUIProxy.h:21:47: fatal error: sriptinterface/ScriptExtraHeaders.h: No such file or directory
 #include "sriptinterface/ScriptExtraHeaders.h"
                                               ^
compilation terminated.
make[1]: *** [obj/gui_Debug/GUIObjectTypes.o] Error 1
make: *** [gui] Error 2

Link to build: https://jenkins.wildfiregames.com/job/docker-differential/3678/display/redirect

Build failure - The Moirai have given mortals hearts that can endure.

builderr-debug-macos.txt
In file included from ../../../source/network/NetFileTransfer.cpp:In file included from ../../../source/network/NetHost.cpp:23:
In file included from ../../../source/network/NetMessage.h:26:
In file included from ../../../source/network/NetMessages.h:27:
In file included from ../../../source/scriptinterface/ScriptTypes.h:6323:
In file included from :
In file included from ../../../source/network/NetMessage.h:26../../../libraries/source/spidermonkey/include-unix-debug/jsapi.h:15:
In file included from ../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Range.h:12:
:
In file included from ../../../source/network/NetMessages.h../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Span.h:166:5::27:
 In file included from ../../../source/scriptinterface/ScriptTypes.herror: :63:
statement not allowed in constexpr constructor
In file included from ../../../libraries/source/spidermonkey/include-unix-debug/jsapi.h:15:
In file included from ../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Range.h:12:
    MOZ_RELEASE_ASSERT(span == nullptr ||
    ^
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Span.h:166:5: error: ../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Assertions.h:459:7: statement not allowed in constexpr constructornote: expanded from macro 'MOZ_RELEASE_ASSERT'
      MOZ_PASTE_PREFIX_AND_ARG_COUNT(MOZ_ASSERT_HELPER, __VA_ARGS__), \
      ^

../../../libraries/source/spidermonkey/include-unix-debug/mozilla/MacroArgs.h:72:39    MOZ_RELEASE_ASSERT(span == nullptr ||
    ^: note: expanded from macro 'MOZ_PASTE_PREFIX_AND_ARG_COUNT'

  MOZ_PASTE_PREFIX_AND_ARG_COUNT_GLUE(MOZ_CONCAT,    \
                                      ^
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Assertions.h:459:7: note: expanded from macro 'MOZ_RELEASE_ASSERT'
      MOZ_PASTE_PREFIX_AND_ARG_COUNT(MOZ_ASSERT_HELPER, __VA_ARGS__), \
      ^
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/MacroArgs.h:72:39: note: expanded from macro 'MOZ_PASTE_PREFIX_AND_ARG_COUNT'
  MOZ_PASTE_PREFIX_AND_ARG_COUNT_GLUE(MOZ_CONCAT,    \
                                      ^
In file included from ../../../source/network/NetHost.cpp:23:
In file included from ../../../source/network/NetMessage.h:26:
In file included from ../../../source/network/NetMessages.h:27:
In file included from ../../../source/scriptinterface/ScriptTypes.h:63:
In file included from ../../../libraries/source/spidermonkey/include-unix-debug/jsapi.h:15:
In file included from ../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Range.h:12:
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Span.h:178:5In file included from :../../../source/network/NetFileTransfer.cpp: error: 23:
In file included from statement not allowed in constexpr function
../../../source/network/NetMessage.h:26    MOZ_RELEASE_ASSERT(span_);
    ^
:
In file included from ../../../source/network/NetMessages.h:27../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Assertions.h:459:7: note: expanded from macro 'MOZ_RELEASE_ASSERT':
In file included from ../../../source/scriptinterface/ScriptTypes.h:
63:
In file included from ../../../libraries/source/spidermonkey/include-unix-debug/jsapi.h:15      MOZ_PASTE_PREFIX_AND_ARG_COUNT(MOZ_ASSERT_HELPER, __VA_ARGS__), \
      ^
:
In file included from ../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Range.h:../../../libraries/source/spidermonkey/include-unix-debug/mozilla/MacroArgs.h:72:39:12 note: :
expanded from macro 'MOZ_PASTE_PREFIX_AND_ARG_COUNT'
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Span.h:178:5: error  MOZ_PASTE_PREFIX_AND_ARG_COUNT_GLUE(MOZ_CONCAT,    \
                                      ^
: statement not allowed in constexpr function
    MOZ_RELEASE_ASSERT(span_);
    ^
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Assertions.h:459:7: note: expanded from macro 'MOZ_RELEASE_ASSERT'
      MOZ_PASTE_PREFIX_AND_ARG_COUNT(MOZ_ASSERT_HELPER, __VA_ARGS__), \
      ^
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/MacroArgs.h:72:39: note: expanded from macro 'MOZ_PASTE_PREFIX_AND_ARG_COUNT'
In file included from ../../../source/network/NetHost.cpp:  MOZ_PASTE_PREFIX_AND_ARG_COUNT_GLUE(MOZ_CONCAT,    \
                                      ^23:
In file included from 
../../../source/network/NetMessage.h:26:
In file included from ../../../source/network/NetMessages.h:27:
In file included from ../../../source/scriptinterface/ScriptTypes.h:63:
In file included from ../../../libraries/source/spidermonkey/include-unix-debug/jsapi.h:15:
In file included from ../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Range.h:12:
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Span.h:183:5: error: statement not allowed in constexpr function
    MOZ_RELEASE_ASSERT(span_);
    ^
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Assertions.h:459:7: note: expanded from macro 'MOZ_RELEASE_ASSERT'
In file included from ../../../source/network/NetFileTransfer.cpp:23:
In file included from ../../../source/network/NetMessage.h:26:
      MOZ_PASTE_PREFIX_AND_ARG_COUNT(MOZ_ASSERT_HELPER, __VA_ARGS__), \
      ^
In file included from ../../../source/network/NetMessages.h:../../../libraries/source/spidermonkey/include-unix-debug/mozilla/MacroArgs.h:7227:
In file included from :39../../../source/scriptinterface/ScriptTypes.h:63:
In file included from : note../../../libraries/source/spidermonkey/include-unix-debug/jsapi.h:15:
In file included from ../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Range.h:12:
: ../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Span.h:183expanded from macro 'MOZ_PASTE_PREFIX_AND_ARG_COUNT'
:5: error:   MOZ_PASTE_PREFIX_AND_ARG_COUNT_GLUE(MOZ_CONCAT,    \statement not allowed in constexpr function

                                      ^
    MOZ_RELEASE_ASSERT(span_);
    ^
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Assertions.h:459:7: note: expanded from macro 'MOZ_RELEASE_ASSERT'
      MOZ_PASTE_PREFIX_AND_ARG_COUNT(MOZ_ASSERT_HELPER, __VA_ARGS__), \
      ^
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/MacroArgs.h:72:39: note: expanded from macro 'MOZ_PASTE_PREFIX_AND_ARG_COUNT'
  MOZ_PASTE_PREFIX_AND_ARG_COUNT_GLUE(MOZ_CONCAT,    \
                                      ^
In file included from ../../../source/network/NetHost.cpp:23:
In file included from ../../../source/network/NetMessage.h:26:
In file included from ../../../source/network/NetMessages.h:27:
In file included from ../../../source/scriptinterface/ScriptTypes.h:63:
In file included from ../../../libraries/source/spidermonkey/include-unix-debug/jsapi.h:15:
In file included from ../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Range.h:12:
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Span.h:188:5: error: statement not allowed in constexpr function
In file included from ../../../source/network/NetFileTransfer.cpp:23:
In file included from ../../../source/network/NetMessage.h    MOZ_RELEASE_ASSERT(span_ && index_ >= 0 && index_ < span_->Length());
:26:
    ^
In file included from ../../../source/network/NetMessages.h:../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Assertions.h:45927:
In file included from :7../../../source/scriptinterface/ScriptTypes.h:63: note: :
In file included from expanded from macro 'MOZ_RELEASE_ASSERT'
../../../libraries/source/spidermonkey/include-unix-debug/jsapi.h:15:
In file included from ../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Range.h:12:
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Span.h:188:5: error:       MOZ_PASTE_PREFIX_AND_ARG_COUNT(MOZ_ASSERT_HELPER, __VA_ARGS__), \
      ^
statement not allowed in constexpr function
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/MacroArgs.h:72:39: note    MOZ_RELEASE_ASSERT(span_ && index_ >= 0 && index_ < span_->Length());
    ^
: expanded from macro 'MOZ_PASTE_PREFIX_AND_ARG_COUNT'
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Assertions.h:459:7  MOZ_PASTE_PREFIX_AND_ARG_COUNT_GLUE(MOZ_CONCAT,    \
                                      ^
: note: expanded from macro 'MOZ_RELEASE_ASSERT'
      MOZ_PASTE_PREFIX_AND_ARG_COUNT(MOZ_ASSERT_HELPER, __VA_ARGS__), \
      ^
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/MacroArgs.h:72:39: note: expanded from macro 'MOZ_PASTE_PREFIX_AND_ARG_COUNT'
  MOZ_PASTE_PREFIX_AND_ARG_COUNT_GLUE(MOZ_CONCAT,    \
                                      ^
In file included from ../../../source/network/NetHost.cpp:23:
In file included from ../../../source/network/NetMessage.h:26:
In file included from ../../../source/network/NetMessages.h:27:
In file included from ../../../source/scriptinterface/ScriptTypes.h:63:
In file included from ../../../libraries/source/spidermonkey/include-unix-debug/jsapi.h:15:
In file included from ../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Range.h:12:
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Span.h:200:5: error: statement not allowed in constexpr function
In file included from ../../../source/network/NetFileTransfer.cpp:23:
In file included from ../../../source/network/NetMessage.h:26:
In file included from ../../../source/network/NetMessages.h:    MOZ_RELEASE_ASSERT(span_ && index_ > 0 && index_ <= span_->Length());
27:
In file included from     ^
../../../source/scriptinterface/ScriptTypes.h:63:
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Assertions.h:459In file included from ../../../libraries/source/spidermonkey/include-unix-debug/jsapi.h:15:
In file included from ../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Range.h::7: note: 12:
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Span.h:200:5: error: expanded from macro 'MOZ_RELEASE_ASSERT'
statement not allowed in constexpr function
      MOZ_PASTE_PREFIX_AND_ARG_COUNT(MOZ_ASSERT_HELPER, __VA_ARGS__), \
      ^
    MOZ_RELEASE_ASSERT(span_ && index_ > 0 && index_ <= span_->Length());
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/MacroArgs.h:72:39: note    ^
: expanded from macro 'MOZ_PASTE_PREFIX_AND_ARG_COUNT'
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Assertions.h:459:7:   MOZ_PASTE_PREFIX_AND_ARG_COUNT_GLUE(MOZ_CONCAT,    \
                                      ^
note: expanded from macro 'MOZ_RELEASE_ASSERT'
      MOZ_PASTE_PREFIX_AND_ARG_COUNT(MOZ_ASSERT_HELPER, __VA_ARGS__), \
      ^
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/MacroArgs.h:72:39: note: expanded from macro 'MOZ_PASTE_PREFIX_AND_ARG_COUNT'
  MOZ_PASTE_PREFIX_AND_ARG_COUNT_GLUE(MOZ_CONCAT,    \
                                      ^
In file included from ../../../source/network/NetHost.cpp:23:
In file included from ../../../source/network/NetMessage.h:26:
In file included from ../../../source/network/NetMessages.h:27:
In file included from ../../../source/scriptinterface/ScriptTypes.h:63:
In file included from ../../../libraries/source/spidermonkey/include-unix-debug/jsapi.h:15:
In file included from ../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Range.h:12:
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Span.h:218:5: error: statement not allowed in constexpr function
In file included from ../../../source/network/NetFileTransfer.cpp:23:
    MOZ_RELEASE_ASSERT(span_ && (index_ + n) >= 0 &&
    ^
In file included from ../../../source/network/NetMessage.h:../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Assertions.h:45926:
In file included from ../../../source/network/NetMessages.h:27:
:7: note: In file included from ../../../source/scriptinterface/ScriptTypes.hexpanded from macro 'MOZ_RELEASE_ASSERT'
:63:
In file included from ../../../libraries/source/spidermonkey/include-unix-debug/jsapi.h:15      MOZ_PASTE_PREFIX_AND_ARG_COUNT(MOZ_ASSERT_HELPER, __VA_ARGS__), \
      ^
:
In file included from ../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Range.h../../../libraries/source/spidermonkey/include-unix-debug/mozilla/MacroArgs.h:72:39: note: :12:
expanded from macro 'MOZ_PASTE_PREFIX_AND_ARG_COUNT'
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Span.h:218:5:  MOZ_PASTE_PREFIX_AND_ARG_COUNT_GLUE(MOZ_CONCAT,    \
                                      ^
 error: statement not allowed in constexpr function
    MOZ_RELEASE_ASSERT(span_ && (index_ + n) >= 0 &&
    ^
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Assertions.h:459:7: note: expanded from macro 'MOZ_RELEASE_ASSERT'
      MOZ_PASTE_PREFIX_AND_ARG_COUNT(MOZ_ASSERT_HELPER, __VA_ARGS__), \
      ^
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/MacroArgs.h:72:39: note: expanded from macro 'MOZ_PASTE_PREFIX_AND_ARG_COUNT'
  MOZ_PASTE_PREFIX_AND_ARG_COUNT_GLUE(MOZ_CONCAT,    \
                                      ^
In file included from ../../../source/network/NetHost.cpp:23:
In file included from ../../../source/network/NetMessage.h:26:
In file included from ../../../source/network/NetMessages.h:27:
In file included from ../../../source/scriptinterface/ScriptTypes.h:63:
In file included from ../../../libraries/source/spidermonkey/include-unix-debug/jsapi.h:15:
In file included from ../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Range.h:12:
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Span.h:237:5: error: statement not allowed in constexpr function
    MOZ_RELEASE_ASSERT(span_ == rhs.span_);
    ^
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Assertions.h:459:7: note: expanded from macro 'MOZ_RELEASE_ASSERT'
In file included from ../../../source/network/NetFileTransfer.cpp:23:
In file included from       MOZ_PASTE_PREFIX_AND_ARG_COUNT(MOZ_ASSERT_HELPER, __VA_ARGS__), \
      ^../../../source/network/NetMessage.h:26
:
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/MacroArgs.h:72In file included from ../../../source/network/NetMessages.h:27:
In file included from ../../../source/scriptinterface/ScriptTypes.h::39: note: 63:
expanded from macro 'MOZ_PASTE_PREFIX_AND_ARG_COUNT'
In file included from ../../../libraries/source/spidermonkey/include-unix-debug/jsapi.h:15:
  MOZ_PASTE_PREFIX_AND_ARG_COUNT_GLUE(MOZ_CONCAT,    \
                                      ^
In file included from ../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Range.h:12:
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Span.h:237:5: error: statement not allowed in constexpr function
    MOZ_RELEASE_ASSERT(span_ == rhs.span_);
    ^
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Assertions.h:459:7: note: expanded from macro 'MOZ_RELEASE_ASSERT'
      MOZ_PASTE_PREFIX_AND_ARG_COUNT(MOZ_ASSERT_HELPER, __VA_ARGS__), \
      ^
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/MacroArgs.h:72:39: note: expanded from macro 'MOZ_PASTE_PREFIX_AND_ARG_COUNT'
In file included from ../../../source/network/NetHost.cpp:23:
  MOZ_PASTE_PREFIX_AND_ARG_COUNT_GLUE(MOZ_CONCAT,    \
                                      ^In file included from ../../../source/network/NetMessage.h:26:
In file included from ../../../source/network/NetMessages.h:27:
In file included from ../../../source/scriptinterface/ScriptTypes.h:63:
In file included from ../../../libraries/source/spidermonkey/include-unix-debug/jsapi.h:15:
In file included from ../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Range.h:
12:
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Span.h:257:5: error: statement not allowed in constexpr function
    MOZ_RELEASE_ASSERT(lhs.span_ == rhs.span_);
    ^
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Assertions.h:459:7: note: expanded from macro 'MOZ_RELEASE_ASSERT'
      MOZ_PASTE_PREFIX_AND_ARG_COUNT(MOZ_ASSERT_HELPER, __VA_ARGS__), \
      ^
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/MacroArgs.h:72:39: note: expanded from macro 'MOZ_PASTE_PREFIX_AND_ARG_COUNT'
  MOZ_PASTE_PREFIX_AND_ARG_COUNT_GLUE(MOZ_CONCAT,    \
                                      ^In file included from ../../../source/network/NetFileTransfer.cpp:23
:
In file included from ../../../source/network/NetMessage.h:26:
In file included from ../../../source/network/NetMessages.h:27:
In file included from ../../../source/scriptinterface/ScriptTypes.h:63:
In file included from ../../../libraries/source/spidermonkey/include-unix-debug/jsapi.h:15:
In file included from ../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Range.h:12:
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Span.h:257:5: error: statement not allowed in constexpr function
    MOZ_RELEASE_ASSERT(lhs.span_ == rhs.span_);
    ^
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Assertions.h:459:7: note: expanded from macro 'MOZ_RELEASE_ASSERT'
      MOZ_PASTE_PREFIX_AND_ARG_COUNT(MOZ_ASSERT_HELPER, __VA_ARGS__), \
      ^
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/MacroArgs.h:72:39: note: expanded from macro 'MOZ_PASTE_PREFIX_AND_ARG_COUNT'
  MOZ_PASTE_PREFIX_AND_ARG_COUNT_GLUE(MOZ_CONCAT,    \
                                      ^
In file included from ../../../source/network/NetFileTransfer.cpp:23:
In file included from ../../../source/network/NetMessage.h:26:
In file included from ../../../source/network/NetMessages.h:27:
In file included from ../../../source/scriptinterface/ScriptTypes.h:63:
In file included from ../../../libraries/source/spidermonkey/include-unix-debug/jsapi.h:15:
In file included from ../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Range.h:In file included from ../../../source/network/NetHost.cpp:23:
In file included from 12:
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Span.h:../../../source/network/NetMessage.h:308:26:
In file included from 5: ../../../source/network/NetMessages.h:27:
In file included from error: statement not allowed in constexpr constructor
../../../source/scriptinterface/ScriptTypes.h:63:
In file included from     MOZ_RELEASE_ASSERT(ext.size() == Ext);
    ^
../../../libraries/source/spidermonkey/include-unix-debug/jsapi.h:15:
In file included from ../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Range.h:12:
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Span.h:308:5: error: statement not allowed in constexpr constructor
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Assertions.h:459:7:    MOZ_RELEASE_ASSERT(ext.size() == Ext);
    ^
 note: ../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Assertions.h:459expanded from macro 'MOZ_RELEASE_ASSERT'
:7: note: expanded from macro 'MOZ_RELEASE_ASSERT'
      MOZ_PASTE_PREFIX_AND_ARG_COUNT(MOZ_ASSERT_HELPER, __VA_ARGS__), \
      ^
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/MacroArgs.h:72:      MOZ_PASTE_PREFIX_AND_ARG_COUNT(MOZ_ASSERT_HELPER, __VA_ARGS__), \
      ^
39: note../../../libraries/source/spidermonkey/include-unix-debug/mozilla/MacroArgs.h:72:39: note: : expanded from macro 'MOZ_PASTE_PREFIX_AND_ARG_COUNT'expanded from macro 'MOZ_PASTE_PREFIX_AND_ARG_COUNT'

  MOZ_PASTE_PREFIX_AND_ARG_COUNT_GLUE(MOZ_CONCAT,    \
                                      ^  MOZ_PASTE_PREFIX_AND_ARG_COUNT_GLUE(MOZ_CONCAT,    \

                                      ^
In file included from ../../../source/network/NetHost.cpp:23:
In file included from ../../../source/network/NetMessage.h:26:
In file included from ../../../source/network/NetMessages.h:27:
In file included from ../../../source/network/NetFileTransfer.cpp:23:
In file included from ../../../source/network/NetMessage.h:In file included from 26:
In file included from ../../../source/scriptinterface/ScriptTypes.h:../../../source/network/NetMessages.h:2763:
In file included from ../../../libraries/source/spidermonkey/include-unix-debug/jsapi.h:15:
In file included from ../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Range.h:12:
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Span.h:312:5::
In file included from  error: ../../../source/scriptinterface/ScriptTypes.h:63:
In file included from ../../../libraries/source/spidermonkey/include-unix-debug/jsapi.h:15:
In file included from ../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Range.h:12:
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Span.h:312:5: error: statement not allowed in constexpr constructor
statement not allowed in constexpr constructor
    MOZ_RELEASE_ASSERT(length == Ext);
    ^
    MOZ_RELEASE_ASSERT(length == Ext);
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Assertions.h:459    ^
:7:../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Assertions.h:459 note: :7expanded from macro 'MOZ_RELEASE_ASSERT'
: note: expanded from macro 'MOZ_RELEASE_ASSERT'
      MOZ_PASTE_PREFIX_AND_ARG_COUNT(MOZ_ASSERT_HELPER, __VA_ARGS__), \
      ^
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/MacroArgs.h:72:39: note: expanded from macro 'MOZ_PASTE_PREFIX_AND_ARG_COUNT'
      MOZ_PASTE_PREFIX_AND_ARG_COUNT(MOZ_ASSERT_HELPER, __VA_ARGS__), \
      ^
  MOZ_PASTE_PREFIX_AND_ARG_COUNT_GLUE(MOZ_CONCAT,    \
                                      ^
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/MacroArgs.h:72:39: note: expanded from macro 'MOZ_PASTE_PREFIX_AND_ARG_COUNT'
  MOZ_PASTE_PREFIX_AND_ARG_COUNT_GLUE(MOZ_CONCAT,    \
                                      ^
In file included from ../../../source/network/NetHost.cppIn file included from ../../../source/network/NetFileTransfer.cpp:23:
In file included from ../../../source/network/NetMessage.h:26:
In file included from ../../../source/network/NetMessages.h:27:
In file included from ../../../source/scriptinterface/ScriptTypes.h::23:
63:
In file included from In file included from ../../../source/network/NetMessage.h:../../../libraries/source/spidermonkey/include-unix-debug/jsapi.h:1526:
In file included from :
In file included from ../../../source/network/NetMessages.h:../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Range.h:1227:
In file included from :
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Span.h:586:5: error: statement not allowed in constexpr function
../../../source/scriptinterface/ScriptTypes.h:63:
In file included from     MOZ_RELEASE_ASSERT(Count <= size());
../../../libraries/source/spidermonkey/include-unix-debug/jsapi.h:15    ^
:
In file included from ../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Range.h:12:
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Span.h:../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Assertions.h:459:7: note: expanded from macro 'MOZ_RELEASE_ASSERT'
586:5: error:       MOZ_PASTE_PREFIX_AND_ARG_COUNT(MOZ_ASSERT_HELPER, __VA_ARGS__), \
statement not allowed in constexpr function
      ^
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/MacroArgs.h:72    MOZ_RELEASE_ASSERT(Count <= size());
    ^
:39: note: ../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Assertions.h:459:7expanded from macro 'MOZ_PASTE_PREFIX_AND_ARG_COUNT'
: note: expanded from macro 'MOZ_RELEASE_ASSERT'
  MOZ_PASTE_PREFIX_AND_ARG_COUNT_GLUE(MOZ_CONCAT,    \
                                      ^
      MOZ_PASTE_PREFIX_AND_ARG_COUNT(MOZ_ASSERT_HELPER, __VA_ARGS__), \
      ^
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/MacroArgs.h:72:39: note: expanded from macro 'MOZ_PASTE_PREFIX_AND_ARG_COUNT'
  MOZ_PASTE_PREFIX_AND_ARG_COUNT_GLUE(MOZ_CONCAT,    \
                                      ^
In file included from ../../../source/network/NetFileTransfer.cpp:23:
In file included from ../../../source/network/NetMessage.h:26:
In file included from ../../../source/network/NetMessages.h:27:
In file included from ../../../source/scriptinterface/ScriptTypes.h:63:
In file included from ../../../libraries/source/spidermonkey/include-unix-debug/jsapi.h:15:
In file included from ../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Range.h:12:
In file included from ../../../source/network/NetHost.cpp:../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Span.h:596:523:
In file included from : ../../../source/network/NetMessage.h:26error: statement not allowed in constexpr function
:
In file included from ../../../source/network/NetMessages.h:27:
In file included from ../../../source/scriptinterface/ScriptTypes.h:63:
In file included from ../../../libraries/source/spidermonkey/include-unix-debug/jsapi.h:15:
In file included from ../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Range.h:12:
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Span.h:596:5: error: statement not allowed in constexpr function
    MOZ_RELEASE_ASSERT(Count <= len);
    ^
    MOZ_RELEASE_ASSERT(Count <= len);
    ^
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Assertions.h:459:7: note: ../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Assertions.h:expanded from macro 'MOZ_RELEASE_ASSERT'
459:7: note:       MOZ_PASTE_PREFIX_AND_ARG_COUNT(MOZ_ASSERT_HELPER, __VA_ARGS__), \
expanded from macro 'MOZ_RELEASE_ASSERT'
      ^
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/MacroArgs.h:72:      MOZ_PASTE_PREFIX_AND_ARG_COUNT(MOZ_ASSERT_HELPER, __VA_ARGS__), \
      ^
39: note: ../../../libraries/source/spidermonkey/include-unix-debug/mozilla/MacroArgs.h:72expanded from macro 'MOZ_PASTE_PREFIX_AND_ARG_COUNT'
:39: note: expanded from macro 'MOZ_PASTE_PREFIX_AND_ARG_COUNT'  MOZ_PASTE_PREFIX_AND_ARG_COUNT_GLUE(MOZ_CONCAT,    \
                                      ^

  MOZ_PASTE_PREFIX_AND_ARG_COUNT_GLUE(MOZ_CONCAT,    \
                                      ^
In file included from ../../../source/network/NetFileTransfer.cpp:23:
In file included from ../../../source/network/NetMessage.h:26:
In file included from ../../../source/network/NetMessages.h:27:
In file included from ../../../source/scriptinterface/ScriptTypes.h:63:
In file included from ../../../source/network/NetHost.cpp:23:
In file included from ../../../source/network/NetMessage.h:26In file included from ../../../libraries/source/spidermonkey/include-unix-debug/jsapi.h:15:
In file included from ../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Range.h:12:
:
In file included from ../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Span.h:606../../../source/network/NetMessages.h:27:
In file included from :5../../../source/scriptinterface/ScriptTypes.h:63:
In file included from : error: statement not allowed in constexpr function
../../../libraries/source/spidermonkey/include-unix-debug/jsapi.h:15:
    MOZ_RELEASE_ASSERT(Offset <= len &&
    ^
In file included from ../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Range.h../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Assertions.h:459:12:
:7../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Span.h:606:5: error: : notestatement not allowed in constexpr function
: expanded from macro 'MOZ_RELEASE_ASSERT'
    MOZ_RELEASE_ASSERT(Offset <= len &&
    ^
      MOZ_PASTE_PREFIX_AND_ARG_COUNT(MOZ_ASSERT_HELPER, __VA_ARGS__), \../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Assertions.h:459
      ^
:7: ../../../libraries/source/spidermonkey/include-unix-debug/mozilla/MacroArgs.h:72:39note: : note: expanded from macro 'MOZ_RELEASE_ASSERT'
expanded from macro 'MOZ_PASTE_PREFIX_AND_ARG_COUNT'
      MOZ_PASTE_PREFIX_AND_ARG_COUNT(MOZ_ASSERT_HELPER, __VA_ARGS__), \
  MOZ_PASTE_PREFIX_AND_ARG_COUNT_GLUE(MOZ_CONCAT,    \
                                      ^
      ^
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/MacroArgs.h:72:39: note: expanded from macro 'MOZ_PASTE_PREFIX_AND_ARG_COUNT'
  MOZ_PASTE_PREFIX_AND_ARG_COUNT_GLUE(MOZ_CONCAT,    \
                                      ^
In file included from ../../../source/network/NetFileTransfer.cpp:23:
In file included from ../../../source/network/NetMessage.h:26:
In file included from ../../../source/network/NetMessages.h:27:
In file included from ../../../source/scriptinterface/ScriptTypes.h:63:
In file included from ../../../libraries/source/spidermonkey/include-unix-debug/jsapi.h:15In file included from ../../../source/network/NetHost.cpp:23:
In file included from ../../../source/network/NetMessage.h:26:
In file included from ../../../source/network/NetMessages.h:27:
In file included from ../../../source/scriptinterface/ScriptTypes.h:63:
In file included from ../../../libraries/source/spidermonkey/include-unix-debug/jsapi.h:15:
In file included from ../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Range.h:12:
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Span.h:615:5: error: statement not allowed in constexpr function
:
In file included from ../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Range.h:    MOZ_RELEASE_ASSERT(aCount <= size());
    ^
12:
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Span.h:615:../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Assertions.h:459:7: note: 5: expanded from macro 'MOZ_RELEASE_ASSERT'
error: statement not allowed in constexpr function
      MOZ_PASTE_PREFIX_AND_ARG_COUNT(MOZ_ASSERT_HELPER, __VA_ARGS__), \
    MOZ_RELEASE_ASSERT(aCount <= size());
    ^
      ^
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Assertions.h:459:7: note: expanded from macro 'MOZ_RELEASE_ASSERT'
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/MacroArgs.h:72:39: note: expanded from macro 'MOZ_PASTE_PREFIX_AND_ARG_COUNT'
      MOZ_PASTE_PREFIX_AND_ARG_COUNT(MOZ_ASSERT_HELPER, __VA_ARGS__), \
      ^
  MOZ_PASTE_PREFIX_AND_ARG_COUNT_GLUE(MOZ_CONCAT,    \../../../libraries/source/spidermonkey/include-unix-debug/mozilla/MacroArgs.h:72
                                      ^
:39: note: expanded from macro 'MOZ_PASTE_PREFIX_AND_ARG_COUNT'
  MOZ_PASTE_PREFIX_AND_ARG_COUNT_GLUE(MOZ_CONCAT,    \
                                      ^
In file included from ../../../source/network/NetHost.cpp:23:
In file included from ../../../source/network/NetMessage.h:26:
In file included from ../../../source/network/NetMessages.h:27:
In file included from ../../../source/scriptinterface/ScriptTypes.h:63:
In file included from ../../../libraries/source/spidermonkey/include-unix-debug/jsapi.hIn file included from ../../../source/network/NetFileTransfer.cpp:23:
In file included from ../../../source/network/NetMessage.h:26:15:
In file included from :
In file included from ../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Range.h:../../../source/network/NetMessages.h:2712:
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Span.h:624:5: error: statement not allowed in constexpr function
:
In file included from ../../../source/scriptinterface/ScriptTypes.h:63    MOZ_RELEASE_ASSERT(aCount <= len);
    ^
:
In file included from ../../../libraries/source/spidermonkey/include-unix-debug/jsapi.h../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Assertions.h:459:15:
:7: note: In file included from ../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Range.h:12:
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Span.h:624:5: error: statement not allowed in constexpr function
expanded from macro 'MOZ_RELEASE_ASSERT'
    MOZ_RELEASE_ASSERT(aCount <= len);
    ^
      MOZ_PASTE_PREFIX_AND_ARG_COUNT(MOZ_ASSERT_HELPER, __VA_ARGS__), \
      ^
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Assertions.h:../../../libraries/source/spidermonkey/include-unix-debug/mozilla/MacroArgs.h:72:39: note: 459:expanded from macro 'MOZ_PASTE_PREFIX_AND_ARG_COUNT'
7: note:   MOZ_PASTE_PREFIX_AND_ARG_COUNT_GLUE(MOZ_CONCAT,    \
                                      ^
expanded from macro 'MOZ_RELEASE_ASSERT'
      MOZ_PASTE_PREFIX_AND_ARG_COUNT(MOZ_ASSERT_HELPER, __VA_ARGS__), \
      ^
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/MacroArgs.h:72:39: note: expanded from macro 'MOZ_PASTE_PREFIX_AND_ARG_COUNT'
  MOZ_PASTE_PREFIX_AND_ARG_COUNT_GLUE(MOZ_CONCAT,    \
                                      ^
In file included from ../../../source/network/NetHost.cpp:23:
In file included from ../../../source/network/NetMessage.h:26:
In file included from ../../../source/network/NetMessages.h:27:
In file included from ../../../source/scriptinterface/ScriptTypes.h:63:
In file included from ../../../libraries/source/spidermonkey/include-unix-debug/jsapi.h:15:
In file included from ../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Range.h:12:
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Span.h:634:5: errorIn file included from ../../../source/network/NetFileTransfer.cpp:23:
In file included from ../../../source/network/NetMessage.h:26:
In file included from ../../../source/network/NetMessages.h:27:
In file included from ../../../source/scriptinterface/ScriptTypes.h:63:
In file included from ../../../libraries/source/spidermonkey/include-unix-debug/jsapi.h:15:
In file included from ../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Range.h:12:
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Span.h:634: statement not allowed in constexpr function
:5: error: statement not allowed in constexpr function    MOZ_RELEASE_ASSERT(aStart <= len && (aLength == dynamic_extent ||
    ^

../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Assertions.h:459:7: note: expanded from macro 'MOZ_RELEASE_ASSERT'
    MOZ_RELEASE_ASSERT(aStart <= len && (aLength == dynamic_extent ||
    ^
      MOZ_PASTE_PREFIX_AND_ARG_COUNT(MOZ_ASSERT_HELPER, __VA_ARGS__), \
      ^
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Assertions.h:459:7: note: ../../../libraries/source/spidermonkey/include-unix-debug/mozilla/MacroArgs.h:expanded from macro 'MOZ_RELEASE_ASSERT'
72:39: note: expanded from macro 'MOZ_PASTE_PREFIX_AND_ARG_COUNT'
      MOZ_PASTE_PREFIX_AND_ARG_COUNT(MOZ_ASSERT_HELPER, __VA_ARGS__), \
      ^
  MOZ_PASTE_PREFIX_AND_ARG_COUNT_GLUE(MOZ_CONCAT,    \
                                      ^
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/MacroArgs.h:72:39: note: expanded from macro 'MOZ_PASTE_PREFIX_AND_ARG_COUNT'
  MOZ_PASTE_PREFIX_AND_ARG_COUNT_GLUE(MOZ_CONCAT,    \
                                      ^
In file included from ../../../source/network/NetHost.cpp:23:
In file included from ../../../source/network/NetMessage.h:26:
In file included from ../../../source/network/NetMessages.h:27:
In file included from ../../../source/scriptinterface/ScriptTypes.h:63:
In file included from ../../../libraries/source/spidermonkey/include-unix-debug/jsapi.hIn file included from ../../../source/network/NetFileTransfer.cpp:23:
In file included from ../../../source/network/NetMessage.h:26:
In file included from ../../../source/network/NetMessages.h:27:15:
:
In file included from In file included from ../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Range.h:12../../../source/scriptinterface/ScriptTypes.h:63:
In file included from ../../../libraries/source/spidermonkey/include-unix-debug/jsapi.h:15:
In file included from ../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Range.h:12:
:
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Span.h:660:5: error: statement not allowed in constexpr function
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Span.h:660:    MOZ_RELEASE_ASSERT(aStart <= aEnd);
    ^
5: ../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Assertions.h:459error: statement not allowed in constexpr function
:7:     MOZ_RELEASE_ASSERT(aStart <= aEnd);
    ^
note: expanded from macro 'MOZ_RELEASE_ASSERT'
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Assertions.h:459:7: note:       MOZ_PASTE_PREFIX_AND_ARG_COUNT(MOZ_ASSERT_HELPER, __VA_ARGS__), \
      ^
expanded from macro 'MOZ_RELEASE_ASSERT'../../../libraries/source/spidermonkey/include-unix-debug/mozilla/MacroArgs.h:72
:39: note: expanded from macro 'MOZ_PASTE_PREFIX_AND_ARG_COUNT'
      MOZ_PASTE_PREFIX_AND_ARG_COUNT(MOZ_ASSERT_HELPER, __VA_ARGS__), \
      ^
  MOZ_PASTE_PREFIX_AND_ARG_COUNT_GLUE(MOZ_CONCAT,    \
                                      ^
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/MacroArgs.h:72:39: note: expanded from macro 'MOZ_PASTE_PREFIX_AND_ARG_COUNT'
  MOZ_PASTE_PREFIX_AND_ARG_COUNT_GLUE(MOZ_CONCAT,    \
                                      ^
In file included from ../../../source/network/NetFileTransfer.cpp:23:
In file included from ../../../source/network/NetMessage.h:26:
In file included from ../../../source/network/NetMessages.hIn file included from ../../../source/network/NetHost.cpp:27:
:23:
In file included from In file included from ../../../source/scriptinterface/ScriptTypes.h:63:
In file included from ../../../libraries/source/spidermonkey/include-unix-debug/jsapi.h:15../../../source/network/NetMessage.h:26:
In file included from ../../../source/network/NetMessages.h:27:
In file included from ../../../source/scriptinterface/ScriptTypes.h:63:
In file included from ../../../libraries/source/spidermonkey/include-unix-debug/jsapi.h:15:
In file included from ../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Range.h:12:
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Span.h:700:5: error: statement not allowed in constexpr function
:
In file included from ../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Range.h:12    MOZ_RELEASE_ASSERT(idx < storage_.size());
    ^
:
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Span.h:../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Assertions.h:459700:5:7: note: : errorexpanded from macro 'MOZ_RELEASE_ASSERT'
: statement not allowed in constexpr function
      MOZ_PASTE_PREFIX_AND_ARG_COUNT(MOZ_ASSERT_HELPER, __VA_ARGS__), \
      ^
    MOZ_RELEASE_ASSERT(idx < storage_.size());
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/MacroArgs.h:72:39: note:     ^
expanded from macro 'MOZ_PASTE_PREFIX_AND_ARG_COUNT'
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Assertions.h:459:7: note: expanded from macro 'MOZ_RELEASE_ASSERT'
  MOZ_PASTE_PREFIX_AND_ARG_COUNT_GLUE(MOZ_CONCAT,    \
                                      ^
      MOZ_PASTE_PREFIX_AND_ARG_COUNT(MOZ_ASSERT_HELPER, __VA_ARGS__), \
      ^
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/MacroArgs.h:72:39: note: expanded from macro 'MOZ_PASTE_PREFIX_AND_ARG_COUNT'
  MOZ_PASTE_PREFIX_AND_ARG_COUNT_GLUE(MOZ_CONCAT,    \
                                      ^
In file included from ../../../source/network/NetHost.cpp:23:
In file included from ../../../source/network/NetMessage.h:26:
In file included from ../../../source/network/NetMessages.h:27:
In file included from ../../../source/scriptinterface/ScriptTypes.h:63:
In file included from ../../../libraries/source/spidermonkey/include-unix-debug/jsapi.h:15:
In file included from ../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Range.h:12:
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Span.h:760In file included from ../../../source/network/NetFileTransfer.cpp:23:
In file included from :7: error: ../../../source/network/NetMessage.h:26statement not allowed in constexpr constructor
:
In file included from ../../../source/network/NetMessages.h      MOZ_RELEASE_ASSERT(
      ^
:27:
In file included from ../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Assertions.h:459../../../source/scriptinterface/ScriptTypes.h:63:7: note: :
In file included from expanded from macro 'MOZ_RELEASE_ASSERT'
../../../libraries/source/spidermonkey/include-unix-debug/jsapi.h:15:
In file included from ../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Range.h:12:
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Span.h:760:7: error: statement not allowed in constexpr constructor
      MOZ_PASTE_PREFIX_AND_ARG_COUNT(MOZ_ASSERT_HELPER, __VA_ARGS__), \
      ^
      MOZ_RELEASE_ASSERT(../../../libraries/source/spidermonkey/include-unix-debug/mozilla/MacroArgs.h:72
      ^
:39: note: ../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Assertions.h:459:expanded from macro 'MOZ_PASTE_PREFIX_AND_ARG_COUNT'
7: note:   MOZ_PASTE_PREFIX_AND_ARG_COUNT_GLUE(MOZ_CONCAT,    \
                                      ^
expanded from macro 'MOZ_RELEASE_ASSERT'
      MOZ_PASTE_PREFIX_AND_ARG_COUNT(MOZ_ASSERT_HELPER, __VA_ARGS__), \
      ^
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/MacroArgs.h:72:39: note: expanded from macro 'MOZ_PASTE_PREFIX_AND_ARG_COUNT'
  MOZ_PASTE_PREFIX_AND_ARG_COUNT_GLUE(MOZ_CONCAT,    \
                                      ^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
fatal error: too many errors emitted, stopping now [-ferror-limit=]
In file included from ../../../source/network/NetClientTurnManager.cpp:20:
In file included from ../../../source/network/NetClientTurnManager.h:21:
In file included from ../../../source/simulation2/system/TurnManager.h:22:
In file included from ../../../source/simulation2/helpers/SimulationCommand.h:21:
In file included from ../../../source/scriptinterface/ScriptInterface.h:25:
In file included from ../../../source/scriptinterface/ScriptTypes.h:63:
In file included from ../../../libraries/source/spidermonkey/include-unix-debug/jsapi.h:15:
In file included from ../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Range.h:12:
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Span.h:166:5: In file included from ../../../source/network/NetClient.cpp:error: 20:
In file included from ../../../source/network/NetClient.h:statement not allowed in constexpr constructor
24:
In file included from ../../../source/scriptinterface/ScriptInterface.h:25:
In file included from ../../../source/scriptinterface/ScriptTypes.h:63:
In file included from ../../../libraries/source/spidermonkey/include-unix-debug/jsapi.h:15:
    MOZ_RELEASE_ASSERT(span == nullptr ||
In file included from ../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Range.h    ^
:12:
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Span.h:166:5: error../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Assertions.h:: statement not allowed in constexpr constructor459:7
: note: expanded from macro 'MOZ_RELEASE_ASSERT'
    MOZ_RELEASE_ASSERT(span == nullptr ||
    ^
      MOZ_PASTE_PREFIX_AND_ARG_COUNT(MOZ_ASSERT_HELPER, __VA_ARGS__), \
      ^
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/MacroArgs.h:72:39: ../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Assertions.h:note: expanded from macro 'MOZ_PASTE_PREFIX_AND_ARG_COUNT'
459:7: note: expanded from macro 'MOZ_RELEASE_ASSERT'
  MOZ_PASTE_PREFIX_AND_ARG_COUNT_GLUE(MOZ_CONCAT,    \
                                      ^
      MOZ_PASTE_PREFIX_AND_ARG_COUNT(MOZ_ASSERT_HELPER, __VA_ARGS__), \
      ^
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/MacroArgs.h:72:39: note: expanded from macro 'MOZ_PASTE_PREFIX_AND_ARG_COUNT'
  MOZ_PASTE_PREFIX_AND_ARG_COUNT_GLUE(MOZ_CONCAT,    \
                                      ^
In file included from ../../../source/network/NetClientTurnManager.cpp:20:
In file included from ../../../source/network/NetClientTurnManager.h:21:
In file included from ../../../source/simulation2/system/TurnManager.h:22:
In file included from ../../../source/simulation2/helpers/SimulationCommand.h:21:
In file included from ../../../source/scriptinterface/ScriptInterface.h:25:
In file included from ../../../source/scriptinterface/ScriptTypes.h:63:
In file included from ../../../libraries/source/spidermonkey/include-unix-debug/jsapi.hIn file included from ../../../source/network/NetClient.cpp:15:20:
In file included from :
In file included from ../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Range.h:../../../source/network/NetClient.h:24:
12:
In file included from ../../../source/scriptinterface/ScriptInterface.h../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Span.h::25178::
In file included from 5:../../../source/scriptinterface/ScriptTypes.h: error: 63:
In file included from ../../../libraries/source/spidermonkey/include-unix-debug/jsapi.h:15:
statement not allowed in constexpr function
In file included from ../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Range.h:12    MOZ_RELEASE_ASSERT(span_);
:
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Span.h:    ^
178:5: error: ../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Assertions.h:459:statement not allowed in constexpr function
7: note    MOZ_RELEASE_ASSERT(span_);
: expanded from macro 'MOZ_RELEASE_ASSERT'    ^

../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Assertions.h:459:7:      MOZ_PASTE_PREFIX_AND_ARG_COUNT(MOZ_ASSERT_HELPER, __VA_ARGS__), \
      ^
 note: expanded from macro 'MOZ_RELEASE_ASSERT'
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/MacroArgs.h:72:39: note      MOZ_PASTE_PREFIX_AND_ARG_COUNT(MOZ_ASSERT_HELPER, __VA_ARGS__), \
: expanded from macro 'MOZ_PASTE_PREFIX_AND_ARG_COUNT'
      ^
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/MacroArgs.h:72:39: note  MOZ_PASTE_PREFIX_AND_ARG_COUNT_GLUE(MOZ_CONCAT,    \
: expanded from macro 'MOZ_PASTE_PREFIX_AND_ARG_COUNT'                                      ^

  MOZ_PASTE_PREFIX_AND_ARG_COUNT_GLUE(MOZ_CONCAT,    \
                                      ^
In file included from ../../../source/network/NetClientTurnManager.cpp:20:
In file included from ../../../source/network/NetClientTurnManager.h:21:
In file included from ../../../source/simulation2/system/TurnManager.hIn file included from ../../../source/network/NetClient.cpp:22:20:
In file included from :
In file included from ../../../source/network/NetClient.h:../../../source/simulation2/helpers/SimulationCommand.h:24:
21:
In file included from ../../../source/scriptinterface/ScriptInterface.hIn file included from ../../../source/scriptinterface/ScriptInterface.h::2525:
:
In file included from In file included from ../../../source/scriptinterface/ScriptTypes.h../../../source/scriptinterface/ScriptTypes.h::6363:
:
In file included from In file included from ../../../libraries/source/spidermonkey/include-unix-debug/jsapi.h../../../libraries/source/spidermonkey/include-unix-debug/jsapi.h:15:
:15In file included from ../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Range.h:12:
In file included from :
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Span.h:../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Range.h:12:
183:../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Span.h:183:5:5: error error: statement not allowed in constexpr function
: statement not allowed in constexpr function
    MOZ_RELEASE_ASSERT(span_);
    ^    MOZ_RELEASE_ASSERT(span_);
    ^

../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Assertions.h:459:7../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Assertions.h:: 459:note: 7: note: expanded from macro 'MOZ_RELEASE_ASSERT'
expanded from macro 'MOZ_RELEASE_ASSERT'
      MOZ_PASTE_PREFIX_AND_ARG_COUNT(MOZ_ASSERT_HELPER, __VA_ARGS__), \
      ^
      MOZ_PASTE_PREFIX_AND_ARG_COUNT(MOZ_ASSERT_HELPER, __VA_ARGS__), \
      ^
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/MacroArgs.h:../../../libraries/source/spidermonkey/include-unix-debug/mozilla/MacroArgs.h:72:39:72: note: expanded from macro 'MOZ_PASTE_PREFIX_AND_ARG_COUNT'
39: note: expanded from macro 'MOZ_PASTE_PREFIX_AND_ARG_COUNT'
  MOZ_PASTE_PREFIX_AND_ARG_COUNT_GLUE(MOZ_CONCAT,    \
                                      ^
  MOZ_PASTE_PREFIX_AND_ARG_COUNT_GLUE(MOZ_CONCAT,    \
                                      ^
In file included from In file included from ../../../source/network/NetClientTurnManager.cpp:20../../../source/network/NetClient.cpp:20:
:
In file included from In file included from ../../../source/network/NetClient.h../../../source/network/NetClientTurnManager.h::2421:
:
In file included from In file included from ../../../source/simulation2/system/TurnManager.h:../../../source/scriptinterface/ScriptInterface.h:22:
25:
In file included from ../../../source/simulation2/helpers/SimulationCommand.h:In file included from ../../../source/scriptinterface/ScriptTypes.h:21:
63:
In file included from ../../../source/scriptinterface/ScriptInterface.h:In file included from ../../../libraries/source/spidermonkey/include-unix-debug/jsapi.h:25:
15:
In file included from ../../../source/scriptinterface/ScriptTypes.h:In file included from ../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Range.h63:
In file included from ../../../libraries/source/spidermonkey/include-unix-debug/jsapi.h::1215:
:
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Span.h:In file included from ../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Range.h:188:12:
5: error: ../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Span.h:188:statement not allowed in constexpr function
5: error: statement not allowed in constexpr function
    MOZ_RELEASE_ASSERT(span_ && index_ >= 0 && index_ < span_->Length());
    ^
    MOZ_RELEASE_ASSERT(span_ && index_ >= 0 && index_ < span_->Length());../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Assertions.h:
    ^
459:7: note../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Assertions.h:: expanded from macro 'MOZ_RELEASE_ASSERT'
459:7: note: expanded from macro 'MOZ_RELEASE_ASSERT'      MOZ_PASTE_PREFIX_AND_ARG_COUNT(MOZ_ASSERT_HELPER, __VA_ARGS__), \

      ^
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/MacroArgs.h:      MOZ_PASTE_PREFIX_AND_ARG_COUNT(MOZ_ASSERT_HELPER, __VA_ARGS__), \
72:39:       ^
note: ../../../libraries/source/spidermonkey/include-unix-debug/mozilla/MacroArgs.h:72:expanded from macro 'MOZ_PASTE_PREFIX_AND_ARG_COUNT'
39: note: expanded from macro 'MOZ_PASTE_PREFIX_AND_ARG_COUNT'
  MOZ_PASTE_PREFIX_AND_ARG_COUNT_GLUE(MOZ_CONCAT,    \
                                      ^
  MOZ_PASTE_PREFIX_AND_ARG_COUNT_GLUE(MOZ_CONCAT,    \
                                      ^
In file included from ../../../source/network/NetClient.cpp:20:
In file included from ../../../source/network/NetClient.h:In file included from ../../../source/network/NetClientTurnManager.cpp24:
In file included from :20:
In file included from ../../../source/scriptinterface/ScriptInterface.h:25:
../../../source/network/NetClientTurnManager.h:In file included from ../../../source/scriptinterface/ScriptTypes.h:21:
In file included from ../../../source/simulation2/system/TurnManager.h:22:
63:
In file included from ../../../source/simulation2/helpers/SimulationCommand.hIn file included from ../../../libraries/source/spidermonkey/include-unix-debug/jsapi.h::2115:
:
In file included from In file included from ../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Range.h../../../source/scriptinterface/ScriptInterface.h:25:
:12In file included from ../../../source/scriptinterface/ScriptTypes.h::
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Span.h:63:
200:In file included from ../../../libraries/source/spidermonkey/include-unix-debug/jsapi.h:5:15:
In file included from  error../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Range.h:: statement not allowed in constexpr function
12:
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Span.h:200:5: error:     MOZ_RELEASE_ASSERT(span_ && index_ > 0 && index_ <= span_->Length());
    ^statement not allowed in constexpr function

../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Assertions.h:459:    MOZ_RELEASE_ASSERT(span_ && index_ > 0 && index_ <= span_->Length());
7:    ^
 note: ../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Assertions.h:459:expanded from macro 'MOZ_RELEASE_ASSERT'
7: note: expanded from macro 'MOZ_RELEASE_ASSERT'
      MOZ_PASTE_PREFIX_AND_ARG_COUNT(MOZ_ASSERT_HELPER, __VA_ARGS__), \
      ^
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/MacroArgs.h:72      MOZ_PASTE_PREFIX_AND_ARG_COUNT(MOZ_ASSERT_HELPER, __VA_ARGS__), \
:39: note      ^
: expanded from macro 'MOZ_PASTE_PREFIX_AND_ARG_COUNT'
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/MacroArgs.h:72:39:  MOZ_PASTE_PREFIX_AND_ARG_COUNT_GLUE(MOZ_CONCAT,    \
 note: expanded from macro 'MOZ_PASTE_PREFIX_AND_ARG_COUNT'
                                      ^
  MOZ_PASTE_PREFIX_AND_ARG_COUNT_GLUE(MOZ_CONCAT,    \
                                      ^
In file included from ../../../source/network/NetClient.cpp:20:
In file included from ../../../source/network/NetClient.h:In file included from ../../../source/network/NetClientTurnManager.cpp:24:
20:
In file included from ../../../source/scriptinterface/ScriptInterface.h:In file included from ../../../source/network/NetClientTurnManager.h:25:
21:
In file included from ../../../source/scriptinterface/ScriptTypes.h:In file included from ../../../source/simulation2/system/TurnManager.h:22:
63:
In file included from ../../../source/simulation2/helpers/SimulationCommand.h:In file included from ../../../libraries/source/spidermonkey/include-unix-debug/jsapi.h:21:
In file included from ../../../source/scriptinterface/ScriptInterface.h15:
In file included from :25:
In file included from ../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Range.h:12:
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Span.h:../../../source/scriptinterface/ScriptTypes.h:63:
In file included from 218:5../../../libraries/source/spidermonkey/include-unix-debug/jsapi.h:15:
: errorIn file included from ../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Range.h: statement not allowed in constexpr function
:12:
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Span.h:    MOZ_RELEASE_ASSERT(span_ && (index_ + n) >= 0 &&
218:5: error    ^
: statement not allowed in constexpr function
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Assertions.h:459:7: note: expanded from macro 'MOZ_RELEASE_ASSERT'    MOZ_RELEASE_ASSERT(span_ && (index_ + n) >= 0 &&

    ^
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Assertions.h      MOZ_PASTE_PREFIX_AND_ARG_COUNT(MOZ_ASSERT_HELPER, __VA_ARGS__), \
:459      ^
:7../../../libraries/source/spidermonkey/include-unix-debug/mozilla/MacroArgs.h:: note: 72:39: expanded from macro 'MOZ_RELEASE_ASSERT'
note: expanded from macro 'MOZ_PASTE_PREFIX_AND_ARG_COUNT'
      MOZ_PASTE_PREFIX_AND_ARG_COUNT(MOZ_ASSERT_HELPER, __VA_ARGS__), \
  MOZ_PASTE_PREFIX_AND_ARG_COUNT_GLUE(MOZ_CONCAT,    \
                                      ^
      ^
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/MacroArgs.h:72:39: note: expanded from macro 'MOZ_PASTE_PREFIX_AND_ARG_COUNT'
  MOZ_PASTE_PREFIX_AND_ARG_COUNT_GLUE(MOZ_CONCAT,    \
                                      ^
In file included from ../../../source/network/NetClient.cpp:20:
In file included from ../../../source/network/NetClient.h:24:
In file included from ../../../source/scriptinterface/ScriptInterface.h:25:
In file included from ../../../source/scriptinterface/ScriptTypes.h:63:
In file included from ../../../libraries/source/spidermonkey/include-unix-debug/jsapi.h:15:
In file included from ../../../source/network/NetClientTurnManager.cppIn file included from ../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Range.h:20:12:
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Span.h::
In file included from 237:../../../source/network/NetClientTurnManager.h:5:21:
 errorIn file included from ../../../source/simulation2/system/TurnManager.h: statement not allowed in constexpr function
:22:
In file included from ../../../source/simulation2/helpers/SimulationCommand.h    MOZ_RELEASE_ASSERT(span_ == rhs.span_);
:21    ^
:
In file included from ../../../source/scriptinterface/ScriptInterface.h:25:
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Assertions.h:459:In file included from ../../../source/scriptinterface/ScriptTypes.h:7:63:
 noteIn file included from ../../../libraries/source/spidermonkey/include-unix-debug/jsapi.h:: expanded from macro 'MOZ_RELEASE_ASSERT'
15:
In file included from ../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Range.h:      MOZ_PASTE_PREFIX_AND_ARG_COUNT(MOZ_ASSERT_HELPER, __VA_ARGS__), \
12:
      ^
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Span.h:237:5../../../libraries/source/spidermonkey/include-unix-debug/mozilla/MacroArgs.h:: 72:error: 39: notestatement not allowed in constexpr function
: expanded from macro 'MOZ_PASTE_PREFIX_AND_ARG_COUNT'
    MOZ_RELEASE_ASSERT(span_ == rhs.span_);
    ^
  MOZ_PASTE_PREFIX_AND_ARG_COUNT_GLUE(MOZ_CONCAT,    \
                                      ^
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Assertions.h:459:7: note: expanded from macro 'MOZ_RELEASE_ASSERT'
      MOZ_PASTE_PREFIX_AND_ARG_COUNT(MOZ_ASSERT_HELPER, __VA_ARGS__), \
      ^
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/MacroArgs.h:72:39: note: expanded from macro 'MOZ_PASTE_PREFIX_AND_ARG_COUNT'
  MOZ_PASTE_PREFIX_AND_ARG_COUNT_GLUE(MOZ_CONCAT,    \
                                      ^
In file included from ../../../source/network/NetClient.cpp:20:
In file included from ../../../source/network/NetClient.h:24:
In file included from ../../../source/scriptinterface/ScriptInterface.h:25:
In file included from ../../../source/scriptinterface/ScriptTypes.h:63:
In file included from ../../../libraries/source/spidermonkey/include-unix-debug/jsapi.h:15:
In file included from ../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Range.h:12:
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Span.h:257:5: error: statement not allowed in constexpr function
    MOZ_RELEASE_ASSERT(lhs.span_ == rhs.span_);
    ^In file included from ../../../source/network/NetClientTurnManager.cpp:20
:
In file included from ../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Assertions.h:../../../source/network/NetClientTurnManager.h:459:21:
In file included from ../../../source/simulation2/system/TurnManager.h7: :22:
In file included from note: ../../../source/simulation2/helpers/SimulationCommand.h:21:
expanded from macro 'MOZ_RELEASE_ASSERT'
In file included from ../../../source/scriptinterface/ScriptInterface.h:25:
In file included from ../../../source/scriptinterface/ScriptTypes.h:63:
In file included from       MOZ_PASTE_PREFIX_AND_ARG_COUNT(MOZ_ASSERT_HELPER, __VA_ARGS__), \
../../../libraries/source/spidermonkey/include-unix-debug/jsapi.h:      ^
15:
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/MacroArgs.h:In file included from ../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Range.h72::1239: :
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Span.h:note: 257:5expanded from macro 'MOZ_PASTE_PREFIX_AND_ARG_COUNT'
: error: statement not allowed in constexpr function
  MOZ_PASTE_PREFIX_AND_ARG_COUNT_GLUE(MOZ_CONCAT,    \
                                      ^
    MOZ_RELEASE_ASSERT(lhs.span_ == rhs.span_);
    ^
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Assertions.h:459:7: note: expanded from macro 'MOZ_RELEASE_ASSERT'
      MOZ_PASTE_PREFIX_AND_ARG_COUNT(MOZ_ASSERT_HELPER, __VA_ARGS__), \
      ^
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/MacroArgs.h:72:39: note: expanded from macro 'MOZ_PASTE_PREFIX_AND_ARG_COUNT'
  MOZ_PASTE_PREFIX_AND_ARG_COUNT_GLUE(MOZ_CONCAT,    \
                                      ^
In file included from ../../../source/network/NetClientTurnManager.cpp:In file included from ../../../source/network/NetClient.cpp:2020:
In file included from :
In file included from ../../../source/network/NetClientTurnManager.h:../../../source/network/NetClient.h:24:
21:
In file included from ../../../source/scriptinterface/ScriptInterface.h:In file included from ../../../source/simulation2/system/TurnManager.h25:
In file included from ../../../source/scriptinterface/ScriptTypes.h:63:
:22In file included from ../../../libraries/source/spidermonkey/include-unix-debug/jsapi.h:
In file included from :15:
In file included from ../../../source/simulation2/helpers/SimulationCommand.h:../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Range.h:12:
21:
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Span.h:In file included from ../../../source/scriptinterface/ScriptInterface.h:308:5:25:
 errorIn file included from ../../../source/scriptinterface/ScriptTypes.h:: statement not allowed in constexpr constructor
63:
In file included from ../../../libraries/source/spidermonkey/include-unix-debug/jsapi.h:15:
In file included from ../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Range.h    MOZ_RELEASE_ASSERT(ext.size() == Ext);
:12    ^
:
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Span.h:308../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Assertions.h:459::57::  noteerror: statement not allowed in constexpr constructor
: expanded from macro 'MOZ_RELEASE_ASSERT'
    MOZ_RELEASE_ASSERT(ext.size() == Ext);
    ^
      MOZ_PASTE_PREFIX_AND_ARG_COUNT(MOZ_ASSERT_HELPER, __VA_ARGS__), \
      ^
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Assertions.h:../../../libraries/source/spidermonkey/include-unix-debug/mozilla/MacroArgs.h:459:72:7: 39:note:  note: expanded from macro 'MOZ_PASTE_PREFIX_AND_ARG_COUNT'
expanded from macro 'MOZ_RELEASE_ASSERT'
  MOZ_PASTE_PREFIX_AND_ARG_COUNT_GLUE(MOZ_CONCAT,    \
                                      ^
      MOZ_PASTE_PREFIX_AND_ARG_COUNT(MOZ_ASSERT_HELPER, __VA_ARGS__), \
      ^
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/MacroArgs.h:72:39: note: expanded from macro 'MOZ_PASTE_PREFIX_AND_ARG_COUNT'
  MOZ_PASTE_PREFIX_AND_ARG_COUNT_GLUE(MOZ_CONCAT,    \
                                      ^
In file included from ../../../source/network/NetClient.cpp:20:
In file included from ../../../source/network/NetClient.h:24:
In file included from ../../../source/scriptinterface/ScriptInterface.h:25:
In file included from ../../../source/scriptinterface/ScriptTypes.h:63:
In file included from ../../../libraries/source/spidermonkey/include-unix-debug/jsapi.h:15:
In file included from ../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Range.h:12:
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Span.h:312:5: In file included from ../../../source/network/NetClientTurnManager.cpp:error: 20:
statement not allowed in constexpr constructor
In file included from ../../../source/network/NetClientTurnManager.h:21:
In file included from ../../../source/simulation2/system/TurnManager.h:    MOZ_RELEASE_ASSERT(length == Ext);
22:
    ^
In file included from ../../../source/simulation2/helpers/SimulationCommand.h:21:
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Assertions.h:In file included from ../../../source/scriptinterface/ScriptInterface.h:459:7:25:
 note: expanded from macro 'MOZ_RELEASE_ASSERT'
In file included from ../../../source/scriptinterface/ScriptTypes.h:63:
In file included from       MOZ_PASTE_PREFIX_AND_ARG_COUNT(MOZ_ASSERT_HELPER, __VA_ARGS__), \
../../../libraries/source/spidermonkey/include-unix-debug/jsapi.h:15:
      ^
In file included from ../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Range.h:12:
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/MacroArgs.h:../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Span.h:72:312:5:39: note error: statement not allowed in constexpr constructor
: expanded from macro 'MOZ_PASTE_PREFIX_AND_ARG_COUNT'
    MOZ_RELEASE_ASSERT(length == Ext);
    ^
  MOZ_PASTE_PREFIX_AND_ARG_COUNT_GLUE(MOZ_CONCAT,    \
                                      ^
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Assertions.h:459:7: note: expanded from macro 'MOZ_RELEASE_ASSERT'
      MOZ_PASTE_PREFIX_AND_ARG_COUNT(MOZ_ASSERT_HELPER, __VA_ARGS__), \
      ^
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/MacroArgs.h:72:39: note: expanded from macro 'MOZ_PASTE_PREFIX_AND_ARG_COUNT'
  MOZ_PASTE_PREFIX_AND_ARG_COUNT_GLUE(MOZ_CONCAT,    \
                                      ^
In file included from ../../../source/network/NetClient.cpp:20:
In file included from ../../../source/network/NetClient.h:24:
In file included from ../../../source/scriptinterface/ScriptInterface.h:25:
In file included from ../../../source/scriptinterface/ScriptTypes.hIn file included from ../../../source/network/NetClientTurnManager.cpp::6320:
:
In file included from In file included from ../../../source/network/NetClientTurnManager.h../../../libraries/source/spidermonkey/include-unix-debug/jsapi.h:15:
:21In file included from ../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Range.h:
In file included from ../../../source/simulation2/system/TurnManager.h::12:
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Span.h:22:
586:In file included from ../../../source/simulation2/helpers/SimulationCommand.h:5:21:
In file included from ../../../source/scriptinterface/ScriptInterface.h:25:
 errorIn file included from ../../../source/scriptinterface/ScriptTypes.h:: statement not allowed in constexpr function63:
In file included from 
../../../libraries/source/spidermonkey/include-unix-debug/jsapi.h:15:
In file included from ../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Range.h    MOZ_RELEASE_ASSERT(Count <= size());
:12    ^
:
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Span.h:586:5:../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Assertions.h:459:7:  errornote: : statement not allowed in constexpr function
expanded from macro 'MOZ_RELEASE_ASSERT'
    MOZ_RELEASE_ASSERT(Count <= size());
    ^
      MOZ_PASTE_PREFIX_AND_ARG_COUNT(MOZ_ASSERT_HELPER, __VA_ARGS__), \
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Assertions.h:459:      ^
7: note: ../../../libraries/source/spidermonkey/include-unix-debug/mozilla/MacroArgs.h:72:expanded from macro 'MOZ_RELEASE_ASSERT'
39: note: expanded from macro 'MOZ_PASTE_PREFIX_AND_ARG_COUNT'
      MOZ_PASTE_PREFIX_AND_ARG_COUNT(MOZ_ASSERT_HELPER, __VA_ARGS__), \
      ^
  MOZ_PASTE_PREFIX_AND_ARG_COUNT_GLUE(MOZ_CONCAT,    \
                                      ^
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/MacroArgs.h:72:39: note: expanded from macro 'MOZ_PASTE_PREFIX_AND_ARG_COUNT'
  MOZ_PASTE_PREFIX_AND_ARG_COUNT_GLUE(MOZ_CONCAT,    \
                                      ^
In file included from ../../../source/network/NetClient.cpp:20:
In file included from ../../../source/network/NetClient.h:24:
In file included from ../../../source/scriptinterface/ScriptInterface.h:25:
In file included from ../../../source/scriptinterface/ScriptTypes.h:63:
In file included from In file included from ../../../source/network/NetClientTurnManager.cpp../../../libraries/source/spidermonkey/include-unix-debug/jsapi.h:15:
:20In file included from ../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Range.h:
In file included from :12../../../source/network/NetClientTurnManager.h::
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Span.h21:
:596In file included from ../../../source/simulation2/system/TurnManager.h:22:
:5In file included from ../../../source/simulation2/helpers/SimulationCommand.h:: 21:
In file included from ../../../source/scriptinterface/ScriptInterface.h:error: 25:
statement not allowed in constexpr function
In file included from ../../../source/scriptinterface/ScriptTypes.h:63:
In file included from ../../../libraries/source/spidermonkey/include-unix-debug/jsapi.h:    MOZ_RELEASE_ASSERT(Count <= len);
15:
    ^
In file included from ../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Range.h:../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Assertions.h:12:
459:../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Span.h:7:596:5 note: : expanded from macro 'MOZ_RELEASE_ASSERT'
error: statement not allowed in constexpr function
      MOZ_PASTE_PREFIX_AND_ARG_COUNT(MOZ_ASSERT_HELPER, __VA_ARGS__), \    MOZ_RELEASE_ASSERT(Count <= len);

      ^
    ^
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/MacroArgs.h:../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Assertions.h:72:39: 459:note: 7: noteexpanded from macro 'MOZ_PASTE_PREFIX_AND_ARG_COUNT'
: expanded from macro 'MOZ_RELEASE_ASSERT'
  MOZ_PASTE_PREFIX_AND_ARG_COUNT_GLUE(MOZ_CONCAT,    \
                                      ^
      MOZ_PASTE_PREFIX_AND_ARG_COUNT(MOZ_ASSERT_HELPER, __VA_ARGS__), \
      ^
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/MacroArgs.h:72:39: note: expanded from macro 'MOZ_PASTE_PREFIX_AND_ARG_COUNT'
  MOZ_PASTE_PREFIX_AND_ARG_COUNT_GLUE(MOZ_CONCAT,    \
                                      ^
In file included from ../../../source/network/NetClient.cpp:20:
In file included from ../../../source/network/NetClient.h:24:
In file included from ../../../source/scriptinterface/ScriptInterface.h:25:
In file included from ../../../source/scriptinterface/ScriptTypes.h:63:
In file included from ../../../libraries/source/spidermonkey/include-unix-debug/jsapi.h:15:
In file included from ../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Range.h:12:
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Span.h:606:5In file included from ../../../source/network/NetClientTurnManager.cpp:: 20:
error: In file included from ../../../source/network/NetClientTurnManager.h:statement not allowed in constexpr function
21:
In file included from ../../../source/simulation2/system/TurnManager.h:22:
    MOZ_RELEASE_ASSERT(Offset <= len &&
In file included from ../../../source/simulation2/helpers/SimulationCommand.h:    ^
21:
In file included from ../../../source/scriptinterface/ScriptInterface.h:25:
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Assertions.h:In file included from ../../../source/scriptinterface/ScriptTypes.h:459:63:
7:In file included from ../../../libraries/source/spidermonkey/include-unix-debug/jsapi.h: note15:
: expanded from macro 'MOZ_RELEASE_ASSERT'
In file included from ../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Range.h:12:
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Span.h:606:5      MOZ_PASTE_PREFIX_AND_ARG_COUNT(MOZ_ASSERT_HELPER, __VA_ARGS__), \
:       ^
error: ../../../libraries/source/spidermonkey/include-unix-debug/mozilla/MacroArgs.h:72:statement not allowed in constexpr function
39: note:     MOZ_RELEASE_ASSERT(Offset <= len &&
expanded from macro 'MOZ_PASTE_PREFIX_AND_ARG_COUNT'
    ^
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Assertions.h:459:  MOZ_PASTE_PREFIX_AND_ARG_COUNT_GLUE(MOZ_CONCAT,    \
7:                                      ^
 note: expanded from macro 'MOZ_RELEASE_ASSERT'
      MOZ_PASTE_PREFIX_AND_ARG_COUNT(MOZ_ASSERT_HELPER, __VA_ARGS__), \
      ^
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/MacroArgs.h:72:39: note: expanded from macro 'MOZ_PASTE_PREFIX_AND_ARG_COUNT'
  MOZ_PASTE_PREFIX_AND_ARG_COUNT_GLUE(MOZ_CONCAT,    \
                                      ^
In file included from ../../../source/network/NetClient.cpp:20:
In file included from ../../../source/network/NetClient.h:24:
In file included from ../../../source/scriptinterface/ScriptInterface.h:25:
In file included from ../../../source/scriptinterface/ScriptTypes.h:63:
In file included from ../../../libraries/source/spidermonkey/include-unix-debug/jsapi.h:15:
In file included from ../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Range.h:12:
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Span.h:615:5: error: statement not allowed in constexpr function
In file included from ../../../source/network/NetClientTurnManager.cpp:20:
In file included from ../../../source/network/NetClientTurnManager.h    MOZ_RELEASE_ASSERT(aCount <= size());
    ^
:21:
In file included from ../../../source/simulation2/system/TurnManager.h:22../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Assertions.h:459::
In file included from 7: note../../../source/simulation2/helpers/SimulationCommand.h:: expanded from macro 'MOZ_RELEASE_ASSERT'
21:
In file included from ../../../source/scriptinterface/ScriptInterface.h      MOZ_PASTE_PREFIX_AND_ARG_COUNT(MOZ_ASSERT_HELPER, __VA_ARGS__), \
:25:
In file included from ../../../source/scriptinterface/ScriptTypes.h:63:
      ^
In file included from ../../../libraries/source/spidermonkey/include-unix-debug/jsapi.h:15:
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/MacroArgs.h:In file included from ../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Range.h:72:12:
39: note../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Span.h:615: expanded from macro 'MOZ_PASTE_PREFIX_AND_ARG_COUNT':5
: error: statement not allowed in constexpr function
  MOZ_PASTE_PREFIX_AND_ARG_COUNT_GLUE(MOZ_CONCAT,    \
                                      ^
    MOZ_RELEASE_ASSERT(aCount <= size());
    ^
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Assertions.h:459:7: note: expanded from macro 'MOZ_RELEASE_ASSERT'
      MOZ_PASTE_PREFIX_AND_ARG_COUNT(MOZ_ASSERT_HELPER, __VA_ARGS__), \
      ^
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/MacroArgs.h:72:39: note: expanded from macro 'MOZ_PASTE_PREFIX_AND_ARG_COUNT'
  MOZ_PASTE_PREFIX_AND_ARG_COUNT_GLUE(MOZ_CONCAT,    \
                                      ^
In file included from ../../../source/network/NetClient.cpp:20:
In file included from ../../../source/network/NetClient.h:24:
In file included from ../../../source/scriptinterface/ScriptInterface.h:25:
In file included from ../../../source/scriptinterface/ScriptTypes.h:63:
In file included from ../../../libraries/source/spidermonkey/include-unix-debug/jsapi.h:15:
In file included from ../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Range.h:12:
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Span.h:624:5: error: statement not allowed in constexpr function
    MOZ_RELEASE_ASSERT(aCount <= len);
    ^
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Assertions.h:459:7: note: In file included from ../../../source/network/NetClientTurnManager.cpp:expanded from macro 'MOZ_RELEASE_ASSERT'
20:
In file included from ../../../source/network/NetClientTurnManager.h:21:
In file included from       MOZ_PASTE_PREFIX_AND_ARG_COUNT(MOZ_ASSERT_HELPER, __VA_ARGS__), \
../../../source/simulation2/system/TurnManager.h:22:
      ^
In file included from ../../../source/simulation2/helpers/SimulationCommand.h:21:
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/MacroArgs.h:In file included from ../../../source/scriptinterface/ScriptInterface.h:72:39:25:
 note: expanded from macro 'MOZ_PASTE_PREFIX_AND_ARG_COUNT'
In file included from ../../../source/scriptinterface/ScriptTypes.h:63:
In file included from   MOZ_PASTE_PREFIX_AND_ARG_COUNT_GLUE(MOZ_CONCAT,    \
../../../libraries/source/spidermonkey/include-unix-debug/jsapi.h:15:
                                      ^
In file included from ../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Range.h:12:
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Span.h:624:5: error: statement not allowed in constexpr function
    MOZ_RELEASE_ASSERT(aCount <= len);
    ^
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Assertions.h:459:7: note: expanded from macro 'MOZ_RELEASE_ASSERT'
      MOZ_PASTE_PREFIX_AND_ARG_COUNT(MOZ_ASSERT_HELPER, __VA_ARGS__), \
      ^
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/MacroArgs.h:72:39: note: expanded from macro 'MOZ_PASTE_PREFIX_AND_ARG_COUNT'
In file included from ../../../source/network/NetClient.cpp:20:
In file included from ../../../source/network/NetClient.h  MOZ_PASTE_PREFIX_AND_ARG_COUNT_GLUE(MOZ_CONCAT,    \
:24                                      ^
:
In file included from ../../../source/scriptinterface/ScriptInterface.h:25:
In file included from ../../../source/scriptinterface/ScriptTypes.h:63:
In file included from ../../../libraries/source/spidermonkey/include-unix-debug/jsapi.h:15:
In file included from ../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Range.h:12:
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Span.h:634:5: error: statement not allowed in constexpr function
    MOZ_RELEASE_ASSERT(aStart <= len && (aLength == dynamic_extent ||
    ^
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Assertions.h:459:7: note: expanded from macro 'MOZ_RELEASE_ASSERT'
In file included from ../../../source/network/NetClientTurnManager.cpp:20:
In file included from ../../../source/network/NetClientTurnManager.h:      MOZ_PASTE_PREFIX_AND_ARG_COUNT(MOZ_ASSERT_HELPER, __VA_ARGS__), \
21:
      ^
In file included from ../../../source/simulation2/system/TurnManager.h:22:
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/MacroArgs.h:In file included from ../../../source/simulation2/helpers/SimulationCommand.h:72:21:
39:In file included from ../../../source/scriptinterface/ScriptInterface.h: note25:
: expanded from macro 'MOZ_PASTE_PREFIX_AND_ARG_COUNT'In file included from ../../../source/scriptinterface/ScriptTypes.h
:63:
In file included from ../../../libraries/source/spidermonkey/include-unix-debug/jsapi.h:15:
  MOZ_PASTE_PREFIX_AND_ARG_COUNT_GLUE(MOZ_CONCAT,    \
In file included from ../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Range.h:                                      ^
12:
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Span.h:634:5: error: statement not allowed in constexpr function
    MOZ_RELEASE_ASSERT(aStart <= len && (aLength == dynamic_extent ||
    ^
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Assertions.h:459:7: note: expanded from macro 'MOZ_RELEASE_ASSERT'
      MOZ_PASTE_PREFIX_AND_ARG_COUNT(MOZ_ASSERT_HELPER, __VA_ARGS__), \
      ^
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/MacroArgs.h:72:39: note: expanded from macro 'MOZ_PASTE_PREFIX_AND_ARG_COUNT'
In file included from ../../../source/network/NetClient.cpp:20:
In file included from ../../../source/network/NetClient.h:  MOZ_PASTE_PREFIX_AND_ARG_COUNT_GLUE(MOZ_CONCAT,    \
24:
                                      ^
In file included from ../../../source/scriptinterface/ScriptInterface.h:25:
In file included from ../../../source/scriptinterface/ScriptTypes.h:63:
In file included from ../../../libraries/source/spidermonkey/include-unix-debug/jsapi.h:15:
In file included from ../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Range.h:12:
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Span.h:660:5: error: statement not allowed in constexpr function
    MOZ_RELEASE_ASSERT(aStart <= aEnd);
    ^
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Assertions.h:459:7: note: expanded from macro 'MOZ_RELEASE_ASSERT'
      MOZ_PASTE_PREFIX_AND_ARG_COUNT(MOZ_ASSERT_HELPER, __VA_ARGS__), \
      ^
In file included from ../../../source/network/NetClientTurnManager.cpp:20../../../libraries/source/spidermonkey/include-unix-debug/mozilla/MacroArgs.h::
In file included from 72:39:../../../source/network/NetClientTurnManager.h: note21:
: expanded from macro 'MOZ_PASTE_PREFIX_AND_ARG_COUNT'
In file included from ../../../source/simulation2/system/TurnManager.h:22:
In file included from ../../../source/simulation2/helpers/SimulationCommand.h:  MOZ_PASTE_PREFIX_AND_ARG_COUNT_GLUE(MOZ_CONCAT,    \
21:
                                      ^
In file included from ../../../source/scriptinterface/ScriptInterface.h:25:
In file included from ../../../source/scriptinterface/ScriptTypes.h:63:
In file included from ../../../libraries/source/spidermonkey/include-unix-debug/jsapi.h:15:
In file included from ../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Range.h:12:
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Span.h:660:5: error: statement not allowed in constexpr function
    MOZ_RELEASE_ASSERT(aStart <= aEnd);
    ^
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Assertions.h:459:7: note: expanded from macro 'MOZ_RELEASE_ASSERT'
      MOZ_PASTE_PREFIX_AND_ARG_COUNT(MOZ_ASSERT_HELPER, __VA_ARGS__), \
      ^
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/MacroArgs.h:72:39: note: expanded from macro 'MOZ_PASTE_PREFIX_AND_ARG_COUNT'
  MOZ_PASTE_PREFIX_AND_ARG_COUNT_GLUE(MOZ_CONCAT,    \
                                      ^
In file included from ../../../source/network/NetClient.cpp:20:
In file included from ../../../source/network/NetClient.h:24:
In file included from ../../../source/scriptinterface/ScriptInterface.h:25:
In file included from ../../../source/scriptinterface/ScriptTypes.h:63:
In file included from ../../../libraries/source/spidermonkey/include-unix-debug/jsapi.h:15:
In file included from ../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Range.h:12:
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Span.h:700:5: error: statement not allowed in constexpr function
    MOZ_RELEASE_ASSERT(idx < storage_.size());
    ^
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Assertions.h:459:7: note: expanded from macro 'MOZ_RELEASE_ASSERT'
      MOZ_PASTE_PREFIX_AND_ARG_COUNT(MOZ_ASSERT_HELPER, __VA_ARGS__), \
      ^
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/MacroArgs.h:72:39: note: expanded from macro 'MOZ_PASTE_PREFIX_AND_ARG_COUNT'
  MOZ_PASTE_PREFIX_AND_ARG_COUNT_GLUE(MOZ_CONCAT,    \
                                      ^
In file included from ../../../source/network/NetClientTurnManager.cpp:20:
In file included from ../../../source/network/NetClientTurnManager.h:21:
In file included from ../../../source/simulation2/system/TurnManager.h:22:
In file included from ../../../source/simulation2/helpers/SimulationCommand.h:21:
In file included from ../../../source/scriptinterface/ScriptInterface.h:25:
In file included from ../../../source/scriptinterface/ScriptTypes.h:63:
In file included from ../../../libraries/source/spidermonkey/include-unix-debug/jsapi.h:15:
In file included from ../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Range.h:12:
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Span.h:700:5: error: statement not allowed in constexpr function
    MOZ_RELEASE_ASSERT(idx < storage_.size());
    ^
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Assertions.h:459:7: note: expanded from macro 'MOZ_RELEASE_ASSERT'
      MOZ_PASTE_PREFIX_AND_ARG_COUNT(MOZ_ASSERT_HELPER, __VA_ARGS__), \
      ^
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/MacroArgs.h:72:39: note: expanded from macro 'MOZ_PASTE_PREFIX_AND_ARG_COUNT'
  MOZ_PASTE_PREFIX_AND_ARG_COUNT_GLUE(MOZ_CONCAT,    \
                                      ^
In file included from ../../../source/network/NetClient.cpp:20:
In file included from ../../../source/network/NetClient.h:24:
In file included from ../../../source/scriptinterface/ScriptInterface.h:25:
In file included from ../../../source/scriptinterface/ScriptTypes.h:63:
In file included from ../../../libraries/source/spidermonkey/include-unix-debug/jsapi.h:15:
In file included from ../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Range.h:12:
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Span.h:760:7: error: statement not allowed in constexpr constructor
      MOZ_RELEASE_ASSERT(
      ^
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Assertions.h:459:7: note: expanded from macro 'MOZ_RELEASE_ASSERT'
      MOZ_PASTE_PREFIX_AND_ARG_COUNT(MOZ_ASSERT_HELPER, __VA_ARGS__), \
      ^
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/MacroArgs.h:72:39: note: expanded from macro 'MOZ_PASTE_PREFIX_AND_ARG_COUNT'
  MOZ_PASTE_PREFIX_AND_ARG_COUNT_GLUE(MOZ_CONCAT,    \
                                      ^
In file included from ../../../source/network/NetClientTurnManager.cpp:20:
In file included from ../../../source/network/NetClientTurnManager.h:21:
In file included from ../../../source/simulation2/system/TurnManager.h:22:
In file included from ../../../source/simulation2/helpers/SimulationCommand.h:21:
In file included from ../../../source/scriptinterface/ScriptInterface.h:25:
In file included from ../../../source/scriptinterface/ScriptTypes.h:63:
In file included from ../../../libraries/source/spidermonkey/include-unix-debug/jsapi.h:15:
In file included from ../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Range.h:12:
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Span.h:760:7: error: statement not allowed in constexpr constructor
      MOZ_RELEASE_ASSERT(
      ^
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/Assertions.h:459:7: note: expanded from macro 'MOZ_RELEASE_ASSERT'
      MOZ_PASTE_PREFIX_AND_ARG_COUNT(MOZ_ASSERT_HELPER, __VA_ARGS__), \
      ^
../../../libraries/source/spidermonkey/include-unix-debug/mozilla/MacroArgs.h:72:39: note: expanded from macro 'MOZ_PASTE_PREFIX_AND_ARG_COUNT'
  MOZ_PASTE_PREFIX_AND_ARG_COUNT_GLUE(MOZ_CONCAT,    \
                                      ^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.
20 errors generated.
make[1]: *** [obj/network_Debug/NetHost.o] Error 1
make[1]: *** Waiting for unfinished jobs....
make[1]: *** [obj/network_Debug/NetFileTransfer.o] Error 1
20 errors generated.
make[1]: *** [obj/network_Debug/NetClient.o] Error 1
20 errors generated.
make[1]: *** [obj/network_Debug/NetClientTurnManager.o] Error 1
make: *** [network] Error 2

Link to build: https://jenkins.wildfiregames.com/job/macos-differential/2023/display/redirect

Build failure - The Moirai have given mortals hearts that can endure.

Link to build: https://jenkins.wildfiregames.com/job/vs2015-differential/3125/display/redirect

wraitii updated this revision to Diff 14088.Nov 19 2020, 8:07 PM

Fix typo. Hopefully runs.

Successful build - Chance fights ever on the side of the prudent.

builderr-debug-gcc6.txt
In file included from ../../../source/gui/GUIObjectTypes.cpp:35:0:
../../../source/gui/Scripting/JSInterface_GUIProxy.h: In instantiation of 'class JSI_GUIProxy<IGUIObject>':
../../../source/gui/GUIObjectTypes.cpp:39:45:   required from here
../../../source/gui/Scripting/JSInterface_GUIProxy.h:39:7: warning: base class 'class js::BaseProxyHandler' has accessible non-virtual destructor [-Wnon-virtual-dtor]
 class JSI_GUIProxy : public js::BaseProxyHandler
       ^~~~~~~~~~~~
../../../source/gui/Scripting/JSInterface_GUIProxy.h: In instantiation of 'class JSI_GUIProxy<CText>':
../../../source/gui/GUIObjectTypes.cpp:40:40:   required from here
../../../source/gui/Scripting/JSInterface_GUIProxy.h:39:7: warning: base class 'class js::BaseProxyHandler' has accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from ../../../source/gui/ObjectBases/IGUIObject.cpp:24:0:
../../../source/gui/Scripting/JSInterface_GUIProxy.h: In instantiation of 'class JSI_GUIProxy<IGUIObject>':
../../../source/gui/ObjectBases/IGUIObject.cpp:457:44:   required from here
../../../source/gui/Scripting/JSInterface_GUIProxy.h:39:7: warning: base class 'class js::BaseProxyHandler' has accessible non-virtual destructor [-Wnon-virtual-dtor]
 class JSI_GUIProxy : public js::BaseProxyHandler
       ^~~~~~~~~~~~
In file included from ../../../source/gui/ObjectTypes/CText.cpp:25:0:
../../../source/gui/Scripting/JSInterface_GUIProxy.h: In instantiation of 'class JSI_GUIProxy<IGUIObject>':
../../../source/gui/ObjectTypes/CText.cpp:262:44:   required from here
../../../source/gui/Scripting/JSInterface_GUIProxy.h:39:7: warning: base class 'class js::BaseProxyHandler' has accessible non-virtual destructor [-Wnon-virtual-dtor]
 class JSI_GUIProxy : public js::BaseProxyHandler
       ^~~~~~~~~~~~
../../../source/gui/Scripting/JSInterface_GUIProxy.h: In instantiation of 'class JSI_GUIProxy<CText>':
../../../source/gui/ObjectTypes/CText.cpp:265:71:   required from here
../../../source/gui/Scripting/JSInterface_GUIProxy.h:39:7: warning: base class 'class js::BaseProxyHandler' has accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from ../../../source/gui/Scripting/JSInterface_CText.cpp:20:0:
../../../source/gui/Scripting/JSInterface_GUIProxy.h: In instantiation of 'class JSI_GUIProxy<CText>':
../../../source/gui/Scripting/JSInterface_CText.cpp:47:25:   required from here
../../../source/gui/Scripting/JSInterface_GUIProxy.h:39:7: warning: base class 'class js::BaseProxyHandler' has accessible non-virtual destructor [-Wnon-virtual-dtor]
 class JSI_GUIProxy : public js::BaseProxyHandler
       ^~~~~~~~~~~~
In file included from ../../../source/gui/Scripting/JSInterface_IGUIObject.cpp:20:0:
../../../source/gui/Scripting/JSInterface_GUIProxy.h: In instantiation of 'class JSI_GUIProxy<IGUIObject>':
../../../source/gui/Scripting/JSInterface_IGUIObject.cpp:46:30:   required from here
../../../source/gui/Scripting/JSInterface_GUIProxy.h:39:7: warning: base class 'class js::BaseProxyHandler' has accessible non-virtual destructor [-Wnon-virtual-dtor]
 class JSI_GUIProxy : public js::BaseProxyHandler
       ^~~~~~~~~~~~
builderr-release-gcc6.txt
In file included from ../../../source/gui/GUIObjectTypes.cpp:35:0:
../../../source/gui/Scripting/JSInterface_GUIProxy.h: In instantiation of 'class JSI_GUIProxy<IGUIObject>':
../../../source/gui/GUIObjectTypes.cpp:39:45:   required from here
../../../source/gui/Scripting/JSInterface_GUIProxy.h:39:7: warning: base class 'class js::BaseProxyHandler' has accessible non-virtual destructor [-Wnon-virtual-dtor]
 class JSI_GUIProxy : public js::BaseProxyHandler
       ^~~~~~~~~~~~
../../../source/gui/Scripting/JSInterface_GUIProxy.h: In instantiation of 'class JSI_GUIProxy<CText>':
../../../source/gui/GUIObjectTypes.cpp:40:40:   required from here
../../../source/gui/Scripting/JSInterface_GUIProxy.h:39:7: warning: base class 'class js::BaseProxyHandler' has accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from ../../../source/gui/ObjectBases/IGUIObject.cpp:24:0:
../../../source/gui/Scripting/JSInterface_GUIProxy.h: In instantiation of 'class JSI_GUIProxy<IGUIObject>':
../../../source/gui/ObjectBases/IGUIObject.cpp:457:44:   required from here
../../../source/gui/Scripting/JSInterface_GUIProxy.h:39:7: warning: base class 'class js::BaseProxyHandler' has accessible non-virtual destructor [-Wnon-virtual-dtor]
 class JSI_GUIProxy : public js::BaseProxyHandler
       ^~~~~~~~~~~~
In file included from ../../../source/gui/ObjectTypes/CText.cpp:25:0:
../../../source/gui/Scripting/JSInterface_GUIProxy.h: In instantiation of 'class JSI_GUIProxy<IGUIObject>':
../../../source/gui/ObjectTypes/CText.cpp:262:44:   required from here
../../../source/gui/Scripting/JSInterface_GUIProxy.h:39:7: warning: base class 'class js::BaseProxyHandler' has accessible non-virtual destructor [-Wnon-virtual-dtor]
 class JSI_GUIProxy : public js::BaseProxyHandler
       ^~~~~~~~~~~~
../../../source/gui/Scripting/JSInterface_GUIProxy.h: In instantiation of 'class JSI_GUIProxy<CText>':
../../../source/gui/ObjectTypes/CText.cpp:265:71:   required from here
../../../source/gui/Scripting/JSInterface_GUIProxy.h:39:7: warning: base class 'class js::BaseProxyHandler' has accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from ../../../source/gui/Scripting/JSInterface_CText.cpp:20:0:
../../../source/gui/Scripting/JSInterface_GUIProxy.h: In instantiation of 'class JSI_GUIProxy<CText>':
../../../source/gui/Scripting/JSInterface_CText.cpp:47:25:   required from here
../../../source/gui/Scripting/JSInterface_GUIProxy.h:39:7: warning: base class 'class js::BaseProxyHandler' has accessible non-virtual destructor [-Wnon-virtual-dtor]
 class JSI_GUIProxy : public js::BaseProxyHandler
       ^~~~~~~~~~~~
In file included from ../../../source/gui/Scripting/JSInterface_IGUIObject.cpp:20:0:
../../../source/gui/Scripting/JSInterface_GUIProxy.h: In instantiation of 'class JSI_GUIProxy<IGUIObject>':
../../../source/gui/Scripting/JSInterface_IGUIObject.cpp:46:30:   required from here
../../../source/gui/Scripting/JSInterface_GUIProxy.h:39:7: warning: base class 'class js::BaseProxyHandler' has accessible non-virtual destructor [-Wnon-virtual-dtor]
 class JSI_GUIProxy : public js::BaseProxyHandler
       ^~~~~~~~~~~~

Link to build: https://jenkins.wildfiregames.com/job/docker-differential/3686/display/redirect

Successful build - Chance fights ever on the side of the prudent.

builderr-release-macos.txt
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: ../../../binaries/system/libnetwork.a(precompiled.o) has no symbols
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: ../../../binaries/system/libsimulation2.a(precompiled.o) has no symbols
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: ../../../binaries/system/libscriptinterface.a(precompiled.o) has no symbols
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: ../../../binaries/system/libengine.a(precompiled.o) has no symbols
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: ../../../binaries/system/libgraphics.a(precompiled.o) has no symbols
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: ../../../binaries/system/libatlas.a(precompiled.o) has no symbols
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: ../../../binaries/system/libgui.a(precompiled.o) has no symbols

Link to build: https://jenkins.wildfiregames.com/job/macos-differential/2031/display/redirect

Silier added a subscriber: Silier.Nov 20 2020, 8:38 AM

Why is source/gui/Scripting/JSInterface_GUIProxy_impl.h h file ?
Is there strong reason why it cannot have h and cpp parts?

source/gui/GUIObjectTypes.h
1

^

source/gui/ObjectBases/IGUIObject.h
1

^

source/gui/ObjectTypes/CText.h
1
In D2768#137548, @Angen wrote:

Is there strong reason why it cannot have h and cpp parts?

Compilation-time efficiency. As GUIProxy is templated, all instantiations must have access to the definitions. I could put them directly in the .h, as is usually done, but that would require including more headers in that file, and that's bad.
However, since all usages of GUIProxy are explicit instantiations, I can just put the definitions in a separate "template" file, and include that in TUs that need it. This is basically a ".tpp" or ".ipp" file, as talked about here. It's relatively common. I didn't name it .tpp or .ipp as that would make it less recognisable as a c++ file, but I added _impl for that.

wraitii updated this revision to Diff 14101.Nov 20 2020, 10:31 AM

Fix warnings about non virtual destructor in GUIProxy.h

Successful build - Chance fights ever on the side of the prudent.

builderr-release-macos.txt
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: ../../../binaries/system/libnetwork.a(precompiled.o) has no symbols
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: ../../../binaries/system/libsimulation2.a(precompiled.o) has no symbols
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: ../../../binaries/system/libscriptinterface.a(precompiled.o) has no symbols
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: ../../../binaries/system/libengine.a(precompiled.o) has no symbols
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: ../../../binaries/system/libgraphics.a(precompiled.o) has no symbols
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: ../../../binaries/system/libatlas.a(precompiled.o) has no symbols
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: ../../../binaries/system/libgui.a(precompiled.o) has no symbols

Link to build: https://jenkins.wildfiregames.com/job/macos-differential/2043/display/redirect

Stan added a comment.Nov 20 2020, 6:25 PM

As noted in D3126 there are a few warnings on MSVC2015 C++14

source\gui/Scripting/JSInterface_GUIProxy.h(121): warning C4265: 'JSI_GUIProxy<IGUIObject>': class has virtual functions, but destructor is not virtual
source\gui/Scripting/JSInterface_GUIProxy.h(121): warning C4265: 'JSI_GUIProxy<CText>': class has virtual functions, but destructor is not virtual
source\gui\scripting\JSInterface_GUIProxy.h(121): warning C4265: 'JSI_GUIProxy<CText>': class has virtual functions, but destructor is not virtual 
source\gui\scripting\JSInterface_GUIProxy.h(121): warning C4265: 'JSI_GUIProxy<IGUIObject>': class has virtual functions, but destructor is not virtual 
source\gui/Scripting/JSInterface_GUIProxy.h(121): warning C4265: 'JSI_GUIProxy<IGUIObject>': class has virtual functions, but destructor is not virtual 
source\gui/Scripting/JSInterface_GUIProxy.h(121): warning C4265: 'JSI_GUIProxy<IGUIObject>': class has virtual functions, but destructor is not virtual 
source\gui/Scripting/JSInterface_GUIProxy.h(121): warning C4265: 'JSI_GUIProxy<CText>': class has virtual functions, but destructor is not virtual
wraitii updated this revision to Diff 14123.Nov 21 2020, 2:35 PM

Fix MSVC warnings, ready for merge.

Build failure - The Moirai have given mortals hearts that can endure.

builderr-debug-macos.txt
../../../source/simulation2/scripting/JSInterface_Simulation.cpp:154:4: warning: suggest braces around initialization of subobject [-Wmissing-braces]
                        CFixedVector2D(-halfSize.X, -halfSize.Y),
                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 warning generated.
In file included from ../../../source/ps/CConsole.cpp:30:
In file included from ../../../source/gui/CGUI.h:27:
In file included from ../../../source/gui/ObjectTypes/CGUIDummyObject.h:26:
../../../source/gui/ObjectBases/IGUIObject.h:422:52: error: no type named 'HandleValueArray' in namespace 'JS'; did you mean 'HandleValue'?
        void ScriptEvent(const CStr& eventName, const JS::HandleValueArray& paramData);
                                                      ~~~~^~~~~~~~~~~~~~~~
                                                          HandleValue
../../../libraries/source/spidermonkey/include-unix-debug/js/TypeDecls.h:51:29: note: 'HandleValue' declared here
typedef Handle<Value>       HandleValue;
                            ^
In file included from ../../../source/ps/CConsole.cpp:30:
In file included from ../../../source/gui/CGUI.h:27:
In file included from ../../../source/gui/ObjectTypes/CGUIDummyObject.h:26:
../../../source/gui/ObjectBases/IGUIObject.h:433:62: error: no type named 'HandleValueArray' in namespace 'JS'; did you mean 'HandleValue'?
        bool ScriptEventWithReturn(const CStr& eventName, const JS::HandleValueArray& paramData);
                                                                ~~~~^~~~~~~~~~~~~~~~
                                                                    HandleValue
../../../libraries/source/spidermonkey/include-unix-debug/js/TypeDecls.h:51:29: note: 'HandleValue' declared here
typedef Handle<Value>       HandleValue;
                            ^
In file included from ../../../source/ps/CConsole.cpp:30:
In file included from ../../../source/gui/CGUI.h:27:
In file included from ../../../source/gui/ObjectTypes/CGUIDummyObject.h:26:
../../../source/gui/ObjectBases/IGUIObject.h:496:20: error: unknown type name 'JSTracer'
        static void Trace(JSTracer* trc, void* data)
                          ^
../../../source/gui/ObjectBases/IGUIObject.h:501:19: error: unknown type name 'JSTracer'
        void TraceMember(JSTracer* trc);
                         ^
../../../source/gui/ObjectBases/IGUIObject.h:536:21: error: no member named 'Heap' in namespace 'JS'
        std::map<CStr, JS::Heap<JSObject*> > m_ScriptHandlers;
                       ~~~~^
../../../source/gui/ObjectBases/IGUIObject.h:536:26: error: 'JSObject' does not refer to a value
        std::map<CStr, JS::Heap<JSObject*> > m_ScriptHandlers;
                                ^
../../../libraries/source/spidermonkey/include-unix-debug/js/TypeDecls.h:27:7: note: declared here
class JSObject;
      ^
In file included from ../../../source/ps/CConsole.cpp:30:
In file included from ../../../source/gui/CGUI.h:27:
In file included from ../../../source/gui/ObjectTypes/CGUIDummyObject.h:26:
../../../source/gui/ObjectBases/IGUIObject.h:536:35: error: expected expression
        std::map<CStr, JS::Heap<JSObject*> > m_ScriptHandlers;
                                         ^
../../../source/gui/ObjectBases/IGUIObject.h:536:37: error: expected member name or ';' after declaration specifiers
        std::map<CStr, JS::Heap<JSObject*> > m_ScriptHandlers;
                                           ^
../../../source/gui/ObjectBases/IGUIObject.h:539:29: error: implicit instantiation of undefined template 'JS::PersistentRooted<JSObject *>'
        JS::PersistentRootedObject m_JSObject;
                                   ^
../../../libraries/source/spidermonkey/include-unix-debug/js/TypeDecls.h:43:29: note: template is declared here
template <typename T> class PersistentRooted;
                            ^
In file included from ../../../source/ps/CConsole.cpp:30:
In file included from ../../../source/gui/CGUI.h:27:
../../../source/gui/ObjectTypes/CGUIDummyObject.h:31:7: warning: 'CGUIDummyObject' has virtual functions but non-virtual destructor [-Wnon-virtual-dtor]
class CGUIDummyObject : public IGUIObject
      ^
../../../source/gui/ObjectTypes/CGUIDummyObject.h:33:2: error: cannot initialize return object of type 'IGUIObject *' with an rvalue of type 'CGUIDummyObject *'
        GUI_OBJECT(CGUIDummyObject)
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~
../../../source/gui/ObjectBases/IGUIObject.h:49:12: note: expanded from macro 'GUI_OBJECT'
                { return new obj(pGUI); }
                         ^~~~~~~~~~~~~
1 warning and 10 errors generated.
make[1]: *** [obj/engine_Debug/CConsole.o] Error 1
make[1]: *** Waiting for unfinished jobs....
make: *** [engine] Error 2

Link to build: https://jenkins.wildfiregames.com/job/macos-differential/2060/display/redirect

Build failure - The Moirai have given mortals hearts that can endure.

Link to build: https://jenkins.wildfiregames.com/job/vs2015-differential/3161/display/redirect

Build failure - The Moirai have given mortals hearts that can endure.

builderr-debug-gcc6.txt
In file included from ../../../source/gui/ObjectTypes/CGUIDummyObject.h:26:0,
                 from ../../../source/gui/CGUI.h:27,
                 from ../../../source/ps/CConsole.cpp:30:
../../../source/gui/ObjectBases/IGUIObject.h:422:52: error: 'HandleValueArray' in namespace 'JS' does not name a type
  void ScriptEvent(const CStr& eventName, const JS::HandleValueArray& paramData);
                                                    ^~~~~~~~~~~~~~~~
../../../source/gui/ObjectBases/IGUIObject.h:433:62: error: 'HandleValueArray' in namespace 'JS' does not name a type
  bool ScriptEventWithReturn(const CStr& eventName, const JS::HandleValueArray& paramData);
                                                              ^~~~~~~~~~~~~~~~
../../../source/gui/ObjectBases/IGUIObject.h:496:20: error: 'JSTracer' has not been declared
  static void Trace(JSTracer* trc, void* data)
                    ^~~~~~~~
../../../source/gui/ObjectBases/IGUIObject.h:501:19: error: 'JSTracer' has not been declared
  void TraceMember(JSTracer* trc);
                   ^~~~~~~~
../../../source/gui/ObjectBases/IGUIObject.h:536:17: error: 'Heap' is not a member of 'JS'
  std::map<CStr, JS::Heap<JSObject*> > m_ScriptHandlers;
                 ^~
../../../source/gui/ObjectBases/IGUIObject.h:536:17: error: 'Heap' is not a member of 'JS'
../../../source/gui/ObjectBases/IGUIObject.h:536:35: error: template argument 2 is invalid
  std::map<CStr, JS::Heap<JSObject*> > m_ScriptHandlers;
                                   ^
../../../source/gui/ObjectBases/IGUIObject.h:536:35: error: template argument 4 is invalid
../../../source/gui/ObjectBases/IGUIObject.h:536:37: error: expected unqualified-id before '>' token
  std::map<CStr, JS::Heap<JSObject*> > m_ScriptHandlers;
                                     ^
../../../source/gui/ObjectBases/IGUIObject.h:539:29: error: field 'm_JSObject' has incomplete type 'JS::PersistentRootedObject {aka JS::PersistentRooted<JSObject*>}'
  JS::PersistentRootedObject m_JSObject;
                             ^~~~~~~~~~
In file included from ../../../source/scriptinterface/ScriptForward.h:21:0,
                 from ../../../source/gui/SettingTypes/CGUISize.h:22,
                 from ../../../source/gui/ObjectBases/IGUIObject.h:28,
                 from ../../../source/gui/ObjectTypes/CGUIDummyObject.h:26,
                 from ../../../source/gui/CGUI.h:27,
                 from ../../../source/ps/CConsole.cpp:30:
../../../libraries/source/spidermonkey/include-unix-debug/js/TypeDecls.h:43:29: note: declaration of 'JS::PersistentRootedObject {aka class JS::PersistentRooted<JSObject*>}'
 template <typename T> class PersistentRooted;
                             ^~~~~~~~~~~~~~~~
make[1]: *** [obj/engine_Debug/CConsole.o] Error 1
make: *** [engine] Error 2

Link to build: https://jenkins.wildfiregames.com/job/docker-differential/3716/display/redirect

wraitii updated this revision to Diff 14124.Nov 21 2020, 3:01 PM

Needed a rebase ofc.

Build failure - The Moirai have given mortals hearts that can endure.

builderr-release-gcc6.txt

g++: internal compiler error: Segmentation fault (program cc1plus)
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://gcc.gnu.org/bugs.html> for instructions.
make[1]: *** [obj/atlas_Release/MapHandlers.o] Error 4
make: *** [atlas] Error 2

Link to build: https://jenkins.wildfiregames.com/job/docker-differential/3717/display/redirect

Successful build - Chance fights ever on the side of the prudent.

builderr-debug-macos.txt
In file included from ../../../source/graphics/tests/test_Camera.cpp:17:
/Users/wfg/Jenkins/workspace/macos-differential/source/graphics/tests/test_Camera.h:168:4: warning: suggest braces around initialization of subobject [-Wmissing-braces]
                        CVector3D(-101.0f, -101.0f, 101.0f),
                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 warning generated.
In file included from ../../../source/simulation2/tests/test_SerializeTemplates.cpp:17:
/Users/wfg/Jenkins/workspace/macos-differential/source/simulation2/tests/test_SerializeTemplates.h:39:4: warning: suggest braces around initialization of subobject [-Wmissing-braces]
                        3, 0, 1, 4, 1, 5
                        ^~~~~~~~~~~~~~~~
                        {               }
1 warning generated.
builderr-release-macos.txt
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: ../../../binaries/system/libnetwork.a(precompiled.o) has no symbols
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: ../../../binaries/system/liblobby.a(precompiled.o) has no symbols
../../../source/simulation2/scripting/JSInterface_Simulation.cpp:154:4: warning: suggest braces around initialization of subobject [-Wmissing-braces]
                        CFixedVector2D(-halfSize.X, -halfSize.Y),
                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 warning generated.
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: ../../../binaries/system/libsimulation2.a(precompiled.o) has no symbols
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: ../../../binaries/system/libscriptinterface.a(precompiled.o) has no symbols
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: ../../../binaries/system/libengine.a(precompiled.o) has no symbols
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: ../../../binaries/system/libgraphics.a(precompiled.o) has no symbols
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: ../../../binaries/system/libatlas.a(precompiled.o) has no symbols
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: ../../../binaries/system/libgui.a(precompiled.o) has no symbols
In file included from ../../../source/graphics/tests/test_Camera.cpp:17:
/Users/wfg/Jenkins/workspace/macos-differential/source/graphics/tests/test_Camera.h:168:4: warning: suggest braces around initialization of subobject [-Wmissing-braces]
                        CVector3D(-101.0f, -101.0f, 101.0f),
                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 warning generated.
In file included from ../../../source/simulation2/tests/test_SerializeTemplates.cpp:17:
/Users/wfg/Jenkins/workspace/macos-differential/source/simulation2/tests/test_SerializeTemplates.h:39:4: warning: suggest braces around initialization of subobject [-Wmissing-braces]
                        3, 0, 1, 4, 1, 5
                        ^~~~~~~~~~~~~~~~
                        {               }
1 warning generated.

Link to build: https://jenkins.wildfiregames.com/job/macos-differential/2061/display/redirect

Vulcan requested changes to this revision.Nov 21 2020, 3:26 PM

Build failure - The Moirai have given mortals hearts that can endure.

builderr-release-gcc6.txt

g++: internal compiler error: Segmentation fault (program cc1plus)
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://gcc.gnu.org/bugs.html> for instructions.
make[1]: *** [obj/atlas_Release/MapHandlers.o] Error 4
make: *** [atlas] Error 2

Link to build: https://jenkins.wildfiregames.com/job/docker-differential/3718/display/redirect

This revision now requires changes to proceed.Nov 21 2020, 3:26 PM
Vulcan resigned from this revision.Nov 21 2020, 5:11 PM

Successful build - Chance fights ever on the side of the prudent.

Link to build: https://jenkins.wildfiregames.com/job/docker-differential/3719/display/redirect

This revision now requires review to proceed.Nov 21 2020, 5:11 PM
This revision was not accepted when it landed; it landed in state Needs Review.Nov 21 2020, 6:49 PM
This revision was landed with ongoing or failed builds.
This revision was automatically updated to reflect the committed changes.