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

69286 Коммитов

Автор SHA1 Сообщение Дата
Mike Hommey ef3ad686ee Bug 1512504 - Remove support for MSVC. r=froydnj
Consequently, this removes:
- MOZ_LIBPRIO, which is now always enabled.
- non_msvc_compiler, which is now always true.
- The cl.py wrapper, since it's not used anymore.
- CL_INCLUDES_PREFIX, which was only used for the cl.py wrapper.
- NONASCII, which was only there to ensure CL_INCLUDES_PREFIX still
  worked in non-ASCII cases.

This however keeps a large part of detecting and configuring for MSVC,
because we still do need it for at least headers, libraries, and midl.

Depends on D19614

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

--HG--
extra : moz-landing-system : lando
2019-02-14 21:45:27 +00:00
Jan de Mooij 340eefe66e Bug 1527843 - Don't take the slow path for cross-realm functions in IonBuilder::createThis. r=anba
This has some minor fixes to ensure we create the object in the callee's realm
for MCreateThisWithTemplate and MCreateThisWithProto. It also fixes Baseline to
actually create a template object for Ion for cross-realm calls.

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

--HG--
extra : moz-landing-system : lando
2019-02-14 16:26:19 +00:00
Gurzau Raul 18a6010b33 Merge mozilla-central to autoland. a=merge CLOSED TREE 2019-02-14 19:04:56 +02:00
Gurzau Raul c1733291c0 Merge inbound to mozilla-central. a=merge 2019-02-14 19:01:42 +02:00
Andy Wingo 7d559ef8c3 Bug 1527860 - Remove ENABLE_BIGINT #ifdef r=jandem,froydnj
Differential Revision: https://phabricator.services.mozilla.com/D19766

--HG--
extra : moz-landing-system : lando
2019-02-14 15:03:44 +00:00
Jan de Mooij df63df0282 Bug 1526947 - Simplify aliased var code in the JITs. r=tcampbell
Environment shapes always use the max number of fixed slots before using
dynamic slots (see EmptyEnvironmentShape). We can take advantage of this in
the JITs and eliminate the calls to EnvironmentCoordinateToEnvironmentShape.

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

--HG--
extra : moz-landing-system : lando
2019-02-14 12:00:30 +00:00
Tooru Fujisawa 6dd524af5b Bug 1524507 - Remove sum interface and typedef from BinToken.h. r=Yoric
Differential Revision: https://phabricator.services.mozilla.com/D19726

--HG--
extra : moz-landing-system : lando
2019-02-14 08:46:52 +00:00
Lars T Hansen 6ce9a44465 Bug 1526653 - Document some ARM Linux compile problems. r=luke
Not every ARM Linux distro (all of them tier-3 apart from Android) has
a sys/user.h that provides the necessary structures for us to emulate
unaligned FP accesses.  Raspbian is a case in point; the only user.h
on the system is some generic glibc thing that is completely wrong for
ARM.

We can't really hope to #ifdef our way out of this -- for example,
there does not seem to be a reliable preprocessor name for Raspbian,
nor is there a canonical preprocessor name that sys/user.h exports
when the desired structures are defined.

Therefore, add some comments to explain the problem and introduce a
choke point that tier-3 porters can use if they run into the problem.

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

