Page MenuHomeWildfire Games

[SM68] API changes
ClosedPublic

Authored by wraitii on Nov 25 2020, 3:45 PM.

Details

Reviewers
None
Commits
rP24297: [SM68 2/2] Update to Spidermonkey 68 APIs
Trac Tickets
#5860
Summary

See Windows users: see https://github.com/wraitii/0ad/tree/sm68

These are the API changes for SM68. They're all essentially trivial.

Overall:

  • Remove UTF16 script execution since UTF8 is supported in SM68 and 78
  • Header movement
  • Realms replace Compartments (basically 1-1)
  • JSRequests are removed entirely.
  • Trivial API updates in ProxyHandlers, ArrayBuffer, Warnings, GC reasons, Context options, ObjectIsFunction, ValueVectors and JSCompartment
Test Plan

Compile the game, run it, run MP games, test JS stuff.

Diff Detail

Repository
rP 0 A.D. Public Repository
Lint
Automatic diff as part of commit; lint not applicable.
Unit
Automatic diff as part of commit; unit tests not applicable.

Event Timeline

wraitii created this revision.Nov 25 2020, 3:45 PM
Owners added a subscriber: Restricted Owners Package.Nov 25 2020, 3:45 PM

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

builderr-debug-gcc7.txt
In file included from ../../../source/scriptinterface/ScriptInterface.h:485,
                 from ../../../source/network/NetClient.h:24,
                 from ../../../source/network/NetClient.cpp:20:
../../../source/scriptinterface/NativeWrapperDefns.h:164:64: error: 'JS::MutableHandleValueVector' has not been declared
 static void AssignOrToJSValHelper(const ScriptRequest& rq, JS::MutableHandleValueVector argv, const T& a, const Ts&... params)
                                                                ^~~~~~~~~~~~~~~~~~~~~~~~
../../../source/scriptinterface/NativeWrapperDefns.h: In function 'void AssignOrToJSValHelper(const ScriptRequest&, int, const T&, const Ts& ...)':
../../../source/scriptinterface/NativeWrapperDefns.h:166:45: error: invalid types 'int[int]' for array subscript
  ScriptInterface::AssignOrToJSVal(rq, argv[i], a);
                                             ^
../../../source/scriptinterface/NativeWrapperDefns.h: At global scope:
../../../source/scriptinterface/NativeWrapperDefns.h:171:72: error: 'JS::MutableHandleValueVector' has not been declared
 static void AssignOrToJSValHelper(const ScriptRequest& UNUSED(rq), JS::MutableHandleValueVector UNUSED(argv))
                                                                        ^~~~~~~~~~~~~~~~~~~~~~~~
../../../source/scriptinterface/NativeWrapperDefns.h: In member function 'bool ScriptInterface::CallFunction(JS::HandleValue, const char*, R&, const Ts& ...) const':
../../../source/scriptinterface/NativeWrapperDefns.h:182:6: error: 'RootedValueVector' is not a member of 'JS'
  JS::RootedValueVector argv(rq.cx);
      ^~~~~~~~~~~~~~~~~
../../../source/scriptinterface/NativeWrapperDefns.h:182:6: note: suggested alternative: 'AutoValueVector'
  JS::RootedValueVector argv(rq.cx);
      ^~~~~~~~~~~~~~~~~
      AutoValueVector
../../../source/scriptinterface/NativeWrapperDefns.h:183:8: error: 'argv' was not declared in this scope
  (void)argv.resize(sizeof...(Ts));
        ^~~~
../../../source/scriptinterface/NativeWrapperDefns.h:183:8: note: suggested alternative: 'nargs'
  (void)argv.resize(sizeof...(Ts));
        ^~~~
        nargs
