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

69046 Коммитов

Автор SHA1 Сообщение Дата
Daniel Varga 69d3c6c61d Merge mozilla-inbound to mozilla-central. a=merge
--HG--
rename : toolkit/components/passwordmgr/test/test_xhr.html => toolkit/components/passwordmgr/test/mochitest/test_xhr.html
2019-02-02 11:44:15 +02:00
Boris Zbarsky 44e2b07ad2 Bug 1521907 part 7. Start using CheckedUnwrapStatic/Dynamic in JS debugger. r=jandem
Differential Revision: https://phabricator.services.mozilla.com/D17889

--HG--
extra : moz-landing-system : lando
2019-02-02 03:26:24 +00:00
Boris Zbarsky d9fc29464f Bug 1521907 part 5. Start using CheckedUnwrapStatic/Dynamic in XPConnect. r=peterv
I am not a huge fan of the UnwrapReflectorToISupports setup here.  Maybe we
should introduce two differently-named methods that make it somewhat clear what
the limitations of not taking a JSContext are?  I couldn't think of sane
naming...

Differential Revision: https://phabricator.services.mozilla.com/D17885

--HG--
extra : moz-landing-system : lando
2019-02-02 03:24:45 +00:00
Boris Zbarsky 7e5a37a024 Bug 1521907 part 3. Start using CheckedUnwrapStatic/Dynamic in bindings. r=peterv
The basic idea for the changes around UnwrapObjectInternal and its callers
(UnwrapObject, UNWRAP_OBJECT, etc) is to add a parameter to the guts of the
object-unwrapping code in bindings which can be either a JSContext* or nullptr
(statically typed).  Then we test which type it is and do either a
CheckedUnwrapDynamic or CheckedUnwrapStatic.  Since the type is known at
compile time, there is no actual runtime check; the compiler just emits a call
to the right thing directly (verified by examining the assembly output on
Linux).

The rest of the changes are mostly propagating through that template parameter,
adding static asserts to make sure people don't accidentally pass nullptr while
trying to unwrap to a type that might be a WindowProxy or Location, etc.

There are also some changes to places that were calling CheckedUnwrap directly
to use either the static or dynamic version, as needed.

Differential Revision: https://phabricator.services.mozilla.com/D17883

--HG--
extra : moz-landing-system : lando
2019-02-02 03:23:49 +00:00
Boris Zbarsky e5fac88563 Bug 1521907 part 2. Add dynamic CheckedUnwrap support to CrossOriginObjectWrapper. r=peterv,sfink
This will allow us to correctly handle CheckedUnwrapDynamic on wrappers around
WindowProxy and Location.

Differential Revision: https://phabricator.services.mozilla.com/D17882

--HG--
extra : moz-landing-system : lando
2019-02-02 03:23:16 +00:00
Boris Zbarsky 1fa4aa00d2 Bug 1521907 part 1. Add a version of CheckedUnwrap that can do a dynamic security check. r=jandem,sfink
We're going to need this because we will have multiple Realms in the same
compartment which want different CheckedUnwrap behavior in some cases.  So we
need to be able to check which Realm we're in.

Differential Revision: https://phabricator.services.mozilla.com/D17881

--HG--
extra : moz-landing-system : lando
2019-02-02 03:22:29 +00:00
Bogdan Tara 8c569d6761 Merge mozilla-central to mozilla-inbound. a=merge CLOSED TREE 2019-02-02 01:39:31 +02:00
Bogdan Tara add2612cc6 Backed out 8 changesets (bug 1522837) for buffer-full-inspect-buffer-during-callback.html failures a=backout
Backed out changeset 2bd187c04fd9 (bug 1522837)
Backed out changeset 47c7f936579b (bug 1522837)
Backed out changeset 8fb361192757 (bug 1522837)
Backed out changeset 877d383189f4 (bug 1522837)
Backed out changeset 814aa7e78267 (bug 1522837)
Backed out changeset 2d7be3f59c9d (bug 1522837)
Backed out changeset 893db1319f23 (bug 1522837)
Backed out changeset 3eeb76f0f5d8 (bug 1522837)
2019-02-02 01:34:58 +02:00
Gurzau Raul 34253a9d78 Backed out changeset 56023d83552d (bug 1518377) for bustages at /tests/basic/bug908915.js on a CLOSED TREE 2019-02-01 21:36:39 +02:00
Ted Campbell 8bc1fdd88f Bug 1518377 - Fix the way isIon accesses current script r=nbp
Existing code didn't handle IonIC frames, but the
FrameScriptIter::script function does the right thing for us here.

