mirror of
				https://github.com/RGBCube/serenity
				synced 2025-10-31 19:12:43 +00:00 
			
		
		
		
	LibJS/JIT: Add builtin for Math.round()
This commit is contained in:
		
							parent
							
								
									c2ff238467
								
							
						
					
					
						commit
						8447544e17
					
				
					 4 changed files with 24 additions and 3 deletions
				
			
		|  | @ -34,7 +34,7 @@ void MathObject::initialize(Realm& realm) | |||
|     define_native_function(realm, vm.names.sqrt, sqrt, 1, attr, Bytecode::Builtin::MathSqrt); | ||||
|     define_native_function(realm, vm.names.floor, floor, 1, attr, Bytecode::Builtin::MathFloor); | ||||
|     define_native_function(realm, vm.names.ceil, ceil, 1, attr, Bytecode::Builtin::MathCeil); | ||||
|     define_native_function(realm, vm.names.round, round, 1, attr); | ||||
|     define_native_function(realm, vm.names.round, round, 1, attr, Bytecode::Builtin::MathRound); | ||||
|     define_native_function(realm, vm.names.max, max, 2, attr); | ||||
|     define_native_function(realm, vm.names.min, min, 2, attr); | ||||
|     define_native_function(realm, vm.names.trunc, trunc, 1, attr); | ||||
|  | @ -770,10 +770,10 @@ JS_DEFINE_NATIVE_FUNCTION(MathObject::random) | |||
| } | ||||
| 
 | ||||
| // 21.3.2.28 Math.round ( x ), https://tc39.es/ecma262/#sec-math.round
 | ||||
| JS_DEFINE_NATIVE_FUNCTION(MathObject::round) | ||||
| ThrowCompletionOr<Value> MathObject::round_impl(VM& vm, Value x) | ||||
| { | ||||
|     // 1. Let n be ? ToNumber(x).
 | ||||
|     auto number = TRY(vm.argument(0).to_number(vm)); | ||||
|     auto number = TRY(x.to_number(vm)); | ||||
| 
 | ||||
|     // 2. If n is not finite or n is an integral Number, return n.
 | ||||
|     if (!number.is_finite_number() || number.as_double() == ::trunc(number.as_double())) | ||||
|  | @ -788,6 +788,12 @@ JS_DEFINE_NATIVE_FUNCTION(MathObject::round) | |||
|     return Value(integer); | ||||
| } | ||||
| 
 | ||||
| // 21.3.2.28 Math.round ( x ), https://tc39.es/ecma262/#sec-math.round
 | ||||
| JS_DEFINE_NATIVE_FUNCTION(MathObject::round) | ||||
| { | ||||
|     return round_impl(vm, vm.argument(0)); | ||||
| } | ||||
| 
 | ||||
| // 21.3.2.29 Math.sign ( x ), https://tc39.es/ecma262/#sec-math.sign
 | ||||
| JS_DEFINE_NATIVE_FUNCTION(MathObject::sign) | ||||
| { | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Andreas Kling
						Andreas Kling