Граф коммитов

79577 Коммитов

Автор SHA1 Сообщение Дата
Ricky Stewart 02a7b4ebdf Bug 1654103: Standardize on Black for Python code in `mozilla-central`.
Allow-list all Python code in tree for use with the black linter, and re-format all code in-tree accordingly.

To produce this patch I did all of the following:

1. Make changes to tools/lint/black.yml to remove include: stanza and update list of source extensions.

2. Run ./mach lint --linter black --fix

3. Make some ad-hoc manual updates to python/mozbuild/mozbuild/test/configure/test_configure.py -- it has some hard-coded line numbers that the reformat breaks.

4. Make some ad-hoc manual updates to `testing/marionette/client/setup.py`, `testing/marionette/harness/setup.py`, and `testing/firefox-ui/harness/setup.py`, which have hard-coded regexes that break after the reformat.

5. Add a set of exclusions to black.yml. These will be deleted in a follow-up bug (1672023).

# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D94045
2020-10-26 18:34:53 +00:00
Mihai Alexandru Michis 80f328510e Backed out 13 changesets (bug 1641595, bug 1671998, bug 1672770, bug 1641641, bug 1672697, bug 1672911, bug 1671996, bug 1671907, bug 1640662) for causing sm failures in splat-x64-ion-codegen.js
CLOSED TREE

Backed out changeset b5f6faabcb09 (bug 1641595)
Backed out changeset 326887a2b839 (bug 1641595)
Backed out changeset 2db3227f010f (bug 1672911)
Backed out changeset 857eeed4ed64 (bug 1672770)
Backed out changeset 388b419c10c6 (bug 1672697)
Backed out changeset 3d7f502d9ead (bug 1671998)
Backed out changeset 202d806bac14 (bug 1671996)
Backed out changeset bda987b1c505 (bug 1640662)
Backed out changeset 4e949bd393fa (bug 1640662)
Backed out changeset 164c3fd55821 (bug 1640662)
Backed out changeset 2026ca13fc92 (bug 1640662)
Backed out changeset 2716ecaf485c (bug 1671907)
Backed out changeset 92fe89072e8c (bug 1641641)
2020-10-26 16:49:09 +02:00
Ted Campbell 8e5dcc8f27 Bug 1672886 - Update js::SourceExtent documentation. r=arai
Differential Revision: https://phabricator.services.mozilla.com/D94695
2020-10-26 13:34:08 +00:00
Ted Campbell e0599a64f2 Bug 1672886 - Fix SourceExtent of JS private class methods. r=arai
Private class methods define an internal lambda function for the initializer,
but it currently uses source coordinates of [0,0) which isn't very helpful.
This patch updates it to cover the full field name until end of method body.

These distinctions are generally not exposed to users, but having internal
consistency is still helpful for defining engine invariants.

Differential Revision: https://phabricator.services.mozilla.com/D94612
2020-10-26 13:34:00 +00:00
Ted Campbell 228a6ca6e4 Bug 1672886 - Add tests for script source extents. r=arai
Add tests to document the BaseScripts generated for different parse
constructs and track the sourceStart/sourceEnd values. This uses the debugger
API to find hidden scripts and access the source values. The details this
test checks are arbitrary implementation details, and the test expectations
can be updated as necessary.

Differential Revision: https://phabricator.services.mozilla.com/D94611
2020-10-26 13:34:18 +00:00
Lars T Hansen acd3c1bffc Bug 1641595 - inline constants, part 2: random other cases. r=jseward
Instead of loading instruction-internal simd constants separately (on
x86/x64) and thus potentially increasing register pressure by
requiring temps, load them as part of the operation.

This patch handles a few remaining single-use-of-loaded-const cases,
none of which are probably all that important, this is just hygiene.

In the case where a loaded const is used multiple times, or a single
use can't be gotten rid of without introducing additional moves, we
assume (for now) that it's OK to load the constant separately.  The
cases that remain in this class are blends (that will use a mask and
its negation) and a few floating-point slow paths (some with multiple
uses, some with knotty logic).

Differential Revision: https://phabricator.services.mozilla.com/D94557
2020-10-26 11:05:49 +00:00
Lars T Hansen 31efd2dcaf Bug 1641595 - inline constants, part 1: shuffle. r=jseward
Instead of loading instruction-internal simd constants separately (on
x86/x64) and thus increasing register pressure by requiring temps,
load them as part of the operation.

