// Copyright 2014 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.varstdlib={};varforeign={};varheap=newArrayBuffer(64*1024);functionInt32Mod(divisor){varname="mod_";if(divisor<0){name+="minus_";}name+=Math.abs(divisor);varm=eval("function Module(stdlib, foreign, heap) {\n"+" \"use asm\";\n"+" function "+name+"(dividend) {\n"+" return ((dividend | 0) % "+divisor+") | 0;\n"+" }\n"+" return { f: "+name+"}\n"+"}; Module");returnm(stdlib,foreign,heap).f;}vardivisors=[-2147483648,-32*1024,-1000,-16,-7,-2,-1,1,3,4,10,64,100,1024,2147483647];for(variindivisors){vardivisor=divisors[i];varmod=Int32Mod(divisor);for(vardividend=-2147483648;dividend<2147483648;dividend+=3999773){assertEquals((dividend%divisor)|0,mod(dividend));}}