--HG--
extra : rebase_source : 06f1218fabb04028e56f98b0a314b91ddd81ea96
extra : amend_source : e0a7a373bf0ddb510ecc4b5f8b364cba92d705f5
2019-02-13 08:34:48 +01:00
Csoregi Natalia ecd94d6986 Backed out 79 changesets (bug 1524687, bug 1524688) for crashes on mozilla::dom::ScreenOrientation::ScreenOrientation(nsPIDOMWindowInner *,nsScreen *). CLOSED TREE
Backed out changeset 68a001a42406 (bug 1524687)
Backed out changeset 328de611bcd3 (bug 1524688)
Backed out changeset 68cffca6927a (bug 1524687)
Backed out changeset 81dc12cc9257 (bug 1524688)
Backed out changeset c7c49f64048f (bug 1524688)
Backed out changeset fb23a0271da0 (bug 1524688)
Backed out changeset 0c1d1248e59e (bug 1524688)
Backed out changeset 9e9ec7de4160 (bug 1524688)
Backed out changeset de0b9993bd5d (bug 1524688)
Backed out changeset 92877cf4fe33 (bug 1524688)
Backed out changeset b4938f2ff8fd (bug 1524688)
Backed out changeset 230d2feaf941 (bug 1524688)
Backed out changeset 6c63bc240972 (bug 1524688)
Backed out changeset 0ad5465eace1 (bug 1524688)
Backed out changeset 1e75ce91029b (bug 1524688)
Backed out changeset 34a978503b1d (bug 1524688)
Backed out changeset 183602e8a30b (bug 1524688)
Backed out changeset 12a9135dc005 (bug 1524688)
Backed out changeset 978ef5dac9db (bug 1524688)
Backed out changeset 28105bf7bf6a (bug 1524688)
Backed out changeset a9fb74beaf2b (bug 1524688)
Backed out changeset fe106b369a72 (bug 1524688)
Backed out changeset e657e77d4271 (bug 1524688)
Backed out changeset 09f626870ad0 (bug 1524688)
Backed out changeset fe9b6695212e (bug 1524688)
Backed out changeset 995ea188bc31 (bug 1524688)
Backed out changeset 01c4d3edb1b0 (bug 1524688)
Backed out changeset 1bb7dfbb9f48 (bug 1524688)
Backed out changeset 56c61e0a1f45 (bug 1524688)
Backed out changeset c819943ff466 (bug 1524688)
Backed out changeset a1dd5cec066e (bug 1524688)
Backed out changeset 517838ee0c3c (bug 1524688)
Backed out changeset f509a5759fdf (bug 1524688)
Backed out changeset 56f5c8f0d708 (bug 1524688)
Backed out changeset 5746311ef859 (bug 1524688)
Backed out changeset df02f7d25212 (bug 1524688)
Backed out changeset c9846136d105 (bug 1524688)
Backed out changeset 2bd48db9cd0f (bug 1524688)
Backed out changeset ff120b4eeb79 (bug 1524688)
Backed out changeset fe583e7aae8d (bug 1524688)
Backed out changeset 18f156d6355a (bug 1524688)
Backed out changeset f4eaebbe2e0f (bug 1524688)
Backed out changeset bf6b18e23f69 (bug 1524688)
Backed out changeset dd89eb7e9b0d (bug 1524688)
Backed out changeset 4cbbb367ba0b (bug 1524688)
Backed out changeset 4ed0cf6be580 (bug 1524688)
Backed out changeset d8efb5ed62b1 (bug 1524688)
Backed out changeset ea347d57d73a (bug 1524688)
Backed out changeset 911689ef9f33 (bug 1524688)
Backed out changeset 28670fdc418d (bug 1524688)
Backed out changeset 38e1e42a0fb0 (bug 1524688)
Backed out changeset 35a5f031dd1e (bug 1524688)
Backed out changeset b586d55d76d5 (bug 1524688)
Backed out changeset 6dcacead1746 (bug 1524688)
Backed out changeset 9895239d8ac6 (bug 1524688)
Backed out changeset 25f982fd53bd (bug 1524688)
Backed out changeset 4fb0f0a59fe2 (bug 1524688)
Backed out changeset fdc6c4ed241a (bug 1524688)
Backed out changeset 5ce5986068f0 (bug 1524688)
Backed out changeset ab64ed7388ae (bug 1524688)
Backed out changeset 56607c5a301a (bug 1524688)
Backed out changeset 6b3684e7d8f9 (bug 1524688)
Backed out changeset ee28258a5724 (bug 1524688)
Backed out changeset 9201a7ea3c54 (bug 1524688)
Backed out changeset d5dca413e2da (bug 1524688)
Backed out changeset 68eb174a337b (bug 1524688)
Backed out changeset 625f71135038 (bug 1524687)
Backed out changeset 46e13c453538 (bug 1524687)
Backed out changeset 614be688767f (bug 1524687)
Backed out changeset 9c24919ac5c2 (bug 1524687)
Backed out changeset b9862758b98c (bug 1524687)
Backed out changeset 92d9e927deec (bug 1524687)
Backed out changeset f4ee175bc5bd (bug 1524687)
Backed out changeset 191afe83da2e (bug 1524687)
Backed out changeset c58caf41bb94 (bug 1524687)
Backed out changeset df95a56dae04 (bug 1524687)
Backed out changeset 10c69df4444d (bug 1524687)
Backed out changeset 219b84a58f50 (bug 1524687)
Backed out changeset e96e61bd282f (bug 1524687)

