| // Copyright (C) 2017 André Bargull. All rights reserved. | |
| // This code is governed by the BSD license found in the LICENSE file. | |
| /*--- | |
| description: | | |
| Test if a given function is a constructor function. | |
| defines: [isConstructor] | |
| features: [Reflect.construct] | |
| ---*/ | |
| function isConstructor(f) { | |
| if (typeof f !== "function") { | |
| throw new Test262Error("isConstructor invoked with a non-function value"); | |
| } | |
| try { | |
| Reflect.construct(function(){}, [], f); | |
| } catch (e) { | |
| return false; | |
| } | |
| return true; | |
| } |