This patch adapts the shuffle operation (pshufb).  There's a fair
amount of plumbing in the assemblers but the change amounts to
inlining the constant loads into the instruction, getting rid of a
temp, and making sure we bias in favor of lhs == output.

Differential Revision: https://phabricator.services.mozilla.com/D94556
2020-10-26 11:05:31 +00:00
Lars T Hansen 527d4864d3 Bug 1672911 - Remove support for pre-SSE4.1. r=jseward
Very gentle cleanup: just remove some code paths that we're not using, and won't be using.

Differential Revision: https://phabricator.services.mozilla.com/D94554
2020-10-26 11:05:14 +00:00
Lars T Hansen afbb2e086d Bug 1672770 - Generate better x86 ion code for v128 load-and-widen. r=jseward
Load-and-widen can be expressed as a single instruction on x86, so
let's specialize this path (in Ion) to avoid temp registers and extra
instructions.

We do what we did for zero-extend and splat: add an attribute to the
MemoryAccessDesc and let the wasmLoad logic take care of the
instruction selection.

Differential Revision: https://phabricator.services.mozilla.com/D94551
2020-10-26 11:04:56 +00:00
Lars T Hansen f539ded004 Bug 1672697 - Generate better code for v128.load32_splat and v128.load64_splat. r=jseward
Specialize Ion (only) code generation for v128.load32_splat and
v128.load64_splat to avoid going via an integer register, and select
the best instructions.

For the 32-bit case, simply use a 32-bit floating load instead of an
integer load, and the problem takes care of itself.

For the 64-bit case, introduce an attribute on the MemoryAccess
(similar to the one that is already there for zero-extension) and use
this, and generate a single movddup instruction to load and splat the
value.

Since we're here and touching this code, clean up the asserts on the
MemoryAccess attribute bits throughout the code base.

Differential Revision: https://phabricator.services.mozilla.com/D94441
2020-10-26 11:04:38 +00:00
Lars T Hansen ffe5ffcd15 Bug 1671998 - Clean up various move operations. r=jseward
This is a cleanup patch.

Remove all 'src != dest' guards on moveSimd128, moveSimd128Float, and
moveSimd128Int, because they all have that guard built in.

Rewrite some moves that are under such guards to use that family of
masm instructions, and remove the guard.

In a few cases where we continue to use movaps, movapd, and movdqa
directly, make sure we use the right one for the mode (int or float)
we're currently in.  This required adapting one whitebox test.

Differential Revision: https://phabricator.services.mozilla.com/D94074
2020-10-26 11:04:20 +00:00
Lars T Hansen 7e7ab0e822 Bug 1671996 - Do not use garbage bits if srcreg not same as destreg. r=jseward
Copy src -> dest if they are unequal; moveSimd128 avoids redundant moves.

Differential Revision: https://phabricator.services.mozilla.com/D94073
2020-10-26 11:04:07 +00:00
Lars T Hansen 0c249a8049 Bug 1640662 - wasm ion simd register preferences part 4: shuffle. r=jseward
Change register allocation for the shuffle operators so as to generate
better code.  Mostly this is about those shuffles that decay into a
permutation of one of the operands.

Add test cases to check the code generation.

Differential Revision: https://phabricator.services.mozilla.com/D94003
2020-10-26 11:03:39 +00:00
Lars T Hansen e5a6dff57a Bug 1640662 - wasm ion simd register preferences part 3: bitselect. r=jseward
Differential Revision: https://phabricator.services.mozilla.com/D93912
2020-10-26 11:02:58 +00:00
Lars T Hansen c5979ec741 Bug 1640662 - wasm ion simd register preferences part 2: binary-ish ops. r=jseward
See comment 0 on the bug for background on register preferences.

Mostly this blesses existing code with comments justifying the
existing behavior.  But also:

- Generate better code (with fewer moves) for pseudo-min and
  pseudo-max on x86, this becomes slightly involved because the masm
  interfaces need to change on that platform to account for the
  desired rhs = pmax(lhs, rhs) operation.  Also test this.

- Get rid of pointless abstractions for integer replace_lane.

- Clean up the code for floating replace_lane, notably, remove most of
  the complexity for f64x2, by making the operations two-address.