--HG--
rename : browser/components/migration/360seProfileMigrator.jsm => browser/components/migration/360seProfileMigrator.js
rename : browser/components/migration/ChromeProfileMigrator.jsm => browser/components/migration/ChromeProfileMigrator.js
rename : browser/components/migration/EdgeProfileMigrator.jsm => browser/components/migration/EdgeProfileMigrator.js
rename : browser/components/migration/FirefoxProfileMigrator.jsm => browser/components/migration/FirefoxProfileMigrator.js
rename : browser/components/migration/IEProfileMigrator.jsm => browser/components/migration/IEProfileMigrator.js
rename : browser/components/migration/ProfileMigrator.jsm => browser/components/migration/ProfileMigrator.js
rename : browser/components/migration/SafariProfileMigrator.jsm => browser/components/migration/SafariProfileMigrator.js
rename : browser/components/newtab/AboutNewTabService.jsm => browser/components/newtab/aboutNewTabService.js
rename : browser/components/BrowserContentHandler.jsm => browser/components/nsBrowserContentHandler.js
rename : browser/components/BrowserGlue.jsm => browser/components/nsBrowserGlue.js
rename : browser/components/payments/PaymentUIService.jsm => browser/components/payments/paymentUIService.js
rename : browser/components/protocolhandler/WebProtocolHandlerRegistrar.jsm => browser/components/protocolhandler/WebProtocolHandlerRegistrar.js
rename : devtools/startup/AboutDebuggingNewRegistration.jsm => devtools/startup/aboutdebugging-new-registration.js
rename : devtools/startup/AboutDebuggingRegistration.jsm => devtools/startup/aboutdebugging-registration.js
rename : devtools/startup/aboutdevtools/AboutDevToolsRegistration.jsm => devtools/startup/aboutdevtools/aboutdevtools-registration.js
rename : devtools/startup/AboutDevToolsToolboxRegistration.jsm => devtools/startup/aboutdevtoolstoolbox-registration.js
rename : devtools/startup/DevToolsStartup.jsm => devtools/startup/devtools-startup.js
rename : dom/base/ProcessSelector.jsm => dom/base/ProcessSelector.js
rename : dom/base/SlowScriptDebug.jsm => dom/base/SlowScriptDebug.js
rename : dom/base/ContentAreaDropListener.jsm => dom/base/contentAreaDropListener.js
rename : dom/browser-element/BrowserElementParent.jsm => dom/browser-element/BrowserElementParent.js
rename : dom/console/ConsoleAPIStorage.jsm => dom/console/ConsoleAPIStorage.js
rename : dom/html/HTMLMenuBuilder.jsm => dom/html/htmlMenuBuilder.js
rename : dom/media/PeerConnection.jsm => dom/media/PeerConnection.js
rename : dom/notification/NotificationStorage.jsm => dom/notification/NotificationStorage.js
rename : dom/presentation/PresentationDataChannelSessionTransport.jsm => dom/presentation/PresentationDataChannelSessionTransport.js
rename : dom/presentation/PresentationNetworkHelper.jsm => dom/presentation/PresentationNetworkHelper.js
rename : dom/presentation/provider/AndroidCastDeviceProvider.jsm => dom/presentation/provider/AndroidCastDeviceProvider.js
rename : dom/presentation/provider/PresentationControlService.jsm => dom/presentation/provider/PresentationControlService.js
rename : dom/push/Push.jsm => dom/push/Push.js
rename : dom/push/PushComponents.jsm => dom/push/PushComponents.js
rename : dom/system/NetworkGeolocationProvider.jsm => dom/system/NetworkGeolocationProvider.js
rename : layout/tools/recording/RecordingCmdLine.jsm => layout/tools/recording/recording-cmdline.js
rename : netwerk/dns/mdns/libmdns/DNSServiceDiscovery.jsm => netwerk/dns/mdns/libmdns/nsDNSServiceDiscovery.js
rename : netwerk/protocol/http/UAOverridesBootstrapper.jsm => netwerk/protocol/http/UAOverridesBootstrapper.js
rename : netwerk/protocol/http/WellKnownOpportunisticUtils.jsm => netwerk/protocol/http/WellKnownOpportunisticUtils.js
rename : services/fxaccounts/FxAccountsPush.jsm => services/fxaccounts/FxAccountsPush.js
rename : services/settings/RemoteSettingsComponents.jsm => services/settings/RemoteSettingsComponents.js
rename : services/sync/Weave.jsm => services/sync/Weave.js
rename : toolkit/components/asyncshutdown/nsAsyncShutdown.jsm => toolkit/components/asyncshutdown/nsAsyncShutdown.js
rename : toolkit/components/backgroundhangmonitor/BHRTelemetryService.jsm => toolkit/components/backgroundhangmonitor/BHRTelemetryService.js
rename : toolkit/components/captivedetect/CaptiveDetect.jsm => toolkit/components/captivedetect/captivedetect.js
rename : toolkit/components/cleardata/ClearDataService.jsm => toolkit/components/cleardata/ClearDataService.js
rename : toolkit/components/contentprefs/ContentPrefService2.jsm => toolkit/components/contentprefs/ContentPrefService2.js
rename : toolkit/components/crashes/CrashService.jsm => toolkit/components/crashes/CrashService.js
rename : toolkit/components/crashmonitor/nsCrashMonitor.jsm => toolkit/components/crashmonitor/nsCrashMonitor.js
rename : toolkit/components/downloads/DownloadLegacy.jsm => toolkit/components/downloads/DownloadLegacy.js
rename : toolkit/components/gfx/SanityTest.jsm => toolkit/components/gfx/SanityTest.js
rename : toolkit/components/mozintl/mozIntl.jsm => toolkit/components/mozintl/mozIntl.js
rename : toolkit/components/mozprotocol/MozProtocolHandler.jsm => toolkit/components/mozprotocol/mozProtocolHandler.js
rename : toolkit/components/normandy/ShieldContentProcess.jsm => toolkit/components/normandy/shield-content-process.js
rename : toolkit/components/DefaultCLH.jsm => toolkit/components/nsDefaultCLH.js
rename : toolkit/components/passwordmgr/LoginInfo.jsm => toolkit/components/passwordmgr/nsLoginInfo.js
rename : toolkit/components/passwordmgr/LoginManager.jsm => toolkit/components/passwordmgr/nsLoginManager.js
rename : toolkit/components/passwordmgr/LoginManagerPrompter.jsm => toolkit/components/passwordmgr/nsLoginManagerPrompter.js
rename : toolkit/components/places/ColorAnalyzer.jsm => toolkit/components/places/ColorAnalyzer.js
rename : toolkit/components/places/PageIconProtocolHandler.jsm => toolkit/components/places/PageIconProtocolHandler.js
rename : toolkit/components/places/PlacesCategoriesStarter.jsm => toolkit/components/places/PlacesCategoriesStarter.js
rename : toolkit/components/places/UnifiedComplete.jsm => toolkit/components/places/UnifiedComplete.js
rename : toolkit/components/places/PlacesExpiration.jsm => toolkit/components/places/nsPlacesExpiration.js
rename : toolkit/components/places/TaggingService.jsm => toolkit/components/places/nsTaggingService.js
rename : toolkit/components/processsingleton/ContentProcessSingleton.jsm => toolkit/components/processsingleton/ContentProcessSingleton.js
rename : toolkit/components/processsingleton/MainProcessSingleton.jsm => toolkit/components/processsingleton/MainProcessSingleton.js
rename : toolkit/components/prompts/src/Prompter.jsm => toolkit/components/prompts/src/nsPrompter.js
rename : toolkit/components/remotebrowserutils/RemoteWebNavigation.jsm => toolkit/components/remotebrowserutils/RemoteWebNavigation.js
rename : toolkit/components/satchel/FormHistoryStartup.jsm => toolkit/components/satchel/FormHistoryStartup.js
rename : toolkit/components/satchel/FormAutoComplete.jsm => toolkit/components/satchel/nsFormAutoComplete.js
rename : toolkit/components/satchel/InputListAutoComplete.jsm => toolkit/components/satchel/nsInputListAutoComplete.js
rename : toolkit/components/search/SearchService.jsm => toolkit/components/search/nsSearchService.js
rename : toolkit/components/search/SearchSuggestions.jsm => toolkit/components/search/nsSearchSuggestions.js
rename : toolkit/components/search/Sidebar.jsm => toolkit/components/search/nsSidebar.js
rename : toolkit/components/telemetry/TelemetryStartup.jsm => toolkit/components/telemetry/TelemetryStartup.js
rename : toolkit/components/terminator/TerminatorTelemetry.jsm => toolkit/components/terminator/nsTerminatorTelemetry.js
rename : toolkit/components/thumbnails/PageThumbsStorageService.jsm => toolkit/components/thumbnails/PageThumbsStorageService.js
rename : toolkit/components/timermanager/UpdateTimerManager.jsm => toolkit/components/timermanager/nsUpdateTimerManager.js
rename : toolkit/components/tooltiptext/TooltipTextProvider.jsm => toolkit/components/tooltiptext/TooltipTextProvider.js
rename : toolkit/components/url-classifier/UrlClassifierHashCompleter.jsm => toolkit/components/url-classifier/nsUrlClassifierHashCompleter.js
rename : toolkit/components/url-classifier/UrlClassifierLib.jsm => toolkit/components/url-classifier/nsUrlClassifierLib.js
rename : toolkit/components/url-classifier/UrlClassifierListManager.jsm => toolkit/components/url-classifier/nsUrlClassifierListManager.js
rename : toolkit/components/urlformatter/URLFormatter.jsm => toolkit/components/urlformatter/nsURLFormatter.js
rename : toolkit/components/utils/SimpleServices.jsm => toolkit/components/utils/simpleServices.js
rename : toolkit/components/xulstore/XULStore.jsm => toolkit/components/xulstore/XULStore.js
rename : toolkit/mozapps/downloads/HelperAppDlg.jsm => toolkit/mozapps/downloads/nsHelperAppDlg.js
rename : toolkit/mozapps/extensions/amContentHandler.jsm => toolkit/mozapps/extensions/amContentHandler.js
rename : toolkit/mozapps/extensions/amInstallTrigger.jsm => toolkit/mozapps/extensions/amInstallTrigger.js
rename : toolkit/mozapps/extensions/amWebAPI.jsm => toolkit/mozapps/extensions/amWebAPI.js
rename : toolkit/mozapps/handling/ContentDispatchChooser.jsm => toolkit/mozapps/handling/nsContentDispatchChooser.js
rename : toolkit/mozapps/update/UpdateService.jsm => toolkit/mozapps/update/nsUpdateService.js
rename : toolkit/mozapps/update/UpdateServiceStub.jsm => toolkit/mozapps/update/nsUpdateServiceStub.js
rename : uriloader/exthandler/WebHandlerApp.jsm => uriloader/exthandler/nsWebHandlerApp.js
2019-02-14 11:50:23 +02:00
shindli c6c323a9e4 Merge mozilla-central to inbound. a=merge CLOSED TREE
--HG--
extra : rebase_source : 4502430f7e773b654c4557946c39000735b14bb3
2019-02-14 06:58:32 +02:00
shindli 38035ee924 Merge inbound to mozilla-central. a=merge 2019-02-14 06:40:41 +02:00
Brindusan Cristian 0b12a8c3cb Backed out changeset 43baecd33ce6 (bug 1527225) for jsreftest at [@ js::Nursery::maybeResizeNursery(JS::GCReason)]. CLOSED TREE 2019-02-14 02:07:32 +02:00
shindli 54aa04bfd1 Merge mozilla-central to inbound. a=merge CLOSED TREE 2019-02-13 23:36:24 +02:00
Paul Bone 719b50bee3 Bug 1527225 - Use mozilla::Clamp in maybeResizeNursery() r=jandem
Differential Revision: https://phabricator.services.mozilla.com/D19473

