function shouldBe(actual, expected) { | |
if (actual !== expected) | |
throw new Error('bad value: ' + actual); | |
} | |
// Simple assignment (not FunctionCallBracketNode). | |
shouldBe(function () { | |
var object = { | |
null: 'ok' | |
}; | |
return object[object = null]; | |
}(), 'ok'); | |
shouldBe(function (value) { | |
var object = { }; | |
object.null = 'ok'; | |
return object[object = value]; | |
}(null), 'ok'); | |
shouldBe(function () { | |
var object = { | |
null: 'ok' | |
}; | |
return object['null']; | |
}(), 'ok'); | |
shouldBe(function (value) { | |
var object = { }; | |
object.null = 'ok'; | |
return object['null']; | |
}(null), 'ok'); | |
shouldBe(function () { | |
var object = { | |
null: 'ok' | |
}; | |
function fill() { | |
return object = null; | |
} | |
return object[fill()]; | |
}(), 'ok'); | |
shouldBe(function (value) { | |
var object = { }; | |
object.null = 'ok'; | |
function fill() { | |
return object = value; | |
} | |
return object[fill()]; | |
}(null), 'ok'); | |
// FunctionCallBracketNode. | |
shouldBe(function () { | |
var object = { | |
null: function () { | |
return 'ok'; | |
} | |
}; | |
return object[object = null](); | |
}(), 'ok'); | |
shouldBe(function (value) { | |
var object = { }; | |
object.null = function () { | |
return 'ok'; | |
}; | |
return object[object = value](); | |
}(null), 'ok'); | |
shouldBe(function () { | |
var object = { | |
null: function () { | |
return 'ok'; | |
} | |
}; | |
return object['null'](); | |
}(), 'ok'); | |
shouldBe(function (value) { | |
var object = { }; | |
object.null = function () { | |
return 'ok'; | |
}; | |
return object['null'](); | |
}(null), 'ok'); | |
shouldBe(function () { | |
var object = { | |
null: function () { | |
return 'ok'; | |
} | |
}; | |
function fill() { | |
return object = null; | |
} | |
return object[fill()](); | |
}(), 'ok'); | |
shouldBe(function (value) { | |
var object = { }; | |
object.null = function () { | |
return 'ok'; | |
}; | |
function fill() { | |
return object = value; | |
} | |
return object[fill()](); | |
}(null), 'ok'); |