Bug 1253016 - Remove legacy __defineGetter__/__defineSetter__ this behavior. r=till

This commit is contained in:
Tom Schuster 2016-03-12 15:02:11 +01:00
Родитель d8a66f109b
Коммит a3fd09a3fe
13 изменённых файлов: 21 добавлений и 24 удалений

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

@ -61,14 +61,12 @@ function Object_toLocaleString() {
}
function ObjectDefineSetter(name, setter) {
var object;
if (this === null || this === undefined) {
if (this === null || this === undefined)
AddContentTelemetry(TELEMETRY_DEFINE_GETTER_SETTER_THIS_NULL_UNDEFINED, 1);
object = global;
} else {
else
AddContentTelemetry(TELEMETRY_DEFINE_GETTER_SETTER_THIS_NULL_UNDEFINED, 0);
object = ToObject(this);
}
var object = ToObject(this);
if (!IsCallable(setter))
ThrowTypeError(JSMSG_BAD_GETTER_OR_SETTER, "setter");
@ -86,14 +84,12 @@ function ObjectDefineSetter(name, setter) {
}
function ObjectDefineGetter(name, getter) {
var object;
if (this === null || this === undefined) {
if (this === null || this === undefined)
AddContentTelemetry(TELEMETRY_DEFINE_GETTER_SETTER_THIS_NULL_UNDEFINED, 1);
object = global;
} else {
else
AddContentTelemetry(TELEMETRY_DEFINE_GETTER_SETTER_THIS_NULL_UNDEFINED, 0);
object = ToObject(this);
}
var object = ToObject(this);
if (!IsCallable(getter))
ThrowTypeError(JSMSG_BAD_GETTER_OR_SETTER, "getter");

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

@ -4,7 +4,7 @@
function f(foo)
{
var x;
eval("__defineGetter__(\"y\", function ()x)");
eval("this.__defineGetter__(\"y\", function ()x)");
}
f("");
try {

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

@ -5,7 +5,7 @@ function f(param) {
var w;
return eval("\
(function(){\
__defineGetter__(\"y\", function()({\
this.__defineGetter__(\"y\", function()({\
x: function(){ return w }()\
}))\
});\

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

@ -5,7 +5,7 @@
//
for (c in [0]) {
{
let c = __defineGetter__("", function(){});
let c = this.__defineGetter__("", function(){});
eval("function w(){}")++
}
}

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

@ -1,7 +1,7 @@
// Binary: cache/js-dbg-64-a6d7a5677b4c-linux
// Flags:
//
__defineSetter__("x", function(){})
this.__defineSetter__("x", function(){})
this.watch("x", "".localeCompare)
window = x
Object.defineProperty(this, "x", ({

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

@ -8,5 +8,5 @@ function f() {
print(a)
})()
}
__defineGetter__("x", gc)
this.__defineGetter__("x", gc)
f()

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

@ -1,7 +1,7 @@
// Binary: cache/js-dbg-64-54700fad8cf9-linux
// Flags: -j
//
__defineSetter__("x", Object.freeze)
this.__defineSetter__("x", Object.freeze)
x = this;
for (let z = 0; z < 5; z++) {
for each(let y in [0, 0, 0]) {

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

@ -3,6 +3,6 @@
// Binary: cache/js-dbg-64-3dd6ec45084c-linux
// Flags:
//
__defineGetter__("x", eval);
this.__defineGetter__("x", eval);
eval.toString = toLocaleString
eval < x

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

@ -1,6 +1,6 @@
// |jit-test| --baseline-eager; error: TypeError
try {
__defineGetter__("x", Iterator)()
this.__defineGetter__("x", Iterator)()
} catch (e) {}
f = function() {
return (function() {

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

@ -1,5 +1,6 @@
var global = this;
(function() {
__defineGetter__("x", /x/.constructor)
global.__defineGetter__("x", /x/.constructor)
})()
for (var a = 0; a < 4; ++a) {
if (a % 4 == 1) {

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

@ -1,2 +1,2 @@
__defineSetter__("x",Math.max)
this.__defineSetter__("x",Math.max)
Function("({x}=[])")()

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

@ -2,7 +2,7 @@ x = 0
for (a = 0; a < 13; ++a) {
if (a == 7) {
if (!x) {
__defineSetter__("x", Object.defineProperties)
this.__defineSetter__("x", Object.defineProperties)
}
}
}

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

@ -1,6 +1,6 @@
(function f() {
let x = (new function() {})
__defineGetter__("x", function() {
this.__defineGetter__("x", function() {
({
e: x
})