--HG--
extra : moz-landing-system : lando
2019-02-13 14:48:31 +00:00
Tooru Fujisawa cd1eff2104 Bug 1526234 - Add --dump-bytecode to fuzz-flags.txt. r=gkw
Differential Revision: https://phabricator.services.mozilla.com/D19136

--HG--
extra : moz-landing-system : lando
2019-02-13 11:56:49 +00:00
Nika Layzell dbec7d4975 Bug 1526382 - Part 2: Make nsIClassInfo use Array<nsIIDRef> for 'interfaces', r=mccr8
This is a follow-up to the previous part, which actually changes one of
these callers to use Array<nsIIDRef> instead of [array] nsIIDPtr.

From doing this patch, it seems like we should consider changing
the type `nsIIDRef` to instead simply be `nsIID`, and treat it more like
the `AString` types from the POV of XPIDL. `nsIIDPtr` would then
continue to exist for backwards compatibility, but we can probably
remove almost all current consumers over time.

Depends on D19175

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

--HG--
extra : moz-landing-system : lando
2019-02-13 21:42:08 +00:00
Nika Layzell 1c2a9c2b07 Bug 1526382 - Part 1: Split nsID& and nsID* in xpconnect, r=mccr8
Currently the [ref] and [ptr] types share the same underlying
implementation. This is unfortunate, and can cause correctness problems
with outparam refs (as an example).