- Add new test cases that test some untested code paths in the
  floating replace_lane operations, and that test replace_lane
  code generation in general.

Differential Revision: https://phabricator.services.mozilla.com/D93721
2020-10-26 11:02:30 +00:00
Lars T Hansen 51fd7589a6 Bug 1640662 - wasm ion simd register preferences part 1: unary-ish ops. r=jseward
Use useRegister / useRegisterAtStart / define / defineReuseInput (as
well as comments) so as to generate (and document) the best code under
context-less assumptions.  See comment 0 on the bug for a more general
description of how we use those functions.

We add test cases to assert that the best code is actually generated
when that makes sense.  There are test cases only for operations where
the operation itself has explicit, but optional, reg->reg moves at the
beginning of the emitted code to deal with register misallocation.

The test cases assert that extraneous moves are not inserted at the
start of an operation under ideal circumstances, taking into account
whether the operation prefers src == dest or src != dest.  For cases
where the operation prefers src == dest the input register is set up
to be the same as the output register, ie, we use local 0 as the
argument and generate a result in the result register; for cases where
the operation prefers src != dest, we use local 1 as the argument.

The test cases are fairly delicate - they may be sensitive to small
changes in Ion; comments in the test files highlight this, and the
tests are not meant to constrain Ion, only to highlight accidental
changes.  That said, these tests have already uncovered bugs, and for
now let's see if we can make them stick.

Drive-by fixes:

 - prefer AND-with-literal-mask and XOR-with-literal-mask in a couple
   of places (instead of preloading the constant) to generate better
   code, mostly where this matters right now because we introduce
   tests that need to inspect the code; a more general cleanup of this
   type of pattern may happen later

 - remove unused/unimplemented generality in the negFloatNNxM,
   absFloatNNxM, and notTypeNNxM primitives

 - make the reuseInput*() primitives assert that their inputs are
   SIMD registers, and adapt client code accordingly; this
   prevents some bugs since float registers do not compare equal
   if they are not of the same type

 - make moveSimd128{Int,Float} no longer emit a move if the source and
   destination are the same register

Differential Revision: https://phabricator.services.mozilla.com/D93630
2020-10-26 11:01:46 +00:00
Lars T Hansen 1089e8ac93 Bug 1671907 - Properly recognize wasm constants that can be synthesized. r=jseward
When synthesizing constants we should be interested in type classes
(int vs float) and bit patterns in those classes, not specific tags --
a zero is a zero regardless of whether it is i8x16 or i32x4.

Thus the operator == on SimdConstant that takes type tags into account
is the wrong primitive to find out is a constant is synthesizable,
indeed, it is the wrong primitive in almost every case.  So get rid of
it, replace it with more suitable primitives, and use those
everywhere.

Add test cases that test that we are emitting the right instructions
for constants that are easy to synthesize.

Differential Revision: https://phabricator.services.mozilla.com/D94002
2020-10-26 11:03:11 +00:00
Lars T Hansen 9172495ce8 Bug 1641641 - Lower SIMD compares to avoid operations not present in hardware. r=jseward
Swap operands and/or change the operation of SIMD compares during
lowering to generate better code.  Introduce test cases for the
generated code.

The tests are a little brittle, but how else would we test this?  And
if the register allocator can't be counted on not to insert spurious
moves when presented with an optimal scenario, what can it be counted
on to do?

Drive-by fixes:
- Introduce an xor-with-constant abstraction (useful here and later)
- Clean up some comments
- Remove a small masm abstraction that did not pay for itself.

Differential Revision: https://phabricator.services.mozilla.com/D93720
2020-10-26 10:30:05 +00:00
Jon Coppeard 9134ef9194 Bug 1667336 - Don't check atom marking when GC marking if the current thread holds the helper thread mutex r=sfink
Currently we require taking a lock when we make the check that traced atoms are
marked in the atoms marking bitmap. This causes problems if we already hold
another mutex with a lower mutex order - e.g. the helper thread lock.

This fix is to skip this check if we hold this mutex. In future (when the
stencil work lands) we may not need to take the atoms lock and we can remove
this check.