../../../source/scriptinterface/NativeWrapperDefns.h: In member function 'bool ScriptInterface::CallFunction(JS::HandleValue, const char*, JS::Rooted<T>*, const Ts& ...) const':
../../../source/scriptinterface/NativeWrapperDefns.h:195:6: error: 'RootedValueVector' is not a member of 'JS'
  JS::RootedValueVector argv(rq.cx);
      ^~~~~~~~~~~~~~~~~
../../../source/scriptinterface/NativeWrapperDefns.h:195:6: note: suggested alternative: 'AutoValueVector'
  JS::RootedValueVector argv(rq.cx);
      ^~~~~~~~~~~~~~~~~
      AutoValueVector
../../../source/scriptinterface/NativeWrapperDefns.h:196:8: error: 'argv' was not declared in this scope
  (void)argv.resize(sizeof...(Ts));
        ^~~~
../../../source/scriptinterface/NativeWrapperDefns.h:196:8: note: suggested alternative: 'nargs'
  (void)argv.resize(sizeof...(Ts));
        ^~~~
        nargs
../../../source/scriptinterface/NativeWrapperDefns.h: In member function 'bool ScriptInterface::CallFunction(JS::HandleValue, const char*, JS::MutableHandle<T>, const Ts& ...) const':
../../../source/scriptinterface/NativeWrapperDefns.h:205:6: error: 'RootedValueVector' is not a member of 'JS'
  JS::RootedValueVector argv(rq.cx);
      ^~~~~~~~~~~~~~~~~
../../../source/scriptinterface/NativeWrapperDefns.h:205:6: note: suggested alternative: 'AutoValueVector'
  JS::RootedValueVector argv(rq.cx);
      ^~~~~~~~~~~~~~~~~
      AutoValueVector
../../../source/scriptinterface/NativeWrapperDefns.h:206:8: error: 'argv' was not declared in this scope
  (void)argv.resize(sizeof...(Ts));
        ^~~~
../../../source/scriptinterface/NativeWrapperDefns.h:206:8: note: suggested alternative: 'nargs'
  (void)argv.resize(sizeof...(Ts));
        ^~~~
        nargs
../../../source/scriptinterface/NativeWrapperDefns.h: In member function 'bool ScriptInterface::CallFunctionVoid(JS::HandleValue, const char*, const Ts& ...) const':
../../../source/scriptinterface/NativeWrapperDefns.h:217:6: error: 'RootedValueVector' is not a member of 'JS'
  JS::RootedValueVector argv(rq.cx);
      ^~~~~~~~~~~~~~~~~
../../../source/scriptinterface/NativeWrapperDefns.h:217:6: note: suggested alternative: 'AutoValueVector'
  JS::RootedValueVector argv(rq.cx);
      ^~~~~~~~~~~~~~~~~
      AutoValueVector
../../../source/scriptinterface/NativeWrapperDefns.h:218:8: error: 'argv' was not declared in this scope
  (void)argv.resize(sizeof...(Ts));
        ^~~~
../../../source/scriptinterface/NativeWrapperDefns.h:218:8: note: suggested alternative: 'nargs'
  (void)argv.resize(sizeof...(Ts));
        ^~~~
        nargs
make[1]: *** [network.make:145: obj/network_Debug/NetClient.o] Error 1
make: *** [Makefile:77: network] Error 2

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

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

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

This comment was removed by Freagarach.

With this and its parents applied, all works fine on my end.
Tested:

  • Local MP with Petra AI.
  • Atlas (load some map).
  • Clicked around, sent some chats.
wraitii updated this revision to Diff 14264.Nov 28 2020, 6:09 PM

Updated to HEAD

wraitii edited the summary of this revision. (Show Details)Nov 28 2020, 6:16 PM

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

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

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

