Bug 736792 - Add JSOPTION_STRICT_MODE for embedders to force ES5 strict mode for all code without requiring "use strict" annotations. r=njn
Disallow non-canonical jsids, bug 751331. r=luke
Bug 739512: Patch 11: change JSScript::useCount to uint32_t.  r=dvander.

--HG--
extra : rebase_source : 408dd77b28b697140f6ba08680b24cb69c046390
Bug 752081 - Add more cases to IncrementalReferenceBarrier (r=sfink)
Bug 749698 - Setup compartment to collect when gcPoke set (r=igor)
Bug 752374 - Fix GCC integer overflow warnings in jsatominlines.h.  r=bhackett.

--HG--
extra : rebase_source : aea8276518c71af6817abf096309585d1c8f1d05
Bug 749482: Fix assertion in SetRemoteImageData. r=roc
Bug 749499: Fix CrossProcessMutex ctor counter. r=cjones
Bug 748785: Enable NPAPI Async Drawing by default on windows. r=josh
Bug 751030 - Import PulseAudio backend for cubeb (NPOTB).  r=mwu
Bug 747793 - Use a ring buffer for audio buffered by nsBufferedAudioStream.  Remove generic sample copy out with volume adjustment and replace with the lightly optimized version from nsNativeAudioStream.  Add a fast path for the unity volume case.  Bump cubeb's refill thread priority on Win32.  r=cpearce
Merge m-c to m-i
Bug 739512: Patch 3: shrink the representation of optional arrays in JSScript.  r=luke.

--HG--
extra : rebase_source : df3e7190d8afbff1dfe95c44b838d6460b2c11b6
Bug 739512: fix Mac and Windows bustage caused by patch 3.  r=me.
Bug 751643 - ensure that strings produced by ANGLE's getVariableInfo function are null-terminated - r=bz,upstream

Checked in upstream ANGLE as r1070.
Bug 747619 - Fix WebGL uniform setter validation - r=jgilbert

This bug, introduced by the patch from bug 732233, caused us to wrongly reject
legitimate WebGL uniform setters, especially when doing a partial update of
a uniform array.
Bug 750258. Advance mBlockingDecisionsMadeUntilTime to include time lost when the media graph control thread was stopped and all streams had underruns. r=jesup
The first part just handles the case where nsAudioStream failed to allocate a stream. It won't be playing
anything, so instead of trying to get the audio position, just fall back to the media graph current time.
Otherwise GetPositionInFrames returns -1 and things go badly from there.
The second part simplifies the calculation of the next mCurrentTime to just make it based on real time.
We had some code to not let it advance past the end of a stream's buffer, but the next part will make that
unnecessary.
The third part is the real fix. When the new current time has advanced past mBlockingDecisionsMadeUntilTime,
that means the control loop didn't run in time to replenish the audio output buffers and keep up with its
other duties. Effectively all streams have been blocked between mBlockingDecisionsMadeUntilTime and
the new current time. Account for that by adding the difference as extra blocked time for every stream.
We only need to ensure that the stream is marked blocked from mBlockingDecisionsMadeUntilTime indefinitely
far into the future, and then update mBlockingDecisionsMadeUntilTime to the new current time, because the
code takes into account that only blocking decisions up to mBlockingDecisionsMadeUntilTime are valid.
Bug 750258. Set intial audio capture state correctly on mDecoderStateMachine. r=cpearce
For media resources whose streams are captured before the load has started, we shouldn't even start
an audio thread. This saves a lot of resources and ensures we don't see races between the audio thread
and the code that copies packets from the audio queue to the MediaStreams.
Bug 750258. Fix bustage.
Bug 752141 - Release media decoder monitor when finishing audio stream. r=kinetik