Merge mozilla-central to mozilla-inbound

This commit is contained in:
Ed Morley 2012-06-07 15:56:37 +01:00
Родитель a8b9e291d0 01bf1007b6
Коммит 9be1268e1c
22 изменённых файлов: 109 добавлений и 25 удалений

Просмотреть файл

@ -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
{
/**