builderr-debug-macos.txt
In file included from ../../../source/network/NetClientTurnManager.cpp:21:
In file included from ../../../source/network/NetClient.h:24:
In file included from ../../../source/scriptinterface/ScriptInterface.h:489:
../../../source/scriptinterface/NativeWrapperDefns.h:In file included from 164:64../../../source/network/NetClient.cpp:: error: 20:
In file included from no type named 'MutableHandleValueVector' in namespace 'JS'; did you mean 'MutableHandleValue'?
../../../source/network/NetClient.h:24:
In file included from ../../../source/scriptinterface/ScriptInterface.h:489:
../../../source/scriptinterface/NativeWrapperDefns.h:164:64: error: no type named 'MutableHandleValueVector' in namespace 'JS'; did you mean 'MutableHandleValue'?
static void AssignOrToJSValHelper(const ScriptRequest& rq, JS::MutableHandleValueVector argv, const T& a, const Ts&... params)
                                                           ~~~~^~~~~~~~~~~~~~~~~~~~~~~~
                                                               MutableHandleValue
static void AssignOrToJSValHelper(const ScriptRequest& rq, JS::MutableHandleValueVector argv, const T& a, const Ts&... params)
                                                           ~~~~^~~~~~~~~~~~~~~~~~~~~~~~
                                                               MutableHandleValue
../../../libraries/source/spidermonkey/include-unix-debug/js/TypeDecls.h:73:30: note: ../../../libraries/source/spidermonkey/include-unix-debug/js/TypeDecls.h'MutableHandleValue' declared here
:73typedef MutableHandle<Value> MutableHandleValue;
:30: note: 'MutableHandleValue' declared here
                             ^
typedef MutableHandle<Value> MutableHandleValue;
                             ^
In file included from ../../../source/network/NetClientTurnManager.cppIn file included from ../../../source/network/NetClient.cpp::21:
In file included from 20:
In file included from ../../../source/network/NetClient.h:../../../source/network/NetClient.h24:24:
In file included from ../../../source/scriptinterface/ScriptInterface.h:489:
../../../source/scriptinterface/NativeWrapperDefns.h:166:
In file included from :../../../source/scriptinterface/ScriptInterface.h43: :489:
../../../source/scriptinterface/NativeWrapperDefns.h:166:43: error: type 'JS::MutableHandleValue' (aka 'MutableHandle<JS::Value>') does not provide a subscript operator
error: type 'JS::MutableHandleValue' (aka 'MutableHandle<JS::Value>') does not provide a subscript operator
        ScriptInterface::AssignOrToJSVal(rq, argv[i], a);
                                             ~~~~^~
        ScriptInterface::AssignOrToJSVal(rq, argv[i], a);
                                             ~~~~^~
../../../source/scriptinterface/NativeWrapperDefns.h:171:72: error: no type named 'MutableHandleValueVector' in namespace 'JS'; did you mean 'MutableHandleValue'?
static void AssignOrToJSValHelper(const ScriptRequest& UNUSED(rq), JS::MutableHandleValueVector UNUSED(argv))
                                                                   ~~~~^~~~~~~~~~~~~~~~~~~~~~~~
                                                                       MutableHandleValue
../../../libraries/source/spidermonkey/include-unix-debug/js/TypeDecls.h:73:30: note: 'MutableHandleValue' declared here
typedef MutableHandle<Value> MutableHandleValue;
                             ^
../../../source/scriptinterface/NativeWrapperDefns.h:171:72: error: no type named 'MutableHandleValueVector' in namespace 'JS'; did you mean 'MutableHandleValue'?
static void AssignOrToJSValHelper(const ScriptRequest& UNUSED(rq), JS::MutableHandleValueVector UNUSED(argv))
                                                                   ~~~~^~~~~~~~~~~~~~~~~~~~~~~~
                                                                       MutableHandleValue
../../../libraries/source/spidermonkey/include-unix-debug/js/TypeDecls.h:73:30: note: 'MutableHandleValue' declared here
typedef MutableHandle<Value> MutableHandleValue;
                             ^