By using the same tools used to allow other larger objects (such as
jsid, nsTArray, and nsString) to be stored directly in the nsXPTCVariant
object, this patch directly stores the nsID in the nsXPTCVariant object
when calling from JS into C++.

Using this new strategy avoids an nsID* allocation every time we pass
one over XPConnect, and should also allow us to simplify callers.

In addition, some special casing is added to xpidl to make it possible
to use the nsid reference type objects directly inside of Array<T>,
which will allow us to remove `[array] nsIIDPtr` callers.

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

--HG--
extra : moz-landing-system : lando
2019-02-13 21:42:00 +00:00
Jim Blandy 7360a10f30 Bug 1145201: Use AutoDebuggerJobQueueInterruption in Debugger. r=jorendorff
Modify the Debugger API implementation to ensure that debugger code's promise
activity (resolving promises; running reaction jobs) cannot interfere with the
debuggee's.

Specifically, ensure that there is an `AutoDebuggerJobQueueInterruption` in
scope at every site in the Debugger implementation that might invoke a debugger
hook function. This saves the debuggee's job queue, emplaces a fresh empty
queue, lets the hooks run, drains the queue, and then restores the debuggee's
original queue.

Since we must already mark sites that could invoke hooks with
`EnterDebuggeeNoExecute`, we ensure our job queue protection coverage is
complete statically by having `EnterDebuggeeNoExecute`'s constructor require a
reference to an `AutoDebuggerJobQueueInterruption`.

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

