mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-08-09 09:39:39 +00:00
LibWeb: Correct attributes on IDL interface 'operations'
This fixes four tests for the IDL harness for URL under: https://wpt.live/url/idlharness.any.html and https://wpt.live/url/idlharness.any.worker.html But probably some tests in other places too :^)
This commit is contained in:
parent
fb2b78620d
commit
e9dd05b2b5
Notes:
github-actions[bot]
2024-10-05 08:48:01 +00:00
Author: https://github.com/shannonbooth
Commit: e9dd05b2b5
Pull-request: https://github.com/LadybirdBrowser/ladybird/pull/1636
3 changed files with 21 additions and 1 deletions
|
@ -4415,8 +4415,14 @@ static void define_the_operations(SourceGenerator& generator, HashMap<ByteString
|
||||||
function_generator.set("function.name:snakecase", make_input_acceptable_cpp(operation.key.to_snakecase()));
|
function_generator.set("function.name:snakecase", make_input_acceptable_cpp(operation.key.to_snakecase()));
|
||||||
function_generator.set("function.length", ByteString::number(get_shortest_function_length(operation.value)));
|
function_generator.set("function.length", ByteString::number(get_shortest_function_length(operation.value)));
|
||||||
|
|
||||||
|
// NOTE: This assumes that every function in the overload set has the same attribute set.
|
||||||
|
if (operation.value[0].extended_attributes.contains("LegacyUnforgable"sv))
|
||||||
|
function_generator.set("function.attributes", "JS::Attribute::Enumerable");
|
||||||
|
else
|
||||||
|
function_generator.set("function.attributes", "JS::Attribute::Writable | JS::Attribute::Enumerable | JS::Attribute::Configurable");
|
||||||
|
|
||||||
function_generator.append(R"~~~(
|
function_generator.append(R"~~~(
|
||||||
define_native_function(realm, "@function.name@", @function.name:snakecase@, @function.length@, default_attributes);
|
define_native_function(realm, "@function.name@", @function.name:snakecase@, @function.length@, @function.attributes@);
|
||||||
)~~~");
|
)~~~");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
writable: true
|
||||||
|
configurable: true
|
||||||
|
enumerable: true
|
||||||
|
value (the function itself): function canParse() { [native code] }
|
10
Tests/LibWeb/Text/input/URL/URL-operations-properties.html
Normal file
10
Tests/LibWeb/Text/input/URL/URL-operations-properties.html
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
<script src="../include.js"></script>
|
||||||
|
<script>
|
||||||
|
test(() => {
|
||||||
|
const descriptor = Object.getOwnPropertyDescriptor(URL, "canParse");
|
||||||
|
println(`writable: ${descriptor.writable}`);
|
||||||
|
println(`configurable: ${descriptor.configurable}`);
|
||||||
|
println(`enumerable: ${descriptor.enumerable}`);
|
||||||
|
println(`value (the function itself): ${descriptor.value}`);
|
||||||
|
});
|
||||||
|
</script>
|
Loading…
Add table
Add a link
Reference in a new issue