| // Copyright 2020 PDFium Authors. All rights reserved. | |
| // Use of this source code is governed by a BSD-style license that can be | |
| // found in the LICENSE file. | |
| function testLegalConstructor(name, allowed) { | |
| const constructorString = name + ".constructor"; | |
| var constructor; | |
| try { | |
| constructor = eval(constructorString); | |
| } catch (e) { | |
| app.alert("FAIL: No such " + constructorString); | |
| return; | |
| } | |
| try { | |
| constructor(); | |
| app.alert("FAIL: " + constructorString + "(): returned"); | |
| } catch (e) { | |
| app.alert("PASS: " + constructorString + "(): " + e); | |
| } | |
| try { | |
| var thing = new constructor; | |
| app.alert("PASS: new " + constructorString + ": " + thing); | |
| } catch (e) { | |
| app.alert("FAIL: new " + constructorString + ": " + e); | |
| } | |
| } | |
| function testIllegalConstructor(name, allowed) { | |
| const constructorString = name + ".constructor"; | |
| var constructor; | |
| try { | |
| constructor = eval(constructorString); | |
| } catch (e) { | |
| app.alert("FAIL: No such " + constructorString); | |
| return; | |
| } | |
| try { | |
| constructor(); | |
| app.alert("FAIL: " + constructorString + "(): returned"); | |
| } catch (e) { | |
| app.alert("PASS: " + constructorString + "(): " + e); | |
| } | |
| try { | |
| new constructor; | |
| app.alert("FAIL: new " + constructorString + ": returned"); | |
| } catch (e) { | |
| app.alert("PASS: new " + constructorString + ": " + e); | |
| } | |
| } |