| Index: test/mjsunit/strong/implicit-conversions-count.js
|
| diff --git a/test/mjsunit/strong/implicit-conversions-count.js b/test/mjsunit/strong/implicit-conversions-count.js
|
| deleted file mode 100644
|
| index 88ed3c2068cbbb5f8c6820376024701b28db8a44..0000000000000000000000000000000000000000
|
| --- a/test/mjsunit/strong/implicit-conversions-count.js
|
| +++ /dev/null
|
| @@ -1,168 +0,0 @@
|
| -// Copyright 2015 the V8 project authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -// Flags: --strong-mode --allow-natives-syntax
|
| -
|
| -"use strict";
|
| -
|
| -function pre_inc(x) {
|
| - return ++x;
|
| -}
|
| -
|
| -function post_inc(x) {
|
| - return x++;
|
| -}
|
| -
|
| -function pre_dec(x) {
|
| - return --x;
|
| -}
|
| -
|
| -function post_dec(x) {
|
| - return x--;
|
| -}
|
| -
|
| -function getTestFuncs() {
|
| - return [
|
| - function(x){
|
| - "use strong";
|
| - let y = x;
|
| - assertEquals(++y, pre_inc(x));
|
| - try {
|
| - assertEquals(x+1, y)
|
| - } catch (e) {
|
| - assertUnreachable();
|
| - }
|
| - },
|
| - function(x){
|
| - "use strong";
|
| - let y = x;
|
| - assertEquals(y++, post_inc(x));
|
| - try {
|
| - assertEquals(x+1, y)
|
| - } catch (e) {
|
| - assertUnreachable();
|
| - }
|
| - },
|
| - function(x){
|
| - "use strong";
|
| - let y = x;
|
| - assertEquals(--y, pre_dec(x));
|
| - try {
|
| - assertEquals(x-1, y)
|
| - } catch (e) {
|
| - assertUnreachable();
|
| - }
|
| - },
|
| - function(x){
|
| - "use strong";
|
| - let y = x;
|
| - assertEquals(y--, post_dec(x));
|
| - try {
|
| - assertEquals(x-1, y)
|
| - } catch (e) {
|
| - assertUnreachable();
|
| - }
|
| - },
|
| - function(x){
|
| - "use strong";
|
| - let obj = { foo: x };
|
| - let y = ++obj.foo;
|
| - assertEquals(y, pre_inc(x));
|
| - try {
|
| - assertEquals(x+1, obj.foo)
|
| - } catch (e) {
|
| - assertUnreachable();
|
| - }
|
| - },
|
| - function(x){
|
| - "use strong";
|
| - let obj = { foo: x };
|
| - let y = obj.foo++;
|
| - assertEquals(y, post_inc(x));
|
| - try {
|
| - assertEquals(x+1, obj.foo)
|
| - } catch (e) {
|
| - assertUnreachable();
|
| - }
|
| - },
|
| - function(x){
|
| - "use strong";
|
| - let obj = { foo: x };
|
| - let y = --obj.foo;
|
| - assertEquals(y, pre_dec(x));
|
| - try {
|
| - assertEquals(x-1, obj.foo)
|
| - } catch (e) {
|
| - assertUnreachable();
|
| - }
|
| - },
|
| - function(x){
|
| - "use strong";
|
| - let obj = { foo: x };
|
| - let y = obj.foo--;
|
| - assertEquals(y, post_dec(x));
|
| - try {
|
| - assertEquals(x-1, obj.foo)
|
| - } catch (e) {
|
| - assertUnreachable();
|
| - }
|
| - },
|
| - ];
|
| -}
|
| -
|
| -let nonNumberValues = [
|
| - {},
|
| - (function(){}),
|
| - [],
|
| - (class Foo {}),
|
| - "",
|
| - "foo",
|
| - "NaN",
|
| - Object(""),
|
| - false,
|
| - null,
|
| - undefined
|
| -];
|
| -
|
| -// Check prior input of None works
|
| -for (let func of getTestFuncs()) {
|
| - for (let value of nonNumberValues) {
|
| - assertThrows(function(){func(value)}, TypeError);
|
| - assertThrows(function(){func(value)}, TypeError);
|
| - assertThrows(function(){func(value)}, TypeError);
|
| - %OptimizeFunctionOnNextCall(func);
|
| - assertThrows(function(){func(value)}, TypeError);
|
| - %DeoptimizeFunction(func);
|
| - }
|
| -}
|
| -
|
| -// Check prior input of Smi works
|
| -for (let func of getTestFuncs()) {
|
| - func(1);
|
| - func(1);
|
| - func(1);
|
| - for (let value of nonNumberValues) {
|
| - assertThrows(function(){func(value)}, TypeError);
|
| - assertThrows(function(){func(value)}, TypeError);
|
| - assertThrows(function(){func(value)}, TypeError);
|
| - %OptimizeFunctionOnNextCall(func);
|
| - assertThrows(function(){func(value)}, TypeError);
|
| - %DeoptimizeFunction(func);
|
| - }
|
| -}
|
| -
|
| -// Check prior input of Number works
|
| -for (let func of getTestFuncs()) {
|
| - func(9999999999999);
|
| - func(9999999999999);
|
| - func(9999999999999);
|
| - for (let value of nonNumberValues) {
|
| - assertThrows(function(){func(value)}, TypeError);
|
| - assertThrows(function(){func(value)}, TypeError);
|
| - assertThrows(function(){func(value)}, TypeError);
|
| - %OptimizeFunctionOnNextCall(func);
|
| - assertThrows(function(){func(value)}, TypeError);
|
| - %DeoptimizeFunction(func);
|
| - }
|
| -}
|
|
|