1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-15 17:34:59 +00:00
serenity/Userland/Libraries/LibJS/Runtime
Andreas Kling 3ee092cd0c LibJS: Implement Object.hasOwn() :^)
This is currently a TC39 Stage 2 proposal, but let's go for it!

https://github.com/tc39/proposal-accessible-object-hasownproperty

I wrote the C++, @linusg found bugs and wrote the test.
2021-05-18 11:18:19 +02:00
..
Accessor.h Userland: Use mattco@serenityos.org for my copyright headers 2021-04-23 08:24:53 +02:00
Array.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
Array.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
ArrayBuffer.cpp Everywhere: Use linusg@serenityos.org for my copyright headers 2021-04-22 22:51:19 +02:00
ArrayBuffer.h Everywhere: Use linusg@serenityos.org for my copyright headers 2021-04-22 22:51:19 +02:00
ArrayBufferConstructor.cpp Everywhere: Use linusg@serenityos.org for my copyright headers 2021-04-22 22:51:19 +02:00
ArrayBufferConstructor.h Everywhere: Use linusg@serenityos.org for my copyright headers 2021-04-22 22:51:19 +02:00
ArrayBufferPrototype.cpp Everywhere: Use linusg@serenityos.org for my copyright headers 2021-04-22 22:51:19 +02:00
ArrayBufferPrototype.h Everywhere: Use linusg@serenityos.org for my copyright headers 2021-04-22 22:51:19 +02:00
ArrayConstructor.cpp Everywhere: Use linusg@serenityos.org for my copyright headers 2021-04-22 22:51:19 +02:00
ArrayConstructor.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
ArrayIterator.cpp Userland: Use mattco@serenityos.org for my copyright headers 2021-04-23 08:24:53 +02:00
ArrayIterator.h Userland: Use mattco@serenityos.org for my copyright headers 2021-04-23 08:24:53 +02:00
ArrayIteratorPrototype.cpp Userland: Use mattco@serenityos.org for my copyright headers 2021-04-23 08:24:53 +02:00
ArrayIteratorPrototype.h Userland: Use mattco@serenityos.org for my copyright headers 2021-04-23 08:24:53 +02:00
ArrayPrototype.cpp Everywhere: Use linusg@serenityos.org for my copyright headers 2021-04-22 22:51:19 +02:00
ArrayPrototype.h Everywhere: Use linusg@serenityos.org for my copyright headers 2021-04-22 22:51:19 +02:00
BigInt.cpp Everywhere: Use linusg@serenityos.org for my copyright headers 2021-04-22 22:51:19 +02:00
BigInt.h LibJS: Move Cell.{cpp,h} from Runtime/ to Heap/ 2021-05-17 19:53:00 +02:00
BigIntConstructor.cpp Everywhere: Use linusg@serenityos.org for my copyright headers 2021-04-22 22:51:19 +02:00
BigIntConstructor.h Everywhere: Use linusg@serenityos.org for my copyright headers 2021-04-22 22:51:19 +02:00
BigIntObject.cpp Everywhere: Use linusg@serenityos.org for my copyright headers 2021-04-22 22:51:19 +02:00
BigIntObject.h Everywhere: Use linusg@serenityos.org for my copyright headers 2021-04-22 22:51:19 +02:00
BigIntPrototype.cpp Everywhere: Use linusg@serenityos.org for my copyright headers 2021-04-22 22:51:19 +02:00
BigIntPrototype.h Everywhere: Use linusg@serenityos.org for my copyright headers 2021-04-22 22:51:19 +02:00
BooleanConstructor.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
BooleanConstructor.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
BooleanObject.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
BooleanObject.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
BooleanPrototype.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
BooleanPrototype.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
BoundFunction.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
BoundFunction.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
CommonPropertyNames.h LibJS: Implement Object.hasOwn() :^) 2021-05-18 11:18:19 +02:00
ConsoleObject.cpp Everywhere: Use linusg@serenityos.org for my copyright headers 2021-04-22 22:51:19 +02:00
ConsoleObject.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
Date.cpp LibJS: Convert StringBuilder::appendf() => AK::Format 2021-05-07 21:12:09 +02:00
Date.h Everywhere: Use linusg@serenityos.org for my copyright headers 2021-04-22 22:51:19 +02:00
DateConstructor.cpp Everywhere: Use linusg@serenityos.org for my copyright headers 2021-04-22 22:51:19 +02:00
DateConstructor.h Everywhere: Use linusg@serenityos.org for my copyright headers 2021-04-22 22:51:19 +02:00
DatePrototype.cpp Everywhere: Use linusg@serenityos.org for my copyright headers 2021-04-22 22:51:19 +02:00
DatePrototype.h Everywhere: Use linusg@serenityos.org for my copyright headers 2021-04-22 22:51:19 +02:00
Error.cpp Everywhere: Use linusg@serenityos.org for my copyright headers 2021-04-22 22:51:19 +02:00
Error.h Everywhere: Use linusg@serenityos.org for my copyright headers 2021-04-22 22:51:19 +02:00
ErrorConstructor.cpp Everywhere: Use linusg@serenityos.org for my copyright headers 2021-04-22 22:51:19 +02:00
ErrorConstructor.h Everywhere: Use linusg@serenityos.org for my copyright headers 2021-04-22 22:51:19 +02:00
ErrorPrototype.cpp Everywhere: Use linusg@serenityos.org for my copyright headers 2021-04-22 22:51:19 +02:00
ErrorPrototype.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
ErrorTypes.cpp Userland: Use mattco@serenityos.org for my copyright headers 2021-04-23 08:24:53 +02:00
ErrorTypes.h LibJS: Bring back runtime validation of RegExp flags 2021-05-11 22:47:14 +01:00
Exception.cpp LibJS: Don't assume call_frame->current_node in Exception constructor 2021-04-25 21:45:23 +02:00
Exception.h LibJS: Move Cell.{cpp,h} from Runtime/ to Heap/ 2021-05-17 19:53:00 +02:00
Function.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
Function.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
FunctionConstructor.cpp Everywhere: Use linusg@serenityos.org for my copyright headers 2021-04-22 22:51:19 +02:00
FunctionConstructor.h Everywhere: Use linusg@serenityos.org for my copyright headers 2021-04-22 22:51:19 +02:00
FunctionPrototype.cpp Everywhere: Use linusg@serenityos.org for my copyright headers 2021-04-22 22:51:19 +02:00
FunctionPrototype.h Everywhere: Use linusg@serenityos.org for my copyright headers 2021-04-22 22:51:19 +02:00
GlobalObject.cpp LibJS: Fallback to undefined if last value in eval() is empty 2021-04-25 22:52:19 +02:00
GlobalObject.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
IndexedProperties.cpp LibJS: Handle OOB access in GenericIndexedPropertyStorage::take_last() 2021-05-17 23:20:29 +01:00
IndexedProperties.h Userland: Use mattco@serenityos.org for my copyright headers 2021-04-23 08:24:53 +02:00
IteratorOperations.cpp Userland: Use mattco@serenityos.org for my copyright headers 2021-04-23 08:24:53 +02:00
IteratorOperations.h Userland: Use mattco@serenityos.org for my copyright headers 2021-04-23 08:24:53 +02:00
IteratorPrototype.cpp Userland: Use mattco@serenityos.org for my copyright headers 2021-04-23 08:24:53 +02:00
IteratorPrototype.h Userland: Use mattco@serenityos.org for my copyright headers 2021-04-23 08:24:53 +02:00
JobCallback.h Everywhere: Use linusg@serenityos.org for my copyright headers 2021-04-22 22:51:19 +02:00
JSONObject.cpp Userland: Use mattco@serenityos.org for my copyright headers 2021-04-23 08:24:53 +02:00
JSONObject.h Userland: Use mattco@serenityos.org for my copyright headers 2021-04-23 08:24:53 +02:00
LexicalEnvironment.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
LexicalEnvironment.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
MarkedValueList.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
MarkedValueList.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
MathObject.cpp Userland: Replace arc4random() with get_random<u32>() 2021-05-14 22:24:02 +02:00
MathObject.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
NativeFunction.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
NativeFunction.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
NativeProperty.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
NativeProperty.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
NumberConstructor.cpp Everywhere: Use linusg@serenityos.org for my copyright headers 2021-04-22 22:51:19 +02:00
NumberConstructor.h Everywhere: Use linusg@serenityos.org for my copyright headers 2021-04-22 22:51:19 +02:00
NumberObject.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
NumberObject.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
NumberPrototype.cpp LibJS: Use u64 instead of u32 in NumberPrototype::to_string 2021-05-11 18:29:55 +01:00
NumberPrototype.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
Object.cpp LibJS: Temporarily clear exception in Object::get_without_side_effects() 2021-04-24 20:11:04 +02:00
Object.h LibJS: Move Cell.{cpp,h} from Runtime/ to Heap/ 2021-05-17 19:53:00 +02:00
ObjectConstructor.cpp LibJS: Implement Object.hasOwn() :^) 2021-05-18 11:18:19 +02:00
ObjectConstructor.h LibJS: Implement Object.hasOwn() :^) 2021-05-18 11:18:19 +02:00
ObjectPrototype.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
ObjectPrototype.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
PrimitiveString.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
PrimitiveString.h LibJS: Move Cell.{cpp,h} from Runtime/ to Heap/ 2021-05-17 19:53:00 +02:00
Promise.cpp Everywhere: Use linusg@serenityos.org for my copyright headers 2021-04-22 22:51:19 +02:00
Promise.h Everywhere: Use linusg@serenityos.org for my copyright headers 2021-04-22 22:51:19 +02:00
PromiseConstructor.cpp Everywhere: Use linusg@serenityos.org for my copyright headers 2021-04-22 22:51:19 +02:00
PromiseConstructor.h Everywhere: Use linusg@serenityos.org for my copyright headers 2021-04-22 22:51:19 +02:00
PromiseJobs.cpp Everywhere: Use linusg@serenityos.org for my copyright headers 2021-04-22 22:51:19 +02:00
PromiseJobs.h Everywhere: Use linusg@serenityos.org for my copyright headers 2021-04-22 22:51:19 +02:00
PromisePrototype.cpp Everywhere: Use linusg@serenityos.org for my copyright headers 2021-04-22 22:51:19 +02:00
PromisePrototype.h Everywhere: Use linusg@serenityos.org for my copyright headers 2021-04-22 22:51:19 +02:00
PromiseReaction.cpp Everywhere: Use linusg@serenityos.org for my copyright headers 2021-04-22 22:51:19 +02:00
PromiseReaction.h Everywhere: Use linusg@serenityos.org for my copyright headers 2021-04-22 22:51:19 +02:00
PromiseResolvingFunction.cpp Everywhere: Use linusg@serenityos.org for my copyright headers 2021-04-22 22:51:19 +02:00
PromiseResolvingFunction.h Everywhere: Use linusg@serenityos.org for my copyright headers 2021-04-22 22:51:19 +02:00
PropertyAttributes.h Userland: Use mattco@serenityos.org for my copyright headers 2021-04-23 08:24:53 +02:00
PropertyName.h LibJS: Change PropertyName::as_number() return type to u32 2021-04-25 22:42:48 +02:00
ProxyConstructor.cpp Userland: Use mattco@serenityos.org for my copyright headers 2021-04-23 08:24:53 +02:00
ProxyConstructor.h Userland: Use mattco@serenityos.org for my copyright headers 2021-04-23 08:24:53 +02:00
ProxyObject.cpp Userland: Use mattco@serenityos.org for my copyright headers 2021-04-23 08:24:53 +02:00
ProxyObject.h Userland: Use mattco@serenityos.org for my copyright headers 2021-04-23 08:24:53 +02:00
Reference.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
Reference.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
ReflectObject.cpp Everywhere: Use linusg@serenityos.org for my copyright headers 2021-04-22 22:51:19 +02:00
ReflectObject.h Everywhere: Use linusg@serenityos.org for my copyright headers 2021-04-22 22:51:19 +02:00
RegExpConstructor.cpp Userland: Use mattco@serenityos.org for my copyright headers 2021-04-23 08:24:53 +02:00
RegExpConstructor.h Userland: Use mattco@serenityos.org for my copyright headers 2021-04-23 08:24:53 +02:00
RegExpObject.cpp LibJS: Bring back runtime validation of RegExp flags 2021-05-11 22:47:14 +01:00
RegExpObject.h Userland: Use mattco@serenityos.org for my copyright headers 2021-04-23 08:24:53 +02:00
RegExpPrototype.cpp LibJS: Use the match's global offset for 'index' in RegExp.exec() 2021-04-23 10:05:04 +02:00
RegExpPrototype.h Userland: Use mattco@serenityos.org for my copyright headers 2021-04-23 08:24:53 +02:00
ScopeObject.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
ScopeObject.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
ScriptFunction.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
ScriptFunction.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
Shape.cpp LibJS: Make the forward transition chain weakly cached 2021-05-17 21:40:18 +02:00
Shape.h LibJS: Make the forward transition chain weakly cached 2021-05-17 21:40:18 +02:00
StringConstructor.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
StringConstructor.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
StringIterator.cpp Userland: Use mattco@serenityos.org for my copyright headers 2021-04-23 08:24:53 +02:00
StringIterator.h Userland: Use mattco@serenityos.org for my copyright headers 2021-04-23 08:24:53 +02:00
StringIteratorPrototype.cpp Userland: Use mattco@serenityos.org for my copyright headers 2021-04-23 08:24:53 +02:00
StringIteratorPrototype.h Userland: Use mattco@serenityos.org for my copyright headers 2021-04-23 08:24:53 +02:00
StringObject.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
StringObject.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
StringOrSymbol.h Userland: Use mattco@serenityos.org for my copyright headers 2021-04-23 08:24:53 +02:00
StringPrototype.cpp Everywhere: Use linusg@serenityos.org for my copyright headers 2021-04-22 22:51:19 +02:00
StringPrototype.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
Symbol.cpp Userland: Use mattco@serenityos.org for my copyright headers 2021-04-23 08:24:53 +02:00
Symbol.h LibJS: Move Cell.{cpp,h} from Runtime/ to Heap/ 2021-05-17 19:53:00 +02:00
SymbolConstructor.cpp Userland: Use mattco@serenityos.org for my copyright headers 2021-04-23 08:24:53 +02:00
SymbolConstructor.h Userland: Use mattco@serenityos.org for my copyright headers 2021-04-23 08:24:53 +02:00
SymbolObject.cpp Userland: Use mattco@serenityos.org for my copyright headers 2021-04-23 08:24:53 +02:00
SymbolObject.h Userland: Use mattco@serenityos.org for my copyright headers 2021-04-23 08:24:53 +02:00
SymbolPrototype.cpp Userland: Use mattco@serenityos.org for my copyright headers 2021-04-23 08:24:53 +02:00
SymbolPrototype.h Userland: Use mattco@serenityos.org for my copyright headers 2021-04-23 08:24:53 +02:00
TemporaryClearException.h LibJS: Use linusg@serenityos.org for my new copyright headers, too 2021-04-24 20:16:31 +02:00
TypedArray.cpp Everywhere: Use linusg@serenityos.org for my copyright headers 2021-04-22 22:51:19 +02:00
TypedArray.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
TypedArrayConstructor.cpp Everywhere: Use linusg@serenityos.org for my copyright headers 2021-04-22 22:51:19 +02:00
TypedArrayConstructor.h Everywhere: Use linusg@serenityos.org for my copyright headers 2021-04-22 22:51:19 +02:00
TypedArrayPrototype.cpp Everywhere: Use linusg@serenityos.org for my copyright headers 2021-04-22 22:51:19 +02:00
TypedArrayPrototype.h Everywhere: Use linusg@serenityos.org for my copyright headers 2021-04-22 22:51:19 +02:00
Uint8ClampedArray.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
Uint8ClampedArray.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
Value.cpp LibM: Fix INFITITY to float 2021-04-27 23:06:16 +02:00
Value.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
VM.cpp LibJS: Don't suppress GlobalObject variable lookup exceptions 2021-04-25 19:03:57 +02:00
VM.h LibJS: Increase free stack space required for function calls to 32 kiB 2021-05-17 18:03:10 +01:00
WithScope.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
WithScope.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00