1
0
mirror of https://github.com/robertkrimen/otto synced 2025-10-12 20:27:30 +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.prototype === undefined`, "true")
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) {

6
inline
View File

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

View File

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

View File

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