mirror of
https://github.com/roytam1/palemoon27.git
synced 2026-05-26 14:30:27 +00:00
532c50e266
- Bug 911216 - Part 5: Add --enable-sm-promise configure flag. r=chmanchester (5f7b08bbc2) - Bug 911216 - Part 6: Shim new promise-related Debugger.Object accessors using PromiseDebugging. r=shu (cc71e67632) - Bug 1219757 - Part 0: Remove RegExp.multiline warning. r=till (900d106c4c) - Bug 1219757 - Part 1: Remove RegExp.multiline accessor. r=till (290aa1388e) - Bug 1219757 - Part 2: Remove RegExpStaticsUse parameter from RegExpInitialize. r=till (c81bb1ec3d) - Bug 1219757 - Part 3: Rename Self-hosting regexp_construct_no_statics to regexp_construct. r=till (52b47bfebb) - Bug 1219757 - Part 4: Remove RegExpStatics* parameter from RegExpObject::create. r=till (a2e7692fac) - Bug 1219757 - Part 5: Remove RegExpObject::createNoStatics. r=till (a4e36a6165) - Bug 1219757 - Part 6: Remove multiline parameter from RegExpStatics::reset. r=till (bfea07f1d8) - Bug 1219757 - Part 7: Remove RegExpStatics::multiline and RegExpStatics::setMultiline. r=till (ca2dd7dd7b) - Bug 1238917 - initialize lazySticky in clear function. r=jorendorff@mozilla.com (2b150516b3) - Bug 1219757 - Part 8: Remove RegExpStatics::getFlags and RegExpStatics::flags. r=till (a911e4812c) - Bug 1219757 - Part 9: Remove OBJECT_FLAG_REGEXP_FLAGS_SET flag. r=till (fa4d38b298) - Bug 1219757 - Part 10: Remove HandleObject parameter from JS_NewRegExpObject and JS_NewUCRegExpObject. r=till (2c42fd46c5) - Bug 1219757 - Part 11: Remove multiline parameter from JS_SetRegExpInput. r=till (ca479e0504) - Bug 1219757 - Part 12: Remove JS_NewRegExpObjectNoStatics and JS_NewUCRegExpObjectNoStatics. r=till (26a54d51d7) - Bug 1258314 - Use TraceNullableEdge where appropriate throughout the engine r=terrence (0f067bddc2) - Bug 1258314 - Add internal TraceNullableEdge API r=terrence (e9c99665d6) - Bug 887016 - Part 1: Add native RegExpCreate. r=h4writer (1f8fb65d76) - Bug 887016 - Part 2: Add self-hosting RegExpCreate intrinsic. r=till (48c3be62a8) - Bug 887016 - Part 3: Add LookupOwnPropertyPure. r=jandem (9df42dd053) - Bug 1165053 - Part 0.1: Add PossiblyWrappedArrayBufferByteLength self-hosting intrinsic. r=jwalden (30ec6edd26) - Bug 1165053 - Part 0.2: Inline PossiblyWrappedArrayBufferByteLength self-hosting intrinsic. r=jwalden (8f0ffc5e1e) - Bug 1165053 - Part 0.3: Inline ArrayBufferByteLength self-hosting intrinsic. r=jwalden (102e34e89f) - Bug 1165053 - Part 1: Handle when ArrayBuffer species constructor returns wrapped ArrayBuffer. r=jwalden (faddbcada5) - Bug 1259194 (part 1) - Add 's' prefixes to some statics generated for dom bindings. r=bz. (3384ee607d) - Bug 1259194 (part 2) - Remove XPCWrappedNativeJSClass. r=mrbkap. (18526e3a5f) - Bug 1259194 (part 3) - Remove PopulateJSClass(). r=mrbkap. (b805d201b3) - Bug 1253246 - Handle DebugScopeProxies around unqualified varobjs in setname. (r=jorendorff) (4db4821257) - Bug 1258924 - Reorder DOMIfaceAndProtoJSClass fields to reduce padding. r=bz. (d96c8c00a8) - Bug 1259194 (part 4) - Separate js::ObjectOps from js::Class. r=efaust,mrbkap,bz. (e16737ecbb) - Bug 1260984 (part 1) - Remove ClonedBlockObject::objectOps_. r=jorendorff. (b3c85b351e) - Bug 1260984 (part 2) - Reduce ObjectOps exposure. r=jorendorff. (799a8b6b89) - Bug 911216 - Part 7: Implement ES6 Promises in the JavaScript engine. r=efaust (0e0dbcbd90) - Bug 911216 - Part 8: Properly wrap and unwrap |then| callbacks for xrayed Promises. r=efaust,f=bz (101852ef55) - Bug 911216 - Part 9: Properly handle rejecting wrapped promises in the face of xray wrappers. r=efaust,f=bxuz (bf87dbc46a) - Bug 911216 - Part 10: Support debugger hooks for creation and settling of promises. r=shu (2f3155cd6c) - Bug 911216 - Part 11: Implement all Promise inspection functionality as Debugger getters. r=shu,fitzgen (a3d856acfb) - Bug 1260984 (part 3) - Separate js::ClassSpec from js::Class. r=jorendorff. (8ee3ecb6c9) - Bug 1165053 - Part 2: Implement %TypedArray%[@@species] getter and ArrayBuffer[@@species] getter. r=evilpie (4b0b963aa2) - Bug 1165053 - Part 3: Add SpeciesConstructor tests for TypedArray.prototype.{filter,map,slice,subarray}. r=evilpie (bad7fdc11b) - Bug 1165053 - Part 4: Add SpeciesConstructor tests for ArrayBuffer.prototype.slice. r=lth (b5994f1995) - Bug 1165053 - Part 5: Add native SpeciesConstructor wrapper. r=lth (ad0540cad8) - Bug 1165053 - Part 6: Refactor TypedArrayObjectTemplate::fromArray. r=lth (a9a9816dd1) - Bug 1165053 - Part 7: Call SpeciesConstructor in TypedArray ctors. r=lth (53496be131) - Bug 1165053 - Part 8: Add GetGetterPure. r=lth (203b7da55c) - Bug 887016 - Part 4: Add GetOwnNativeGetterPure. r=jandem (8bdc284a0a) - Bug 887016 - Part 5: Add HasOwnDataPropertyPure. r=jandem (bbc83a59f0) - Bug 1233642 - Part 1: Add IsArray intrinsic. r=efaust (e0a0badcc5) - Bug 1233642 - Part 2: Self-host Array.prototype.concat. r=efaust,bholley (c4a6d51cbe) - Bug 1165052 - Part 1: Implement Array[@@species] getter. r=efaust,bholley (6b08a1a534) - Bug 1165053 - Part 9: Add IsArrayBufferSpecies and avoid calling SpeciesConstructor on normal case. r=lth (027f18a066) - Bug 1165052 - Part 2: Add IsArraySpecies. r=efaust (2dc1eaee19) - Bug 1165052 - Part 3: Add IsWrappedArrayConstructor intrinsic. r=efaust (dbf091125a) - Bug 1165052 - Part 4: Inline IsConstructor intrinsic. r=jandem (2afc1b8696) - Bug 1165052 - Part 5: Inline IsWrappedArrayConstructor intrinsic. r=jandem (fde5fc9539) - Bug 1165052 - Part 6: Implement self-hosted ArraySpeciesCreate. r=efaust (4aca60d0f7) - Bug 1165052 - Part 0: Add throwOutOfMemory testing function and use it instead of Array.prototype.splice in test_oom_reporting.html. r=efaust (1d26a615f1) - Bug 1177488 - use |const char*| for representing async call reasons; r=bz,fitzgen (01faeb7f56) - Bug 1257077 - Implement js::Fixed{Invoke,Construct}Args for args of statically-known count, avoiding js::{Invoke,Construct}Args's fallibility. Also implement js::Any{Invoke,Construct}Args as base classes for args, whether or not their count is statically known. r=efaust (0683ce95f5) - Bug 1256298 - Make DoCallFallback consume a bit less stack space. r=Waldo (26086d80e7) - Bug 1239269 - as lastIndex cannot be negative change it's storage class from int32_t to uint32_t, r=Waldo (31024ee4eb) - Bug 1258711 - Skip the pixel cap when drawing scrollbar tracks or thumbs, since they don't use intermediate surfaces internally to CoreUI, and shouldn't blow up. r=mstange (af468008a0) - Bug 1259224 - Silence some warnings in the mac widget code. r=mstange (8cfba3caae) - Bug 1255214 - Only repaint GTK scrollbar button if its enablement actually changed. r=mstange (e161cc2a26) js/src/shell/js.cpp has only prototype changes, as Bug 911216 - Part 7 js.cpp changes cause C2248 error: 1:27.82 obj-i686-pc-mingw32\dist\include\js/GCVector.h(127) : error C2248: 'mozilla::Vector<T,0,AllocPolicy>::operator =' : cannot access private member declared in class 'mozilla::Vector<T,0,AllocPolicy>' 1:27.83 with 1:27.83 [ 1:27.83 T=JSObject * 1:27.83 , AllocPolicy=js::SystemAllocPolicy 1:27.83 ] 1:27.83 obj-i686-pc-mingw32\dist\include\mozilla/Vector.h(710) : see declaration of 'mozilla::Vector<T,0,AllocPolicy>::operator =' 1:27.83 with 1:27.83 [ 1:27.83 T=JSObject * 1:27.83 , AllocPolicy=js::SystemAllocPolicy 1:27.83 ] 1:27.83 This diagnostic occurred in the compiler generated function 'js::GCVector<JSObject *,0,js::SystemAllocPolicy> &js::GCVector<JSObject *,0,js::SystemAllocPolicy>::operator =(const js::GCVector<JSObject *,0,js::SystemAllocPolicy> &)'
86 lines
2.9 KiB
JavaScript
86 lines
2.9 KiB
JavaScript
/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
|
|
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
|
|
this.EXPORTED_SYMBOLS = [ "addDebuggerToGlobal" ];
|
|
|
|
/*
|
|
* This is the js module for Debugger. Import it like so:
|
|
* Components.utils.import("resource://gre/modules/jsdebugger.jsm");
|
|
* addDebuggerToGlobal(this);
|
|
*
|
|
* This will create a 'Debugger' object, which provides an interface to debug
|
|
* JavaScript code running in other compartments in the same process, on the
|
|
* same thread.
|
|
*
|
|
* For documentation on the API, see:
|
|
* https://developer.mozilla.org/en-US/docs/Tools/Debugger-API
|
|
*/
|
|
|
|
const init = Components.classes["@mozilla.org/jsdebugger;1"].createInstance(Components.interfaces.IJSDebugger);
|
|
this.addDebuggerToGlobal = function addDebuggerToGlobal(global) {
|
|
init.addClass(global);
|
|
initPromiseDebugging(global);
|
|
};
|
|
|
|
function initPromiseDebugging(global) {
|
|
if (global.Debugger.Object.prototype.PromiseDebugging) {
|
|
return;
|
|
}
|
|
|
|
// If the PromiseDebugging object doesn't have all legacy functions, we're
|
|
// using the new accessors on Debugger.Object already.
|
|
if (!PromiseDebugging.getDependentPromises) {
|
|
return;
|
|
}
|
|
|
|
// Otherwise, polyfill them using PromiseDebugging.
|
|
global.Debugger.Object.prototype.PromiseDebugging = PromiseDebugging;
|
|
global.eval(polyfillSource);
|
|
}
|
|
|
|
let polyfillSource = `
|
|
Object.defineProperty(Debugger.Object.prototype, "promiseState", {
|
|
get() {
|
|
const state = this.PromiseDebugging.getState(this.unsafeDereference());
|
|
return {
|
|
state: state.state,
|
|
value: this.makeDebuggeeValue(state.value),
|
|
reason: this.makeDebuggeeValue(state.reason)
|
|
};
|
|
}
|
|
});
|
|
Object.defineProperty(Debugger.Object.prototype, "promiseLifetime", {
|
|
get() {
|
|
return this.PromiseDebugging.getPromiseLifetime(this.unsafeDereference());
|
|
}
|
|
});
|
|
Object.defineProperty(Debugger.Object.prototype, "promiseTimeToResolution", {
|
|
get() {
|
|
return this.PromiseDebugging.getTimeToSettle(this.unsafeDereference());
|
|
}
|
|
});
|
|
Object.defineProperty(Debugger.Object.prototype, "promiseDependentPromises", {
|
|
get() {
|
|
let promises = this.PromiseDebugging.getDependentPromises(this.unsafeDereference());
|
|
return promises.map(p => this.makeDebuggeeValue(p));
|
|
}
|
|
});
|
|
Object.defineProperty(Debugger.Object.prototype, "promiseAllocationSite", {
|
|
get() {
|
|
return this.PromiseDebugging.getAllocationStack(this.unsafeDereference());
|
|
}
|
|
});
|
|
Object.defineProperty(Debugger.Object.prototype, "promiseResolutionSite", {
|
|
get() {
|
|
let state = this.promiseState.state;
|
|
if (state === "fulfilled") {
|
|
return this.PromiseDebugging.getFullfillmentStack(this.unsafeDereference());
|
|
} else {
|
|
return this.PromiseDebugging.getRejectionStack(this.unsafeDereference());
|
|
}
|
|
}
|
|
});
|
|
`;
|