ladybird/Userland/Libraries/LibJS/Runtime
Andreas Kling 7241ff3967 LibJS: *Actually* check for negative zero in JS::Value(double)
As @nico pointed out, 0.0 == -0.0 in C++, even though they are not
bitwise identical. Use the same trick as Value::is_negative_zero() to
really check for it.

This allows JS::Value(0.0) to correctly become an Int32-backed 0 value.
2021-03-22 08:06:47 +01:00
..
Accessor.h Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
Array.cpp LibJS: Make ArrayPrototype an Array object 2021-02-24 10:22:17 +01:00
Array.h LibJS: Make ArrayPrototype an Array object 2021-02-24 10:22:17 +01:00
ArrayBuffer.cpp Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
ArrayBuffer.h Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
ArrayBufferConstructor.cpp Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
ArrayBufferConstructor.h Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
ArrayBufferPrototype.cpp Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
ArrayBufferPrototype.h Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
ArrayConstructor.cpp Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
ArrayConstructor.h Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
ArrayIterator.cpp Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
ArrayIterator.h Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
ArrayIteratorPrototype.cpp Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
ArrayIteratorPrototype.h Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
ArrayPrototype.cpp LibJS: Implement 'Relative Indexing Method' proposal (.at()) 2021-03-12 19:01:08 +01:00
ArrayPrototype.h LibJS: Implement 'Relative Indexing Method' proposal (.at()) 2021-03-12 19:01:08 +01:00
BigInt.cpp Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
BigInt.h Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
BigIntConstructor.cpp LibJS: Support @@toPrimitive in ToPrimitive abstract operation 2021-03-03 11:04:06 +01:00
BigIntConstructor.h Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
BigIntObject.cpp LibJS: Remove a whole bunch of unnecessary #includes 2021-02-10 09:13:29 +01:00
BigIntObject.h Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
BigIntPrototype.cpp Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
BigIntPrototype.h Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
BooleanConstructor.cpp Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
BooleanConstructor.h Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
BooleanObject.cpp Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
BooleanObject.h Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
BooleanPrototype.cpp Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
BooleanPrototype.h Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
BoundFunction.cpp Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
BoundFunction.h Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
Cell.cpp LibJS: Always inline Cell::vm() and Cell::heap() 2021-03-21 21:39:39 +01:00
Cell.h Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
CommonPropertyNames.h LibJS: Add Date methods: setHours, setMinutes, setSeconds, setMilliseconds 2021-03-19 23:08:21 +01:00
ConsoleObject.cpp LibJS: Remove a whole bunch of unnecessary #includes 2021-02-10 09:13:29 +01:00
ConsoleObject.h Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
Date.cpp LibJS: Add Date.prototype.toGMTString() 2021-03-15 21:20:33 +01:00
Date.h LibJS: Add Date methods: setHours, setMinutes, setSeconds, setMilliseconds 2021-03-19 23:08:21 +01:00
DateConstructor.cpp Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
DateConstructor.h Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
DatePrototype.cpp LibJS: Add Date methods: setHours, setMinutes, setSeconds, setMilliseconds 2021-03-19 23:08:21 +01:00
DatePrototype.h LibJS: Add Date methods: setHours, setMinutes, setSeconds, setMilliseconds 2021-03-19 23:08:21 +01:00
Error.cpp Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
Error.h Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
ErrorConstructor.cpp Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
ErrorConstructor.h Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
ErrorPrototype.cpp Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
ErrorPrototype.h Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
ErrorTypes.cpp Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
ErrorTypes.h LibJS: Throw RangeError on BigInt exponentiation with negative exponent 2021-03-16 21:54:51 +01:00
Exception.cpp LibJS: Don't track executing AST nodes in a Vector 2021-03-21 21:39:39 +01:00
Exception.h Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
Function.cpp LibJS: Function must mark its home object 2021-02-07 10:57:07 +01:00
Function.h LibJS: Function must mark its home object 2021-02-07 10:57:07 +01:00
FunctionConstructor.cpp LibJS: Remove a whole bunch of unnecessary #includes 2021-02-10 09:13:29 +01:00
FunctionConstructor.h Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
FunctionPrototype.cpp LibJS: Change non-ScriptFunction source string to "[native code]" 2021-03-14 19:22:16 +01:00
FunctionPrototype.h Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
GlobalObject.cpp LibJS: eval(x) should return x without evaluation if x is not a string 2021-03-17 20:57:29 +01:00
GlobalObject.h LibJS: Add fast_is<T> for StringObject and GlobalObject 2021-03-19 23:12:47 +01:00
IndexedProperties.cpp LibJS: Don't punish large arrays with generic indexed property storage 2021-03-21 11:37:10 +01:00
IndexedProperties.h LibJS: Don't punish large arrays with generic indexed property storage 2021-03-21 11:37:10 +01:00
IteratorOperations.cpp Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
IteratorOperations.h Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
IteratorPrototype.cpp Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
IteratorPrototype.h Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
JSONObject.cpp Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
JSONObject.h Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
LexicalEnvironment.cpp Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
LexicalEnvironment.h Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
MarkedValueList.cpp Everywhere: Remove a bunch of redundant 'AK::' namespace prefixes 2021-02-26 16:59:56 +01:00
MarkedValueList.h Everywhere: Remove a bunch of redundant 'AK::' namespace prefixes 2021-02-26 16:59:56 +01:00
MathObject.cpp LibJS: Remove a whole bunch of unnecessary #includes 2021-02-10 09:13:29 +01:00
MathObject.h Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
NativeFunction.cpp Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
NativeFunction.h Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
NativeProperty.cpp Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
NativeProperty.h Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
NumberConstructor.cpp Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
NumberConstructor.h Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
NumberObject.cpp LibJS: Remove a whole bunch of unnecessary #includes 2021-02-10 09:13:29 +01:00
NumberObject.h Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
NumberPrototype.cpp Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
NumberPrototype.h Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
Object.cpp LibJS: Move AST node stack from VM to Interpreter 2021-03-21 16:02:11 +01:00
Object.h LibJS: Add fast_is<T> for StringObject and GlobalObject 2021-03-19 23:12:47 +01:00
ObjectConstructor.cpp LibJS: Remove a whole bunch of unnecessary #includes 2021-02-10 09:13:29 +01:00
ObjectConstructor.h Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
ObjectPrototype.cpp LibJS: Remove a whole bunch of unnecessary #includes 2021-02-10 09:13:29 +01:00
ObjectPrototype.h Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
PrimitiveString.cpp Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
PrimitiveString.h Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
PropertyAttributes.h Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
PropertyName.h Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
ProxyConstructor.cpp Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
ProxyConstructor.h Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
ProxyObject.cpp LibJS: Use Value::get_method() a bunch 2021-03-02 19:20:29 +01:00
ProxyObject.h Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
Reference.cpp LibJS: Remove a whole bunch of unnecessary #includes 2021-02-10 09:13:29 +01:00
Reference.h LibJS: Avoid unnecessary FlyString(String) churn in Reference ctors 2021-03-21 21:39:39 +01:00
ReflectObject.cpp Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
ReflectObject.h Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
RegExpConstructor.cpp Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
RegExpConstructor.h Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
RegExpObject.cpp LibJS: Fix flags check in regexp_create() 2021-03-14 12:24:57 +01:00
RegExpObject.h LibJS: Implement (mostly) String.prototype.match 2021-03-14 11:04:50 +01:00
RegExpPrototype.cpp LibJS: Fix some issues in RegExp.prototype[@@match] 2021-03-14 12:24:57 +01:00
RegExpPrototype.h LibJS: Implement (mostly) String.prototype.match 2021-03-14 11:04:50 +01:00
ScopeObject.cpp Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
ScopeObject.h Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
ScriptFunction.cpp LibJS: Respect declaration kind for variables inside functions 2021-02-26 16:59:37 +01:00
ScriptFunction.h Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
Shape.cpp Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
Shape.h Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
StringConstructor.cpp Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
StringConstructor.h Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
StringIterator.cpp Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
StringIterator.h Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
StringIteratorPrototype.cpp Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
StringIteratorPrototype.h Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
StringObject.cpp LibJS: Remove a whole bunch of unnecessary #includes 2021-02-10 09:13:29 +01:00
StringObject.h LibJS: Add fast_is<T> for StringObject and GlobalObject 2021-03-19 23:12:47 +01:00
StringOrSymbol.h Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
StringPrototype.cpp LibJS: Fix String.prototype.match() for non-string argument 2021-03-14 12:24:57 +01:00
StringPrototype.h LibJS: Implement (mostly) String.prototype.match 2021-03-14 11:04:50 +01:00
Symbol.cpp Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
Symbol.h Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
SymbolConstructor.cpp LibJS: Remove a whole bunch of unnecessary #includes 2021-02-10 09:13:29 +01:00
SymbolConstructor.h Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
SymbolObject.cpp Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
SymbolObject.h Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
SymbolPrototype.cpp Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
SymbolPrototype.h Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
TypedArray.cpp LibJS: Add overflow checks when creating TypedArray from ArrayBuffer 2021-01-27 07:57:07 +01:00
TypedArray.h Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
TypedArrayConstructor.cpp Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
TypedArrayConstructor.h Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
TypedArrayPrototype.cpp LibJS: Implement 'Relative Indexing Method' proposal (.at()) 2021-03-12 19:01:08 +01:00
TypedArrayPrototype.h LibJS: Implement 'Relative Indexing Method' proposal (.at()) 2021-03-12 19:01:08 +01:00
Uint8ClampedArray.cpp Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
Uint8ClampedArray.h Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
Value.cpp LibJS: Flatten Value::to_numeric() 2021-03-21 21:39:39 +01:00
Value.h LibJS: *Actually* check for negative zero in JS::Value(double) 2021-03-22 08:06:47 +01:00
VM.cpp LibJS: Move AST node stack from VM to Interpreter 2021-03-21 16:02:11 +01:00
VM.h LibJS: Always inline Cell::vm() and Cell::heap() 2021-03-21 21:39:39 +01:00
WithScope.cpp Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
WithScope.h Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00