--HG--
extra : moz-landing-system : lando
2019-02-12 08:10:54 +00:00
Jim Blandy 6cc5bf24a5 Bug 1145201: Implement JS::AutoDebuggerJobQueueInterruption. r=arai,smaug
Define a new RAII class, AutoDebuggerJobQueueInterruption, to save and restore
the current ECMAScript job queue, to protect the debuggee's job queue from
activity that occurs in debugger callbacks. Add a new method to the JS::JobQueue
abstract base class, saveJobQueue, to support AutoDebuggerJobQueueInterruption.
Comments on AutoDebuggerJobQueueInterruption provide details.

Implement saveJobQueue for SpiderMonkey's internal job queue and for Gecko's job
queue in CycleCollectedJSContext.

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

--HG--
extra : moz-landing-system : lando
2019-02-12 08:14:34 +00:00
Jim Blandy 0ae9145c60 Bug 1145201: Replace EnqueuePromiseJobCallback and GetIncumbentGlobalCallback with new JobQueue abstract base class. r=arai,smaug
While the behavior of ECMAScript Promises and their associated job queue is
covered by the ECMAScript standard, the HTML specification amends that with
additional behavior the web platform requires. To support this, SpiderMonkey
provides hooks the embedding can set to replace SpiderMonkey's queue with its
own implementation.

At present, these hooks are C-style function-pointer-and-void-pointer pairs,
which are awkward to handle and mistake-prone, as passing a function the wrong
void* is not a type error. Later patches in this series must add new hooks,
making a bad situation worse.

A C++ abstract base class is a well-typed alternative. This introduces a new
`JS::JobQueue` abstract class, and adapts SpiderMonkey's internal job queue and
Gecko's customization to use it. `GetIncumbentGlobalCallback` and
`EnqueuePromiseJobCallback` become virtual methods.

Within SpiderMonkey, the patch gathers the various fields of JSContext that
implement the internal queue into their own type, js::InternalJobQueue. Various
jsfriendapi functions become veneers for calls to methods specific to the
derived class. The InternalJobQueue type itself remains private to SpiderMonkey,
as it uses types like TraceableFifo, derived from Fifo, that are not part of
SpiderMonkey's public API.

Within Gecko, CycleCollectedJSContext acquires JS::JobQueue as a private base
class, and a few static methods are cleaned up nicely.

There are a few other hooks defined in js/public/Promise.h that might make sense
to turn into virtual methods on JobQueue. For example,
DispatchToEventLoopCallback, used for resolving promises of results from
off-main-thread tasks, is probably necessarily connected to the JobQueue
implementation in use, so it might not be sensible to set one without the other.
But it was left unchanged to reduce this patch's size.

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

--HG--
extra : moz-landing-system : lando
2019-02-12 08:16:16 +00:00
Florian Quèze 5de09797c0 Bug 1526508 - add profiler markers for importing a JS module, loading a JS XPCOM component or a subscript r=mstange
Bug 1526508 - add profiler markers for importing a JS module, loading a JS XPCOM component or a subscript

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

--HG--
extra : moz-landing-system : lando
2019-02-11 17:53:22 +00:00
Bogdan Tara c5dfc53d7d Backed out changeset 885272c243c8 (bug 1524507) for BinToken related bustages CLOSED TREE 2019-02-14 09:21:26 +02:00
Tooru Fujisawa 1c0f0892fa Bug 1524507 - Remove sum interface and typedef from BinToken.h. r=Yoric
Differential Revision: https://phabricator.services.mozilla.com/D19726

--HG--
extra : moz-landing-system : lando
2019-02-14 06:20:07 +00:00
Logan Smyth 8e56381065 Bug 1518661 - Part 5: Give SpiderMonkey well-defined sense of step and breakpoint locations. r=jimb,bhackett
Until now, SpiderMonkey's debugger interfaces have generally relied on the
implicitly-defined 'entrypoint' concept. This meant that assigning a given
bytecode a position also automatically meant that it behaved like a breakpoint.
This both made it hard to maintain, and hard to define user's expectations
because there could potentially be many more breakpoints than users would
actually want.

This patch adds an official concept of recommended breakpoint and recommended
step-next pause locations, and APIs for users to query for them. The
expectation being that users would now use this metadata in debugging UIs.

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

--HG--
extra : moz-landing-system : lando
2019-02-13 02:31:00 +00:00
Logan Smyth 6b7e5f0896 Bug 1518661 - Part 4: Convert bytecode positions to be more expression-oriented. r=jimb,jorendorff
This brings SpiderMonkey more in line with V8 for the positions that it uses for expressions
nested within statements. We generally prefer to use the expression's own location
rather than the location of the statement, in the majority of cases.

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

--HG--
extra : moz-landing-system : lando
2019-02-13 02:31:00 +00:00
Benjamin Bouvier df9f0e097b Bug 1525876: Move ENABLE_WASM_CRANELIFT build test in the wasm mozbuild; r=tcampbell
Differential Revision: https://phabricator.services.mozilla.com/D19648

--HG--
extra : moz-landing-system : lando
2019-02-13 13:52:07 +00:00
Benjamin Bouvier 0edb126b3e Bug 1525876: Export FILES_PER_UNIFIED_FILES in js/src/moz.build to avoid redefining it; r=froydnj
Before this patch, changing FILES_PER_UNIFIED_FILES in the directory would
require changes to all the files that defined the sandbox variable, which is
a bit misleading. Exporting the variable prevents this, and it is safe to use
because it doesn't escape the scope of the js/src build directory.

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

--HG--
extra : moz-landing-system : lando
2019-02-13 14:35:37 +00:00
Peeyush Kushwaha 3c72e5c582 Bug 1510603 - Rename some members of CacheIRSpewer for consistency r=mgaudet
Renamed outputLock, output, and json to add an underscore suffix

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

--HG--
extra : moz-landing-system : lando
2019-02-13 14:17:30 +00:00
Boris Zbarsky 82a9e7be8a Bug 1527413 part 2. Add a way to iterate the compartments in a given zone. r=jandem
Differential Revision: https://phabricator.services.mozilla.com/D19560

--HG--
extra : moz-landing-system : lando
2019-02-13 14:10:21 +00:00
Boris Zbarsky e40194db78 Bug 1527413 part 1. Give JSIterateCompartmentCallback a return value that can be used to stop the iteration. r=jandem
Differential Revision: https://phabricator.services.mozilla.com/D19559

--HG--
extra : moz-landing-system : lando
2019-02-13 14:10:19 +00:00
Boris Zbarsky 89d99f24cc Bug 1527443. Add a way to create a new Realm in a given compartment. r=jandem
Differential Revision: https://phabricator.services.mozilla.com/D19566

--HG--
extra : moz-landing-system : lando
2019-02-13 08:42:45 +00:00
Nicolas B. Pierron 1f7b0b5219 Bug 1522300 - ARM64: Restore the Pseudo stack pointer before asserting that it has the correct alignment. r=sstangl
Differential Revision: https://phabricator.services.mozilla.com/D19543

--HG--
extra : moz-landing-system : lando
2019-02-12 19:49:34 +00:00
Andy Wingo 887c6dc05f Bug 1519135 - Replace JSOP_POS in ++/-- with JSOP_TONUMERIC r=terpri,jandem
Differential Revision: https://phabricator.services.mozilla.com/D16200

--HG--
extra : moz-landing-system : lando
2019-02-13 10:48:51 +00:00
Tooru Fujisawa f56506f966 Bug 1527515 - Enable building BinAST on win32 and android nightlies. r=Yoric
Differential Revision: https://phabricator.services.mozilla.com/D19608

--HG--
extra : moz-landing-system : lando
2019-02-13 08:42:47 +00:00
Jan de Mooij 6b8698ce2d Bug 1526588 - Fix some issues with js::GetFirstGlobalInCompartment and XPCWrappedNativeScope::UpdateWeakPointersInAllScopesAfterGC. r=bzbarsky
Differential Revision: https://phabricator.services.mozilla.com/D19493

--HG--
extra : moz-landing-system : lando
2019-02-13 06:41:44 +00:00
Logan Smyth e962578670 Bug 1518661 - Part 3: Adjust call-expression positions. r=jimb,jorendorff
When we mark call expressions as breakpoints, we want to make it as likely
as possible that the call has its own unique positon. The existing logic
means that it is more likely that the beginning of a call will align
with the start of an expression statement or other debuggable step point.
By using the property-access location, we're less likely to collide.

Thid also adds a new bytecodes that were missed in the original code that
added this position handling logic.

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

--HG--
extra : moz-landing-system : lando
2019-02-13 02:55:21 +00:00
Logan Smyth a84a4fb897 Bug 1518661 - Part 1: Pass PropertyName* directly instead of creating ID. r=jimb,jorendorff
This is just a bit of cleanup I'd noticed while writing new implementations of these.

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