Differential Revision: https://phabricator.services.mozilla.com/D18151

--HG--
extra : moz-landing-system : lando
2019-02-01 11:19:03 +00:00
Ciure Andrei 3fc7bec4e3 Merge mozilla-central to autoland. a=merge CLOSED TREE 2019-02-01 19:57:45 +02:00
Ciure Andrei 71db6522be Merge inbound to mozilla-central. a=merge 2019-02-01 19:56:27 +02:00
Benjamin Bouvier d9ab10a50d Bug 1522882: Define SpewBeginWasmFunction in non-debug builds too to fix bustage on a CLOSED TREE; r=me 2019-02-01 16:05:40 +01:00
Robin Templeton 98afdc103b Bug 1524136 - Fix BigInt errors in string conversion and remainder operations r=jwalden
Differential Revision: https://phabricator.services.mozilla.com/D18171

--HG--
extra : moz-landing-system : lando
2019-02-01 12:17:06 +00:00
Ciure Andrei 63b0f3f854 Backed out 7 changesets (bug 1521907) for JSObject Wrapper.cpp bustages and failures CLOSED TREE
Backed out changeset ce3108090e77 (bug 1521907)
Backed out changeset efd05f4979f1 (bug 1521907)
Backed out changeset 2d0895148907 (bug 1521907)
Backed out changeset 192152fe986a (bug 1521907)
Backed out changeset ca65b46b0d37 (bug 1521907)
Backed out changeset b3daf5ca3d11 (bug 1521907)
Backed out changeset 1b0a09a46c70 (bug 1521907)
2019-02-01 19:38:25 +02:00
Csoregi Natalia 9423fa7897 Merge mozilla-central to mozilla-inbound. CLOSED TREE 2019-02-02 00:14:12 +02:00
Boris Zbarsky f195e65a70 Bug 1521907 part 7. Start using CheckedUnwrapStatic/Dynamic in JS debugger. r=jandem
Differential Revision: https://phabricator.services.mozilla.com/D17889

--HG--
extra : moz-landing-system : lando
2019-01-30 17:45:22 +00:00
Boris Zbarsky bed98f8c98 Bug 1521907 part 5. Start using CheckedUnwrapStatic/Dynamic in XPConnect. r=peterv
I am not a huge fan of the UnwrapReflectorToISupports setup here.  Maybe we
should introduce two differently-named methods that make it somewhat clear what
the limitations of not taking a JSContext are?  I couldn't think of sane
naming...

Differential Revision: https://phabricator.services.mozilla.com/D17885

--HG--
extra : moz-landing-system : lando
2019-02-01 16:17:44 +00:00
Boris Zbarsky a3784f4489 Bug 1521907 part 3. Start using CheckedUnwrapStatic/Dynamic in bindings. r=peterv
The basic idea for the changes around UnwrapObjectInternal and its callers
(UnwrapObject, UNWRAP_OBJECT, etc) is to add a parameter to the guts of the
object-unwrapping code in bindings which can be either a JSContext* or nullptr
(statically typed).  Then we test which type it is and do either a
CheckedUnwrapDynamic or CheckedUnwrapStatic.  Since the type is known at
compile time, there is no actual runtime check; the compiler just emits a call
to the right thing directly (verified by examining the assembly output on
Linux).

The rest of the changes are mostly propagating through that template parameter,
adding static asserts to make sure people don't accidentally pass nullptr while
trying to unwrap to a type that might be a WindowProxy or Location, etc.

There are also some changes to places that were calling CheckedUnwrap directly
to use either the static or dynamic version, as needed.

Differential Revision: https://phabricator.services.mozilla.com/D17883

--HG--
extra : moz-landing-system : lando
2019-01-31 15:50:06 +00:00
Boris Zbarsky 9abee38822 Bug 1521907 part 2. Add dynamic CheckedUnwrap support to CrossOriginObjectWrapper. r=peterv
This will allow us to correctly handle CheckedUnwrapDynamic on wrappers around
WindowProxy and Location.

Differential Revision: https://phabricator.services.mozilla.com/D17882

