[[DefineOwnProperty]] should always return true/false (or throw an exception), never undefined.

Note that this is not an observable behavior, but following the principle of
least surprise, we should follow the spec. Additional (extremely tiny) bonus:
Some ICs see fewer values => better code.
Review URL: http://codereview.chromium.org/8352004

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9706 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
parent 439e4600
......@@ -704,7 +704,7 @@ function DefineObjectProperty(obj, p, desc, should_throw) {
if (should_throw) {
throw MakeTypeError("define_disallowed", [p]);
} else {
return;
return false;
}
}
......@@ -734,7 +734,7 @@ function DefineObjectProperty(obj, p, desc, should_throw) {
if (should_throw) {
throw MakeTypeError("redefine_disallowed", [p]);
} else {
return;
return false;
}
}
// Step 8
......@@ -744,7 +744,7 @@ function DefineObjectProperty(obj, p, desc, should_throw) {
if (should_throw) {
throw MakeTypeError("redefine_disallowed", [p]);
} else {
return;
return false;
}
}
// Step 10a
......@@ -753,7 +753,7 @@ function DefineObjectProperty(obj, p, desc, should_throw) {
if (should_throw) {
throw MakeTypeError("redefine_disallowed", [p]);
} else {
return;
return false;
}
}
if (!current.isWritable() && desc.hasValue() &&
......@@ -761,7 +761,7 @@ function DefineObjectProperty(obj, p, desc, should_throw) {
if (should_throw) {
throw MakeTypeError("redefine_disallowed", [p]);
} else {
return;
return false;
}
}
}
......@@ -771,14 +771,14 @@ function DefineObjectProperty(obj, p, desc, should_throw) {
if (should_throw) {
throw MakeTypeError("redefine_disallowed", [p]);
} else {
return;
return false;
}
}
if (desc.hasGetter() && !SameValue(desc.getGet(),current.getGet())) {
if (should_throw) {
throw MakeTypeError("redefine_disallowed", [p]);
} else {
return;
return false;
}
}
}
......@@ -881,7 +881,7 @@ function DefineArrayProperty(obj, p, desc, should_throw) {
if (should_throw) {
throw MakeTypeError("define_disallowed", [p]);
} else {
return;
return false;
}
}
if (index >= length) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment