diff options
author | Jack Karamanian <karamanian.jack@gmail.com> | 2020-06-08 13:31:21 -0500 |
---|---|---|
committer | Andreas Kling <kling@serenityos.org> | 2020-06-29 17:54:54 +0200 |
commit | 7533fd8b025937b2a9ab834a6bbee2be7309de8b (patch) | |
tree | c6f2a77266260b539468a3b0f9d6d733857dc74c /Libraries/LibJS/Tests/object-basic.js | |
parent | a535d58cac6cfef7c85cd9ee8419189d58560afb (diff) | |
download | serenity-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.js | 16 |
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 })"); |