summaryrefslogtreecommitdiffstats
path: root/js/src/jit-test/tests/pic/self8.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/src/jit-test/tests/pic/self8.js')
-rw-r--r--js/src/jit-test/tests/pic/self8.js32
1 files changed, 32 insertions, 0 deletions
diff --git a/js/src/jit-test/tests/pic/self8.js b/js/src/jit-test/tests/pic/self8.js
new file mode 100644
index 000000000..3c0523cb0
--- /dev/null
+++ b/js/src/jit-test/tests/pic/self8.js
@@ -0,0 +1,32 @@
+// getprop, self, 8 shapes
+
+var expected = "0,1,2,3,4,5,6,7,0,1,2,3,4,5,6,7,0,1,2,3,4,5,6,7,";
+var actual = '';
+
+function letter(i) {
+ return String.fromCharCode(97 + i);
+}
+
+function f() {
+ // Build 8 objects with different shapes and x in different slots.
+ var oa = [];
+ for (var i = 0; i < 8; ++i) {
+ var o = {};
+ for (var j = 0; j < 8; ++j) {
+ if (j != i) {
+ o[letter(j)] = 1000 + i * 10 + j;
+ } else {
+ o.x = i;
+ }
+ }
+ oa[i] = o;
+ }
+
+ for (var i = 0; i < 24; ++i) {
+ actual += oa[i%8].x + ',';
+ }
+}
+
+f();
+
+assertEq(actual, expected);