1,测试案例:
<span class=" d d e f"></span>
<script>
let span = document.querySelector("span");
let classes = span.classList;
Object.defineProperty(span.classList.__proto__, "values", {"enumerable":false,"configurable":true,"writable":true});
</script>
在quickjs mb里会报错。原因是span.classList.__proto__ 是不可配置的。
修复方案是在V8Template::newTemplateInstance 里,此时正在DOMTokenList.prototype设置values、add等方法,但这些方法没有设置flags为JS_PROP_CONFIGURABLE。
要解决这问题得给quickjs加个新api。
2, uint8array 没实现。触发方式是:
const encoder = new TextEncoder()
const view = encoder.encode('€')
console.log(view); // Uint8Array(3) [226, 130, 172]