summaryrefslogtreecommitdiff
path: root/test/suite/sputnik/Conformance/15_Native/15.3_Function_Objects/15.3.4_Properties_of_the_Function_Prototype_Object/15.3.4.5_Function.prototype.bind/S15.3.4.5_A16.js
diff options
context:
space:
mode:
Diffstat (limited to 'test/suite/sputnik/Conformance/15_Native/15.3_Function_Objects/15.3.4_Properties_of_the_Function_Prototype_Object/15.3.4.5_Function.prototype.bind/S15.3.4.5_A16.js')
-rw-r--r--test/suite/sputnik/Conformance/15_Native/15.3_Function_Objects/15.3.4_Properties_of_the_Function_Prototype_Object/15.3.4.5_Function.prototype.bind/S15.3.4.5_A16.js27
1 files changed, 27 insertions, 0 deletions
diff --git a/test/suite/sputnik/Conformance/15_Native/15.3_Function_Objects/15.3.4_Properties_of_the_Function_Prototype_Object/15.3.4.5_Function.prototype.bind/S15.3.4.5_A16.js b/test/suite/sputnik/Conformance/15_Native/15.3_Function_Objects/15.3.4_Properties_of_the_Function_Prototype_Object/15.3.4.5_Function.prototype.bind/S15.3.4.5_A16.js
new file mode 100644
index 000000000..c0d57b81a
--- /dev/null
+++ b/test/suite/sputnik/Conformance/15_Native/15.3_Function_Objects/15.3.4_Properties_of_the_Function_Prototype_Object/15.3.4.5_Function.prototype.bind/S15.3.4.5_A16.js
@@ -0,0 +1,27 @@
+// Copyright 2011 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+* @name: S15.3.4.5_A16;
+* @section: 15.3.4.5;
+* @assertion: If IsCallable(func) is false, then throw a TypeError exception.
+* @description: A RegExp is not a function, but it may be
+* callable. Iff it is, it's typeof should be 'function',
+* in which case bind should accept it as a valid this
+* value.
+*/
+
+var re = (/x/);
+if (typeof re === 'function') {
+ Function.prototype.bind.call(re, undefined);
+} else {
+ try {
+ Function.prototype.bind.call(re, undefined);
+ $FAIL('#1: If IsCallable(func) is false, ' +
+ 'then (bind should) throw a TypeError exception');
+ } catch (e) {
+ if (!(e instanceof TypeError)) {
+ $ERROR('#1: TypeError expected. Actual: ' + e);
+ }
+ }
+}