In file included from In file included from ../../../source/network/NetClient.cpp:../../../source/network/NetClientTurnManager.cpp:20:
In file included from ../../../source/network/NetClient.h:24:
In file included from ../../../source/scriptinterface/ScriptInterface.h:489:
../../../source/scriptinterface/NativeWrapperDefns.h:182:23: error: expected ';' after expression
21:
In file included from ../../../source/network/NetClient.h:24:
In file included from ../../../source/scriptinterface/ScriptInterface.h        JS::RootedValueVector argv(rq.cx);
                             ^
                             ;
:489:
../../../source/scriptinterface/NativeWrapperDefns.h:182:23: error: expected ';' after expression
        JS::RootedValueVector argv(rq.cx);
                             ^
                             ;
../../../source/scriptinterface/NativeWrapperDefns.h:182:6: error: no member named 'RootedValueVector' in namespace 'JS'
../../../source/scriptinterface/NativeWrapperDefns.h:182:6: error: no member named 'RootedValueVector' in namespace 'JS'
        JS::RootedValueVector argv(rq.cx);
        ~~~~^
        JS::RootedValueVector argv(rq.cx);
        ~~~~^
../../../source/scriptinterface/NativeWrapperDefns.h:182:24: error: use of undeclared identifier 'argv'
        JS::RootedValueVector argv(rq.cx);
                              ^
../../../source/scriptinterface/NativeWrapperDefns.h:182:24: error: use of undeclared identifier 'argv'
        JS::RootedValueVector argv(rq.cx);
                              ^
../../../source/scriptinterface/NativeWrapperDefns.h:183:10: error: use of undeclared identifier 'argv'
../../../source/scriptinterface/NativeWrapperDefns.h:183:10: error: use of undeclared identifier 'argv'
        DISCARD argv.resize(sizeof...(Ts));
                ^
        DISCARD argv.resize(sizeof...(Ts));
                ^
../../../source/scriptinterface/NativeWrapperDefns.h:184:32: error: use of undeclared identifier 'argv'; did you mean 'nargs'?
        AssignOrToJSValHelper<0>(rq, &argv, params...);
                                      ^~~~
                                      nargs
../../../source/scriptinterface/NativeWrapperDecls.h:93:15: note: 'nargs' declared here
static size_t nargs() { return sizeof...(Ts); }
              ^
../../../source/scriptinterface/NativeWrapperDefns.h:184:32: error: use of undeclared identifier 'argv'; did you mean 'nargs'?
        AssignOrToJSValHelper<0>(rq, &argv, params...);
                                      ^~~~
                                      nargs
../../../source/scriptinterface/NativeWrapperDecls.h:93:15: note: 'nargs' declared here
static size_t nargs() { return sizeof...(Ts); }
              ^
In file included from ../../../source/network/NetClient.cpp:20:
In file included from ../../../source/network/NetClient.hIn file included from :24:
In file included from ../../../source/network/NetClientTurnManager.cpp:../../../source/scriptinterface/ScriptInterface.h:21:
489:
In file included from ../../../source/scriptinterface/NativeWrapperDefns.h:185:32: error: use of undeclared identifier 'argv'../../../source/network/NetClient.h:
24:
In file included from ../../../source/scriptinterface/ScriptInterface.h:489:
../../../source/scriptinterface/NativeWrapperDefns.h:185:32: error: use of undeclared identifier 'argv'
        if (!CallFunction_(val, name, argv, &jsRet))
                                      ^
        if (!CallFunction_(val, name, argv, &jsRet))
                                      ^
../../../source/scriptinterface/NativeWrapperDefns.h:195:23: error: expected ';' after expression
        JS::RootedValueVector argv(rq.cx);
                             ^
                             ;
../../../source/scriptinterface/NativeWrapperDefns.h:195:6: error: no member named 'RootedValueVector' in namespace 'JS'
        JS::RootedValueVector argv(rq.cx);
        ~~~~^
../../../source/scriptinterface/NativeWrapperDefns.h:195:23: error: expected ';' after expression
        JS::RootedValueVector argv(rq.cx);
                             ^
                             ;
../../../source/scriptinterface/NativeWrapperDefns.h:195:6: error: no member named 'RootedValueVector' in namespace 'JS'
        JS::RootedValueVector argv(rq.cx);
        ~~~~^
../../../source/scriptinterface/NativeWrapperDefns.h:195:24: error: use of undeclared identifier 'argv'
        JS::RootedValueVector argv(rq.cx);
                              ^
../../../source/scriptinterface/NativeWrapperDefns.h:195:24: error: use of undeclared identifier 'argv'
        JS::RootedValueVector argv(rq.cx);
                              ^
../../../source/scriptinterface/NativeWrapperDefns.h:196:10: error: use of undeclared identifier 'argv'
        DISCARD argv.resize(sizeof...(Ts));
                ^
../../../source/scriptinterface/NativeWrapperDefns.h:196:10: error: use of undeclared identifier 'argv'
        DISCARD argv.resize(sizeof...(Ts));
                ^
../../../source/scriptinterface/NativeWrapperDefns.h:197:32: error: use of undeclared identifier 'argv'; did you mean 'nargs'?
        AssignOrToJSValHelper<0>(rq, &argv, params...);
                                      ^~~~
                                      nargs
../../../source/scriptinterface/NativeWrapperDecls.h:93:15: note: 'nargs' declared here
static size_t nargs() { return sizeof...(Ts); }
              ^
../../../source/scriptinterface/NativeWrapperDefns.h:197:32: error: use of undeclared identifier 'argv'; did you mean 'nargs'?
        AssignOrToJSValHelper<0>(rq, &argv, params...);
                                      ^~~~
                                      nargs
../../../source/scriptinterface/NativeWrapperDecls.h:93:15: note: 'nargs' declared here
static size_t nargs() { return sizeof...(Ts); }
              ^
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:489:
../../../source/scriptinterface/NativeWrapperDefns.h:198:34: error: use of undeclared identifier 'argv'; did you mean 'nargs'?
        return CallFunction_(val, name, argv, jsRet);
                                        ^~~~
                                        nargs
../../../source/scriptinterface/NativeWrapperDecls.h:93:15: note: 'nargs' declared here
static size_t nargs() { return sizeof...(Ts); }
              ^
In file included from ../../../source/network/NetClientTurnManager.cpp:21:
In file included from ../../../source/network/NetClient.h:24:
In file included from ../../../source/scriptinterface/ScriptInterface.h:489:
../../../source/scriptinterface/NativeWrapperDefns.h:198:34: error: use of undeclared identifier 'argv'; did you mean 'nargs'?
        return CallFunction_(val, name, argv, jsRet);
                                        ^~~~
                                        nargs
../../../source/scriptinterface/NativeWrapperDecls.h:93:15: note: 'nargs' declared here
static size_t nargs() { return sizeof...(Ts); }
              ^
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:489:
../../../source/scriptinterface/NativeWrapperDefns.h:205:23: error: expected ';' after expression
        JS::RootedValueVector argv(rq.cx);
                             ^
                             ;
../../../source/scriptinterface/NativeWrapperDefns.h:205:6: error: no member named 'RootedValueVector' in namespace 'JS'
        JS::RootedValueVector argv(rq.cx);
        ~~~~^
In file included from ../../../source/network/NetClientTurnManager.cpp:21:
In file included from ../../../source/network/NetClient.h:24:
In file included from ../../../source/scriptinterface/ScriptInterface.h:489:
../../../source/scriptinterface/NativeWrapperDefns.h:205:23: error: expected ';' after expression
        JS::RootedValueVector argv(rq.cx);
                             ^
                             ;
../../../source/scriptinterface/NativeWrapperDefns.h:205:6: error: no member named 'RootedValueVector' in namespace 'JS'
        JS::RootedValueVector argv(rq.cx);
        ~~~~^
../../../source/scriptinterface/NativeWrapperDefns.h:205:24: error: use of undeclared identifier 'argv'
        JS::RootedValueVector argv(rq.cx);
                              ^
../../../source/scriptinterface/NativeWrapperDefns.h:205:24: error: use of undeclared identifier 'argv'
        JS::RootedValueVector argv(rq.cx);
                              ^
../../../source/scriptinterface/NativeWrapperDefns.h:206:10: error: use of undeclared identifier 'argv'
        DISCARD argv.resize(sizeof...(Ts));
                ^
../../../source/scriptinterface/NativeWrapperDefns.h:206:10: error: use of undeclared identifier 'argv'
        DISCARD argv.resize(sizeof...(Ts));
                ^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.
make[1]: *** [obj/network_Debug/NetClientTurnManager.o] Error 1
make[1]: *** Waiting for unfinished jobs....
20 errors generated.
make[1]: *** [obj/network_Debug/NetClient.o] Error 1
make: *** [network] Error 2

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

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

builderr-debug-gcc7.txt
In file included from ../../../source/scriptinterface/ScriptInterface.h:489,
                 from ../../../source/network/NetClient.h:24,
                 from ../../../source/network/NetClient.cpp:20:
../../../source/scriptinterface/NativeWrapperDefns.h:164:64: error: 'JS::MutableHandleValueVector' has not been declared
 static void AssignOrToJSValHelper(const ScriptRequest& rq, JS::MutableHandleValueVector argv, const T& a, const Ts&... params)
                                                                ^~~~~~~~~~~~~~~~~~~~~~~~
../../../source/scriptinterface/NativeWrapperDefns.h: In function 'void AssignOrToJSValHelper(const ScriptRequest&, int, const T&, const Ts& ...)':
../../../source/scriptinterface/NativeWrapperDefns.h:166:45: error: invalid types 'int[int]' for array subscript
  ScriptInterface::AssignOrToJSVal(rq, argv[i], a);
                                             ^
../../../source/scriptinterface/NativeWrapperDefns.h: At global scope:
../../../source/scriptinterface/NativeWrapperDefns.h:171:72: error: 'JS::MutableHandleValueVector' has not been declared
 static void AssignOrToJSValHelper(const ScriptRequest& UNUSED(rq), JS::MutableHandleValueVector UNUSED(argv))
                                                                        ^~~~~~~~~~~~~~~~~~~~~~~~
../../../source/scriptinterface/NativeWrapperDefns.h: In member function 'bool ScriptInterface::CallFunction(JS::HandleValue, const char*, R&, const Ts& ...) const':
../../../source/scriptinterface/NativeWrapperDefns.h:182:6: error: 'RootedValueVector' is not a member of 'JS'
  JS::RootedValueVector argv(rq.cx);
      ^~~~~~~~~~~~~~~~~
../../../source/scriptinterface/NativeWrapperDefns.h:182:6: note: suggested alternative: 'AutoValueVector'
  JS::RootedValueVector argv(rq.cx);
      ^~~~~~~~~~~~~~~~~
      AutoValueVector
../../../source/scriptinterface/NativeWrapperDefns.h:183:10: error: 'argv' was not declared in this scope
  DISCARD argv.resize(sizeof...(Ts));
          ^~~~
../../../source/scriptinterface/NativeWrapperDefns.h:183:10: note: suggested alternative: 'nargs'
  DISCARD argv.resize(sizeof...(Ts));
          ^~~~
          nargs
../../../source/scriptinterface/NativeWrapperDefns.h: In member function 'bool ScriptInterface::CallFunction(JS::HandleValue, const char*, JS::Rooted<T>*, const Ts& ...) const':
../../../source/scriptinterface/NativeWrapperDefns.h:195:6: error: 'RootedValueVector' is not a member of 'JS'
  JS::RootedValueVector argv(rq.cx);
      ^~~~~~~~~~~~~~~~~
