Commit graph

87 commits

Author SHA1 Message Date
Yves
ae93c02ba8 Fixes a bug that caused script filenames to be defined as properties of the global object.
This was SVN commit r15450.
2014-06-26 17:08:46 +00:00
leper
2b05a8d233 Reenable JS warnings that were disabled in db0376fdc2.
This was SVN commit r15156.
2014-05-18 13:25:08 +00:00
sanderd17
db0376fdc2 Temporarily disable the Spidermonkey warnings for release
This was SVN commit r15127.
2014-05-07 19:42:12 +00:00
Yves
e9e05f4efc Second (main) commit for the SpiderMonkey upgrade.
This commit contains all the required changes to our source files and
build scripts (hopefully).
A next commit will remove the old stuff of SpiderMonkey 1.8.5.

Spcial thanks to:
 - H4writer who helped a lot mainly with the performance issues we
had/have, but also with other problems or questions.
 - Leper for the review.
 - Historic_bruno for implementing the build scripts on Mac OS X and
testing on the Mac.
 - The people from the #jsapi channel and from
mozilla.dev.tech.js-engine who answered a lot of questions and helped
solving problems.
 - All the other people who helped

Refs #1886
Fixes #2442
Fixes #2416

This was SVN commit r14877.
2014-03-28 20:26:32 +00:00
Yves
31e98e5c03 Reverts f25edfd8f1. Structured clones don't support cyclic references in SpiderMonkey v1.8.5.
SpiderMonkey v24 supports it and I'll add this change to #1886 instead.

Refs #2416
Refs #2415
Refs #1886

This was SVN commit r14733.
2014-02-06 13:32:09 +00:00
Yves
f25edfd8f1 Removes ValueCloner.
Fixes #2416
Refs #2415
Refs #1886

This was SVN commit r14724.
2014-02-01 20:37:33 +00:00
Yves
bab3a08643 Fixes a crash introduced in fd187f466f by ensuring that the CScriptValRooted values are destroyed before calling JS_DestroyContext.
I've tested the performance on Combat Demo (Huge) again with the code
from #2394.
It's very close but probably a little bit lower (hard to tell because
it's so close).

Closes #2408
Refs #2394

This was SVN commit r14705.
2014-01-30 13:21:36 +00:00
sanderd17
fd187f466f Add vector prototype to vector-like return values from C++ to JS. Fixes #2394.
This was SVN commit r14645.
2014-01-23 11:32:08 +00:00
Yves
b20955436b I completely missed the header files when disabling the JS debugger.
Refs #2348

This was SVN commit r14511.
2014-01-05 10:26:27 +00:00
Yves
7d516e7e7a Disables the JS debugger.
It's completely broken since 4b1297b328 and will have to be updated for
the new SpiderMonkey API.
I only uncomment it at the moment because I plan to fix/reimplement it
soon after the upgrade.

Closes #2348
Refs #2241
Refs #1886

This was SVN commit r14506.
2014-01-04 20:47:56 +00:00
Yves
4b1297b328 Removes g_ScriptingHost and implements global to compartment 1 to 1 relation.
Each GUI Page gets its own compartment and all ScriptInterfaces in the
same thread should now use the same JS Runtime.
This is required for the SpiderMonkey upgrade.
Check the ticket for details.

Closes #2241
Refs #1886
Refs #1966

This was SVN commit r14496.
2014-01-04 10:14:53 +00:00
Ykkrosh
d178f32698 Fix Unicode in JS print() on Linux
This was SVN commit r14129.
2013-11-10 16:13:40 +00:00
Ykkrosh
d7ec8c47a6 Fix Unicode support in lobby.
Fix EncryptPassword being called with the wrong argument order, and
encrypting username instead of password. (This will break all existing
lobby accounts.)

Fix EncryptPassword not using all of salt_base.

This was SVN commit r14123.
2013-11-09 23:26:17 +00:00
RedFox
5d9b2b95b0 Ticket #2127 - Performance and style improvements in scriptinterface.
No real behavior changes, only code maintenance.

Fixed signed/unsigned mismatch in EntityMap.h