--HG--
extra : moz-landing-system : lando
2019-01-31 11:22:53 +00:00
Boris Zbarsky 9927e55b7e Bug 1521907 part 1. Add a version of CheckedUnwrap that can do a dynamic security check. r=jandem
We're going to need this because we will have multiple Realms in the same
compartment which want different CheckedUnwrap behavior in some cases.  So we
need to be able to check which Realm we're in.

Differential Revision: https://phabricator.services.mozilla.com/D17881

--HG--
extra : moz-landing-system : lando
2019-01-30 17:33:49 +00:00
Benjamin Bouvier 5ca6ea03da Bug 1522882: Drive-by comment fixes; r=nbp
Differential Revision: https://phabricator.services.mozilla.com/D18194

--HG--
extra : rebase_source : 1a9f3468a1d8dd3ddd347d10b38f52468c86f364
2019-01-28 16:10:17 +01:00
Benjamin Bouvier eed37cd072 Bug 1522882: Exit early and print help when IONFLAGS isn't correctly set; r=nbp
Differential Revision: https://phabricator.services.mozilla.com/D18193

--HG--
extra : rebase_source : a16fc95b5a27140d3231bf3db70bf7ec33558f9a
extra : amend_source : 2e7c1831bb577fb29826ef161a16642e1a2747a1
2019-01-25 17:47:42 +01:00
Benjamin Bouvier 2e4330200f Bug 1522882: Add wasm function number to Iongraph spew; r=nbp
Differential Revision: https://phabricator.services.mozilla.com/D18192

--HG--
extra : rebase_source : d596d59a40fb660c35df7018bed605a847942ad9
2019-01-25 17:10:28 +01:00
André Bargull 2ee80e7ac9 Bug 1520286 - Part 2: Add VM-call for TypedArray constructor with Array/TypedArray arguments. r=jandem
--HG--
extra : rebase_source : 899acfc898773aec0a1b3b69aeb1aae07958cdc6
2019-02-01 05:14:41 -08:00
André Bargull 24cd46ac83 Bug 1520286 - Part 1: Switch over inlinable natives via JSJitInfo instead of performing pointer comparisons. r=tcampbell
--HG--
extra : rebase_source : 3293dc0ba2cb953b14d1cca56c8abc4985681b9a
2019-02-01 05:14:40 -08:00
Jan de Mooij 0c7e884af5 Bug 1522837 part 8 - Implement JSOP_GETIMPORT in BaselineInterpreterCodeGen. r=tcampbell
Eventually this op could use an IC or some frontend/bytecode refactoring to make
it faster in the interpreter. For now following the C++ interpreter is the
simplest solution though.

Differential Revision: https://phabricator.services.mozilla.com/D17939

--HG--
extra : moz-landing-system : lando
2019-01-31 18:13:25 +00:00
Jan de Mooij bd4243cae1 Bug 1522837 part 7 - Implement JSOP_NEWARRAY_COPYONWRITE in BaselineInterpreterCodeGen. r=tcampbell
Depends on D17937

Differential Revision: https://phabricator.services.mozilla.com/D17938

--HG--
extra : moz-landing-system : lando
2019-01-29 18:05:13 +00:00
Jan de Mooij 59fb8e7b5d Bug 1522837 part 6 - Implement JSOP_BUILTINPROTO in BaselineInterpreterCodeGen. r=tcampbell
Depends on D17936

Differential Revision: https://phabricator.services.mozilla.com/D17937

--HG--
extra : moz-landing-system : lando
2019-01-29 17:58:04 +00:00
Jan de Mooij 0b373aec27 Bug 1522837 part 5 - Implement JSOP_IMPORTMETA in BaselineInterpreterCodeGen. r=tcampbell
Depends on D17935

Differential Revision: https://phabricator.services.mozilla.com/D17936

--HG--
extra : moz-landing-system : lando
2019-01-29 17:44:30 +00:00
Jan de Mooij 120ec68d75 Bug 1522837 part 4 - Implement JSOP_CALLSITEOBJ in BaselineInterpreterCodeGen. r=tcampbell
This is just a VM call in the interpreter. We could optimize this with an IC or
inline path if it ever becomes a problem.

Depends on D17934

Differential Revision: https://phabricator.services.mozilla.com/D17935

--HG--
extra : moz-landing-system : lando
2019-01-29 17:41:30 +00:00
Jan de Mooij fabe18cff5 Bug 1522837 part 3 - Refactor JSOP_OBJECT in BaselineCodeGen. r=tcampbell
This adds js::SingletonObjectLiteralOperation and calls it from both the
interpreter and Baseline. The Baseline compiler still has a fast path for the
cloning-not-necessary case.

