summaryrefslogtreecommitdiff
path: root/Libraries/LibJS/Tests/object-basic.js
diff options
context:
space:
mode:
authorJack Karamanian <karamanian.jack@gmail.com>2020-06-08 13:31:21 -0500
committerAndreas Kling <kling@serenityos.org>2020-06-29 17:54:54 +0200
commit7533fd8b025937b2a9ab834a6bbee2be7309de8b (patch)
treec6f2a77266260b539468a3b0f9d6d733857dc74c /Libraries/LibJS/Tests/object-basic.js
parenta535d58cac6cfef7c85cd9ee8419189d58560afb (diff)
downloadserenity-7533fd8b025937b2a9ab834a6bbee2be7309de8b.zip
LibJS: Initial class implementation; allow super expressions in object
literal methods; add EnvrionmentRecord fields and methods to LexicalEnvironment Adding EnvrionmentRecord's fields and methods lets us throw an exception when |this| is not initialized, which occurs when the super constructor in a derived class has not yet been called, or when |this| has already been initialized (the super constructor was already called).
Diffstat (limited to 'Libraries/LibJS/Tests/object-basic.js')
-rw-r--r--Libraries/LibJS/Tests/object-basic.js16
1 files changed, 16 insertions, 0 deletions
diff --git a/Libraries/LibJS/Tests/object-basic.js b/Libraries/LibJS/Tests/object-basic.js
index 04580afa0c..5e61525e40 100644
--- a/Libraries/LibJS/Tests/object-basic.js
+++ b/Libraries/LibJS/Tests/object-basic.js
@@ -70,6 +70,22 @@ try {
assert(a[2] === 3);
assert(o4.test === undefined);
+ var base = {
+ getNumber() {
+ return 10;
+ }
+ };
+
+ var derived = {
+ getNumber() {
+ return 20 + super.getNumber();
+ }
+ };
+
+ Object.setPrototypeOf(derived, base)
+ assert(derived.getNumber() === 30);
+
+ assertIsSyntaxError("({ foo: function() { super.bar; } })")
assertIsSyntaxError("({ get ...foo })");
assertIsSyntaxError("({ get... foo })");
assertIsSyntaxError("({ get foo })");