One complication was the logic in Mutex::ownedByCurrentThread which had a race
between checking whther the owning thread ID (defined as a Maybe<ThreadId>) had
a value and if so whether the value was that of the current thread. If the
mutext is held by another thread and then released we can attempt to get the
value when the Maybe is nothing, causing an assertion failure. The ThreadId
type already has a null value however so we can use that without wrapping it in
a Maybe.

Differential Revision: https://phabricator.services.mozilla.com/D91895
2020-10-01 13:10:10 +00:00
Steve Fink 7d25fe7394 Bug 1667912 - Fix nonincremental weakmap marking r=jonco
Differential Revision: https://phabricator.services.mozilla.com/D91663
2020-10-24 18:06:04 +00:00
Ted Campbell e1d1f04395 Bug 1672172 - Make source notes relative to initial line/column. r=jandem
Update the SetLine / ColSpan source-notes to be relative to the script's
initial line and column number. This allows for more bytecode sharing.

Differential Revision: https://phabricator.services.mozilla.com/D94116
2020-10-24 01:12:57 +00:00
Bogdan Tara 7e2f80a26c Backed out changeset 0b27951e02d6 (bug 1672172) for browser_resources_* devtools failures CLOSED TREE 2020-10-24 04:10:13 +03:00
Bogdan Tara da1098d4aa Backed out 10 changesets (bug 1654103, bug 1672023, bug 1518999) for PanZoomControllerTest.touchEventForResult gv-junit failures CLOSED TREE
Backed out changeset ff3fb0b4a512 (bug 1672023)
Backed out changeset e7834b600201 (bug 1654103)
Backed out changeset 807893ca8069 (bug 1518999)
Backed out changeset 13e6b92440e9 (bug 1518999)
Backed out changeset 8b2ac5a6c98a (bug 1518999)
Backed out changeset 575748295752 (bug 1518999)
Backed out changeset 65f07ce7b39b (bug 1518999)
Backed out changeset 4bb80556158d (bug 1518999)
Backed out changeset 8ac8461d7bd7 (bug 1518999)
Backed out changeset e8ba13ee17f5 (bug 1518999)
2020-10-24 03:36:18 +03:00
Ted Campbell 2189239f96 Bug 1672172 - Make source notes relative to initial line/column. r=jandem
Update the SetLine / ColSpan source-notes to be relative to the script's
initial line and column number. This allows for more bytecode sharing.

Differential Revision: https://phabricator.services.mozilla.com/D94116
2020-10-23 22:48:52 +00:00
Steve Fink 25abe08e0c Bug 1668489 - Switch to sixgill that qualifies `using`-aliased template members to avoid collisions between different types r=jonco
Differential Revision: https://phabricator.services.mozilla.com/D94356
2020-10-23 23:13:07 +00:00
Ricky Stewart fe80718d67 Bug 1672023 - Remove excluded files from `black.yml` r=sylvestre,perftest-reviewers,geckoview-reviewers,agi
These files were omitted from the original patch because reformatting them required some manual intervention in order to avoid breaking unit tests. Generally the `noqa` lines were already there and just needed to be moved from one line to another (due to the reformatting by `black`), but sometimes `black` saw fit to move a bunch of stuff all onto one line, requiring me to introduce new `noqa` lines.

Besides the autoformat by `black` and some manual fixups, this patch contains no other changes.

# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D94052
2020-10-23 20:40:44 +00:00
Ricky Stewart c0cea3b0fa Bug 1654103: Standardize on Black for Python code in `mozilla-central`. r=remote-protocol-reviewers,marionette-reviewers,webdriver-reviewers,perftest-reviewers,devtools-backward-compat-reviewers,jgilbert,preferences-reviewers,sylvestre,maja_zf,webcompat-reviewers,denschub,ntim,whimboo,sparky
Allow-list all Python code in tree for use with the black linter, and re-format all code in-tree accordingly.

To produce this patch I did all of the following:

1. Make changes to tools/lint/black.yml to remove include: stanza and update list of source extensions.

2. Run ./mach lint --linter black --fix

3. Make some ad-hoc manual updates to python/mozbuild/mozbuild/test/configure/test_configure.py -- it has some hard-coded line numbers that the reformat breaks.

4. Make some ad-hoc manual updates to `testing/marionette/client/setup.py`, `testing/marionette/harness/setup.py`, and `testing/firefox-ui/harness/setup.py`, which have hard-coded regexes that break after the reformat.

5. Add a set of exclusions to black.yml. These will be deleted in a follow-up bug (1672023).

# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D94045
2020-10-23 20:40:42 +00:00
Iain Ireland 9b54a9c250 Bug 1673049: Fix jitsrc with breakpoints r=mgaudet DONTBUILD
Differential Revision: https://phabricator.services.mozilla.com/D94627
2020-10-23 19:12:14 +00:00
Bogdan Tara 4956d7bf15 Backed out changeset f800c9af17ef (bug 1672172) for bustage complaining about SourceNotes.h CLOSED TREE 2020-10-23 21:03:29 +03:00
Ted Campbell cc068ab08f Bug 1672172 - Make source notes relative to initial line/column. r=jandem
Update the SetLine / ColSpan source-notes to be relative to the script's
initial line and column number. This allows for more bytecode sharing.

Differential Revision: https://phabricator.services.mozilla.com/D94116
2020-10-22 16:16:40 +00:00
Caroline Cullen 434bac887b Bug 1669914 - Return false if recursive mode DisassembleScript shell function cannot get or create a script. r=iain
Differential Revision: https://phabricator.services.mozilla.com/D94068
2020-10-23 17:14:53 +00:00
Ted Campbell 081adf0876 Bug 1672729 - Use class field property name as start of initializer. r=arai
For more consistent locations when generating JS field initializer lambdas,
set the lambda's location as the property name. This ensures that source
notes are inside the function body. When we are generating the initializer
code for simple fields without initializers, the Parser pos() points to the
field name, so including the name in the lambda's SourceExtent ensures the
generated source locations are within the body.

Differential Revision: https://phabricator.services.mozilla.com/D94528
2020-10-23 01:08:01 +00:00
Ted Campbell 5645cfef1a Bug 1672729 - Add tests for JS field initializer function positions. r=arai
Differential Revision: https://phabricator.services.mozilla.com/D94527
2020-10-23 01:07:59 +00:00
Noemi Erli ee1c3819d4 Backed out changeset d5aa96fed845 (bug 1649234) for causing SM bustages in bug-1649234-2.js CLOSED TREE 2020-10-23 00:09:50 +03:00
Noemi Erli 557f342c10 Backed out changeset c96fb1d8ad93 (bug 1669914) for causing SM bustages in bug1669914.js 2020-10-23 00:07:52 +03:00
Caroline Cullen 162a078d25 Bug 1669914 - Return false if recursive mode DisassembleScript shell function cannot get or create a script. r=iain
Differential Revision: https://phabricator.services.mozilla.com/D94068
2020-10-22 18:16:37 +00:00
Jason Orendorff bd0391b13a Bug 1649234 - Remove overzealous isExceptionPending() assertion. r=mgaudet
When a script is terminated uncatchably (typically by an interrupt or the
debugger), we get error returns with no exception pending.

Differential Revision: https://phabricator.services.mozilla.com/D94374
2020-10-22 19:07:58 +00:00
Gijs Kruitbosch af15d01659 Bug 1666221 - cope with not having a working directory, r=robwu,mossop
Differential Revision: https://phabricator.services.mozilla.com/D91221
2020-10-22 19:44:46 +00:00
André Bargull 48ca9dbd1c Bug 1672373 - Part 5: Fold non-index strings in MGuardStringToInt32 and MGuardStringToDouble. r=jandem
Constant fold all strings in MGuardStringToInt32 and MGuardStringToDouble, as
long as we don't need to call into `js_strtod_harder`. `js_strtod_harder`
requires to have a `DtoaState` and because we don't have a `DtoaState` at hand
during constant folding and because we probably don't want to create it for
each and every MGuardStringToInt32 and MGuardStringToDouble node, we don't yet
support constant folding strings with fractional numbers.

Depends on D94302

Differential Revision: https://phabricator.services.mozilla.com/D94303
2020-10-22 10:50:35 +00:00
André Bargull 842660c590 Bug 1672373 - Part 4: Split some number parsing functions. r=jandem
Split some number parsing functions in preparation for the next part:

`js::GetPrefixInteger()`:
- `JSContext*` is only needed when calling `ComputeAccurateDecimalInteger()`,
  so split that call out of `GetPrefixInteger()`, so we can call
  `GetPrefixInteger()` from the compiler without a `JSContext*`.

