зеркало из https://github.com/mozilla/gecko-dev.git
Merge mozilla-central to mozilla-inbound
This commit is contained in:
Коммит
9be1268e1c
|
@ -11,5 +11,9 @@ include $(DEPTH)/config/autoconf.mk
|
|||
|
||||
DIRS = chrome components locales app
|
||||
|
||||
ifeq ($(OS_ARCH),WINNT)
|
||||
DIRS += $(DEPTH)/xulrunner/tools/redit
|
||||
endif
|
||||
|
||||
include $(topsrcdir)/config/rules.mk
|
||||
include $(topsrcdir)/testing/testsuite-targets.mk
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
|
||||
interface nsIDOMEventListener;
|
||||
|
||||
[scriptable, uuid(41e88f87-42cb-4db1-8724-f5456a16c410)]
|
||||
[scriptable, builtinclass, uuid(41e88f87-42cb-4db1-8724-f5456a16c410)]
|
||||
interface nsIDOMMozBatteryManager : nsIDOMEventTarget
|
||||
{
|
||||
readonly attribute double level;
|
||||
|
|
|
@ -837,6 +837,7 @@ IDBObjectStore::UpdateIndexes(IDBTransaction* aTransaction,
|
|||
"WHERE object_data_id = :object_data_id; "
|
||||
"DELETE FROM index_data "
|
||||
"WHERE object_data_id = :object_data_id");
|
||||
NS_ENSURE_TRUE(stmt, NS_ERROR_FAILURE);
|
||||
|
||||
mozStorageStatementScoper scoper(stmt);
|
||||
|
||||
|
|
|
@ -24,14 +24,14 @@ interface mozIDOMApplication : nsISupports
|
|||
nsIDOMDOMRequest uninstall();
|
||||
};
|
||||
|
||||
[scriptable, uuid(870bfbdc-3e13-4042-99dd-18e25720782d)]
|
||||
interface mozIDOMApplicationEvent : nsIDOMEvent
|
||||
[scriptable, uuid(f1dd58d8-5211-46ce-8470-d54dde596725)]
|
||||
interface mozIDOMApplicationEvent : nsISupports
|
||||
{
|
||||
readonly attribute mozIDOMApplication application;
|
||||
};
|
||||
|
||||
[scriptable, uuid(a82771f6-ba46-4073-9e6e-f1ad3f42b1f6)]
|
||||
interface mozIDOMApplicationMgmt : nsIDOMEventTarget
|
||||
[scriptable, uuid(bd304874-d532-4e13-8034-544211445583)]
|
||||
interface mozIDOMApplicationMgmt : nsISupports
|
||||
{
|
||||
/**
|
||||
* the request will return the all the applications installed. Only accessible
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
|
||||
#include "nsIDOMEventTarget.idl"
|
||||
|
||||
[scriptable, uuid(9b978f58-5bfe-409d-aa3f-946ca934e51d)]
|
||||
[scriptable, builtinclass, uuid(9b978f58-5bfe-409d-aa3f-946ca934e51d)]
|
||||
interface nsIDOMScreen : nsIDOMEventTarget
|
||||
{
|
||||
readonly attribute long top;
|
||||
|
|
|
@ -131,14 +131,14 @@ interface nsIWebGLExtensionStandardDerivatives : nsIWebGLExtension
|
|||
const WebGLenum FRAGMENT_SHADER_DERIVATIVE_HINT_OES = 0x8B8B;
|
||||
};
|
||||
|
||||
[scriptable, uuid(b0afc2eb-0895-4509-98de-5c383d160694)]
|
||||
[scriptable, builtinclass, uuid(b0afc2eb-0895-4509-98de-5c383d160694)]
|
||||
interface nsIWebGLExtensionLoseContext : nsIWebGLExtension
|
||||
{
|
||||
void loseContext();
|
||||
void restoreContext();
|
||||
};
|
||||
|
||||
[scriptable, uuid(73bfb64d-94bd-4a7a-9eab-6b6d32e57aa0)]
|
||||
[scriptable, builtinclass, uuid(73bfb64d-94bd-4a7a-9eab-6b6d32e57aa0)]
|
||||
interface nsIWebGLExtensionTextureFilterAnisotropic : nsIWebGLExtension
|
||||
{
|
||||
const WebGLenum TEXTURE_MAX_ANISOTROPY_EXT = 0x84FE;
|
||||
|
|
|
@ -8,7 +8,7 @@ interface nsIDOMEventListener;
|
|||
interface nsIDOMDOMRequest;
|
||||
interface nsIDOMMozMobileConnectionInfo;
|
||||
|
||||
[scriptable, uuid(962298cd-3443-423e-9e47-f22e24ad850b)]
|
||||
[scriptable, builtinclass, uuid(962298cd-3443-423e-9e47-f22e24ad850b)]
|
||||
interface nsIDOMMozMobileConnection : nsIDOMEventTarget
|
||||
{
|
||||
/**
|
||||
|
|
|
@ -8,7 +8,7 @@ interface nsIDOMEventListener;
|
|||
interface nsIDOMMozSmsRequest;
|
||||
interface nsIDOMMozSmsFilter;
|
||||
|
||||
[scriptable, uuid(6363c0ff-b58f-4fb3-9707-0ba27f120b2c)]
|
||||
[scriptable, builtinclass, uuid(6363c0ff-b58f-4fb3-9707-0ba27f120b2c)]
|
||||
interface nsIDOMMozSmsManager : nsIDOMEventTarget
|
||||
{
|
||||
unsigned short getNumberOfMessagesForText(in DOMString text);
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
|
||||
interface nsIDOMEventListener;
|
||||
|
||||
[scriptable, uuid(1b24469d-cfb7-4667-aaf0-c1d17289ae7c)]
|
||||
[scriptable, builtinclass, uuid(1b24469d-cfb7-4667-aaf0-c1d17289ae7c)]
|
||||
interface nsIDOMMozSmsRequest : nsIDOMEventTarget
|
||||
{
|
||||
// Returns whether "processing" or "done".
|
||||
|
|
|
@ -28,10 +28,7 @@ var expectedMethods = ['navigator.mozApps.QueryInterface',
|
|||
'navigator.mozApps.getSelf',
|
||||
'navigator.mozApps.install',
|
||||
'navigator.mozApps.mgmt.QueryInterface',
|
||||
'navigator.mozApps.mgmt.addEventListener',
|
||||
'navigator.mozApps.mgmt.dispatchEvent',
|
||||
'navigator.mozApps.mgmt.getAll',
|
||||
'navigator.mozApps.mgmt.removeEventListener'];
|
||||
'navigator.mozApps.mgmt.getAll'];
|
||||
var actualMethods = [];
|
||||
|
||||
actualMethods = actualMethods.concat(iterateMethods("navigator.mozApps.", navigator.mozApps, ['setApplicationChooser', 'setRepoOrigin', 'setMockResponse']));
|
||||
|
|
|
@ -0,0 +1,15 @@
|
|||
<!doctype html>
|
||||
<script>
|
||||
function boom() {
|
||||
var r = document.documentElement;
|
||||
while (r.firstChild) {
|
||||
r.removeChild(r.firstChild);
|
||||
}
|
||||
|
||||
document.documentElement.contentEditable = "true";
|
||||
document.documentElement.appendChild(document.createElement("span"));
|
||||
document.documentElement.firstChild.appendChild(document.createTextNode("_"));
|
||||
document.execCommand("forwarddelete");
|
||||
}
|
||||
</script>
|
||||
<body onload="boom()">
|
|
@ -27,3 +27,4 @@ load 643786-1.html
|
|||
load 682650-1.html
|
||||
load 716456-1.html
|
||||
load 759748.html
|
||||
load 761861.html
|
||||
|
|
|
@ -3402,9 +3402,12 @@ nsHTMLEditor::DeleteSelectionImpl(EDirection aAction,
|
|||
// Don't strip wrappers if this is the only wrapper in the block. Then we'll
|
||||
// add a <br> later, so it won't be an empty wrapper in the end.
|
||||
nsCOMPtr<nsIContent> blockParent = content;
|
||||
while (!IsBlockNode(blockParent)) {
|
||||
while (blockParent && !IsBlockNode(blockParent)) {
|
||||
blockParent = blockParent->GetParent();
|
||||
}
|
||||
if (!blockParent) {
|
||||
return NS_OK;
|
||||
}
|
||||
bool emptyBlockParent;
|
||||
res = IsEmptyNode(blockParent, &emptyBlockParent);
|
||||
NS_ENSURE_SUCCESS(res, res);
|
||||
|
|
|
@ -0,0 +1,12 @@
|
|||
gczeal(4);
|
||||
function blah() {
|
||||
var i = 1;
|
||||
function o() {}
|
||||
function k() { i++; }
|
||||
o.x = 0;
|
||||
for (var j = 0; j < 100; ++j) {
|
||||
i = {a: o, b: k};
|
||||
i++;
|
||||
}
|
||||
}
|
||||
blah();
|
|
@ -0,0 +1,33 @@
|
|||
function escapeme() {}
|
||||
|
||||
function f1(x) {
|
||||
escapeme(arguments);
|
||||
var y = ++x;
|
||||
return x + y;
|
||||
}
|
||||
for (var i = 0; i < 100; ++i)
|
||||
assertEq(f1(2), 6);
|
||||
|
||||
function f2(x) {
|
||||
escapeme(arguments);
|
||||
var y = --x;
|
||||
return x + y;
|
||||
}
|
||||
for (var i = 0; i < 100; ++i)
|
||||
assertEq(f2(2), 2);
|
||||
|
||||
function f3(x) {
|
||||
escapeme(arguments);
|
||||
var y = x++;
|
||||
return x + y;
|
||||
}
|
||||
for (var i = 0; i < 100; ++i)
|
||||
assertEq(f3(2), 5);
|
||||
|
||||
function f4(x) {
|
||||
escapeme(arguments);
|
||||
var y = x--;
|
||||
return x + y;
|
||||
}
|
||||
for (var i = 0; i < 100; ++i)
|
||||
assertEq(f4(2), 3);
|
|
@ -5789,7 +5789,7 @@ mjit::Compiler::jsop_bindname(PropertyName *name)
|
|||
void
|
||||
mjit::Compiler::jsop_aliasedArg(unsigned arg, bool get, bool poppedAfter)
|
||||
{
|
||||
RegisterID reg = frame.allocReg();
|
||||
RegisterID reg = frame.allocReg(Registers::SavedRegs).reg();
|
||||
masm.loadPtr(Address(JSFrameReg, StackFrame::offsetOfArgsObj()), reg);
|
||||
size_t dataOff = ArgumentsObject::getDataSlotOffset();
|
||||
masm.loadPrivate(Address(reg, dataOff), reg);
|
||||
|
@ -5818,7 +5818,7 @@ mjit::Compiler::jsop_aliasedArg(unsigned arg, bool get, bool poppedAfter)
|
|||
void
|
||||
mjit::Compiler::jsop_aliasedVar(ScopeCoordinate sc, bool get, bool poppedAfter)
|
||||
{
|
||||
RegisterID reg = frame.allocReg();
|
||||
RegisterID reg = frame.allocReg(Registers::SavedRegs).reg();
|
||||
masm.loadPtr(Address(JSFrameReg, StackFrame::offsetOfScopeChain()), reg);
|
||||
for (unsigned i = 0; i < sc.hops; i++)
|
||||
masm.loadPayload(Address(reg, ScopeObject::offsetOfEnclosingScope()), reg);
|
||||
|
|
|
@ -960,7 +960,10 @@ mjit::Compiler::jsop_arginc(JSOp op, uint32_t slot)
|
|||
if (!analysis->incrementInitialValueObserved(PC)) {
|
||||
// Before:
|
||||
// After: V
|
||||
frame.pushArg(slot);
|
||||
if (script->argsObjAliasesFormals())
|
||||
jsop_aliasedArg(slot, /* get = */ true);
|
||||
else
|
||||
frame.pushArg(slot);
|
||||
|
||||
// Before: V
|
||||
// After: V 1
|
||||
|
@ -974,11 +977,18 @@ mjit::Compiler::jsop_arginc(JSOp op, uint32_t slot)
|
|||
|
||||
// Before: N+1
|
||||
// After: N+1
|
||||
frame.storeArg(slot, analysis->popGuaranteed(PC));
|
||||
bool popGuaranteed = analysis->popGuaranteed(PC);
|
||||
if (script->argsObjAliasesFormals())
|
||||
jsop_aliasedArg(slot, /* get = */ false, popGuaranteed);
|
||||
else
|
||||
frame.storeArg(slot, popGuaranteed);
|
||||
} else {
|
||||
// Before:
|
||||
// After: V
|
||||
frame.pushArg(slot);
|
||||
if (script->argsObjAliasesFormals())
|
||||
jsop_aliasedArg(slot, /* get = */ true);
|
||||
else
|
||||
frame.pushArg(slot);
|
||||
|
||||
// Before: V
|
||||
// After: N
|
||||
|
@ -999,7 +1009,10 @@ mjit::Compiler::jsop_arginc(JSOp op, uint32_t slot)
|
|||
|
||||
// Before: N N+1
|
||||
// After: N N+1
|
||||
frame.storeArg(slot, true);
|
||||
if (script->argsObjAliasesFormals())
|
||||
jsop_aliasedArg(slot, /* get = */ false, true);
|
||||
else
|
||||
frame.storeArg(slot, true);
|
||||
|
||||
// Before: N N+1
|
||||
// After: N
|
||||
|
|
|
@ -253,6 +253,8 @@ nsresult
|
|||
nsFileStreamBase::MaybeOpen(nsIFile* aFile, PRInt32 aIoFlags,
|
||||
PRInt32 aPerm, bool aDeferred)
|
||||
{
|
||||
NS_ENSURE_STATE(aFile);
|
||||
|
||||
mOpenParams.ioFlags = aIoFlags;
|
||||
mOpenParams.perm = aPerm;
|
||||
|
||||
|
|
|
@ -516,6 +516,9 @@ class BaseInterface(object):
|
|||
if self.attributes.scriptable and not realbase.attributes.scriptable:
|
||||
print >>sys.stderr, IDLError("interface '%s' is scriptable but derives from non-scriptable '%s'" % (self.name, self.base), self.location, warning=True)
|
||||
|
||||
if self.attributes.scriptable and realbase.attributes.builtinclass and not self.attributes.builtinclass:
|
||||
raise IDLError("interface '%s' is not builtinclass but derives from builtinclass '%s'" % (self.name, self.base), self.location)
|
||||
|
||||
forwardedMembers = set()
|
||||
for member in self.members:
|
||||
member.resolve(self)
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
*
|
||||
* @see nsIFile
|
||||
*/
|
||||
[scriptable, uuid(ce4ef184-7660-445e-9e59-6731bdc65505)]
|
||||
[scriptable, builtinclass, uuid(ce4ef184-7660-445e-9e59-6731bdc65505)]
|
||||
interface nsILocalFile : nsIFile
|
||||
{
|
||||
};
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
[ptr] native FSRefPtr(FSRef);
|
||||
native CFURLRef(CFURLRef);
|
||||
|
||||
[scriptable, uuid(E5DE2CC9-BF06-4329-8F91-5D2D45284500)]
|
||||
[scriptable, builtinclass, uuid(E5DE2CC9-BF06-4329-8F91-5D2D45284500)]
|
||||
interface nsILocalFileMac : nsILocalFile
|
||||
{
|
||||
/**
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
|
||||
#include "nsILocalFile.idl"
|
||||
|
||||
[scriptable, uuid(c7b3fd13-30f2-46e5-a0d9-7a79a9b73c5b)]
|
||||
[scriptable, builtinclass, uuid(c7b3fd13-30f2-46e5-a0d9-7a79a9b73c5b)]
|
||||
interface nsILocalFileWin : nsILocalFile
|
||||
{
|
||||
/**
|
||||
|
|
Загрузка…
Ссылка в новой задаче