Index: test/mjsunit/element-kind.js |
diff --git a/test/mjsunit/element-kind.js b/test/mjsunit/element-kind.js |
index 48a029f27e8852eb4dde4d57ec4ffa8c0680e501..40eca6173bc49e3cb83f3efd58815fbf15222fcc 100644 |
--- a/test/mjsunit/element-kind.js |
+++ b/test/mjsunit/element-kind.js |
@@ -25,10 +25,11 @@ |
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
-// Flags: --allow-natives-syntax |
+// Flags: --allow-natives-syntax --smi-only-arrays |
// Test element kind of objects |
var element_kind = { |
+ fast_smi_only_elements : 0, |
fast_elements : 1, |
fast_double_elements : 2, |
dictionary_elements : 3, |
@@ -45,6 +46,8 @@ var element_kind = { |
// We expect an object to only be of one element kind. |
function assertKind(expected, obj){ |
+ assertEquals(expected == element_kind.fast_smi_only_elements, |
+ %HasFastSmiOnlyElements(obj)); |
assertEquals(expected == element_kind.fast_elements, |
%HasFastElements(obj)); |
assertEquals(expected == element_kind.fast_double_elements, |
@@ -80,9 +83,21 @@ me.dance = 0xD15C0; |
me.drink = 0xC0C0A; |
assertKind(element_kind.fast_elements, me); |
+var too = [1,2,3]; |
+assertKind(element_kind.fast_elements, too); |
Jakob Kummerow
2011/09/16 16:30:34
Why fast_elements? Don't all arrays start off with
danno
2011/09/21 14:32:04
Done.
|
+too.dance = 0xD15C0; |
+too.drink = 0xC0C0A; |
+assertKind(element_kind.fast_elements, too); |
+ |
+// Make sure the element kind transitions from smionly when a non-smi is stored. |
var you = new Array(); |
for(i = 0; i < 1337; i++) { |
- you[i] = i; |
+ var val = i; |
+ if (i == 1336) { |
+ assertKind(element_kind.fast_smi_only_elements, you); |
Yang
2011/09/19 14:00:15
This assert does not pass for me when using the ra
danno
2011/09/21 14:32:04
I just ran the test on my machine, and it works fo
|
+ val = new Object(); |
+ } |
+ you[i] = val; |
} |
assertKind(element_kind.fast_elements, you); |