`js::CharsToNumber()`:
- Split `CharToNumber()` and `CharsToNonDecimalNumber()` from `js::CharsToNumber()`,
  so we can reuse both functions in the next part more easily.
- Also rename `bp` to `start` to be more consistent with the rest of "jsnum.cpp".

Depends on D94301

Differential Revision: https://phabricator.services.mozilla.com/D94302
2020-10-22 09:04:29 +00:00
André Bargull 1f2860bb82 Bug 1672373 - Part 3: Change num_parseInt to a static function. r=jandem
`num_parseInt` is no longer accessed outside of "jsnum.cpp", so we might as
well change it to `static`.

Depends on D94300

Differential Revision: https://phabricator.services.mozilla.com/D94301
2020-10-22 08:51:22 +00:00
André Bargull 70628babfc Bug 1672373 - Part 2: Drop "Helper" from {Int32,Number}ToStringHelperPure. r=jandem
Using only "Pure" as the suffix is more common throughout the code base than
"HelperPure", so remove "Helper" from `{Int32,Number}ToStringHelperPure`.

Depends on D94299

Differential Revision: https://phabricator.services.mozilla.com/D94300
2020-10-22 08:51:04 +00:00
André Bargull 9aff2f0f95 Bug 1672373 - Part 1: Remove indirection in CharsToNumber. r=jandem
Use explicit template instantiations instead of using the indirection through
`CharsToNumberImpl`. That way `CharsToNumber` works more similar to the other
parsing functions from this file.

Differential Revision: https://phabricator.services.mozilla.com/D94299
2020-10-22 08:46:51 +00:00
Jan-Erik Rediger eeb5f1a8c2 Bug 1646165 - Implement FOG's JavaScript API via WebIDL. r=chutten,webidl,emilio,smaug
This is only the basic outline.
It doesn't do anything yet, but compile.
As there are no metrics generated for it it can't look up anything.

To note: Actual metric types are implemented in XPIDL later.

The following (priviliged) JavaScript code will soon work (if the
corresponding metrics would be defined):

const { Glean } = ChromeUtils.import("resource://gre/modules/Glean.jsm");
Glean.shared.test_only.count_things.add(1);

Differential Revision: https://phabricator.services.mozilla.com/D92211
2020-10-21 11:36:46 +00:00
Lars T Hansen 4e46727732 Bug 1671872 - remove v128 restriction on untyped select. r=rhunt
The compiler can already handle the type, only validation and tests have to change.

Differential Revision: https://phabricator.services.mozilla.com/D94103
2020-10-22 07:39:37 +00:00
Lars T Hansen cef1436f1a Bug 1671874 - Promote v128.load32_zero and v128.load64_zero opcodes from experimental. r=rhunt
Remove the 'Experimental' suffix on the opcodes, and the guard for
experimental SIMD opcodes.  Move the test case from experimental.js to
ad-hack.js and use the standard text format for it.

Differential Revision: https://phabricator.services.mozilla.com/D94075
2020-10-22 07:39:37 +00:00
Lars T Hansen e17a63397d Bug 1671874 - Pull a new wat version. r=rhunt
Pull in a version that correctly handles v128.load32_zero and v128.load64_zero.

Differential Revision: https://phabricator.services.mozilla.com/D94271
2020-10-22 07:39:01 +00:00
Dorel Luca 1ff59cb7a3 Backed out changeset 7558c8821a07 (bug 1654103) for multiple failures. CLOSED TREE 2020-10-22 03:51:06 +03:00
Dorel Luca 26941cf2f5 Backed out changeset 94ec15429e21 (bug 1672023) for Backout conflicts with Bug 1654103. CLOSED TREE 2020-10-22 03:43:01 +03:00
Ricky Stewart 8b352f1843 Bug 1672023 - Remove excluded files from `black.yml` r=sylvestre,perftest-reviewers,geckoview-reviewers,agi
These files were omitted from the original patch because reformatting them required some manual intervention in order to avoid breaking unit tests. Generally the `noqa` lines were already there and just needed to be moved from one line to another (due to the reformatting by `black`), but sometimes `black` saw fit to move a bunch of stuff all onto one line, requiring me to introduce new `noqa` lines.

Besides the autoformat by `black` and some manual fixups, this patch contains no other changes.

# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D94052
2020-10-21 21:29:30 +00:00