summaryrefslogtreecommitdiff
path: root/external/contributions/Microsoft/ietestcenter_ppb10/chapter13/13.2
diff options
context:
space:
mode:
authorDavid Fugate <dfugate@microsoft.com>2011-04-08 09:20:26 -0700
committerDavid Fugate <dfugate@microsoft.com>2011-04-08 09:20:26 -0700
commit93d0478e4730233407fc47127b6b4778b4227724 (patch)
tree999b2293312bc900824953ac14174242a1a415dd /external/contributions/Microsoft/ietestcenter_ppb10/chapter13/13.2
parent539ac140715dd286150814615d24f759024251bb (diff)
downloadtest262-93d0478e4730233407fc47127b6b4778b4227724.tar.gz
Microsoft's test262 contributions with respect to IE PPB10.
Diffstat (limited to 'external/contributions/Microsoft/ietestcenter_ppb10/chapter13/13.2')
-rw-r--r--external/contributions/Microsoft/ietestcenter_ppb10/chapter13/13.2/13.2-1-s.js42
-rw-r--r--external/contributions/Microsoft/ietestcenter_ppb10/chapter13/13.2/13.2-15-1.js55
-rw-r--r--external/contributions/Microsoft/ietestcenter_ppb10/chapter13/13.2/13.2-17-1.js75
-rw-r--r--external/contributions/Microsoft/ietestcenter_ppb10/chapter13/13.2/13.2-18-1.js73
-rw-r--r--external/contributions/Microsoft/ietestcenter_ppb10/chapter13/13.2/13.2-2-s.js43
-rw-r--r--external/contributions/Microsoft/ietestcenter_ppb10/chapter13/13.2/13.2-3-s.js41
-rw-r--r--external/contributions/Microsoft/ietestcenter_ppb10/chapter13/13.2/13.2-4-s.js43
7 files changed, 372 insertions, 0 deletions
diff --git a/external/contributions/Microsoft/ietestcenter_ppb10/chapter13/13.2/13.2-1-s.js b/external/contributions/Microsoft/ietestcenter_ppb10/chapter13/13.2/13.2-1-s.js
new file mode 100644
index 000000000..86e3f0daa
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_ppb10/chapter13/13.2/13.2-1-s.js
@@ -0,0 +1,42 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ES5Harness.registerTest({
+ id: "13.2-1-s",
+
+ path: "TestCases/chapter13/13.2/13.2-1-s.js",
+
+ description: "StrictMode - Writing or reading from a property named 'caller' of function objects is allowed under both strict and normal modes.",
+
+ test: function testcase() {
+ "use strict";
+
+ var foo = function () {
+ this.caller = 12;
+ }
+ var obj = new foo();
+ return obj.caller === 12;
+ },
+
+ strict : 1,
+ precondition: function prereq() {
+ return true;
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_ppb10/chapter13/13.2/13.2-15-1.js b/external/contributions/Microsoft/ietestcenter_ppb10/chapter13/13.2/13.2-15-1.js
new file mode 100644
index 000000000..5e955e74c
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_ppb10/chapter13/13.2/13.2-15-1.js
@@ -0,0 +1,55 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ES5Harness.registerTest({
+ id: "13.2-15-1",
+
+ path: "TestCases/chapter13/13.2/13.2-15-1.js",
+
+ description: "Function Object has length as its own property and does not invoke the setter defined on Function.prototype.length (Step 15)",
+
+ test: function testcase() {
+ var fun = function (x, y) { };
+
+ var verifyValue = false;
+ verifyValue = (fun.hasOwnProperty("length") && fun.length === 2);
+
+ var verifyWritable = false;
+ fun.length = 1001;
+ verifyWritable = (fun.length === 1001);
+
+ var verifyEnumerable = false;
+ for (var p in fun) {
+ if (p === "length") {
+ verifyEnumerable = true;
+ }
+ }
+
+ var verifyConfigurable = false;
+ delete fun.length;
+ verifyConfigurable = fun.hasOwnProperty("length");
+
+ return verifyValue && !verifyWritable && !verifyEnumerable && verifyConfigurable;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Object.defineProperty);
+ }
+ });
diff --git a/external/contributions/Microsoft/ietestcenter_ppb10/chapter13/13.2/13.2-17-1.js b/external/contributions/Microsoft/ietestcenter_ppb10/chapter13/13.2/13.2-17-1.js
new file mode 100644
index 000000000..b43ae91a5
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_ppb10/chapter13/13.2/13.2-17-1.js
@@ -0,0 +1,75 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ES5Harness.registerTest({
+ id: "13.2-17-1",
+
+ path: "TestCases/chapter13/13.2/13.2-17-1.js",
+
+ description: "Function Object has 'constructor' as its own property, it is not enumerable and does not invoke the setter defined on Function.prototype.constructor (Step 17)",
+
+ test: function testcase() {
+ var desc = Object.getOwnPropertyDescriptor(Object.prototype, "constructor");
+ try {
+ var getFunc = function () {
+ return 100;
+ };
+
+ var data = "data";
+ var setFunc = function (value) {
+ data = value;
+ };
+
+ Object.defineProperty(Object.prototype, "constructor", {
+ get: getFunc,
+ set: setFunc,
+ configurable: true
+ });
+
+ var fun = function () {};
+
+ var verifyValue = false;
+ verifyValue = (fun.prototype.constructor == "function () {}" && typeof fun.prototype.constructor === "function");
+
+ var verifyEnumerable = false;
+ for (var p in fun.prototype) {
+ if (p === "constructor" && fun.prototype.hasOwnProperty("constructor")) {
+ verifyEnumerable = true;
+ }
+ }
+
+ var verifyWritable = false;
+ fun.prototype.constructor = 12;
+ verifyWritable = (fun.prototype.constructor === 12);
+
+ var verifyConfigurable = false;
+ delete fun.prototype.constructor;
+ verifyConfigurable = fun.hasOwnProperty("constructor");
+
+ return verifyValue && verifyWritable && !verifyEnumerable && !verifyConfigurable && data === "data";
+ } finally {
+ Object.defineProperty(Object.prototype, "constructor", desc);
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Object.defineProperty);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_ppb10/chapter13/13.2/13.2-18-1.js b/external/contributions/Microsoft/ietestcenter_ppb10/chapter13/13.2/13.2-18-1.js
new file mode 100644
index 000000000..2e6f4cc1b
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_ppb10/chapter13/13.2/13.2-18-1.js
@@ -0,0 +1,73 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ES5Harness.registerTest({
+ id: "13.2-18-1",
+
+ path: "TestCases/chapter13/13.2/13.2-18-1.js",
+
+ description: "Function Object has 'prototype' as its own property, it is not enumerable and does not invoke the setter defined on Function.prototype (Step 18)",
+
+ test: function testcase() {
+ try {
+ var getFunc = function () {
+ return 100;
+ };
+
+ var data = "data";
+ var setFunc = function (value) {
+ data = value;
+ };
+ Object.defineProperty(Function.prototype, "prototype", {
+ get: getFunc,
+ set: setFunc,
+ configurable: true
+ });
+
+ var fun = function () { };
+
+ var verifyValue = false;
+ verifyValue = (fun.prototype !== 100 && fun.prototype.toString() === "[object Object]");
+
+ var verifyEnumerable = false;
+ for (var p in fun) {
+ if (p === "prototype" && fun.hasOwnProperty("prototype")) {
+ verifyEnumerable = true;
+ }
+ }
+
+ var verifyConfigurable = false;
+ delete fun.prototype;
+ verifyConfigurable = fun.hasOwnProperty("prototype");
+
+ var verifyWritable = false;
+ fun.prototype = 12
+ verifyWritable = (fun.prototype === 12);
+
+ return verifyValue && verifyWritable && !verifyEnumerable && verifyConfigurable && data === "data";
+ } finally {
+ delete Function.prototype.prototype;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Object.defineProperty);
+ }
+}); \ No newline at end of file
diff --git a/external/contributions/Microsoft/ietestcenter_ppb10/chapter13/13.2/13.2-2-s.js b/external/contributions/Microsoft/ietestcenter_ppb10/chapter13/13.2/13.2-2-s.js
new file mode 100644
index 000000000..0176995d5
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_ppb10/chapter13/13.2/13.2-2-s.js
@@ -0,0 +1,43 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ES5Harness.registerTest({
+ id: "13.2-2-s",
+
+ path: "TestCases/chapter13/13.2/13.2-2-s.js",
+
+ description: "StrictMode - A TypeError is thrown when a strict mode code writes to properties named 'caller' of function instances.",
+
+ test: function testcase() {
+ "use strict";
+ try {
+ var foo = function () {
+ }
+ foo.caller = 20;
+ return false;
+ } catch (ex) {
+ return ex instanceof TypeError;
+ }
+ },
+ strict : 1,
+ precondition: function prereq() {
+ return fnSupportsStrict();
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_ppb10/chapter13/13.2/13.2-3-s.js b/external/contributions/Microsoft/ietestcenter_ppb10/chapter13/13.2/13.2-3-s.js
new file mode 100644
index 000000000..6cf5cbaf8
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_ppb10/chapter13/13.2/13.2-3-s.js
@@ -0,0 +1,41 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ES5Harness.registerTest({
+ id: "13.2-3-s",
+
+ path: "TestCases/chapter13/13.2/13.2-3-s.js",
+
+ description: "StrictMode - Writing or reading from a property named 'arguments' of function objects is allowed under both strict and normal modes.",
+
+ test: function testcase() {
+ "use strict";
+
+ var foo = function () {
+ this.arguments = 12;
+ }
+ var obj = new foo();
+ return obj.arguments === 12;
+ },
+ strict : 1,
+ precondition: function prereq() {
+ return true;
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_ppb10/chapter13/13.2/13.2-4-s.js b/external/contributions/Microsoft/ietestcenter_ppb10/chapter13/13.2/13.2-4-s.js
new file mode 100644
index 000000000..975a74360
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_ppb10/chapter13/13.2/13.2-4-s.js
@@ -0,0 +1,43 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ES5Harness.registerTest({
+ id: "13.2-4-s",
+
+ path: "TestCases/chapter13/13.2/13.2-4-s.js",
+
+ description: "StrictMode - A TypeError is thrown when a code in strict mode tries to write to 'arguments' of function instances.",
+
+ test: function testcase() {
+ "use strict";
+ try {
+ var foo = function () {
+ }
+ foo.arguments = 20;
+ return false;
+ } catch (ex) {
+ return ex instanceof TypeError;
+ }
+ },
+ strict : 1,
+ precondition: function prereq() {
+ return fnSupportsStrict();
+ }
+});