--HG--
extra : moz-landing-system : lando
2019-02-13 02:54:57 +00:00
Razvan Maries dcc3ecb682 Merge mozilla-central to autoland. a=merge on a CLOSED TREE 2019-02-13 07:23:59 +02:00
Andreea Pavel e754faad17 Backed out 3 changesets (bug 1518661) for failing test_promise_rejections_from_jsimplemented.html
Backed out changeset d381785b0c4c (bug 1518661)
Backed out changeset 4a8b38e5373b (bug 1518661)
Backed out changeset 64ebb085a6b3 (bug 1518661)

--HG--
extra : rebase_source : 7e4c5c4cd0b2ea9e48238e6083fdfc01b3f9bd16
2019-02-13 04:27:22 +02:00
Robin Templeton 1f7be18a3c Bug 1527482 - Check for BigInts in ValueToSourceForError r=arai
Differential Revision: https://phabricator.services.mozilla.com/D19590

--HG--
extra : moz-landing-system : lando
2019-02-12 23:21:53 +00:00
Logan Smyth 2efd56750c Bug 1518661 - Part 3: Adjust call-expression positions. r=jimb,jorendorff
When we mark call expressions as breakpoints, we want to make it as likely
as possible that the call has its own unique positon. The existing logic
means that it is more likely that the beginning of a call will align
with the start of an expression statement or other debuggable step point.
By using the property-access location, we're less likely to collide.

Thid also adds a new bytecodes that were missed in the original code that
added this position handling logic.

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

--HG--
extra : moz-landing-system : lando
2019-02-12 23:46:27 +00:00
Logan Smyth 0fc26dd98e Bug 1518661 - Part 1: Pass PropertyName* directly instead of creating ID. r=jimb,jorendorff
This is just a bit of cleanup I'd noticed while writing new implementations of these.

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

--HG--
extra : moz-landing-system : lando
2019-02-12 23:45:18 +00:00
Sean Stangl c82dda2439 Bug 1523015 - Summary: Enable Ion on ARM64, but disable in-browser by pref. r=nbp
Differential Revision: https://phabricator.services.mozilla.com/D19448

--HG--
extra : moz-landing-system : lando
2019-02-12 22:50:27 +00:00
Andy Wingo 3179147c0e Bug 1527155 - Uniformly signal OOM if StringToBigInt result too large r=jwalden,terpri
Differential Revision: https://phabricator.services.mozilla.com/D19468

--HG--
extra : moz-landing-system : lando
2019-02-12 17:05:04 +00:00
David Major e68d42b99d Bug 1525416 - Teach libffi/src/closures.c about ARM64_WIN64 r=froydnj
I added ARM64_WIN64 to every line that mentioned X86_WIN32 and X86_WIN64.

This makes sure the allocation routines do the proper VirtualProtect on the trampolines.

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

--HG--
extra : moz-landing-system : lando
2019-02-12 21:44:46 +00:00
Andreea Pavel 75e2827f6a Backed out changeset 1b9f4cb229fa (bug 1523015) arm64 bustages 2019-02-12 23:26:09 +02:00
Sean Stangl 3f2e7fbb67 Bug 1523015 - Summary: Enable Ion on ARM64, but disable in-browser by pref. r=nbp
Differential Revision: https://phabricator.services.mozilla.com/D19448

--HG--
extra : moz-landing-system : lando
2019-02-12 13:02:01 +00:00
Andy Wingo 0f6dea9684 Bug 1526840 - Adapt ToBoolean Ion type inference for false BigInt values r=jandem
Differential Revision: https://phabricator.services.mozilla.com/D19477

--HG--
extra : moz-landing-system : lando
2019-02-12 15:49:54 +00:00
Jonathan Kingston 3421b8fcff Bug 1520868 - Replacing AsyncOpen2 with AsyncOpen always r=valentin
Replacing js and text occurences of asyncOpen2
Replacing open2 with open

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

--HG--
rename : layout/style/test/test_asyncopen2.html => layout/style/test/test_asyncopen.html
extra : moz-landing-system : lando
2019-02-12 16:08:25 +00:00
Lars T Hansen 8ddcdf2399 Bug 1526579 - Rabaldr arm64 stack alignment fix. r=bbouvier
Problem: When a stack chunk had to be popped as part of a control flow
instruction, the amount to pop was not always computed as a multiple
of ChunkSize.  The reason is that the fixed amount of stack that
should not be popped isn't necessarily a multiple of ChunkSize, yet
this was assumed.

A small adjustment to the calculation fixes that.

Also added an assertion that would have caught this problem more
easily.

Also did some desirable drive-by fixes to clarify documentation and to
factor the resulting code.

The TC sets up a situation where we require a chunk to be created and
then destroyed in the 'else' arm of the 'if', at the same time as the
fixed amount of stack is not a multiple of ChunkSize.

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

--HG--
extra : rebase_source : 08e8bde715995babd535d73c691335be9fef983a
2019-02-12 10:39:23 +01:00