Niels Dossche
a73f38f407
Implement DOMElement::insertAdjacent{Element,Text} ( #11700 )
...
* Implement DOMElement::insertAdjacent{Element,Text}
ref: https://dom.spec.whatwg.org/#dom-element-insertadjacentelement
ref: https://dom.spec.whatwg.org/#dom-element-insertadjacenttext
Closes GH-11700.
2023-07-17 17:42:47 +02:00
Niels Dossche
2f318cfb06
Implement DOMNode::isEqualNode()
...
Since we still support obsoleted nodes in our implementation, this uses
the old spec to match the old nodes; and this uses the new spec for
nodes still defined in the living spec.
When unclear, the behaviour was cross-verified with Firefox.
References:
https://dom.spec.whatwg.org/#dom-node-isequalnode (for everything still in the living spec)
https://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/DOM3-Core.html#core-Node3-isEqualNode (for old nodes removed from the living spec)
Closes GH-11690.
2023-07-17 15:29:36 +02:00
Niels Dossche
d04f48b6ac
Implement DOMNode::parentElement and DOMNameSpaceNode::parentElement
...
ref: https://dom.spec.whatwg.org/#parent-element
Closes GH-11679.
2023-07-17 13:15:31 +02:00
Niels Dossche
d38cc9b9b6
Implement DOMNode::isConnected and DOMNameSpaceNode::isConnected
...
ref: https://dom.spec.whatwg.org/#dom-node-isconnected
Closes GH-11677.
2023-07-17 13:14:13 +02:00
Niels Dossche
72e2e25066
Implement DOMElement::id
...
ref: https://dom.spec.whatwg.org/#dom-element-id
Closes GH-11701.
2023-07-14 14:37:11 +02:00
Niels Dossche
6560c9bf8e
Implement DOMParentNode::replaceChildren()
...
ref: https://dom.spec.whatwg.org/#dom-parentnode-replacechildren
2023-07-14 14:34:29 +02:00
Niels Dossche
b24b3510f9
Implement DOMElement::className
...
ref: https://dom.spec.whatwg.org/#dom-element-classname
Closes GH-11691.
2023-07-13 19:05:09 +02:00
Niels Dossche
d17069e191
Implement DOMNode::getRootNode()
...
ref: https://dom.spec.whatwg.org/#dom-node-getrootnode
Closes GH-11693.
2023-07-13 16:27:28 +02:00
Niels Dossche
10d7e8dc3a
Implement DOMElement::getAttributeNames()
...
ref: https://dom.spec.whatwg.org/#dom-element-getattributenames
2023-07-13 16:18:10 +02:00
Niels Dossche
ea794e9cde
Implement DOMNode::contains()
...
ref: https://dom.spec.whatwg.org/#dom-node-contains
2023-07-12 19:29:07 +02:00
Ilija Tovilo
7b355e8d34
Revert "Merge branch 'PHP-8.2'"
...
This reverts commit 45a3f178dc
, reversing
changes made to b2a54bc6af
.
2023-07-04 09:18:49 +02:00
Ilija Tovilo
ef4f08832c
Revert "Fix GH-9967 Add support for generating custom function, class const, and property attributes in stubs"
...
This reverts commit d7ab0ff0c8
.
2023-07-04 09:11:14 +02:00
Máté Kocsis
45a3f178dc
Merge branch 'PHP-8.2'
...
* PHP-8.2:
Fix GH-9967 Add support for generating custom function, class const, and property attributes in stubs
Closes GH-10170
2023-07-03 11:17:08 +02:00
Máté Kocsis
d7ab0ff0c8
Fix GH-9967 Add support for generating custom function, class const, and property attributes in stubs
2023-07-03 08:32:58 +02:00
Máté Kocsis
3906bccc00
Add support for typed class constants in stubs
2023-07-01 11:50:04 +02:00
Niels Dossche
ed6df1f0ad
Implement DOMDocument::adoptNode()
...
For the past 20 years this threw a "not yet implemented" exception. But
the function was actually there (albeit not documented) and could be called...
Closes GH-11333.
2023-06-27 17:59:58 +02:00
Niels Dossche
f90962dd88
Merge branch 'PHP-8.2'
...
* PHP-8.2:
Fix return value in stub file for DOMNodeList::item
2023-05-29 19:00:57 +02:00
Niels Dossche
dfa89879a5
Merge branch 'PHP-8.1' into PHP-8.2
...
* PHP-8.1:
Fix return value in stub file for DOMNodeList::item
2023-05-29 18:50:54 +02:00
divinity76
761b9a44f8
Fix return value in stub file for DOMNodeList::item
...
Not explicitly documenting the possibility of returning DOMElement causes
the Intelephense linter (a popular PHP linter with ~9 million downloads:
https://marketplace.visualstudio.com/items?itemName=bmewburn.vscode-intelephense-client )
to think this code is bad:
$xp->query("whatever")->item(0)->getAttribute("foo");
DOMNode does not have getAttribute (while DOMElement does).
Documenting the DOMElement return type should fix Intelephense's linter.
Closes GH-11342.
2023-05-29 18:49:26 +02:00
othercorey
e1967ca9ed
Change DOMCharacterData::appendData return type to true ( #10690 )
2023-02-25 21:42:10 +00:00
Máté Kocsis
b4ec3e9bc0
Do not generate CONST_CS when registering constants ( #9439 )
2022-08-28 08:27:19 +02:00
Máté Kocsis
e328c68305
Rename @cname to @cvalue in stubs ( #9043 )
...
@cname currently refers to the constant name in C. However, it is not always a (constant) name, but sometimes a function invocation, so naming it as @cvalue would be more appropriate.
2022-07-19 15:11:42 +02:00
Yurun
5cf2659fa5
Replace the use of ZVAL_BOOL() with ZVAL_TRUE() or ZVAL_FALSE() where the value is fixed ( #8815 )
2022-06-20 13:34:44 +01:00
Pierrick Charron
1bcd8d394a
Update gen_stub to support #if around classes
2022-06-13 16:34:12 -04:00
Pierrick Charron
6fd2b39397
Indent with TAB in .h files generated by gen_stub
2022-06-13 08:55:54 -04:00
Máté Kocsis
debd38f851
Add support for sensitive parameters in stubs
2022-06-04 18:15:05 +02:00
Máté Kocsis
9c446a9354
Declare ext/dom constants in stubs ( #8676 )
2022-06-01 16:14:08 +02:00
Máté Kocsis
84cd2a9047
Add some stub related todo comments
2022-05-25 13:24:11 +02:00
Máté Kocsis
14da1cb909
Add support for class constants in stubs ( #7434 )
2022-05-22 22:27:23 +02:00
Máté Kocsis
8168d312f9
Fix a few more classsynopsis generation issues
...
Closes GH-7480
2021-09-22 23:09:43 +02:00
Máté Kocsis
25cbd08470
Make a few unuseful DOMEntity properties readonly ( #7406 )
2021-08-26 10:37:45 +02:00
Máté Kocsis
cdf2f3eb16
DOMCharacterData::$data and DOMAttr::$value are writable
2021-08-25 09:25:22 +02:00
Nikita Popov
ca94d55a19
Mark DOM classes as not serializable
2021-08-10 14:22:26 +02:00
Máté Kocsis
da2cd931e5
Fix another DOMNameSpaceNode casing issue
2021-08-05 09:05:33 +02:00
Máté Kocsis
23b1c4a982
Migrate to PHP-Parser 4.12.0 and regenerate some arginfos
2021-07-22 09:40:16 +02:00
Nikita Popov
239446c5cf
Merge branch 'PHP-8.0'
...
* PHP-8.0:
dom_import_simplexml() cannot return null
2021-07-21 11:14:03 +02:00
Nikita Popov
a0893865b3
dom_import_simplexml() cannot return null
2021-07-21 11:13:37 +02:00
Nikita Popov
1602db2d3f
Fix return type of DOMNodeList::item()
...
It can also return DOMNameSpaceNode :(
2021-07-21 09:56:35 +02:00
Máté Kocsis
d9838e5453
Declare tentative return types for ext/dom ( #6985 )
2021-07-20 09:26:36 +02:00
Nikita Popov
c2a58ab07d
Throw DomException for DOM out-of-memory error conditions
...
A number of error conditions in DOM can only occur if libxml2 runs
out of memory, at least as far as I can see. In such cases we
currently do a silent "return false", which violates the DOM spec,
and which code is very unlikely to handle sensibly.
Switch these to throw a DomException with INVALID_STATE_ERR type.
This error type is chosen because we use for similar checks
elsewhere, for example:
a733b1ada7/ext/dom/documentfragment.c (L45-L48)
This changes some of the more obvious cases I spotted, but there are probably more.
Closes GH-7049.
2021-07-19 14:43:31 +02:00
Nikita Popov
b9893c2a18
Actually add the tentative type marker...
2021-07-16 16:33:47 +02:00
Nikita Popov
cad6144d18
Add minimial tentative types to dom
...
Just for implementations of Countable. These (no longer) suffer
from an overly broad return type.
2021-07-16 16:32:12 +02:00
Nikita Popov
4cf0269e4e
DOMNamedNodeMap::count() cannot return false
2021-07-16 16:27:53 +02:00
Nikita Popov
f089e8afbd
DOMNodeList::count() cannot return false
...
Refactor the implementation to make this obvious, and make use
of early returns.
2021-07-16 16:22:52 +02:00
Máté Kocsis
7da2151f7a
Declare typed properties in ext/dom
...
Closes GH-7013
2021-05-26 12:23:43 +02:00
Máté Kocsis
a5e938dc86
Declare dynamic properties in ext/dom
...
Closes GH-6644
2021-05-18 15:12:35 +02:00
Máté Kocsis
bf0f6aaf18
Improve class entry generation
...
Related to GH-6701
2021-02-16 13:09:56 +01:00
Máté Kocsis
45fa7596dc
Add missing classes to stubs
2021-02-09 22:38:06 +01:00
Máté Kocsis
99b08ac281
Implicitly enable function entry generation when class entry generation is enabled
...
Closes GH-6675
2021-02-09 13:37:24 +01:00
Nikita Popov
e32d5e8fe7
Merge branch 'PHP-8.0'
...
* PHP-8.0:
Make createDocument() $namespace nullable
2021-02-09 12:29:50 +01:00