diff options
Diffstat (limited to 'js/src/jit-test/tests/TypedObject/bug959119.js')
-rw-r--r-- | js/src/jit-test/tests/TypedObject/bug959119.js | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/js/src/jit-test/tests/TypedObject/bug959119.js b/js/src/jit-test/tests/TypedObject/bug959119.js new file mode 100644 index 000000000..f329acc3f --- /dev/null +++ b/js/src/jit-test/tests/TypedObject/bug959119.js @@ -0,0 +1,21 @@ +// This test exposed a bug in float32 optimization. +// The (inlined and optimized) code for `add()` created +// MDiv instructions specialized to integers, which was +// then "respecialized" to float32, leading to internal +// assertion errors. +// +// Public domain. + +if (!this.hasOwnProperty("TypedObject")) + quit(); + +var {StructType,uint8,float32} = TypedObject; +var RgbColor2 = new StructType({r: uint8, g: float32, b: uint8}); +RgbColor2.prototype.add = function(c) { + this.g += c; + this.b += c; +}; +var gray = new RgbColor2({r: 129, g: 128, b: 127}); +gray.add(1); +gray.add(2); + |