This was SVN commit r13865.
2013-09-16 19:10:06 +00:00
Yves
73951b75fc Adds the server-side part of the javascript debugger. Refs #410
This was SVN commit r13238.
2013-03-07 13:49:49 +00:00
historic_bruno
1fdaca5cec Attempts to fix StringifyJSON by clearing pending exceptions from JS API
This was SVN commit r13125.
2013-01-27 01:38:43 +00:00
Ykkrosh
75a23856cf Fix some static analysis warnings
This was SVN commit r13101.
2013-01-21 20:33:25 +00:00
historic_bruno
99d04e93bb Implements global tech modification function. Fixes #1358, refs #1520.
Applies tech modifications to template data returned by GuiInterface.
Extends engine to load arbitrary global scripts, separates this from RNG
replacement. Refs #1193.
Loads global scripts for most script contexts for consistency.
Adds simulation tests for global scripts.

This was SVN commit r12056.
2012-07-03 02:16:45 +00:00
Ykkrosh
2ee9981d99 Replace boost::uniform_real to avoid OOS caused by changes in behaviour between Boost versions
This was SVN commit r11857.
2012-05-13 23:40:06 +00:00
historic_bruno
32d2927449 Adds UTF-8 support for JavaScript files.
This was SVN commit r11750.
2012-05-04 21:48:46 +00:00
historic_bruno
da4c1c8f2b Fixes handling of UTF-8 encoded JSON files (stripping BOM if necessary). Fixes #1375.
This was SVN commit r11739.
2012-05-04 03:46:05 +00:00
Ykkrosh
f1e73807a8 Fix formatting
This was SVN commit r11377.
2012-03-20 18:13:27 +00:00
quantumstate
0b0f2e9e30 Fixed broken tests by silently failing if Math.js is not found. This is not ideal but seems better than everything else.
This was SVN commit r11253.
2012-03-05 21:20:39 +00:00
quantumstate
e2e5c81272 Added safe (identical across platforms) replacement sin and cos functions for scripts. This is part of #1193.
This was SVN commit r11226.
2012-03-03 00:06:16 +00:00
historic_bruno
7fa6afac37 Corrects some Doxygen comments and adds a few others of interest.
This was SVN commit r11209.
2012-03-01 03:55:05 +00:00
Ykkrosh
dbf27dbc5e Fix #1065 (incorrect printf format string), based on patch by Echelon9
This was SVN commit r10823.
2011-12-29 01:40:24 +00:00
vts
db864f10c3 Rendering marker lines between buildings and rally points
Added command button to focus on rally point
(implements #524)

This was SVN commit r10704.
2011-12-10 07:07:04 +00:00
Ykkrosh
8492426a14 Rough support for profiling replay mode and scripts
This was SVN commit r10634.
2011-11-29 20:32:43 +00:00
Ykkrosh
5bd7b74ec7 Fix ABI incompatibility with --with-system-mozjs185 in debug mode (see #990).
This was SVN commit r10535.
2011-11-14 18:18:04 +00:00
Ykkrosh
85e16f95b1 Use debug_printf for script print() function, so it's more visible on Windows
This was SVN commit r10435.
2011-10-27 14:19:37 +00:00
Ykkrosh
2f0bd8d8b0 Upgrade to SpiderMonkey 1.8.5 (fixes #734)
This was SVN commit r9852.
2011-07-16 23:24:14 +00:00
historic_bruno
a8fdcfde59 Fixes broken autostart for random maps with AI
This was SVN commit r9699.
2011-06-27 23:27:25 +00:00
janwas
34186dd017 refactor file interface. requires workspace update
- separate file_system_util into vfs functions (-> vfs/vfs_util) and
file_system (avoids ugly fs_util namespace prefix)
- get rid of non-portable O_BINARY_NP etc. flags
- use standard O_WRONLY etc. flags instead of LIO_WRITE; but avoid the
need for specifying O_CREAT|O_TRUNC
- only open files for aio when O_DIRECT is specified (which 0ad does
not) - avoids wasting time and security issues
- return file descriptor directly instead of via output param
- waio: safer FCB mechanism that avoids mixing descriptors between lowio
and aio

This was SVN commit r9550.
2011-05-25 10:39:13 +00:00
Ykkrosh
b741feafb1 Add global deepcopy() function in scripts, to do a structured clone of objects.
Remove an unused include.

This was SVN commit r9506.
2011-05-12 23:50:42 +00:00
historic_bruno
fffcdbbf21 Balances random map resources.
Attempts to avoid "invalid argument" errors in typed arrays by forcing
them to integer (see #658).
Removes script preloading from map generator (VFS is thread-safe now)
Removes thread checking from ScriptInterface file loading functions.
Adjusts starting entities in civ data.

This was SVN commit r9435.
2011-05-04 21:24:25 +00:00
janwas
cccd6849a7 cleanup (requires update-workspaces)
lib_errors.cpp: replace with status.cpp, adapt to needs at work
wutil: fix runtime warning reported via feedback box
config: merge CONFIG_PARANOIA and !CONFIG_FINAL into
CONFIG_ENABLE_CHECKS
add openmp, pointer_typedefs.h

This was SVN commit r9410.
2011-05-03 12:38:42 +00:00
janwas
4663ac0fe7 split debug_assert into ENSURE and ASSERT as discussed in a previous meeting.
the old debug_assert always ran and tested the expression, which slows
down release builds. wrapping them in #ifndef NDEBUG is clumsy. the new
ASSERT behaves like assert and ENSURE like the old debug_assert. Let's
change any time-critical but not-super-important ENSURE to ASSERT to
speed up release builds. (already done in bits.h and unique_range.h)

This was SVN commit r9362.
2011-04-30 13:01:45 +00:00
historic_bruno
481f570a0e CMapGeneratorWorker thread safety issue. Fixes #783.
VFS access moved to main thread, where random map scripts are preloaded
and stored prior to use by the worker thread.
Adds LoadGlobalScript to ScriptInterface, for evaluating script content
in the global scope.

This was SVN commit r9261.
2011-04-15 05:23:51 +00:00
Ykkrosh
f072b47dc1 Warn earlier about some non-thread-safe calls.
This was SVN commit r9252.
2011-04-14 14:28:24 +00:00
Ykkrosh
e5e9e38532 Fix GCC 4.6 "set but not used" warnings
This was SVN commit r9194.
2011-04-07 16:34:51 +00:00
Ykkrosh
9193ba56f9 Build fixes and whatnot
This was SVN commit r9115.
2011-03-23 21:15:22 +00:00
janwas
dcd192cb60 refactor path interface:
- use wrapper class instead of std::wstring (reduces mixing of
strings/paths; allows safe+easy join via operator/ and convenient
case-insensitive comparison via operator==, avoids NativePathFromString,
similar to boost::filesystem)
- NativePath -> OsPath
- add hash and To/FromJSVal for Path
- add TS_ASSERT_PATH_EQUALS
- replace _wfopen_s with sys_OpenFile
- remove obsolete SortFiles/Directories

This was SVN commit r9107.
2011-03-23 13:36:20 +00:00
Ykkrosh
575e3b0a69 Don't enable JITs when they can interfere with profiling.
Fix dangerous trailing slashes.

This was SVN commit r9103.
2011-03-23 00:36:34 +00:00
historic_bruno
0e0ed94926 Implements random map system, fixes #6.
Includes default library "rmgen" w/ API based on rmgen tool.
Modifies rmgen scripts Cantabrian Highlands, Neareastern Badlands, and
Latium.
Old map support dropped from MapReader.
Fixes a few bugs in existing game setup and initialization scripts.

This was SVN commit r9096.
2011-03-22 01:34:45 +00:00
janwas
6d25329412 # towards locale-independent pathnames on Linux
c.f.
http://www.wildfiregames.com/forum/index.php?showtopic=14541&st=0&p=217250&#entry217250
and 2011-03-19 meeting

This was SVN commit r9090.
2011-03-21 17:53:13 +00:00
Ykkrosh
7d6cfe58de Fix non-PCH build
This was SVN commit r9037.
2011-03-06 00:01:23 +00:00
Ykkrosh
16a4eb36dd Various minor optimisations.
Enable SpiderMonkey method JIT in Release mode.
Add Engine.ProfileStart/Engine.ProfileStop functions for scripts.
Fix AI to clone initial entity data and shared metadata.

This was SVN commit r9003.
2011-03-03 00:16:14 +00:00
janwas
d805ef356e FileExists -> VfsFileExists (see next commit)
scriptInterface: fix bool cast warning

This was SVN commit r8984.
2011-02-25 16:30:55 +00:00
Ykkrosh
f6c1d98c9a Fix #739 (test failures).
Use JSON in debug serializer output unless it fails due to e.g. cyclic
values, in which case use toSource.
Disable file stats code by default, since its output isn't used.

This was SVN commit r8975.
2011-02-24 00:32:38 +00:00
janwas
8f59d52697 sync with work; fix compile error due to lack of boost/serialization in 0ad svn
This was SVN commit r8965.
2011-02-21 09:23:51 +00:00