Depends on D17645

Differential Revision: https://phabricator.services.mozilla.com/D17934

--HG--
extra : moz-landing-system : lando
2019-01-29 16:54:05 +00:00
Jan de Mooij 4cd1653ee0 Bug 1522837 part 2 - Implement subtractScriptSlotsSize, loadGlobalLexicalEnvironment, loadGlobalThisValue, pushScriptArg. r=tcampbell
Differential Revision: https://phabricator.services.mozilla.com/D17645

--HG--
extra : moz-landing-system : lando
2019-01-29 14:06:37 +00:00
Jan de Mooij 5758a38618 Bug 1522837 part 1 - Implement loadScript, emitInitializeLocals, storeFrameSizeAndPushDescriptor for BaselineInterpreterHandler. r=djvj
This also removes computeFullFrameSize because we don't really need it.

Differential Revision: https://phabricator.services.mozilla.com/D17644

--HG--
extra : moz-landing-system : lando
2019-01-31 20:06:06 +00:00
Lars T Hansen b9f9b240f5 Bug 1523941 - Always use ScratchDoubleScope / ScratchFloat32Scope. r=nbp
Remove all(*) uses of ScratchDoubleReg / ScratchFloat32Reg in common
code and tier-1 macro-assemblers, and use ScratchDoubleScope /
ScratchFloat32Scope exclusively.  This sometimes leads to a very minor
amount of extra code, but ensures that we do not reuse a live
register.

(*) There are a couple of uses left, but these only check that the
scratch regs aren't used where they can't be used or check whether the
scratch regs need to be saved and restored across a call to external
code.

--HG--
extra : rebase_source : 9113a93e4d9a63c17257329302f9d648b7cf7298
extra : amend_source : b6b234553602713032ca034e6d11fa1942a3ca17
2019-01-31 07:51:14 +01:00
shindli d6dd350c66 Merge inbound to mozilla-central. a=merge 2019-02-01 05:56:53 +02:00
shindli dc35f3b972 Merge mozilla-central to autoland. a=merge CLOSED TREE
--HG--
extra : rebase_source : 44b5c3aa6b6562ada42dd6c60e3522a8bc97993b
2019-01-31 23:51:27 +02:00
Razvan Maries 503092bab5 Merge mozilla-central to mozilla-inbound. a=merge on a CLOSED TREE 2019-01-31 19:05:01 +02:00
Razvan Maries 17a96a3646 Merge mozilla-inbound to mozilla-central a=merge 2019-01-31 18:57:48 +02:00
Ms2ger 7dac6b7365 Bug 1524256 - Remove two copies of wast.js; r=bbouvier 2019-01-31 14:51:04 +01:00
Lars T Hansen 4a93abc816 Bug 1524201 - add message to static_assert. r=bugfix, CLOSED TREE 2019-01-31 13:48:48 +01:00
Lars T Hansen 9221ab830a Bug 1524201 - Do not claim the FP scratch when it's already claimed. r=nbp
--HG--
extra : rebase_source : 8e0e464f550e7f117a10cf7e070fe51f6f330671
extra : histedit_source : d4e7636920968f9ecb73beb9930c636ac86221f7%2C6b773e9ac327e8c5364e306246c46b68140b8e36
2019-01-31 10:28:18 +01:00
Lars T Hansen 6430c5c428 Bug 1524178 - Enable lock-free 8-byte atomics for ARM+ARM64 simulators. r=jseward
--HG--
extra : rebase_source : 2a2e17c64a79b7fdb35093610a70194dd7576e87
extra : histedit_source : 855775800c92ee641c1a0c8d6218352820cb3262
2019-01-31 08:50:38 +01:00
Steve Fink ccd55b7b4e Bug 1513614 - Preemptively register a outline typed object owner in the whole cell buffer, r=jonco
--HG--
extra : topic : TO.preempt
extra : rebase_source : c9a7998a0a77b7ed14bebcd820e4ae2edd23dbc6
extra : amend_source : a0e9aa46c56c98f6740b438812d343ad4027e39b
2019-01-30 16:22:42 -08:00
Nicolas B. Pierron 7d6d0729bd Bug 1522276 - IonMonkey ARM64: Add generic UDiv implementation. r=sstangl
Differential Revision: https://phabricator.services.mozilla.com/D17929

