Revision: 9706
Author: [email protected]
Date: Wed Oct 19 06:29:37 2011
Log: [[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
http://code.google.com/p/v8/source/detail?r=9706
Modified:
/branches/bleeding_edge/src/v8natives.js
=======================================
--- /branches/bleeding_edge/src/v8natives.js Wed Oct 19 02:52:08 2011
+++ /branches/bleeding_edge/src/v8natives.js Wed Oct 19 06:29:37 2011
@@ -704,7 +704,7 @@
if (should_throw) {
throw MakeTypeError("define_disallowed", [p]);
} else {
- return;
+ return false;
}
}
@@ -734,7 +734,7 @@
if (should_throw) {
throw MakeTypeError("redefine_disallowed", [p]);
} else {
- return;
+ return false;
}
}
// Step 8
@@ -744,7 +744,7 @@
if (should_throw) {
throw MakeTypeError("redefine_disallowed", [p]);
} else {
- return;
+ return false;
}
}
// Step 10a
@@ -753,7 +753,7 @@
if (should_throw) {
throw MakeTypeError("redefine_disallowed", [p]);
} else {
- return;
+ return false;
}
}
if (!current.isWritable() && desc.hasValue() &&
@@ -761,7 +761,7 @@
if (should_throw) {
throw MakeTypeError("redefine_disallowed", [p]);
} else {
- return;
+ return false;
}
}
}
@@ -771,14 +771,14 @@
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 @@
if (should_throw) {
throw MakeTypeError("define_disallowed", [p]);
} else {
- return;
+ return false;
}
}
if (index >= length) {
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev