ayeteadoe
c14173f651
LibJS: Enable EXPLICIT_SYMBOL_EXPORT
2025-06-30 10:50:36 -06:00
Tim Ledbetter
2903defcfc
Revert "LibJS+LibWeb: Return Vector<PropertyKey> from…
...
CI / Lagom (arm64, Sanitizer_CI, false, macos-15, macOS, Clang) (push) Waiting to run
CI / Lagom (x86_64, Fuzzers_CI, false, ubuntu-24.04, Linux, Clang) (push) Waiting to run
CI / Lagom (x86_64, Sanitizer_CI, false, ubuntu-24.04, Linux, GNU) (push) Waiting to run
CI / Lagom (x86_64, Sanitizer_CI, true, ubuntu-24.04, Linux, Clang) (push) Waiting to run
Package the js repl as a binary artifact / build-and-package (arm64, macos-15, macOS, macOS-universal2) (push) Waiting to run
Package the js repl as a binary artifact / build-and-package (x86_64, ubuntu-24.04, Linux, Linux-x86_64) (push) Waiting to run
Run test262 and test-wasm / run_and_update_results (push) Waiting to run
Lint Code / lint (push) Waiting to run
Label PRs with merge conflicts / auto-labeler (push) Waiting to run
Push notes / build (push) Waiting to run
internal_own_property_keys"
This reverts commit 5ee810f772
.
2025-05-16 06:33:09 +01:00
Aliaksandr Kalenik
5ee810f772
LibJS+LibWeb: Return Vector<PropertyKey> from internal_own_property_keys
...
By doing that we avoid lots of `PropertyKey` -> `Value` -> `PropertyKey`
transforms, which are quite expensive because of underlying
`FlyString` -> `PrimitiveString` -> `FlyString` conversions.
10% improvement on MicroBench/object-keys.js
2025-05-15 14:12:18 -04:00
Andreas Kling
3bfb0534be
LibGC: Rename MarkedVector => RootVector
...
Let's try to make it a bit more clear that this is a Vector of GC roots.
2024-12-26 19:10:44 +01:00
Shannon Booth
f87041bf3a
LibGC+Everywhere: Factor out a LibGC from LibJS
...
Resulting in a massive rename across almost everywhere! Alongside the
namespace change, we now have the following names:
* JS::NonnullGCPtr -> GC::Ref
* JS::GCPtr -> GC::Ptr
* JS::HeapFunction -> GC::Function
* JS::CellImpl -> GC::Cell
* JS::Handle -> GC::Root
2024-11-15 14:49:20 +01:00
Timothy Flynn
93712b24bf
Everywhere: Hoist the Libraries folder to the top-level
2024-11-10 12:50:45 +01:00
Andreas Kling
13d7c09125
Libraries: Move to Userland/Libraries/
2021-01-12 12:17:46 +01:00
Andreas Kling
f48751a739
LibJS: Remove hand-rolled Object is_foo() helpers in favor of RTTI
2021-01-01 17:46:39 +01:00
Andreas Kling
98f2da9834
LibJS: Rename Cell::visit_children() => Cell::visit_edges()
...
The GC heap is really a graph of cells, so "children" didn't quite feel
appropriate here.
2020-11-28 17:16:48 +01:00
Andreas Kling
af51dc105a
LibJS+LibWeb: Add JS::Object::inherits(class_name)
...
To allow implementing the DOM class hierarchy in JS bindings, this
patch adds an inherits() function that can be used to ask an Object
if it inherits from a specific C++ class (by name).
The necessary overrides are baked into each Object subclass by the
new JS_OBJECT macro, which works similarly to C_OBJECT in LibCore.
Thanks to @Dexesttp for suggesting this approach. :^)
2020-06-21 15:15:52 +02:00
Andreas Kling
75f246dde8
LibJS: Make StringObject::primitive_string() return a reference
2020-04-29 12:33:28 +02:00
Andreas Kling
298c606200
LibJS: Pass prototype to StringObject constructor
2020-04-18 10:28:22 +02:00
Andreas Kling
070a8f2689
LibJS: Boolean, Number and String prototypes should have values too
...
It appears that calling .valueOf() on an objectified primitive's
prototype should return a value after all.
This matches what other engines are doing.
2020-04-10 13:09:35 +02:00
Andreas Kling
19452230cd
LibJS: Add "Heap" and "Runtime" subdirectories
...
Let's try to keep LibJS tidy as it expands. :^)
2020-03-16 14:37:19 +01:00