mirror of
https://github.com/roytam1/palemoon27.git
synced 2026-05-26 14:30:27 +00:00
import changes from `dev' branch of rmottola/Arctic-Fox, and fix --enable-shared-js:
- Bug 1164338 - Move styles markers to be generated in DoProcessRestyles rather than when the Flush_Style queue is flushed. r=smaug,heycam (b8f62d25a) - pointer style (c8d305ae5) - Bug 1150783 - Use a special JitFrame to record when LazyLink stubs are on the stack. r=h4writer (999a5d8dd) - Bug 1050500: Add SpiderMonkey API for reporting JavaScript entry points. r=shu (86b990918) - Bug 1050500 followup: Annotate js.cpp "Exit()" method as "override". rs=ehsan (023d67749) - Bug 1050500 - Add callee information to Javascript timeline markers. r=smaug (a5c078bc0) - Bug 1050500 - add fields to ProfileTimelineStackFrame; r=smaug (7852af842) - Bug 944164 - Move a bunch of file-related stuff onto an os.file object, creating aliases from the old names, r=jorendorff (a746506c0) - Bug 1167860 - Make sure unboxed expandos are traced during minor GCs if the original unboxed object is converted to a native, r=terrence. (40552cef4) - Bug 1168667 - Immediately convert unboxed objects to natives in PreventExtensions, and convert unboxed arrays as well as unboxed plain objects when required, r=jandem. (34e1c1267) - Bug 1172150 - Remove bogus assert. (r=bz) (1138519fa) - Bug 1165794 - Correctly handle getter/setters like methods everywhere. r=efaust (69a5cef61) - Bug 1164778 - Make |super.prop| work inside heavyweight arrow functions. (r=shu) (2eaffe30d) - Bug 1168750 - SharedStubs: (part2) Rename registers used by baseline stubs for use with shared stubs, r=jandem (db8080b41) - pointer style (ae0ef8c24) - fix spaces (0b5a0f55d) - Bug 1168864 - Use mayResolve hook for addprop stubs. r=bhackett (14f89c938) - Bug 1166678 - Optimize Array.prototype.slice in Ion, r=jandem. (978215128) - Bug 1169611 - Rewrite IonBuilder::getPropTryConstant to not require a singleton result. r=bhackett (22c6137ea) - Bug 1169611 part 2 - Unbox getprop/getelem inputs based on Baseline feedback. r=bhackett (dd3d50088) - Bug 1148009; [webvr] Move gfx vr code to gfx/vr; r=jrmuizel (d3e0a12c7) - Bug 1148009; [webvr] Split out gfxVROculus from gfxVR, refactor VRHMDManager; r=jrmuizel (393030b10) - Bug 1148009; [webvr] Add Quaternion class to Moz2D; r=jrmuizel (85165c87c) - Bug 1144674; Implement HAL support for ROTATION_VECTOR and GAME_ROTATION_VECTOR sensors; r=snorp (482211f00) - Bug 1148009; Add support for Cardboard (and other rotation-sensor based VR) in Firefox for Android; r=jrmuizel (d3f78e657) - Bug 1157835: Remove the MSVC_ENABLE_PGO flag from the build system. r=glandium (a5cc2bb8f) - Bug 1170534 - Remove Visual Event Tracer. r=dougt (720c1bbc3) - Bug 1169967 - Add a forward declare for MIRGenerator. r=nbp (81c6d0492) - Bug 1154435 - [nsDumpUtil] Refine nsDumpUtils::OpenTempFile to make this function more flexible. r=dhylands (ca1e07244) - Bug 1154435 - [nsGZFileWriter] Add one more mode for writing a GZFile (Create/Append). r=froydnj (d0cc62270) - Bug 1165456 - Start converting name-resolution code to act upon kinds, not arities. r=shu (1162554f4) - fix let (3ad7122ea) - Bug 1165456 - Handle a bunch of simple known-arity kinds, by kind, when resolving nested function names. r=shu (82da03c43) - Bug 1165456 - Perform name resolution on more nodes by kind, not arity. r=shu (214062efa) - Bug 1165456 - Perform name resolution on additional nodes by kind. r=shu (c13147c9e) - Bug 1165456 - More name-resolution conversion for arrays and (tagged) template literals. r=shu (f0cd596e8) - Bug 1165456 - Extra bits of name-resolution conversion. r=shu (51d1045d7) - Bug 1165456 - Final bits of name-resolution by kind. r=shu (57fca554e) - Bug 1165456 - Remove dead code performing name resolution by arity. r=shu (b03db072a) - pointer style (ab86d2ca7) - Bug 1149510 - Initialize the MachineState with safe-bad pointers. r=jandem (7d35b51c9) - Bug 1149510 - Don't try to read the result object when doing in-place debug mode bailout in a for-of loop. (r=jandem) (40c1e23a7) - Bug 1156115 - Apply Bug 1135629 changes to the non-ion jit. r=nbp (332a21041) - pointer style (fab908ba9) - Bug 1155468 - Fix Register::GetName typedef issue with clang. r=jandem (5c7758d85) - Bug 1176633 - Add more Operand constructors to the none backend. r=nbp (1557fe119) - Bug 1160672 - Part 1/2 - Import VIXL 1.5-1.6. r=jbramley (c84218fec) - Bug 1160672 - Part 2/2 - Add Mozilla VIXL modifications. r=dougc (1fd1c7443) - Bug 1160672 - Follow-up - Add missing </p> tag. no_r=me (f783f0793) - Bug 1160672 - Follow-up - Comment out unlanded header on a CLOSED TREE. no_r=me (f65a68eed) - Bug 1166037 - Import ARM64 Baseline changes. r=djvj (5ddb53015) - Bug 1166527 - Import ARM64 Architecture and Assembler. r=nbp (999380926) - Bug 1077014 - MacroAssembler API. r=h4writer (78f470fa5) - Bug 1077014 - ARM assembler support for for-effect atomics. r=mjrosenb (a78d1f786) - Bug 1077014 - MacroAssembler API, for MIPS. r=rankov (d22cb063c) - Bug 1077014 - optimize atomics for effect. r=h4writer (5a0bf089c) - Bug 1170758 - Make non-debug GraphSpewer constructor explicit. r=nbp (2b7c1a90b) - Bug 1176631 - Predeclare TempAllocator for non-ion platforms. r=nbp (73cd914a7)
This commit is contained in:
@@ -23,7 +23,6 @@
|
||||
#include "mozilla/StartupTimeline.h"
|
||||
#include "mozilla/Telemetry.h"
|
||||
#include "mozilla/unused.h"
|
||||
#include "mozilla/VisualEventTracer.h"
|
||||
#include "URIUtils.h"
|
||||
|
||||
#include "nsIContent.h"
|
||||
@@ -3017,7 +3016,7 @@ nsDocShell::PopProfileTimelineMarkers(
|
||||
marker->mName = NS_ConvertUTF8toUTF16(startPayload->GetName());
|
||||
marker->mStart = startPayload->GetTime();
|
||||
marker->mEnd = startPayload->GetTime();
|
||||
startPayload->AddDetails(*marker);
|
||||
startPayload->AddDetails(aCx, *marker);
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -3065,8 +3064,8 @@ nsDocShell::PopProfileTimelineMarkers(
|
||||
if (isPaint) {
|
||||
marker->mRectangles.Construct(layerRectangles);
|
||||
}
|
||||
startPayload->AddDetails(*marker);
|
||||
endPayload->AddDetails(*marker);
|
||||
startPayload->AddDetails(aCx, *marker);
|
||||
endPayload->AddDetails(aCx, *marker);
|
||||
}
|
||||
|
||||
// We want the start to be dropped either way.
|
||||
@@ -7553,8 +7552,6 @@ nsDocShell::EndPageLoad(nsIWebProgress* aProgress,
|
||||
return NS_ERROR_NULL_POINTER;
|
||||
}
|
||||
|
||||
MOZ_EVENT_TRACER_DONE(this, "docshell::pageload");
|
||||
|
||||
nsCOMPtr<nsIURI> url;
|
||||
nsresult rv = aChannel->GetURI(getter_AddRefs(url));
|
||||
if (NS_FAILED(rv)) {
|
||||
@@ -10611,13 +10608,6 @@ nsDocShell::DoURILoad(nsIURI* aURI,
|
||||
nsIURI* aBaseURI,
|
||||
nsContentPolicyType aContentPolicyType)
|
||||
{
|
||||
#ifdef MOZ_VISUAL_EVENT_TRACER
|
||||
nsAutoCString urlSpec;
|
||||
aURI->GetAsciiSpec(urlSpec);
|
||||
MOZ_EVENT_TRACER_NAME_OBJECT(this, urlSpec.BeginReading());
|
||||
MOZ_EVENT_TRACER_EXEC(this, "docshell::pageload");
|
||||
#endif
|
||||
|
||||
nsresult rv;
|
||||
nsCOMPtr<nsIURILoader> uriLoader;
|
||||
|
||||
@@ -14118,27 +14108,61 @@ class JavascriptTimelineMarker : public TimelineMarker
|
||||
{
|
||||
public:
|
||||
JavascriptTimelineMarker(nsDocShell* aDocShell, const char* aName,
|
||||
const char* aReason)
|
||||
const char* aReason,
|
||||
const char16_t* aFunctionName,
|
||||
const char16_t* aFileName,
|
||||
uint32_t aLineNumber)
|
||||
: TimelineMarker(aDocShell, aName, TRACING_INTERVAL_START,
|
||||
NS_ConvertUTF8toUTF16(aReason))
|
||||
NS_ConvertUTF8toUTF16(aReason),
|
||||
NO_STACK)
|
||||
, mFunctionName(aFunctionName)
|
||||
, mFileName(aFileName)
|
||||
, mLineNumber(aLineNumber)
|
||||
{
|
||||
}
|
||||
|
||||
void AddDetails(mozilla::dom::ProfileTimelineMarker& aMarker) override
|
||||
void AddDetails(JSContext* aCx, mozilla::dom::ProfileTimelineMarker& aMarker)
|
||||
override
|
||||
{
|
||||
aMarker.mCauseName.Construct(GetCause());
|
||||
|
||||
if (!mFunctionName.IsEmpty() || !mFileName.IsEmpty()) {
|
||||
RootedDictionary<ProfileTimelineStackFrame> stackFrame(aCx);
|
||||
stackFrame.mLine.Construct(mLineNumber);
|
||||
stackFrame.mSource.Construct(mFileName);
|
||||
stackFrame.mFunctionDisplayName.Construct(mFunctionName);
|
||||
|
||||
JS::Rooted<JS::Value> newStack(aCx);
|
||||
if (ToJSValue(aCx, stackFrame, &newStack)) {
|
||||
if (newStack.isObject()) {
|
||||
aMarker.mStack = &newStack.toObject();
|
||||
}
|
||||
} else {
|
||||
JS_ClearPendingException(aCx);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private:
|
||||
nsString mFunctionName;
|
||||
nsString mFileName;
|
||||
uint32_t mLineNumber;
|
||||
};
|
||||
|
||||
void
|
||||
nsDocShell::NotifyJSRunToCompletionStart(const char* aReason)
|
||||
nsDocShell::NotifyJSRunToCompletionStart(const char* aReason,
|
||||
const char16_t* aFunctionName,
|
||||
const char16_t* aFilename,
|
||||
const uint32_t aLineNumber)
|
||||
{
|
||||
bool timelineOn = nsIDocShell::GetRecordProfileTimelineMarkers();
|
||||
|
||||
// If first start, mark interval start.
|
||||
if (timelineOn && mJSRunToCompletionDepth == 0) {
|
||||
mozilla::UniquePtr<TimelineMarker> marker =
|
||||
MakeUnique<JavascriptTimelineMarker>(this, "Javascript", aReason);
|
||||
MakeUnique<JavascriptTimelineMarker>(this, "Javascript", aReason,
|
||||
aFunctionName, aFilename,
|
||||
aLineNumber);
|
||||
AddProfileTimelineMarker(Move(marker));
|
||||
}
|
||||
mJSRunToCompletionDepth++;
|
||||
|
||||
Reference in New Issue
Block a user