move browser related APIs into runtime

This commit is contained in:
Yanzhen Yu
2026-04-01 12:00:00 +08:00
parent 6010d62c60
commit 32c33f3ce8
3 changed files with 9 additions and 9 deletions

View File

@@ -314,12 +314,6 @@ function initViewportResizeObserver(
}
const INPUT_TAGS = ['INPUT', 'TEXTAREA', 'SELECT'];
const HOOK_PROPERTIES: Array<[HTMLElement, string]> = [
[HTMLInputElement.prototype, 'value'],
[HTMLInputElement.prototype, 'checked'],
[HTMLSelectElement.prototype, 'value'],
[HTMLTextAreaElement.prototype, 'value'],
];
const lastInputValueMap: WeakMap<EventTarget, inputValue> = new WeakMap();
function initInputObserver(
cb: inputCallback,
@@ -388,9 +382,15 @@ function initInputObserver(
HTMLInputElement.prototype,
'value',
);
const hookProperties: Array<[HTMLElement, string]> = [
[HTMLInputElement.prototype, 'value'],
[HTMLInputElement.prototype, 'checked'],
[HTMLSelectElement.prototype, 'value'],
[HTMLTextAreaElement.prototype, 'value'],
];
if (propertyDescriptor && propertyDescriptor.set) {
handlers.push(
...HOOK_PROPERTIES.map(p =>
...hookProperties.map(p =>
hookSetter<HTMLElement>(p[0], p[1], {
set() {
// mock to a normal event