Protecting better against undefined properties

This commit is contained in:
metacryst
2024-04-01 15:14:14 -05:00
parent bf3650ef6a
commit 6a33126563
5 changed files with 82 additions and 21 deletions

View File

@@ -171,6 +171,25 @@ window.testSuites.push( class testInit {
}
}
CannotAddUndefinedPropertiesAfterDefaultConstructor() {
register(class File extends Shadow {
render = () => {
p("boi")
}
}, randomName("file"))
try {
const file = File()
file.hey = "unallowed"
return "Did not throw error!"
} catch(e) {
if(!e.message.includes("extensible")) {
throw e
}
}
}
NonStateFieldsGetSet() {
register(class File extends Shadow {
nonStateField

View File

@@ -26,6 +26,14 @@ window.testSuites.push( class testObservedObject {
}
}
ConstructorWorks() {
return "not done"
}
NotExtensible() {
return "not done"
}
// MustInitAllFields() {
// class Form extends ObservedObject {
// id

View File

@@ -14,7 +14,7 @@
}
</script>
</head>
<body>
<body style="background: rgb(242, 194, 147)">
</body>
</html>

View File

@@ -3,8 +3,8 @@ window.testSuites = [];
await import ("./parse.test.js")
await import ("./init.test.js")
await import ("./observedobject.test.js")
await import ("./render.test.js")
await import ("./observedobject.test.js")
window.randomName = function randomName(prefix) {
const sanitizedPrefix = prefix.toLowerCase().replace(/[^a-z0-9]/g, '');