Commit Graph

63025 Commits

Author SHA1 Message Date
David Teller
d2020b8c9b Bug 1377007 - Tweak BoyerMoorePositionInfo::SetInterval to keep PGO builds happy;r=jandem
Attempting to build Bug 137707 fails with Linux 64 PGO (and only with
Linux 64 PGO) with the following error:

INFO -  /builds/worker/workspace/build/src/js/src/irregexp/RegExpEngine.cpp:2326:5: error: assuming signed overflow does not occur when assuming that (X + c) < X is always false [-Werror=strict-overflow]
INFO -       for (int i = interval.from(); i <= interval.to(); i++) {
INFO -       ^^^

I suspect that this is actually a bug in PGO itself, rather than in
the code. However, replacing `<= interval.to()` with `!= interval.to()
+ 1` seems to do the trick.

MozReview-Commit-ID: IsayKhgkwWq

--HG--
extra : rebase_source : 6c2fa14a5fe49c1cc5d42afc9f7d57be568f662b
2017-12-06 14:05:35 +01:00
David Teller
16e627ac34 Bug 1377007 - autospider.py,runcppunittests.py export the path to directory js/src,r=Yoric
Some tests need to find out js/src to locate their test
data. Exporting this information as part of the environment.

MozReview-Commit-ID: JAefL2arhJL

--HG--
extra : rebase_source : 2c9e9fa39e41844518ed466a88023cc2b94dec55
2017-12-08 11:14:12 +01:00
David Teller
3a0510b7cd Bug 1377007 - Tests: Parsing ECMA2-level tests with binjs;r=arai,jorendorff
MozReview-Commit-ID: 2DysquT2BdD

--HG--
extra : rebase_source : 40c1531d2c8cedf7ffc8e87053a4a73068bc86d1
2017-09-19 20:50:21 +02:00
David Teller
9879d403ee Bug 1377007 - JS shell bindings for binjs-ref;r=arai,jorendorff
MozReview-Commit-ID: 4kKbxpqXVSU

--HG--
extra : rebase_source : 4109b153f5a4c68c7bdd8406ea0d47b564ad8ffe
2017-09-18 16:41:00 +02:00
David Teller
2adf6f1250 Bug 1377007 - Implementing basic binjs-ref parser in SpiderMonkey;r=arai,jorendorff
This patch implements a Binary AST parser matching the latest
binjs-ref parser at this date. The subset of JS recognized matches
ES5, with an AST based on a slightly customized Babylon AST.

At this stage, the parser trusts its input, insofar as it does not
check directives or bindings. Followup patch will introduce checking
of these directives/bindings.

MozReview-Commit-ID: 1nt230rt02R

--HG--
extra : rebase_source : fcefcb0721813910b7a13f7244d85f4ab12502b3
2017-09-11 16:54:48 +02:00
David Teller
e6ed8aa3c2 Bug 1377007 - GC for binjs-ref parser;r=sfink
MozReview-Commit-ID: EjZZ1ofm52t

--HG--
extra : rebase_source : 9bad473b5b8b90c8fcc6f6b114d004ce97bb0cff
2017-09-05 14:51:30 +02:00
David Teller
9da2baa803 Bug 1377007 - Implementation of the Token Reader dedicated to testing;r=arai,jorendorff
This patch ports to SpiderMonkey the tokenizer currently implemented
in the external binjs-ref tool.

While this tokenizer will clearly not be the tokenizer eventually
shipped to end-users (whether in Firefox or in binjs-ref), the plan is
to keep it both in binjs-ref and in SpiderMonkey (Nightly only) as a
tool for helping test the higher layers of Binjs.

MozReview-Commit-ID: 1i6XnVIf8p5

--HG--
extra : rebase_source : da8f424de70f84bd0403103303f25aa1c424b703
2017-09-13 15:30:19 +02:00
Dorel Luca
110706c3c0 Merge mozilla-inbound to mozilla-central r=merge a=merge 2017-12-14 11:54:15 +02:00
Jan de Mooij
31186e4a2d Bug 1416727 followup - Add try-catch to ignore overrecursion exceptions. r=red 2017-12-13 17:59:44 -06:00
Ted Campbell
8d1869e89a Bug 1393011 - Fix non-debug build of Assembler-arm. r=bustage
MozReview-Commit-ID: 4cHJBEovqaj
2017-12-13 17:42:46 -06:00
69c59d84e2 Bug 1424368: Use an enum value for invalid WasmToken::Kind; r=luke
MozReview-Commit-ID: 8zfpuEMkzLU

--HG--
extra : rebase_source : d0a15c4835c44ec93af7a7617ef9bb87b452013d
2017-12-13 02:41:55 +00:00
Cosmin Sabou
32a573fd90 Backed out 2 changesets (bug 1395933) for build bustages on js/src/jit-test/tests/typedobject/bug-1415313.js r=backout on a CLOSED TREE
Backed out changeset 81228d9e87e5 (bug 1395933)
Backed out changeset 7827a7002f94 (bug 1395933)
2017-12-13 18:05:32 +02:00
Andreas Tolfsen
044df93d69 Bug 1395933 - Expand geckodriver mach command with test and build targets. r=maja_zf,rillian
The current "./mach geckodriver" commands runs the geckodriver
binary, but this patch introduces a geckodriver namespace to mach
and renames that command to "./mach geckodriver run".

It also introduces two new commands to build geckodriver and run
its Rust unit tests through "./mach geckodriver build" and "./mach
geckodriver test", respectively.

MozReview-Commit-ID: 5iO9FVkbch2

--HG--
extra : rebase_source : 6395a65526d48e4af5f63f3b23dd3a52801e03a3
2017-12-08 21:31:08 +00:00
Nathan Froyd
6d4a891a5f Bug 1422859 - move MOZILLA_*VERSION setting into moz.configure; r=chmanchester
This has the virtue of not executing python three times during configure
just to read the same value of milestone.txt and munge it.  We can also
remove milestone.py as a happy side effect, so all the milestone
computations can be done in init.configure.
2017-12-04 11:19:25 -05:00
Nathan Froyd
74128f6578 Bug 1422852 - remove D_INO setting from configure; r=chmanchester
We only had this "for flexibility with other platforms", but given that
we set it to the same thing for all platforms, and nobody has tried to
change that, this flexibility isn't actually needed.
2017-12-04 08:18:00 -05:00
Jon Coppeard
ff4f5d0483 Backed out changesets 115d70e6c818 and 1938afc34193 for memory and performance regressions (bug 1422575) 2017-12-12 16:29:19 -06:00
Tom Schuster
1777bf0017 Bug 1398099 - Specialized HasProp stub for sparse elements. r=jandem 2017-12-12 15:56:13 -06:00
Jan de Mooij
fe79948449 Bug 1412289 - Add a shell function to enable NativeObject::checkShapeConsistency. r=bhackett 2017-12-12 15:40:13 -06:00
Simon Sapin
6c0097b190 Bug 1424664 - Remove heapsize support from js/rust/ r=njn
It has been replaced in Servo with malloc_size_of:
https://github.com/servo/servo/tree/master/components/malloc_size_of

MozReview-Commit-ID: AfTrmnJlRhv

--HG--
extra : rebase_source : a21e7e2316af0e9786c23ea0a32f2ffb33cf3c70
2017-12-11 02:06:28 +01:00
André Bargull
d6d12510a8 Bug 1415882 - Part 3: Update test262 exclusion list. r=evilpie
--HG--
extra : rebase_source : fb6e66f218d375a7ebe99a1932aa98ace80d9a5c
2017-12-12 13:38:27 -06:00
André Bargull
eca2ca9b60 Bug 1415882 - Part 2: Update test262 test files. rs=evilpie
--HG--
rename : js/src/tests/test262/built-ins/RegExp/incomplete_hex_unicode_escape.js => js/src/tests/test262/annexB/built-ins/RegExp/incomplete_hex_unicode_escape.js
extra : rebase_source : d3372a308db2dfd688cbb9373941a1e58dda0157
2017-12-12 13:38:23 -06:00
André Bargull
e164ba21e6 Bug 1415882 - Part 1: Update test262 unsupported features list. r=evilpie
--HG--
extra : rebase_source : 12afd77cf9b5d21f088e9a556f202c4daf14eb25
2017-12-12 13:38:18 -06:00
Ted Campbell
073d46bf5c Bug 1421445 - Insert UD2 instructions after JitCode. r=jandem
Now that the extra padding is removed, we can end up with data
immediately after indirect jumps. For perf reasons, it is recommended to
insert a UD2 instruction in this case to prevent CPU decoding garbage.
This also works around a Valgrind bug where the tool segfaults in a
similar scenario.

MozReview-Commit-ID: ESk41VgKjOW
2017-12-13 17:27:41 -05:00
Ted Campbell
af377924a3 Bug 1421445 - Add NOP-slide before JIT code buffers on AMD Bobcat. r=jandem
In order to try and mitigate crashes on 64-bit FF 57+ on AMD Bobcat
CPUs, insert NOPs before the JIT code buffers. On earlier versions of
these processors, hardware bugs cause crashes to occur in locations
before the JIT code stub. For simplicity, the JitCode* pointer is
shifted even on machines that are unaffected. With the previous patch
fixing over allocation, we end up being size-neutral.

MozReview-Commit-ID: 4LqBfOzv6Qy
2017-12-13 17:27:40 -05:00
Ted Campbell
b971c30b23 Bug 1421445 - Don't waste space allocating jit code buffer. r=jandem
When computing worst-case alignment padding, we don't take into account
the buffer already being partially aligned. This saves one word per
JitCode buffer allocation.

MozReview-Commit-ID: ZMwBzp97xy
2017-12-13 17:27:39 -05:00
Matthew Gaudet
1f93b95bf6 Bug 1420399 - Rename GCRuntime::hasBufferedGrayRoots(). r=pbone
Rename to hasValidGrayRootsBuffer which better matches the semantics of the
call.
2017-12-13 09:49:05 -06:00
Sean Stangl
f73945859d Bug 1393011 - Part 4: Use InstructionIterator instead of manual Instruction->next() calls. r=bbouvier
--HG--
extra : histedit_source : 22184143e737ca800c46f1c5b91ed9dc9f5fce39
2017-12-13 15:57:04 -06:00
Sean Stangl
db486799ac Bug 1393011 - Part 3: Fix a bug where BufferInstructionIterator advances too far. r=nbp
In the case of InstIsGuard(), the BufferInstructionIterator implementation
forgot that the underlying AssemblerBufferInstIterator is based on
BufferOffsets, the incrementation of which skips pools already.

--HG--
extra : histedit_source : c0520c1e7d4ab4a65d4546ee196192f2164c32a3
2017-12-13 15:56:29 -06:00
Sean Stangl
df4406437b Bug 1393011 - Part 2: Fix PatchDataWithValueCheck flushing incorrect ICache locations. r=bbouvier 2017-12-13 15:55:46 -06:00
Sean Stangl
d3722cb0b4 Bug 1393011 - Part 1: Rename skipPool() to maybeSkipAutomaticInstructions(). r=bbouvier
The greater verbosity more accurately describes skipPool()'s behavior.
2017-12-13 15:55:11 -06:00
Gurzau Raul
321347c110 Backed out 22 changesets (bug 1419771) for build bustage build/src/dom/base/FuzzingFunctions.cpp on a CLOSED TREE
Backed out changeset b2b7b46c8ad0 (bug 1419771)
Backed out changeset 0206657d2ea2 (bug 1419771)
Backed out changeset f0f4b98a07b6 (bug 1419771)
Backed out changeset 4b52904694f4 (bug 1419771)
Backed out changeset 9f40cc12d6c6 (bug 1419771)
Backed out changeset f500a61f564c (bug 1419771)
Backed out changeset 0bd9d964df8a (bug 1419771)
Backed out changeset 1397a6bbb446 (bug 1419771)
Backed out changeset 7e77a00fa8b5 (bug 1419771)
Backed out changeset 5f6df771459a (bug 1419771)
Backed out changeset 7624e70b2965 (bug 1419771)
Backed out changeset b9d674bdc723 (bug 1419771)
Backed out changeset 5e44aeda4196 (bug 1419771)
Backed out changeset 601b49f51b41 (bug 1419771)
Backed out changeset d12dc5557982 (bug 1419771)
Backed out changeset 6c863ab2e986 (bug 1419771)
Backed out changeset 0866d79873ab (bug 1419771)
Backed out changeset 8ecc91474621 (bug 1419771)
Backed out changeset 19b14deed8fe (bug 1419771)
Backed out changeset 000c8d5fbc03 (bug 1419771)
Backed out changeset 2e263a2519c5 (bug 1419771)
Backed out changeset b628d9298be8 (bug 1419771)
2017-12-13 23:41:49 +02:00
Jan de Mooij
9a740413a5 Bug 1418966 - Pin TypeScripts better when doing Baseline debug mode OSR. r=bhackett 2017-12-13 14:13:43 -06:00
Andrea Marchesini
6b770adcfa Bug 1419771 - Introduce DOMPreferences, a thread-safe access to preferences for DOM - part 1 - dump enabled, r=asuth 2017-12-13 14:02:44 -06:00
Jan de Mooij
606779ec4e Bug 1416727 - Fix some problems with Baseline's Call IC. r=djvj 2017-12-06 14:18:21 +01:00
Jeff Walden
22fddd8fb3 Bug 1424420 - Adjust AutoAwaitIsKeyword template parameters slightly so a full parser type need not be written out. r=arai
--HG--
extra : rebase_source : 71991d60647fbc7cfa092d81d9a8e073bed25f36
2017-12-12 15:17:52 -06:00
Jeff Walden
159471f578 Bug 1424420 - Change the name of some |Node pn| in function-parsing functions to |Node funcNode|. r=arai
--HG--
extra : rebase_source : f2ab92f370c9481b540d5387a50418114f732399
2017-12-12 15:17:31 -06:00
Jeff Walden
596de35304 Bug 1424420 - Rename Parser to GeneralParser, and move all partially-specialized (by ParseHandler) functions in GeneralParser into a new Parser class inheriting from GeneralParser. This permits these functions to be specialized without having two identical definitions when CharT isn't solely char16_t. r=arai
--HG--
extra : rebase_source : 69d54d9c373742fe1fe30a15e6438a0e0a4173ed
2017-12-08 04:19:23 -06:00
Jeff Walden
a5083c6395 Bug 1424394 - Split TokenStream in Parser across Parser and ParserBase. r=arai
--HG--
extra : rebase_source : 02f9275a69287164a1a6bf15e984ae26a3abeeb8
2017-12-05 23:58:47 -08:00
Lars T Hansen
dd34d2a589 Bug 1423864 - Rabaldr, remove ATOMIC_PTR macro. r=bbouvier
This turns the ATOMIC_PTR macro into a function and merges the
prepareMemoryAccess() call into that function, for a nice net cleanup
+ movement of platform code.

(This would be even prettier with C++14 automatic return type
deduction but that is a "not yet" feature.)

MozReview-Commit-ID: JwWOQIli5sS

--HG--
extra : rebase_source : 2bb52ba983455c7a1cef0fa47303e73b1f2704a9
2017-12-07 12:08:24 +01:00
Lars T Hansen
ab728154ab Bug 1420158 - rabaldr, rename register variables. rs=bbouvier
MozReview-Commit-ID: 32oW3SpdRjN

--HG--
extra : rebase_source : a80a13ef80eb22fcfef47636cf4b4bc7ade742fd
2017-12-08 16:59:09 +01:00
Lars T Hansen
7cf5906e74 Bug 1420158 - rabaldr register targeting, Create RAII wrappers for atomic ops regalloc/targeting. r=bbouvier
With one exception this removes all platform ifdefs from the high
level of the atomics code generators by moving the register targeting
into RAII wrappers.  These wrappers are placed in the new section of
the file, introduced by the previous patch.  These wrappers also get
rid of several of the needWhateverTemp() functions because they are
rolled into the RAII wrappers.

The exception is 64-bit atomic ops on x86: here, we are always starved
for registers and must use slightly different APIs, but most of the
code is common and there's a clear pattern at work, so I don't think
this is bad.

Each wrapper carries a method implementing the operation that the
wrapper is for, and calls lower-level code to implement the operation
with appropriate arguments.  Thus details of the wrapper are hidden,
and there's minimal risk of abuse or accident.

MozReview-Commit-ID: HeqgqrImxms

--HG--
extra : rebase_source : 73c743bca17dc365e816c64cc2c609dcc3912e09
2017-12-04 14:52:58 +01:00
Lars T Hansen
8220260561 Bug 1420158 - rabaldr register targeting, Cleanup: move code and rename. r=bbouvier
This creates a new section in the file that sits between the low-level
code generators (above) and the high-level logic and value stack
manipulation (below).  The intent is that this section will contain
platform-specific helpers for register targeting when we pop the value
stack.

As explained in a new comment in the code, there are two types of
helpers: simple popXForY methods, of which we've had many; and RAII
wrappers.  I've moved the existing popXForY methods into this
section in this patch; the next patch introduces a number of RAII
wrappers.

MozReview-Commit-ID: Fq6TqgsFOkL

--HG--
extra : rebase_source : bd35fe8a835196bb115153042dc73074e788acfc
2017-12-04 13:01:48 +01:00
Lars T Hansen
cd6764d949 Bug 1423831 - Increase static frame limit to 512 KiB. r=bbouvier
Given the standard wasm limits for parameters and locals, and assuming
a reasonable limit for the max evaluation stack height, we see that we
need a static frame size around 512KiB in the worst case.

The old limit, 256KiB, was arbitrary (it was just a large number meant
to reduce the attack surface) and we can therefore increase it to
512KiB.

MozReview-Commit-ID: JcKEdEp20Ok

--HG--
extra : rebase_source : 32f78f25f9d9ea369489b7d9a260d29fa8d49859
2017-12-07 09:08:25 +01:00
Lars T Hansen
8f3e3bca59 Bug 1423619 - Correct encoding of ARM ScratchFloat32Reg. r=nbp
--HG--
extra : rebase_source : ff3d03bef07efdb141c98136ab180e64a3819833
2017-12-06 17:26:14 +01:00
Andreea Pavel
5ba2665757 Merge inbound to mozilla-central r=merge a=merge 2017-12-09 22:21:17 +02:00
Gurzau Raul
0fcc1a37e6 Merge mozilla-central to mozilla-inbound. r=merge a=merge CLOSED TREE 2017-12-09 00:57:59 +02:00
Gurzau Raul
91d3bc0100 Merge inbound to mozilla-central r=merge a=merge 2017-12-09 00:36:15 +02:00
Nicolas B. Pierron
ce967e50c4 Bug 1412653 - Add missing MOZ_TRY. r=nbp
CLOSED TREE
2017-12-08 17:12:10 +00:00
Nicolas B. Pierron
81d226d76e Bug 1412653 - Distinguish between call stack used for outer resume points from call stacks used for resuming at one instruction. r=jandem 2017-12-08 16:44:44 +00:00
Boris Zbarsky
3b3ea3f709 Bug 1423875. Fix InitializePropertiesFromCompatibleNativeObject to get the shape of the resulting object right. r=jandem
MozReview-Commit-ID: 8wnOnUv57pV
2017-12-08 10:36:58 -05:00