../../../source/scriptinterface/NativeWrapperDefns.h:195:6: note: suggested alternative: 'AutoValueVector'
  JS::RootedValueVector argv(rq.cx);
      ^~~~~~~~~~~~~~~~~
      AutoValueVector
../../../source/scriptinterface/NativeWrapperDefns.h:196:10: error: 'argv' was not declared in this scope
  DISCARD argv.resize(sizeof...(Ts));
          ^~~~
../../../source/scriptinterface/NativeWrapperDefns.h:196:10: note: suggested alternative: 'nargs'
  DISCARD argv.resize(sizeof...(Ts));
          ^~~~
          nargs
../../../source/scriptinterface/NativeWrapperDefns.h: In member function 'bool ScriptInterface::CallFunction(JS::HandleValue, const char*, JS::MutableHandle<T>, const Ts& ...) const':
../../../source/scriptinterface/NativeWrapperDefns.h:205:6: error: 'RootedValueVector' is not a member of 'JS'
  JS::RootedValueVector argv(rq.cx);
      ^~~~~~~~~~~~~~~~~
../../../source/scriptinterface/NativeWrapperDefns.h:205:6: note: suggested alternative: 'AutoValueVector'
  JS::RootedValueVector argv(rq.cx);
      ^~~~~~~~~~~~~~~~~
      AutoValueVector
../../../source/scriptinterface/NativeWrapperDefns.h:206:10: error: 'argv' was not declared in this scope
  DISCARD argv.resize(sizeof...(Ts));
          ^~~~
../../../source/scriptinterface/NativeWrapperDefns.h:206:10: note: suggested alternative: 'nargs'
  DISCARD argv.resize(sizeof...(Ts));
          ^~~~
          nargs
../../../source/scriptinterface/NativeWrapperDefns.h: In member function 'bool ScriptInterface::CallFunctionVoid(JS::HandleValue, const char*, const Ts& ...) const':
../../../source/scriptinterface/NativeWrapperDefns.h:217:6: error: 'RootedValueVector' is not a member of 'JS'
  JS::RootedValueVector argv(rq.cx);
      ^~~~~~~~~~~~~~~~~
../../../source/scriptinterface/NativeWrapperDefns.h:217:6: note: suggested alternative: 'AutoValueVector'
  JS::RootedValueVector argv(rq.cx);
      ^~~~~~~~~~~~~~~~~
      AutoValueVector
../../../source/scriptinterface/NativeWrapperDefns.h:218:10: error: 'argv' was not declared in this scope
  DISCARD argv.resize(sizeof...(Ts));
          ^~~~
../../../source/scriptinterface/NativeWrapperDefns.h:218:10: note: suggested alternative: 'nargs'
  DISCARD argv.resize(sizeof...(Ts));
          ^~~~
          nargs
make[1]: *** [network.make:145: obj/network_Debug/NetClient.o] Error 1
make: *** [Makefile:77: network] Error 2

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

wraitii requested review of this revision.Nov 28 2020, 8:05 PM
Silier added a subscriber: Silier.Nov 28 2020, 9:08 PM

when we are removing wstring, do chinese and similar things still work ?

source/gui/Scripting/JSInterface_GUIProxy.h
94 ↗(On Diff #14264)

these comments are wrong

In D3144#139184, @Angen wrote:

when we are removing wstring, do chinese and similar things still work ?

Yes, it's UTF8, not ascii.

source/gui/Scripting/JSInterface_GUIProxy.h
94 ↗(On Diff #14264)

They're not, but they refer to what is returned in the props, aka from the JS perspective these objects have no property keys and enumerate nothing. Might be written in a clearer way.

This revision was not accepted when it landed; it landed in state Needs Review.Nov 30 2020, 10:03 AM
This revision was landed with ongoing or failed builds.
This revision was automatically updated to reflect the committed changes.