From 8551382805bc76417fe32a87b5bc7e30e7f2e772 Mon Sep 17 00:00:00 2001 From: Aleksey Shvayka Date: Wed, 15 May 2019 01:37:52 +0300 Subject: [PATCH] Add cross-realm "this not callable" test --- .../apply/this-not-callable-realm.js | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 test/built-ins/Function/prototype/apply/this-not-callable-realm.js diff --git a/test/built-ins/Function/prototype/apply/this-not-callable-realm.js b/test/built-ins/Function/prototype/apply/this-not-callable-realm.js new file mode 100644 index 0000000000..373aa329d4 --- /dev/null +++ b/test/built-ins/Function/prototype/apply/this-not-callable-realm.js @@ -0,0 +1,32 @@ +// Copyright 2019 Aleksey Shvayka. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. +/*--- +esid: sec-function.prototype.apply +description: > + Throws a TypeError exception if this value is not callable + (honoring the Realm of the current execution context) +info: | + Function.prototype.apply ( thisArg, argArray ) + + 1. Let func be the this value. + 2. If IsCallable(func) is false, throw a TypeError exception. +features: [cross-realm] +---*/ + +var OFunction = $262.createRealm().global.Function; + +assert.throws(TypeError, function() { + OFunction.prototype.apply.call(undefined, {}, []); +}); + +assert.throws(TypeError, function() { + OFunction.prototype.apply.call(null, {}, []); +}); + +assert.throws(TypeError, function() { + OFunction.prototype.apply.call({}, {}, []); +}); + +assert.throws(TypeError, function() { + OFunction.prototype.apply.call(/re/, {}, []); +});