Index: test/mjsunit/simd/representation_change.js |
diff --git a/test/mjsunit/compiler/strict-recompile.js b/test/mjsunit/simd/representation_change.js |
similarity index 76% |
copy from test/mjsunit/compiler/strict-recompile.js |
copy to test/mjsunit/simd/representation_change.js |
index 96e8bcab78528c3eb34b33e5de20ca7a6cc96fc3..4c4cb429e79c763b52d879c4e2c1df9970ea325b 100644 |
--- a/test/mjsunit/compiler/strict-recompile.js |
+++ b/test/mjsunit/simd/representation_change.js |
@@ -25,27 +25,30 @@ |
// (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: --simd_object --allow-natives-syntax |
-function foo() { |
- try { |
- var o = {}; |
- Object.defineProperty(o, 'x', {value: 12, writable: false}); |
- o.x = 13; |
- } catch(e) { |
- return true; |
+function testSIMDAbs(i) { |
+ var a; |
+ if (i < 3) { |
+ a = float32x4(1, 1, 1, 1); |
+ } else { |
+ a = int32x4(2, 2, 2, 2); |
} |
- return false; |
+ return SIMD.float32x4.abs(a); |
} |
-assertFalse(foo()); |
- |
-function do_eval(str) { |
- "use strict"; |
- return eval(str); |
+function tryTestSIMDAbs(i) { |
+ var r = 0; |
+ try { |
+ r = testSIMDAbs(i); |
+ } catch (o) { |
+ AssertEquals(o, "TypeError: <unknown message this is not a float32x4 value.>"); |
+ } finally { |
+ return r; |
+ } |
} |
-var eval_foo = do_eval('(' + foo + ')'); |
-for (var i = 0; i < 5; i++) assertTrue(eval_foo()); |
-%OptimizeFunctionOnNextCall(eval_foo); |
-assertTrue(eval_foo()); |
+tryTestSIMDAbs(1); |
+tryTestSIMDAbs(2); |
+%OptimizeFunctionOnNextCall(testSIMDAbs); |
+tryTestSIMDAbs(3); |