1
0
mirror of https://github.com/robertkrimen/otto synced 2025-10-26 20:28:49 +08:00

Fix writable/enumerable/configurable of undefined, NaN, & Infinity to be false

This commit is contained in:
Robert Krimen 2013-06-15 11:27:41 -07:00
parent 70045edc65
commit 22ae900958
4 changed files with 16 additions and 7 deletions

View File

@ -51,6 +51,15 @@ func TestGlobal(t *testing.T) {
test(`eval.length === 1`, "true") test(`eval.length === 1`, "true")
test(`eval.prototype === undefined`, "true") test(`eval.prototype === undefined`, "true")
test(`raise: new eval()`, "TypeError: [function] is not a constructor") test(`raise: new eval()`, "TypeError: [function] is not a constructor")
test(`
[
[ delete undefined, undefined ],
[ delete NaN, NaN ],
[ delete Infinity, Infinity ],
];
`, "false,,false,NaN,false,Infinity")
} }
func TestGlobalLength(t *testing.T) { func TestGlobalLength(t *testing.T) {

6
inline
View File

@ -551,9 +551,9 @@ sub newContext {
"SyntaxError", "SyntaxError",
"URIError", "URIError",
), ),
$self->property("undefined", $self->undefinedValue(), "0101"), $self->property("undefined", $self->undefinedValue(), "0"),
$self->property("NaN", $self->numberValue("math.NaN()"), "0101"), $self->property("NaN", $self->numberValue("math.NaN()"), "0"),
$self->property("Infinity", $self->numberValue("math.Inf(+1)"), "0100"), $self->property("Infinity", $self->numberValue("math.Inf(+1)"), "0"),
), ),
}), }),
; ;

View File

@ -4612,20 +4612,20 @@ func _newContext(runtime *_runtime) {
}, },
}, },
"undefined": _property{ "undefined": _property{
mode: 0101, mode: 0,
value: Value{ value: Value{
_valueType: valueUndefined, _valueType: valueUndefined,
}, },
}, },
"NaN": _property{ "NaN": _property{
mode: 0101, mode: 0,
value: Value{ value: Value{
_valueType: valueNumber, _valueType: valueNumber,
value: math.NaN(), value: math.NaN(),
}, },
}, },
"Infinity": _property{ "Infinity": _property{
mode: 0100, mode: 0,
value: Value{ value: Value{
_valueType: valueNumber, _valueType: valueNumber,
value: math.Inf(+1), value: math.Inf(+1),

View File

@ -593,7 +593,7 @@ func TestComparison(t *testing.T) {
test := runTest() test := runTest()
test("undefined = 1") test("undefined = 1")
test("undefined", "1") test("undefined", "undefined")
test("result = undefined == undefined") test("result = undefined == undefined")
test("result", "true") test("result", "true")