--HG--
extra : moz-landing-system : lando
2019-01-31 10:47:54 +00:00
Jim Blandy e7a8bf5e74 Bug 1522945: Dequeue OffThreadPromiseTasks one at a time, to support reentrant draining. r=luke
`OffThreadPromiseRuntimeState::internalDrain` assumes that if
`internalDispatchQueue_` is empty but `live_` is not, then there must be
`OffThreadPromiseTasks` still in flight that it should block for. To support
reentrant calls to `internalDrain`, we need to make two changes:

- First, `internalDrain` needs to dequeue jobs one at a time, rather than
  swapping out the entire queue, which makes the queue look empty when there are
  still jobs yet to be run.

- Second, `OffThreadPromiseTask::run` needs to remove each task from `live_`
  *before* calling its `resolve` method, so that if the last task in the queue
  reenters `internalDrain`, that won't mistake the final entry in `live_` for
  something it must block on.

Since there are still `OffThreadPromiseTasks` that get registered in `live_`
but then get destructed without being run (for example, in `WasmJS.cpp`'s
`ResolveResponse_OnFulfilled`), we cannot assume that the `run` method will
unregister all tasks; the destructor still needs to check if unregistration is
necessary. So we factor out unregistration into its own method.

Differential Revision: https://phabricator.services.mozilla.com/D17704

--HG--
extra : moz-landing-system : lando
2019-01-31 16:12:50 +00:00
Jim Blandy 77e8adf354 Bug 1522945: Use a FIFO for OffThreadPromiseRuntimeState::internalDispatchQueue. r=luke
To support reentrant calls to OffThreadPromiseRuntimeState::internalDrain, we
need to be able to tell reliably whether the queue is empty or not. The present
implementation tactic of using a Vector to represent the queue, pushing new jobs
onto the end, and then stealing the entire vector and processing all the jobs in
one pass over its make it appear that the queue is empty when, in fact, there
remain jobs that have not yet been run.

Since we have a true FIFO type ready at hand, we can use that to give the
off-thread promise machinery a more traditional implementation that dequeues one
job at a time.

Differential Revision: https://phabricator.services.mozilla.com/D17702

--HG--
extra : moz-landing-system : lando
2019-01-31 16:12:49 +00:00
Tooru Fujisawa b70ec2e916 Bug 1501578 - Add LexicalScopeEmitter. r=jorendorff
Differential Revision: https://phabricator.services.mozilla.com/D16938

--HG--
extra : moz-landing-system : lando
2019-01-31 16:48:38 +00:00
Mike Hommey 9f9fcb476e Bug 1523851 - Remove the dynamic_cast<void*> test. r=froydnj
It relies on AC_TRY_RUN, which doesn't work on cross-compiles. What this
means is that the feature has been disabled on mac builds on automation
ever since we switched to cross-compiles. It's still enabled on local
mac builds because the test runs there, and returns "yes". It also means
it's disabled on Android, where it probably works (at least debug tests
on try don't complain).

It also doesn't currently run on Windows because it's in a skipped
section on Windows, but if moved out of that section, the test returns
"no".

So, we remove any configure test for the feature, in favor of
preprocessor checks in nsTraceRefcnt.cpp.

Depends on D18055

Differential Revision: https://phabricator.services.mozilla.com/D18056

--HG--
extra : moz-landing-system : lando
2019-01-30 14:25:33 +00:00
Mike Hommey 730c219ac9 Bug 1523851 - Remove the AC_FUNC_MEMCMP test. r=froydnj
Autoconf 2.13 documentation says: "If the memcmp function is not
available, or does not work on 8-bit data (like the one on SunOS 4.1.3),
add `memcmp.o' to output variable LIBOBJS."

The documentation of more recent versions of autoconf also mention NeXT
x86 OpenStep, and say "This macro is obsolescent, as current systems
have a working memcmp. New programs need not use this macro."

We're also not using LIBOBJS, so, even if somehow some machine had the
test detect something weird going on, the result of the test wouldn't
have an effect on the build anyways.

Apart from that, it's also one of the few tests that relies on actually
running a compiled binary during configure, which requires some
autoconf-specific definition of cross-compilation (where --target=i686
--host=x86_64 is not cross-compilation), and we're better off getting
rid of such tests completely.

Depends on D18054

Differential Revision: https://phabricator.services.mozilla.com/D18055

--HG--
extra : moz-landing-system : lando
2019-01-30 14:38:56 +00:00