You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					18 lines
				
				539 B
			
		
		
			
		
	
	
					18 lines
				
				539 B
			| 
								 
											3 years ago
										 
									 | 
							
								// 20.2.2.18 Math.imul(x, y)
							 | 
						||
| 
								 | 
							
								var $export = require('./_export');
							 | 
						||
| 
								 | 
							
								var $imul = Math.imul;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								// some WebKit versions fails with big numbers, some has wrong arity
							 | 
						||
| 
								 | 
							
								$export($export.S + $export.F * require('./_fails')(function () {
							 | 
						||
| 
								 | 
							
								  return $imul(0xffffffff, 5) != -5 || $imul.length != 2;
							 | 
						||
| 
								 | 
							
								}), 'Math', {
							 | 
						||
| 
								 | 
							
								  imul: function imul(x, y) {
							 | 
						||
| 
								 | 
							
								    var UINT16 = 0xffff;
							 | 
						||
| 
								 | 
							
								    var xn = +x;
							 | 
						||
| 
								 | 
							
								    var yn = +y;
							 | 
						||
| 
								 | 
							
								    var xl = UINT16 & xn;
							 | 
						||
| 
								 | 
							
								    var yl = UINT16 & yn;
							 | 
						||
| 
								 | 
							
								    return 0 | xl * yl + ((UINT16 & xn >>> 16) * yl + xl * (UINT16 & yn >>> 16) << 16 >>> 0);
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								});
							 |